/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
(self["webpackChunk"] = self["webpackChunk"] || []).push([["react-ui-vendor"],{

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _arrayLikeToArray)\n/* harmony export */ });\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _arrayWithHoles)\n/* harmony export */ });\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js":
/*!********************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _arrayWithoutHoles)\n/* harmony export */ });\n/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(r);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js":
/*!************************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _assertThisInitialized)\n/* harmony export */ });\nfunction _assertThisInitialized(e) {\n  if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  return e;\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/classCallCheck.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/classCallCheck.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _classCallCheck)\n/* harmony export */ });\nfunction _classCallCheck(a, n) {\n  if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/classCallCheck.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/createClass.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/createClass.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _createClass)\n/* harmony export */ });\n/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js\");\n\nfunction _defineProperties(e, r) {\n  for (var t = 0; t < r.length; t++) {\n    var o = r[t];\n    o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o.key), o);\n  }\n}\nfunction _createClass(e, r, t) {\n  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n    writable: !1\n  }), e;\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/createClass.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/createSuper.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/createSuper.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _createSuper)\n/* harmony export */ });\n/* harmony import */ var _getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getPrototypeOf.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\");\n/* harmony import */ var _isNativeReflectConstruct_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isNativeReflectConstruct.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js\");\n/* harmony import */ var _possibleConstructorReturn_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./possibleConstructorReturn.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\");\n\n\n\nfunction _createSuper(t) {\n  var r = (0,_isNativeReflectConstruct_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n  return function () {\n    var e,\n      o = (0,_getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(t);\n    if (r) {\n      var s = (0,_getPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this).constructor;\n      e = Reflect.construct(o, arguments, s);\n    } else e = o.apply(this, arguments);\n    return (0,_possibleConstructorReturn_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this, e);\n  };\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/createSuper.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _defineProperty)\n/* harmony export */ });\n/* harmony import */ var _toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toPropertyKey.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js\");\n\nfunction _defineProperty(e, r, t) {\n  return (r = (0,_toPropertyKey_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _extends)\n/* harmony export */ });\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _getPrototypeOf)\n/* harmony export */ });\nfunction _getPrototypeOf(t) {\n  return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n    return t.__proto__ || Object.getPrototypeOf(t);\n  }, _getPrototypeOf(t);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/inherits.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/inherits.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _inherits)\n/* harmony export */ });\n/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\");\n\nfunction _inherits(t, e) {\n  if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n  t.prototype = Object.create(e && e.prototype, {\n    constructor: {\n      value: t,\n      writable: !0,\n      configurable: !0\n    }\n  }), Object.defineProperty(t, \"prototype\", {\n    writable: !1\n  }), e && (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(t, e);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/inherits.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _inheritsLoose)\n/* harmony export */ });\n/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setPrototypeOf.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js\");\n\nfunction _inheritsLoose(t, o) {\n  t.prototype = Object.create(o.prototype), t.prototype.constructor = t, (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(t, o);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js":
/*!***************************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _isNativeReflectConstruct)\n/* harmony export */ });\nfunction _isNativeReflectConstruct() {\n  try {\n    var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n  } catch (t) {}\n  return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n    return !!t;\n  })();\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
/*!******************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _iterableToArray)\n/* harmony export */ });\nfunction _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/iterableToArray.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js":
/*!***********************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _iterableToArrayLimit)\n/* harmony export */ });\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js":
/*!******************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _nonIterableRest)\n/* harmony export */ });\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js":
/*!********************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _nonIterableSpread)\n/* harmony export */ });\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _objectSpread2)\n/* harmony export */ });\n/* harmony import */ var _defineProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./defineProperty.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      (0,_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js":
/*!**************************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _objectWithoutProperties)\n/* harmony export */ });\n/* harmony import */ var _objectWithoutPropertiesLoose_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./objectWithoutPropertiesLoose.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(e, t) {\n  if (null == e) return {};\n  var o,\n    r,\n    i = (0,_objectWithoutPropertiesLoose_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e, t);\n  if (Object.getOwnPropertySymbols) {\n    var n = Object.getOwnPropertySymbols(e);\n    for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n  }\n  return i;\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js":
/*!*******************************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js ***!
  \*******************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _objectWithoutPropertiesLoose)\n/* harmony export */ });\nfunction _objectWithoutPropertiesLoose(r, e) {\n  if (null == r) return {};\n  var t = {};\n  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n    if (-1 !== e.indexOf(n)) continue;\n    t[n] = r[n];\n  }\n  return t;\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js":
/*!****************************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _possibleConstructorReturn)\n/* harmony export */ });\n/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./assertThisInitialized.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\");\n\n\nfunction _possibleConstructorReturn(t, e) {\n  if (e && (\"object\" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(e) || \"function\" == typeof e)) return e;\n  if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n  return (0,_assertThisInitialized_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(t);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _setPrototypeOf)\n/* harmony export */ });\nfunction _setPrototypeOf(t, e) {\n  return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n    return t.__proto__ = e, t;\n  }, _setPrototypeOf(t, e);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _slicedToArray)\n/* harmony export */ });\n/* harmony import */ var _arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithHoles.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\");\n/* harmony import */ var _iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArrayLimit.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\");\n/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableRest.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\");\n\n\n\n\nfunction _slicedToArray(r, e) {\n  return (0,_arrayWithHoles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(r) || (0,_iterableToArrayLimit_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(r, e) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(r, e) || (0,_nonIterableRest_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js":
/*!************************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _taggedTemplateLiteral)\n/* harmony export */ });\nfunction _taggedTemplateLiteral(e, t) {\n  return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {\n    raw: {\n      value: Object.freeze(t)\n    }\n  }));\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js":
/*!********************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _toConsumableArray)\n/* harmony export */ });\n/* harmony import */ var _arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\");\n/* harmony import */ var _iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/iterableToArray.js\");\n/* harmony import */ var _unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\");\n\n\n\n\nfunction _toConsumableArray(r) {\n  return (0,_arrayWithoutHoles_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(r) || (0,_iterableToArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(r) || (0,_unsupportedIterableToArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(r) || (0,_nonIterableSpread_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/toPrimitive.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/toPrimitive.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ toPrimitive)\n/* harmony export */ });\n/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/typeof.js\");\n\nfunction toPrimitive(t, r) {\n  if (\"object\" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/toPrimitive.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ toPropertyKey)\n/* harmony export */ });\n/* harmony import */ var _typeof_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./typeof.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toPrimitive.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/toPrimitive.js\");\n\n\nfunction toPropertyKey(t) {\n  var i = (0,_toPrimitive_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(t, \"string\");\n  return \"symbol\" == (0,_typeof_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(i) ? i : i + \"\";\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/typeof.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/typeof.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _typeof)\n/* harmony export */ });\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/typeof.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
/*!*****************************************************************************************!*\
  !*** ../react-ui/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ _unsupportedIterableToArray)\n/* harmony export */ });\n/* harmony import */ var _arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray.js */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? (0,_arrayLikeToArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(r, a) : void 0;\n  }\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@emotion/cache/dist/emotion-cache.browser.development.esm.js":
/*!*********************************************************************************************!*\
  !*** ../react-ui/node_modules/@emotion/cache/dist/emotion-cache.browser.development.esm.js ***!
  \*********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ createCache)\n/* harmony export */ });\n/* harmony import */ var _emotion_sheet__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/sheet */ \"../react-ui/node_modules/@emotion/sheet/dist/emotion-sheet.development.esm.js\");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! stylis */ \"../react-ui/node_modules/stylis/src/Enum.js\");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! stylis */ \"../react-ui/node_modules/stylis/src/Utility.js\");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! stylis */ \"../react-ui/node_modules/stylis/src/Parser.js\");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! stylis */ \"../react-ui/node_modules/stylis/src/Tokenizer.js\");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! stylis */ \"../react-ui/node_modules/stylis/src/Serializer.js\");\n/* harmony import */ var stylis__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! stylis */ \"../react-ui/node_modules/stylis/src/Middleware.js\");\n/* harmony import */ var _emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @emotion/weak-memoize */ \"../react-ui/node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js\");\n/* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @emotion/memoize */ \"../react-ui/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js\");\n\n\n\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n  var previous = 0;\n  var character = 0;\n  while (true) {\n    previous = character;\n    character = (0,stylis__WEBPACK_IMPORTED_MODULE_4__.peek)(); // &\\f\n\n    if (previous === 38 && character === 12) {\n      points[index] = 1;\n    }\n    if ((0,stylis__WEBPACK_IMPORTED_MODULE_4__.token)(character)) {\n      break;\n    }\n    (0,stylis__WEBPACK_IMPORTED_MODULE_4__.next)();\n  }\n  return (0,stylis__WEBPACK_IMPORTED_MODULE_4__.slice)(begin, stylis__WEBPACK_IMPORTED_MODULE_4__.position);\n};\nvar toRules = function toRules(parsed, points) {\n  // pretend we've started with a comma\n  var index = -1;\n  var character = 44;\n  do {\n    switch ((0,stylis__WEBPACK_IMPORTED_MODULE_4__.token)(character)) {\n      case 0:\n        // &\\f\n        if (character === 38 && (0,stylis__WEBPACK_IMPORTED_MODULE_4__.peek)() === 12) {\n          // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n          // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n          // and when it should just concatenate the outer and inner selectors\n          // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n          points[index] = 1;\n        }\n        parsed[index] += identifierWithPointTracking(stylis__WEBPACK_IMPORTED_MODULE_4__.position - 1, points, index);\n        break;\n      case 2:\n        parsed[index] += (0,stylis__WEBPACK_IMPORTED_MODULE_4__.delimit)(character);\n        break;\n      case 4:\n        // comma\n        if (character === 44) {\n          // colon\n          parsed[++index] = (0,stylis__WEBPACK_IMPORTED_MODULE_4__.peek)() === 58 ? '&\\f' : '';\n          points[index] = parsed[index].length;\n          break;\n        }\n\n      // fallthrough\n\n      default:\n        parsed[index] += (0,stylis__WEBPACK_IMPORTED_MODULE_2__.from)(character);\n    }\n  } while (character = (0,stylis__WEBPACK_IMPORTED_MODULE_4__.next)());\n  return parsed;\n};\nvar getRules = function getRules(value, points) {\n  return (0,stylis__WEBPACK_IMPORTED_MODULE_4__.dealloc)(toRules((0,stylis__WEBPACK_IMPORTED_MODULE_4__.alloc)(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n  if (element.type !== 'rule' || !element.parent ||\n  // positive .length indicates that this rule contains pseudo\n  // negative .length indicates that this rule has been already prefixed\n  element.length < 1) {\n    return;\n  }\n  var value = element.value;\n  var parent = element.parent;\n  var isImplicitRule = element.column === parent.column && element.line === parent.line;\n  while (parent.type !== 'rule') {\n    parent = parent.parent;\n    if (!parent) return;\n  } // short-circuit for the simplest case\n\n  if (element.props.length === 1 && value.charCodeAt(0) !== 58\n  /* colon */ && !fixedElements.get(parent)) {\n    return;\n  } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n  // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n  if (isImplicitRule) {\n    return;\n  }\n  fixedElements.set(element, true);\n  var points = [];\n  var rules = getRules(value, points);\n  var parentRules = parent.props;\n  for (var i = 0, k = 0; i < rules.length; i++) {\n    for (var j = 0; j < parentRules.length; j++, k++) {\n      element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n    }\n  }\n};\nvar removeLabel = function removeLabel(element) {\n  if (element.type === 'decl') {\n    var value = element.value;\n    if (\n    // charcode for l\n    value.charCodeAt(0) === 108 &&\n    // charcode for b\n    value.charCodeAt(2) === 98) {\n      // this ignores label\n      element[\"return\"] = '';\n      element.value = '';\n    }\n  }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\nvar isIgnoringComment = function isIgnoringComment(element) {\n  return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n  return function (element, index, children) {\n    if (element.type !== 'rule' || cache.compat) return;\n    var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n    if (unsafePseudoClasses) {\n      var isNested = !!element.parent; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\n      //\n      // considering this input:\n      // .a {\n      //   .b /* comm */ {}\n      //   color: hotpink;\n      // }\n      // we get output corresponding to this:\n      // .a {\n      //   & {\n      //     /* comm */\n      //     color: hotpink;\n      //   }\n      //   .b {}\n      // }\n\n      var commentContainer = isNested ? element.parent.children :\n      // global rule at the root level\n      children;\n      for (var i = commentContainer.length - 1; i >= 0; i--) {\n        var node = commentContainer[i];\n        if (node.line < element.line) {\n          break;\n        } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n        // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n        // this will also match inputs like this:\n        // .a {\n        //   /* comm */\n        //   .b {}\n        // }\n        //\n        // but that is fine\n        //\n        // it would be the easiest to change the placement of the comment to be the first child of the rule:\n        // .a {\n        //   .b { /* comm */ }\n        // }\n        // with such inputs we wouldn't have to search for the comment at all\n        // TODO: consider changing this comment placement in the next major version\n\n        if (node.column < element.column) {\n          if (isIgnoringComment(node)) {\n            return;\n          }\n          break;\n        }\n      }\n      unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n        console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n      });\n    }\n  };\n};\nvar isImportRule = function isImportRule(element) {\n  return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n  for (var i = index - 1; i >= 0; i--) {\n    if (!isImportRule(children[i])) {\n      return true;\n    }\n  }\n  return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\nvar nullifyElement = function nullifyElement(element) {\n  element.type = '';\n  element.value = '';\n  element[\"return\"] = '';\n  element.children = '';\n  element.props = '';\n};\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n  if (!isImportRule(element)) {\n    return;\n  }\n  if (element.parent) {\n    console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n    nullifyElement(element);\n  } else if (isPrependedWithRegularRules(index, children)) {\n    console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n    nullifyElement(element);\n  }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n  switch ((0,stylis__WEBPACK_IMPORTED_MODULE_2__.hash)(value, length)) {\n    // color-adjust\n    case 5103:\n      return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + 'print-' + value + value;\n    // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n    case 5737:\n    case 4201:\n    case 3177:\n    case 3433:\n    case 1641:\n    case 4457:\n    case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n    case 5572:\n    case 6356:\n    case 5844:\n    case 3191:\n    case 6645:\n    case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n    case 6391:\n    case 5879:\n    case 5623:\n    case 6135:\n    case 4599:\n    case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n    case 4215:\n    case 6389:\n    case 5109:\n    case 5365:\n    case 5621:\n    case 3829:\n      return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + value;\n    // appearance, user-select, transform, hyphens, text-size-adjust\n\n    case 5349:\n    case 4246:\n    case 4810:\n    case 6968:\n    case 2756:\n      return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_1__.MOZ + value + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + value + value;\n    // flex, flex-direction\n\n    case 6828:\n    case 4268:\n      return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + value + value;\n    // order\n\n    case 6165:\n      return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + 'flex-' + value + value;\n    // align-items\n\n    case 5187:\n      return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /(\\w+).+(:[^]+)/, stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + 'box-$1$2' + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + 'flex-$1$2') + value;\n    // align-self\n\n    case 5443:\n      return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + 'flex-item-' + (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /flex-|-self/, '') + value;\n    // align-content\n\n    case 4675:\n      return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + 'flex-line-pack' + (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /align-content|flex-|-self/, '') + value;\n    // flex-shrink\n\n    case 5548:\n      return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, 'shrink', 'negative') + value;\n    // flex-basis\n\n    case 5292:\n      return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, 'basis', 'preferred-size') + value;\n    // flex-grow\n\n    case 6060:\n      return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + 'box-' + (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, '-grow', '') + stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, 'grow', 'positive') + value;\n    // transition\n\n    case 4554:\n      return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /([^-])(transform)/g, '$1' + stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + '$2') + value;\n    // cursor\n\n    case 6187:\n      return (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)((0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)((0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /(zoom-|grab)/, stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + '$1'), /(image-set)/, stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + '$1'), value, '') + value;\n    // background, background-image\n\n    case 5495:\n    case 3959:\n      return (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /(image-set\\([^]*)/, stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + '$1' + '$`$1');\n    // justify-content\n\n    case 4968:\n      return (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)((0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /(.+:)(flex-)?(.*)/, stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + 'box-pack:$3' + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + value;\n    // (margin|padding)-inline-(start|end)\n\n    case 4095:\n    case 3583:\n    case 4068:\n    case 2532:\n      return (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /(.+)-inline(.+)/, stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + '$1$2') + value;\n    // (min|max)?(width|height|inline-size|block-size)\n\n    case 8116:\n    case 7059:\n    case 5753:\n    case 5535:\n    case 5445:\n    case 5701:\n    case 4933:\n    case 4677:\n    case 5533:\n    case 5789:\n    case 5021:\n    case 4765:\n      // stretch, max-content, min-content, fill-available\n      if ((0,stylis__WEBPACK_IMPORTED_MODULE_2__.strlen)(value) - 1 - length > 6) switch ((0,stylis__WEBPACK_IMPORTED_MODULE_2__.charat)(value, length + 1)) {\n        // (m)ax-content, (m)in-content\n        case 109:\n          // -\n          if ((0,stylis__WEBPACK_IMPORTED_MODULE_2__.charat)(value, length + 4) !== 45) break;\n        // (f)ill-available, (f)it-content\n\n        case 102:\n          return (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /(.+:)(.+)-([^]+)/, '$1' + stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + '$2-$3' + '$1' + stylis__WEBPACK_IMPORTED_MODULE_1__.MOZ + ((0,stylis__WEBPACK_IMPORTED_MODULE_2__.charat)(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n        // (s)tretch\n\n        case 115:\n          return ~(0,stylis__WEBPACK_IMPORTED_MODULE_2__.indexof)(value, 'stretch') ? prefix((0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, 'stretch', 'fill-available'), length) + value : value;\n      }\n      break;\n    // position: sticky\n\n    case 4949:\n      // (s)ticky?\n      if ((0,stylis__WEBPACK_IMPORTED_MODULE_2__.charat)(value, length + 1) !== 115) break;\n    // display: (flex|inline-flex)\n\n    case 6444:\n      switch ((0,stylis__WEBPACK_IMPORTED_MODULE_2__.charat)(value, (0,stylis__WEBPACK_IMPORTED_MODULE_2__.strlen)(value) - 3 - (~(0,stylis__WEBPACK_IMPORTED_MODULE_2__.indexof)(value, '!important') && 10))) {\n        // stic(k)y\n        case 107:\n          return (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, ':', ':' + stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT) + value;\n        // (inline-)?fl(e)x\n\n        case 101:\n          return (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + ((0,stylis__WEBPACK_IMPORTED_MODULE_2__.charat)(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + '$2$3' + '$1' + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + '$2box$3') + value;\n      }\n      break;\n    // writing-mode\n\n    case 5936:\n      switch ((0,stylis__WEBPACK_IMPORTED_MODULE_2__.charat)(value, length + 11)) {\n        // vertical-l(r)\n        case 114:\n          return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n        // vertical-r(l)\n\n        case 108:\n          return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n        // horizontal(-)tb\n\n        case 45:\n          return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n      }\n      return stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + value + stylis__WEBPACK_IMPORTED_MODULE_1__.MS + value + value;\n  }\n  return value;\n}\nvar prefixer = function prefixer(element, index, children, callback) {\n  if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n    case stylis__WEBPACK_IMPORTED_MODULE_1__.DECLARATION:\n      element[\"return\"] = prefix(element.value, element.length);\n      break;\n    case stylis__WEBPACK_IMPORTED_MODULE_1__.KEYFRAMES:\n      return (0,stylis__WEBPACK_IMPORTED_MODULE_5__.serialize)([(0,stylis__WEBPACK_IMPORTED_MODULE_4__.copy)(element, {\n        value: (0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(element.value, '@', '@' + stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT)\n      })], callback);\n    case stylis__WEBPACK_IMPORTED_MODULE_1__.RULESET:\n      if (element.length) return (0,stylis__WEBPACK_IMPORTED_MODULE_2__.combine)(element.props, function (value) {\n        switch ((0,stylis__WEBPACK_IMPORTED_MODULE_2__.match)(value, /(::plac\\w+|:read-\\w+)/)) {\n          // :read-(only|write)\n          case ':read-only':\n          case ':read-write':\n            return (0,stylis__WEBPACK_IMPORTED_MODULE_5__.serialize)([(0,stylis__WEBPACK_IMPORTED_MODULE_4__.copy)(element, {\n              props: [(0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /:(read-\\w+)/, ':' + stylis__WEBPACK_IMPORTED_MODULE_1__.MOZ + '$1')]\n            })], callback);\n          // :placeholder\n\n          case '::placeholder':\n            return (0,stylis__WEBPACK_IMPORTED_MODULE_5__.serialize)([(0,stylis__WEBPACK_IMPORTED_MODULE_4__.copy)(element, {\n              props: [(0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /:(plac\\w+)/, ':' + stylis__WEBPACK_IMPORTED_MODULE_1__.WEBKIT + 'input-$1')]\n            }), (0,stylis__WEBPACK_IMPORTED_MODULE_4__.copy)(element, {\n              props: [(0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /:(plac\\w+)/, ':' + stylis__WEBPACK_IMPORTED_MODULE_1__.MOZ + '$1')]\n            }), (0,stylis__WEBPACK_IMPORTED_MODULE_4__.copy)(element, {\n              props: [(0,stylis__WEBPACK_IMPORTED_MODULE_2__.replace)(value, /:(plac\\w+)/, stylis__WEBPACK_IMPORTED_MODULE_1__.MS + 'input-$1')]\n            })], callback);\n        }\n        return '';\n      });\n  }\n};\nvar defaultStylisPlugins = [prefixer];\nvar getSourceMap;\n{\n  var sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n  getSourceMap = function getSourceMap(styles) {\n    var matches = styles.match(sourceMapPattern);\n    if (!matches) return;\n    return matches[matches.length - 1];\n  };\n}\nvar createCache = function createCache(options) {\n  var key = options.key;\n  if (!key) {\n    throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n  }\n  if (key === 'css') {\n    var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n    // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n    // note this very very intentionally targets all style elements regardless of the key to ensure\n    // that creating a cache works inside of render of a React component\n\n    Array.prototype.forEach.call(ssrStyles, function (node) {\n      // we want to only move elements which have a space in the data-emotion attribute value\n      // because that indicates that it is an Emotion 11 server-side rendered style elements\n      // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n      // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n      // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n      // will not result in the Emotion 10 styles being destroyed\n      var dataEmotionAttribute = node.getAttribute('data-emotion');\n      if (dataEmotionAttribute.indexOf(' ') === -1) {\n        return;\n      }\n      document.head.appendChild(node);\n      node.setAttribute('data-s', '');\n    });\n  }\n  var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n  {\n    if (/[^a-z-]/.test(key)) {\n      throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n    }\n  }\n  var inserted = {};\n  var container;\n  var nodesToHydrate = [];\n  {\n    container = options.container || document.head;\n    Array.prototype.forEach.call(\n    // this means we will ignore elements which don't have a space in them which\n    // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n    document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n      var attrib = node.getAttribute(\"data-emotion\").split(' ');\n      for (var i = 1; i < attrib.length; i++) {\n        inserted[attrib[i]] = true;\n      }\n      nodesToHydrate.push(node);\n    });\n  }\n  var _insert;\n  var omnipresentPlugins = [compat, removeLabel];\n  {\n    omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n      get compat() {\n        return cache.compat;\n      }\n    }), incorrectImportAlarm);\n  }\n  {\n    var currentSheet;\n    var finalizingPlugins = [stylis__WEBPACK_IMPORTED_MODULE_5__.stringify, function (element) {\n      if (!element.root) {\n        if (element[\"return\"]) {\n          currentSheet.insert(element[\"return\"]);\n        } else if (element.value && element.type !== stylis__WEBPACK_IMPORTED_MODULE_1__.COMMENT) {\n          // insert empty rule in non-production environments\n          // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n          currentSheet.insert(element.value + \"{}\");\n        }\n      }\n    }];\n    var serializer = (0,stylis__WEBPACK_IMPORTED_MODULE_6__.middleware)(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n    var stylis = function stylis(styles) {\n      return (0,stylis__WEBPACK_IMPORTED_MODULE_5__.serialize)((0,stylis__WEBPACK_IMPORTED_MODULE_3__.compile)(styles), serializer);\n    };\n    _insert = function insert(selector, serialized, sheet, shouldCache) {\n      currentSheet = sheet;\n      if (getSourceMap) {\n        var sourceMap = getSourceMap(serialized.styles);\n        if (sourceMap) {\n          currentSheet = {\n            insert: function insert(rule) {\n              sheet.insert(rule + sourceMap);\n            }\n          };\n        }\n      }\n      stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n      if (shouldCache) {\n        cache.inserted[serialized.name] = true;\n      }\n    };\n  }\n  var cache = {\n    key: key,\n    sheet: new _emotion_sheet__WEBPACK_IMPORTED_MODULE_0__.StyleSheet({\n      key: key,\n      container: container,\n      nonce: options.nonce,\n      speedy: options.speedy,\n      prepend: options.prepend,\n      insertionPoint: options.insertionPoint\n    }),\n    nonce: options.nonce,\n    inserted: inserted,\n    registered: {},\n    insert: _insert\n  };\n  cache.sheet.hydrate(nodesToHydrate);\n  return cache;\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@emotion/cache/dist/emotion-cache.browser.development.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@emotion/hash/dist/emotion-hash.esm.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/@emotion/hash/dist/emotion-hash.esm.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ murmur2)\n/* harmony export */ });\n/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n  // 'm' and 'r' are mixing constants generated offline.\n  // They're not really 'magic', they just happen to work well.\n  // const m = 0x5bd1e995;\n  // const r = 24;\n  // Initialize the hash\n  var h = 0; // Mix 4 bytes at a time into the hash\n\n  var k,\n    i = 0,\n    len = str.length;\n  for (; len >= 4; ++i, len -= 4) {\n    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n    k = /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n    k ^= /* k >>> r: */\n    k >>> 24;\n    h = /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^ /* Math.imul(h, m): */\n    (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Handle the last few bytes of the input array\n\n  switch (len) {\n    case 3:\n      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n    case 2:\n      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n    case 1:\n      h ^= str.charCodeAt(i) & 0xff;\n      h = /* Math.imul(h, m): */\n      (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Do a few final mixes of the hash to ensure the last few\n  // bytes are well-incorporated.\n\n  h ^= h >>> 13;\n  h = /* Math.imul(h, m): */\n  (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@emotion/hash/dist/emotion-hash.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ memoize)\n/* harmony export */ });\nfunction memoize(fn) {\n  var cache = Object.create(null);\n  return function (arg) {\n    if (cache[arg] === undefined) cache[arg] = fn(arg);\n    return cache[arg];\n  };\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.development.esm.js":
/*!***************************************************************************************************************************!*\
  !*** ../react-ui/node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.development.esm.js ***!
  \***************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ hoistNonReactStatics)\n/* harmony export */ });\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! hoist-non-react-statics */ \"../react-ui/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0__);\n\n\n// this file isolates this package that is not tree-shakeable\n// and if this module doesn't actually contain any logic of its own\n// then Rollup just use 'hoist-non-react-statics' directly in other chunks\n\nvar hoistNonReactStatics = function (targetComponent, sourceComponent) {\n  return hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_0___default()(targetComponent, sourceComponent);\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.development.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@emotion/react/dist/emotion-element-489459f2.browser.development.esm.js":
/*!********************************************************************************************************!*\
  !*** ../react-ui/node_modules/@emotion/react/dist/emotion-element-489459f2.browser.development.esm.js ***!
  \********************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   C: () => (/* binding */ CacheProvider),\n/* harmony export */   E: () => (/* binding */ Emotion$1),\n/* harmony export */   T: () => (/* binding */ ThemeContext),\n/* harmony export */   _: () => (/* binding */ __unsafe_useEmotionCache),\n/* harmony export */   a: () => (/* binding */ ThemeProvider),\n/* harmony export */   b: () => (/* binding */ withTheme),\n/* harmony export */   c: () => (/* binding */ createEmotionProps),\n/* harmony export */   h: () => (/* binding */ hasOwn),\n/* harmony export */   u: () => (/* binding */ useTheme),\n/* harmony export */   w: () => (/* binding */ withEmotionCache)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @emotion/cache */ \"../react-ui/node_modules/@emotion/cache/dist/emotion-cache.browser.development.esm.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @emotion/weak-memoize */ \"../react-ui/node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js\");\n/* harmony import */ var _isolated_hnrs_dist_emotion_react_isolated_hnrs_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.development.esm.js */ \"../react-ui/node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.development.esm.js\");\n/* harmony import */ var _emotion_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @emotion/utils */ \"../react-ui/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js\");\n/* harmony import */ var _emotion_serialize__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @emotion/serialize */ \"../react-ui/node_modules/@emotion/serialize/dist/emotion-serialize.development.esm.js\");\n/* harmony import */ var _emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @emotion/use-insertion-effect-with-fallbacks */ \"../react-ui/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js\");\n\n\n\n\n\n\n\n\n\nvar EmotionCacheContext = /* #__PURE__ */react__WEBPACK_IMPORTED_MODULE_0__.createContext(\n// we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */(0,_emotion_cache__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n  key: 'css'\n}) : null);\n{\n  EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n  return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(EmotionCacheContext);\n};\nvar withEmotionCache = function withEmotionCache(func) {\n  return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function (props, ref) {\n    // the cache will never be null in the browser\n    var cache = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(EmotionCacheContext);\n    return func(props, cache, ref);\n  });\n};\nvar ThemeContext = /* #__PURE__ */react__WEBPACK_IMPORTED_MODULE_0__.createContext({});\n{\n  ThemeContext.displayName = 'EmotionThemeContext';\n}\nvar useTheme = function useTheme() {\n  return react__WEBPACK_IMPORTED_MODULE_0__.useContext(ThemeContext);\n};\nvar getTheme = function getTheme(outerTheme, theme) {\n  if (typeof theme === 'function') {\n    var mergedTheme = theme(outerTheme);\n    if (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme)) {\n      throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n    }\n    return mergedTheme;\n  }\n  if (theme == null || typeof theme !== 'object' || Array.isArray(theme)) {\n    throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n  }\n  return (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, outerTheme, theme);\n};\nvar createCacheWithTheme = /* #__PURE__ */(0,_emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(function (outerTheme) {\n  return (0,_emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(function (theme) {\n    return getTheme(outerTheme, theme);\n  });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n  var theme = react__WEBPACK_IMPORTED_MODULE_0__.useContext(ThemeContext);\n  if (props.theme !== theme) {\n    theme = createCacheWithTheme(theme)(props.theme);\n  }\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(ThemeContext.Provider, {\n    value: theme\n  }, props.children);\n};\nfunction withTheme(Component) {\n  var componentName = Component.displayName || Component.name || 'Component';\n  var WithTheme = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function render(props, ref) {\n    var theme = react__WEBPACK_IMPORTED_MODULE_0__.useContext(ThemeContext);\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Component, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({\n      theme: theme,\n      ref: ref\n    }, props));\n  });\n  WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n  return (0,_isolated_hnrs_dist_emotion_react_isolated_hnrs_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(WithTheme, Component);\n}\nvar hasOwn = {}.hasOwnProperty;\nvar getLastPart = function getLastPart(functionName) {\n  // The match may be something like 'Object.createEmotionProps' or\n  // 'Loader.prototype.render'\n  var parts = functionName.split('.');\n  return parts[parts.length - 1];\n};\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n  // V8\n  var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n  if (match) return getLastPart(match[1]); // Safari / Firefox\n\n  match = /^([A-Za-z0-9$.]+)@/.exec(line);\n  if (match) return getLastPart(match[1]);\n  return undefined;\n};\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n  return identifier.replace(/\\$/g, '-');\n};\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n  if (!stackTrace) return undefined;\n  var lines = stackTrace.split('\\n');\n  for (var i = 0; i < lines.length; i++) {\n    var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n    if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n    if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n    // uppercase letter\n\n    if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n  }\n  return undefined;\n};\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n  if (typeof props.css === 'string' &&\n  // check if there is a css declaration\n  props.css.indexOf(':') !== -1) {\n    throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n  }\n  var newProps = {};\n  for (var _key in props) {\n    if (hasOwn.call(props, _key)) {\n      newProps[_key] = props[_key];\n    }\n  }\n  newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n  // - It causes hydration warnings when using Safari and SSR\n  // - It can degrade performance if there are a huge number of elements\n  //\n  // Even if the flag is set, we still don't compute the label if it has already\n  // been determined by the Babel plugin.\n\n  if (typeof globalThis !== 'undefined' && !!globalThis.EMOTION_RUNTIME_AUTO_LABEL && !!props.css && (typeof props.css !== 'object' || !('name' in props.css) || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n    var label = getLabelFromStackTrace(new Error().stack);\n    if (label) newProps[labelPropName] = label;\n  }\n  return newProps;\n};\nvar Insertion = function Insertion(_ref) {\n  var cache = _ref.cache,\n    serialized = _ref.serialized,\n    isStringTag = _ref.isStringTag;\n  (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_5__.registerStyles)(cache, serialized, isStringTag);\n  (0,_emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_7__.useInsertionEffectAlwaysWithSyncFallback)(function () {\n    return (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_5__.insertStyles)(cache, serialized, isStringTag);\n  });\n  return null;\n};\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n  var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n  // not passing the registered cache to serializeStyles because it would\n  // make certain babel optimisations not possible\n\n  if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n    cssProp = cache.registered[cssProp];\n  }\n  var WrappedComponent = props[typePropName];\n  var registeredStyles = [cssProp];\n  var className = '';\n  if (typeof props.className === 'string') {\n    className = (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_5__.getRegisteredStyles)(cache.registered, registeredStyles, props.className);\n  } else if (props.className != null) {\n    className = props.className + \" \";\n  }\n  var serialized = (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_6__.serializeStyles)(registeredStyles, undefined, react__WEBPACK_IMPORTED_MODULE_0__.useContext(ThemeContext));\n  if (serialized.name.indexOf('-') === -1) {\n    var labelFromStack = props[labelPropName];\n    if (labelFromStack) {\n      serialized = (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_6__.serializeStyles)([serialized, 'label:' + labelFromStack + ';']);\n    }\n  }\n  className += cache.key + \"-\" + serialized.name;\n  var newProps = {};\n  for (var _key2 in props) {\n    if (hasOwn.call(props, _key2) && _key2 !== 'css' && _key2 !== typePropName && _key2 !== labelPropName) {\n      newProps[_key2] = props[_key2];\n    }\n  }\n  newProps.className = className;\n  if (ref) {\n    newProps.ref = ref;\n  }\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Insertion, {\n    cache: cache,\n    serialized: serialized,\n    isStringTag: typeof WrappedComponent === 'string'\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(WrappedComponent, newProps));\n});\n{\n  Emotion.displayName = 'EmotionCssPropInternal';\n}\nvar Emotion$1 = Emotion;\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@emotion/react/dist/emotion-element-489459f2.browser.development.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@emotion/react/dist/emotion-react.browser.development.esm.js":
/*!*********************************************************************************************!*\
  !*** ../react-ui/node_modules/@emotion/react/dist/emotion-react.browser.development.esm.js ***!
  \*********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   CacheProvider: () => (/* reexport safe */ _emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__.C),\n/* harmony export */   ClassNames: () => (/* binding */ ClassNames),\n/* harmony export */   Global: () => (/* binding */ Global),\n/* harmony export */   ThemeContext: () => (/* reexport safe */ _emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__.T),\n/* harmony export */   ThemeProvider: () => (/* reexport safe */ _emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__.a),\n/* harmony export */   __unsafe_useEmotionCache: () => (/* reexport safe */ _emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__._),\n/* harmony export */   createElement: () => (/* binding */ jsx),\n/* harmony export */   css: () => (/* binding */ css),\n/* harmony export */   jsx: () => (/* binding */ jsx),\n/* harmony export */   keyframes: () => (/* binding */ keyframes),\n/* harmony export */   useTheme: () => (/* reexport safe */ _emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__.u),\n/* harmony export */   withEmotionCache: () => (/* reexport safe */ _emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__.w),\n/* harmony export */   withTheme: () => (/* reexport safe */ _emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__.b)\n/* harmony export */ });\n/* harmony import */ var _emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./emotion-element-489459f2.browser.development.esm.js */ \"../react-ui/node_modules/@emotion/react/dist/emotion-element-489459f2.browser.development.esm.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _emotion_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @emotion/utils */ \"../react-ui/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js\");\n/* harmony import */ var _emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @emotion/use-insertion-effect-with-fallbacks */ \"../react-ui/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js\");\n/* harmony import */ var _emotion_serialize__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @emotion/serialize */ \"../react-ui/node_modules/@emotion/serialize/dist/emotion-serialize.development.esm.js\");\n/* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @emotion/cache */ \"../react-ui/node_modules/@emotion/cache/dist/emotion-cache.browser.development.esm.js\");\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _emotion_weak_memoize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @emotion/weak-memoize */ \"../react-ui/node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! hoist-non-react-statics */ \"../react-ui/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js\");\n/* harmony import */ var hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(hoist_non_react_statics__WEBPACK_IMPORTED_MODULE_8__);\n\n\n\n\n\n\n\n\n\n\n\nvar isDevelopment = true;\nvar pkg = {\n  name: \"@emotion/react\",\n  version: \"11.14.0\",\n  main: \"dist/emotion-react.cjs.js\",\n  module: \"dist/emotion-react.esm.js\",\n  types: \"dist/emotion-react.cjs.d.ts\",\n  exports: {\n    \".\": {\n      types: {\n        \"import\": \"./dist/emotion-react.cjs.mjs\",\n        \"default\": \"./dist/emotion-react.cjs.js\"\n      },\n      development: {\n        \"edge-light\": {\n          module: \"./dist/emotion-react.development.edge-light.esm.js\",\n          \"import\": \"./dist/emotion-react.development.edge-light.cjs.mjs\",\n          \"default\": \"./dist/emotion-react.development.edge-light.cjs.js\"\n        },\n        worker: {\n          module: \"./dist/emotion-react.development.edge-light.esm.js\",\n          \"import\": \"./dist/emotion-react.development.edge-light.cjs.mjs\",\n          \"default\": \"./dist/emotion-react.development.edge-light.cjs.js\"\n        },\n        workerd: {\n          module: \"./dist/emotion-react.development.edge-light.esm.js\",\n          \"import\": \"./dist/emotion-react.development.edge-light.cjs.mjs\",\n          \"default\": \"./dist/emotion-react.development.edge-light.cjs.js\"\n        },\n        browser: {\n          module: \"./dist/emotion-react.browser.development.esm.js\",\n          \"import\": \"./dist/emotion-react.browser.development.cjs.mjs\",\n          \"default\": \"./dist/emotion-react.browser.development.cjs.js\"\n        },\n        module: \"./dist/emotion-react.development.esm.js\",\n        \"import\": \"./dist/emotion-react.development.cjs.mjs\",\n        \"default\": \"./dist/emotion-react.development.cjs.js\"\n      },\n      \"edge-light\": {\n        module: \"./dist/emotion-react.edge-light.esm.js\",\n        \"import\": \"./dist/emotion-react.edge-light.cjs.mjs\",\n        \"default\": \"./dist/emotion-react.edge-light.cjs.js\"\n      },\n      worker: {\n        module: \"./dist/emotion-react.edge-light.esm.js\",\n        \"import\": \"./dist/emotion-react.edge-light.cjs.mjs\",\n        \"default\": \"./dist/emotion-react.edge-light.cjs.js\"\n      },\n      workerd: {\n        module: \"./dist/emotion-react.edge-light.esm.js\",\n        \"import\": \"./dist/emotion-react.edge-light.cjs.mjs\",\n        \"default\": \"./dist/emotion-react.edge-light.cjs.js\"\n      },\n      browser: {\n        module: \"./dist/emotion-react.browser.esm.js\",\n        \"import\": \"./dist/emotion-react.browser.cjs.mjs\",\n        \"default\": \"./dist/emotion-react.browser.cjs.js\"\n      },\n      module: \"./dist/emotion-react.esm.js\",\n      \"import\": \"./dist/emotion-react.cjs.mjs\",\n      \"default\": \"./dist/emotion-react.cjs.js\"\n    },\n    \"./jsx-runtime\": {\n      types: {\n        \"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n        \"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n      },\n      development: {\n        \"edge-light\": {\n          module: \"./jsx-runtime/dist/emotion-react-jsx-runtime.development.edge-light.esm.js\",\n          \"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.development.edge-light.cjs.mjs\",\n          \"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.development.edge-light.cjs.js\"\n        },\n        worker: {\n          module: \"./jsx-runtime/dist/emotion-react-jsx-runtime.development.edge-light.esm.js\",\n          \"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.development.edge-light.cjs.mjs\",\n          \"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.development.edge-light.cjs.js\"\n        },\n        workerd: {\n          module: \"./jsx-runtime/dist/emotion-react-jsx-runtime.development.edge-light.esm.js\",\n          \"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.development.edge-light.cjs.mjs\",\n          \"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.development.edge-light.cjs.js\"\n        },\n        browser: {\n          module: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.development.esm.js\",\n          \"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.development.cjs.mjs\",\n          \"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.development.cjs.js\"\n        },\n        module: \"./jsx-runtime/dist/emotion-react-jsx-runtime.development.esm.js\",\n        \"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.development.cjs.mjs\",\n        \"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.development.cjs.js\"\n      },\n      \"edge-light\": {\n        module: \"./jsx-runtime/dist/emotion-react-jsx-runtime.edge-light.esm.js\",\n        \"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.edge-light.cjs.mjs\",\n        \"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.edge-light.cjs.js\"\n      },\n      worker: {\n        module: \"./jsx-runtime/dist/emotion-react-jsx-runtime.edge-light.esm.js\",\n        \"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.edge-light.cjs.mjs\",\n        \"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.edge-light.cjs.js\"\n      },\n      workerd: {\n        module: \"./jsx-runtime/dist/emotion-react-jsx-runtime.edge-light.esm.js\",\n        \"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.edge-light.cjs.mjs\",\n        \"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.edge-light.cjs.js\"\n      },\n      browser: {\n        module: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n        \"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.cjs.mjs\",\n        \"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.cjs.js\"\n      },\n      module: \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\",\n      \"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n      \"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n    },\n    \"./_isolated-hnrs\": {\n      types: {\n        \"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n        \"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n      },\n      development: {\n        \"edge-light\": {\n          module: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.development.edge-light.esm.js\",\n          \"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.development.edge-light.cjs.mjs\",\n          \"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.development.edge-light.cjs.js\"\n        },\n        worker: {\n          module: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.development.edge-light.esm.js\",\n          \"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.development.edge-light.cjs.mjs\",\n          \"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.development.edge-light.cjs.js\"\n        },\n        workerd: {\n          module: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.development.edge-light.esm.js\",\n          \"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.development.edge-light.cjs.mjs\",\n          \"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.development.edge-light.cjs.js\"\n        },\n        browser: {\n          module: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.development.esm.js\",\n          \"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.development.cjs.mjs\",\n          \"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.development.cjs.js\"\n        },\n        module: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.development.esm.js\",\n        \"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.development.cjs.mjs\",\n        \"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.development.cjs.js\"\n      },\n      \"edge-light\": {\n        module: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.edge-light.esm.js\",\n        \"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.edge-light.cjs.mjs\",\n        \"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.edge-light.cjs.js\"\n      },\n      worker: {\n        module: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.edge-light.esm.js\",\n        \"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.edge-light.cjs.mjs\",\n        \"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.edge-light.cjs.js\"\n      },\n      workerd: {\n        module: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.edge-light.esm.js\",\n        \"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.edge-light.cjs.mjs\",\n        \"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.edge-light.cjs.js\"\n      },\n      browser: {\n        module: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n        \"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.cjs.mjs\",\n        \"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.cjs.js\"\n      },\n      module: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\",\n      \"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n      \"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n    },\n    \"./jsx-dev-runtime\": {\n      types: {\n        \"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n        \"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n      },\n      development: {\n        \"edge-light\": {\n          module: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.development.edge-light.esm.js\",\n          \"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.development.edge-light.cjs.mjs\",\n          \"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.development.edge-light.cjs.js\"\n        },\n        worker: {\n          module: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.development.edge-light.esm.js\",\n          \"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.development.edge-light.cjs.mjs\",\n          \"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.development.edge-light.cjs.js\"\n        },\n        workerd: {\n          module: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.development.edge-light.esm.js\",\n          \"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.development.edge-light.cjs.mjs\",\n          \"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.development.edge-light.cjs.js\"\n        },\n        browser: {\n          module: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.development.esm.js\",\n          \"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.development.cjs.mjs\",\n          \"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.development.cjs.js\"\n        },\n        module: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.development.esm.js\",\n        \"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.development.cjs.mjs\",\n        \"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.development.cjs.js\"\n      },\n      \"edge-light\": {\n        module: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.edge-light.esm.js\",\n        \"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.edge-light.cjs.mjs\",\n        \"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.edge-light.cjs.js\"\n      },\n      worker: {\n        module: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.edge-light.esm.js\",\n        \"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.edge-light.cjs.mjs\",\n        \"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.edge-light.cjs.js\"\n      },\n      workerd: {\n        module: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.edge-light.esm.js\",\n        \"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.edge-light.cjs.mjs\",\n        \"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.edge-light.cjs.js\"\n      },\n      browser: {\n        module: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n        \"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.cjs.mjs\",\n        \"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.cjs.js\"\n      },\n      module: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\",\n      \"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n      \"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n    },\n    \"./package.json\": \"./package.json\",\n    \"./types/css-prop\": \"./types/css-prop.d.ts\",\n    \"./macro\": {\n      types: {\n        \"import\": \"./macro.d.mts\",\n        \"default\": \"./macro.d.ts\"\n      },\n      \"default\": \"./macro.js\"\n    }\n  },\n  imports: {\n    \"#is-development\": {\n      development: \"./src/conditions/true.ts\",\n      \"default\": \"./src/conditions/false.ts\"\n    },\n    \"#is-browser\": {\n      \"edge-light\": \"./src/conditions/false.ts\",\n      workerd: \"./src/conditions/false.ts\",\n      worker: \"./src/conditions/false.ts\",\n      browser: \"./src/conditions/true.ts\",\n      \"default\": \"./src/conditions/is-browser.ts\"\n    }\n  },\n  files: [\"src\", \"dist\", \"jsx-runtime\", \"jsx-dev-runtime\", \"_isolated-hnrs\", \"types/css-prop.d.ts\", \"macro.*\"],\n  sideEffects: false,\n  author: \"Emotion Contributors\",\n  license: \"MIT\",\n  scripts: {\n    \"test:typescript\": \"dtslint types\"\n  },\n  dependencies: {\n    \"@babel/runtime\": \"^7.18.3\",\n    \"@emotion/babel-plugin\": \"^11.13.5\",\n    \"@emotion/cache\": \"^11.14.0\",\n    \"@emotion/serialize\": \"^1.3.3\",\n    \"@emotion/use-insertion-effect-with-fallbacks\": \"^1.2.0\",\n    \"@emotion/utils\": \"^1.4.2\",\n    \"@emotion/weak-memoize\": \"^0.4.0\",\n    \"hoist-non-react-statics\": \"^3.3.1\"\n  },\n  peerDependencies: {\n    react: \">=16.8.0\"\n  },\n  peerDependenciesMeta: {\n    \"@types/react\": {\n      optional: true\n    }\n  },\n  devDependencies: {\n    \"@definitelytyped/dtslint\": \"0.0.112\",\n    \"@emotion/css\": \"11.13.5\",\n    \"@emotion/css-prettifier\": \"1.2.0\",\n    \"@emotion/server\": \"11.11.0\",\n    \"@emotion/styled\": \"11.14.0\",\n    \"@types/hoist-non-react-statics\": \"^3.3.5\",\n    \"html-tag-names\": \"^1.1.2\",\n    react: \"16.14.0\",\n    \"svg-tag-names\": \"^1.1.1\",\n    typescript: \"^5.4.5\"\n  },\n  repository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n  publishConfig: {\n    access: \"public\"\n  },\n  \"umd:main\": \"dist/emotion-react.umd.min.js\",\n  preconstruct: {\n    entrypoints: [\"./index.ts\", \"./jsx-runtime.ts\", \"./jsx-dev-runtime.ts\", \"./_isolated-hnrs.ts\"],\n    umdName: \"emotionReact\",\n    exports: {\n      extra: {\n        \"./types/css-prop\": \"./types/css-prop.d.ts\",\n        \"./macro\": {\n          types: {\n            \"import\": \"./macro.d.mts\",\n            \"default\": \"./macro.d.ts\"\n          },\n          \"default\": \"./macro.js\"\n        }\n      }\n    }\n  }\n};\nvar jsx = function jsx(type, props) {\n  // eslint-disable-next-line prefer-rest-params\n  var args = arguments;\n  if (props == null || !_emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__.h.call(props, 'css')) {\n    return react__WEBPACK_IMPORTED_MODULE_1__.createElement.apply(undefined, args);\n  }\n  var argsLength = args.length;\n  var createElementArgArray = new Array(argsLength);\n  createElementArgArray[0] = _emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__.E;\n  createElementArgArray[1] = (0,_emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__.c)(type, props);\n  for (var i = 2; i < argsLength; i++) {\n    createElementArgArray[i] = args[i];\n  }\n  return react__WEBPACK_IMPORTED_MODULE_1__.createElement.apply(null, createElementArgArray);\n};\n(function (_jsx) {\n  var JSX;\n  (function (_JSX) {})(JSX || (JSX = _jsx.JSX || (_jsx.JSX = {})));\n})(jsx || (jsx = {}));\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */(0,_emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__.w)(function (props, cache) {\n  if (!warnedAboutCssPropForGlobal && (\n  // check for className as well since the user is\n  // probably using the custom createElement which\n  // means it will be turned into a className prop\n  // I don't really want to add it to the type since it shouldn't be used\n  'className' in props && props.className || 'css' in props && props.css)) {\n    console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n    warnedAboutCssPropForGlobal = true;\n  }\n  var styles = props.styles;\n  var serialized = (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_4__.serializeStyles)([styles], undefined, react__WEBPACK_IMPORTED_MODULE_1__.useContext(_emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__.T));\n  // but it is based on a constant that will never change at runtime\n  // it's effectively like having two implementations and switching them out\n  // so it's not actually breaking anything\n\n  var sheetRef = react__WEBPACK_IMPORTED_MODULE_1__.useRef();\n  (0,_emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_3__.useInsertionEffectWithLayoutFallback)(function () {\n    var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n    var sheet = new cache.sheet.constructor({\n      key: key,\n      nonce: cache.sheet.nonce,\n      container: cache.sheet.container,\n      speedy: cache.sheet.isSpeedy\n    });\n    var rehydrating = false;\n    var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n    if (cache.sheet.tags.length) {\n      sheet.before = cache.sheet.tags[0];\n    }\n    if (node !== null) {\n      rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s\n\n      node.setAttribute('data-emotion', key);\n      sheet.hydrate([node]);\n    }\n    sheetRef.current = [sheet, rehydrating];\n    return function () {\n      sheet.flush();\n    };\n  }, [cache]);\n  (0,_emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_3__.useInsertionEffectWithLayoutFallback)(function () {\n    var sheetRefCurrent = sheetRef.current;\n    var sheet = sheetRefCurrent[0],\n      rehydrating = sheetRefCurrent[1];\n    if (rehydrating) {\n      sheetRefCurrent[1] = false;\n      return;\n    }\n    if (serialized.next !== undefined) {\n      // insert keyframes\n      (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_2__.insertStyles)(cache, serialized.next, true);\n    }\n    if (sheet.tags.length) {\n      // if this doesn't exist then it will be null so the style element will be appended\n      var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n      sheet.before = element;\n      sheet.flush();\n    }\n    cache.insert(\"\", serialized, sheet, false);\n  }, [cache, serialized.name]);\n  return null;\n});\n{\n  Global.displayName = 'EmotionGlobal';\n}\nfunction css() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  return (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_4__.serializeStyles)(args);\n}\nfunction keyframes() {\n  var insertable = css.apply(void 0, arguments);\n  var name = \"animation-\" + insertable.name;\n  return {\n    name: name,\n    styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n    anim: 1,\n    toString: function toString() {\n      return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n    }\n  };\n}\nvar classnames = function classnames(args) {\n  var len = args.length;\n  var i = 0;\n  var cls = '';\n  for (; i < len; i++) {\n    var arg = args[i];\n    if (arg == null) continue;\n    var toAdd = void 0;\n    switch (typeof arg) {\n      case 'boolean':\n        break;\n      case 'object':\n        {\n          if (Array.isArray(arg)) {\n            toAdd = classnames(arg);\n          } else {\n            if (arg.styles !== undefined && arg.name !== undefined) {\n              console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from <ClassNames/> component.');\n            }\n            toAdd = '';\n            for (var k in arg) {\n              if (arg[k] && k) {\n                toAdd && (toAdd += ' ');\n                toAdd += k;\n              }\n            }\n          }\n          break;\n        }\n      default:\n        {\n          toAdd = arg;\n        }\n    }\n    if (toAdd) {\n      cls && (cls += ' ');\n      cls += toAdd;\n    }\n  }\n  return cls;\n};\nfunction merge(registered, css, className) {\n  var registeredStyles = [];\n  var rawClassName = (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_2__.getRegisteredStyles)(registered, registeredStyles, className);\n  if (registeredStyles.length < 2) {\n    return className;\n  }\n  return rawClassName + css(registeredStyles);\n}\nvar Insertion = function Insertion(_ref) {\n  var cache = _ref.cache,\n    serializedArr = _ref.serializedArr;\n  (0,_emotion_use_insertion_effect_with_fallbacks__WEBPACK_IMPORTED_MODULE_3__.useInsertionEffectAlwaysWithSyncFallback)(function () {\n    for (var i = 0; i < serializedArr.length; i++) {\n      (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_2__.insertStyles)(cache, serializedArr[i], false);\n    }\n  });\n  return null;\n};\nvar ClassNames = /* #__PURE__ */(0,_emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__.w)(function (props, cache) {\n  var hasRendered = false;\n  var serializedArr = [];\n  var css = function css() {\n    if (hasRendered && isDevelopment) {\n      throw new Error('css can only be used during render');\n    }\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    var serialized = (0,_emotion_serialize__WEBPACK_IMPORTED_MODULE_4__.serializeStyles)(args, cache.registered);\n    serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n    (0,_emotion_utils__WEBPACK_IMPORTED_MODULE_2__.registerStyles)(cache, serialized, false);\n    return cache.key + \"-\" + serialized.name;\n  };\n  var cx = function cx() {\n    if (hasRendered && isDevelopment) {\n      throw new Error('cx can only be used during render');\n    }\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n    return merge(cache.registered, css, classnames(args));\n  };\n  var content = {\n    css: css,\n    cx: cx,\n    theme: react__WEBPACK_IMPORTED_MODULE_1__.useContext(_emotion_element_489459f2_browser_development_esm_js__WEBPACK_IMPORTED_MODULE_0__.T)\n  };\n  var ele = props.children(content);\n  hasRendered = true;\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(react__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(Insertion, {\n    cache: cache,\n    serializedArr: serializedArr\n  }), ele);\n});\n{\n  ClassNames.displayName = 'EmotionClassNames';\n}\n{\n  var isBrowser = typeof document !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n  var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n  if (isBrowser && !isTestEnv) {\n    // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n    var globalContext = typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n    : isBrowser ? window : __webpack_require__.g;\n    var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n    if (globalContext[globalKey]) {\n      console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n    }\n    globalContext[globalKey] = true;\n  }\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@emotion/react/dist/emotion-react.browser.development.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@emotion/serialize/dist/emotion-serialize.development.esm.js":
/*!*********************************************************************************************!*\
  !*** ../react-ui/node_modules/@emotion/serialize/dist/emotion-serialize.development.esm.js ***!
  \*********************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   serializeStyles: () => (/* binding */ serializeStyles)\n/* harmony export */ });\n/* harmony import */ var _emotion_hash__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @emotion/hash */ \"../react-ui/node_modules/@emotion/hash/dist/emotion-hash.esm.js\");\n/* harmony import */ var _emotion_unitless__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @emotion/unitless */ \"../react-ui/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js\");\n/* harmony import */ var _emotion_memoize__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @emotion/memoize */ \"../react-ui/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js\");\n\n\n\nvar isDevelopment = true;\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\nvar isCustomProperty = function isCustomProperty(property) {\n  return property.charCodeAt(1) === 45;\n};\nvar isProcessableValue = function isProcessableValue(value) {\n  return value != null && typeof value !== 'boolean';\n};\nvar processStyleName = /* #__PURE__ */(0,_emotion_memoize__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(function (styleName) {\n  return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\nvar processStyleValue = function processStyleValue(key, value) {\n  switch (key) {\n    case 'animation':\n    case 'animationName':\n      {\n        if (typeof value === 'string') {\n          return value.replace(animationRegex, function (match, p1, p2) {\n            cursor = {\n              name: p1,\n              styles: p2,\n              next: cursor\n            };\n            return p1;\n          });\n        }\n      }\n  }\n  if (_emotion_unitless__WEBPACK_IMPORTED_MODULE_1__[\"default\"][key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n    return value + 'px';\n  }\n  return value;\n};\n{\n  var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n  var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n  var oldProcessStyleValue = processStyleValue;\n  var msPattern = /^-ms-/;\n  var hyphenPattern = /-(.)/g;\n  var hyphenatedCache = {};\n  processStyleValue = function processStyleValue(key, value) {\n    if (key === 'content') {\n      if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n        throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n      }\n    }\n    var processed = oldProcessStyleValue(key, value);\n    if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n      hyphenatedCache[key] = true;\n      console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n        return _char.toUpperCase();\n      }) + \"?\");\n    }\n    return processed;\n  };\n}\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n  if (interpolation == null) {\n    return '';\n  }\n  var componentSelector = interpolation;\n  if (componentSelector.__emotion_styles !== undefined) {\n    if (String(componentSelector) === 'NO_COMPONENT_SELECTOR') {\n      throw new Error(noComponentSelectorMessage);\n    }\n    return componentSelector;\n  }\n  switch (typeof interpolation) {\n    case 'boolean':\n      {\n        return '';\n      }\n    case 'object':\n      {\n        var keyframes = interpolation;\n        if (keyframes.anim === 1) {\n          cursor = {\n            name: keyframes.name,\n            styles: keyframes.styles,\n            next: cursor\n          };\n          return keyframes.name;\n        }\n        var serializedStyles = interpolation;\n        if (serializedStyles.styles !== undefined) {\n          var next = serializedStyles.next;\n          if (next !== undefined) {\n            // not the most efficient thing ever but this is a pretty rare case\n            // and there will be very few iterations of this generally\n            while (next !== undefined) {\n              cursor = {\n                name: next.name,\n                styles: next.styles,\n                next: cursor\n              };\n              next = next.next;\n            }\n          }\n          var styles = serializedStyles.styles + \";\";\n          return styles;\n        }\n        return createStringFromObject(mergedProps, registered, interpolation);\n      }\n    case 'function':\n      {\n        if (mergedProps !== undefined) {\n          var previousCursor = cursor;\n          var result = interpolation(mergedProps);\n          cursor = previousCursor;\n          return handleInterpolation(mergedProps, registered, result);\n        } else {\n          console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n        }\n        break;\n      }\n    case 'string':\n      {\n        var matched = [];\n        var replaced = interpolation.replace(animationRegex, function (_match, _p1, p2) {\n          var fakeVarName = \"animation\" + matched.length;\n          matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n          return \"${\" + fakeVarName + \"}\";\n        });\n        if (matched.length) {\n          console.error(\"`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\nInstead of doing this:\\n\\n\" + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + \"\\n\\nYou should wrap it with `css` like this:\\n\\ncss`\" + replaced + \"`\");\n        }\n      }\n      break;\n  } // finalize string values (regular strings and functions interpolated into css calls)\n\n  var asString = interpolation;\n  if (registered == null) {\n    return asString;\n  }\n  var cached = registered[asString];\n  return cached !== undefined ? cached : asString;\n}\nfunction createStringFromObject(mergedProps, registered, obj) {\n  var string = '';\n  if (Array.isArray(obj)) {\n    for (var i = 0; i < obj.length; i++) {\n      string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n    }\n  } else {\n    for (var key in obj) {\n      var value = obj[key];\n      if (typeof value !== 'object') {\n        var asString = value;\n        if (registered != null && registered[asString] !== undefined) {\n          string += key + \"{\" + registered[asString] + \"}\";\n        } else if (isProcessableValue(asString)) {\n          string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n        }\n      } else {\n        if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n          throw new Error(noComponentSelectorMessage);\n        }\n        if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n          for (var _i = 0; _i < value.length; _i++) {\n            if (isProcessableValue(value[_i])) {\n              string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n            }\n          }\n        } else {\n          var interpolated = handleInterpolation(mergedProps, registered, value);\n          switch (key) {\n            case 'animation':\n            case 'animationName':\n              {\n                string += processStyleName(key) + \":\" + interpolated + \";\";\n                break;\n              }\n            default:\n              {\n                if (key === 'undefined') {\n                  console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n                }\n                string += key + \"{\" + interpolated + \"}\";\n              }\n          }\n        }\n      }\n    }\n  }\n  return string;\n}\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n  if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n    return args[0];\n  }\n  var stringMode = true;\n  var styles = '';\n  cursor = undefined;\n  var strings = args[0];\n  if (strings == null || strings.raw === undefined) {\n    stringMode = false;\n    styles += handleInterpolation(mergedProps, registered, strings);\n  } else {\n    var asTemplateStringsArr = strings;\n    if (asTemplateStringsArr[0] === undefined) {\n      console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n    }\n    styles += asTemplateStringsArr[0];\n  } // we start at 1 since we've already handled the first arg\n\n  for (var i = 1; i < args.length; i++) {\n    styles += handleInterpolation(mergedProps, registered, args[i]);\n    if (stringMode) {\n      var templateStringsArr = strings;\n      if (templateStringsArr[i] === undefined) {\n        console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n      }\n      styles += templateStringsArr[i];\n    }\n  } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n  labelPattern.lastIndex = 0;\n  var identifierName = '';\n  var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n  while ((match = labelPattern.exec(styles)) !== null) {\n    identifierName += '-' + match[1];\n  }\n  var name = (0,_emotion_hash__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(styles) + identifierName;\n  {\n    var devStyles = {\n      name: name,\n      styles: styles,\n      next: cursor,\n      toString: function toString() {\n        return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n      }\n    };\n    return devStyles;\n  }\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@emotion/serialize/dist/emotion-serialize.development.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@emotion/sheet/dist/emotion-sheet.development.esm.js":
/*!*************************************************************************************!*\
  !*** ../react-ui/node_modules/@emotion/sheet/dist/emotion-sheet.development.esm.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   StyleSheet: () => (/* binding */ StyleSheet)\n/* harmony export */ });\nvar isDevelopment = true;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n  if (tag.sheet) {\n    return tag.sheet;\n  } // this weirdness brought to you by firefox\n\n  /* istanbul ignore next */\n\n  for (var i = 0; i < document.styleSheets.length; i++) {\n    if (document.styleSheets[i].ownerNode === tag) {\n      return document.styleSheets[i];\n    }\n  } // this function should always return with a value\n  // TS can't understand it though so we make it stop complaining here\n\n  return undefined;\n}\nfunction createStyleElement(options) {\n  var tag = document.createElement('style');\n  tag.setAttribute('data-emotion', options.key);\n  if (options.nonce !== undefined) {\n    tag.setAttribute('nonce', options.nonce);\n  }\n  tag.appendChild(document.createTextNode(''));\n  tag.setAttribute('data-s', '');\n  return tag;\n}\nvar StyleSheet = /*#__PURE__*/function () {\n  // Using Node instead of HTMLElement since container may be a ShadowRoot\n  function StyleSheet(options) {\n    var _this = this;\n    this._insertTag = function (tag) {\n      var before;\n      if (_this.tags.length === 0) {\n        if (_this.insertionPoint) {\n          before = _this.insertionPoint.nextSibling;\n        } else if (_this.prepend) {\n          before = _this.container.firstChild;\n        } else {\n          before = _this.before;\n        }\n      } else {\n        before = _this.tags[_this.tags.length - 1].nextSibling;\n      }\n      _this.container.insertBefore(tag, before);\n      _this.tags.push(tag);\n    };\n    this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n    this.tags = [];\n    this.ctr = 0;\n    this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n    this.key = options.key;\n    this.container = options.container;\n    this.prepend = options.prepend;\n    this.insertionPoint = options.insertionPoint;\n    this.before = null;\n  }\n  var _proto = StyleSheet.prototype;\n  _proto.hydrate = function hydrate(nodes) {\n    nodes.forEach(this._insertTag);\n  };\n  _proto.insert = function insert(rule) {\n    // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n    // it's 1 in dev because we insert source maps that map a single rule to a location\n    // and you can only have one source map per style tag\n    if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n      this._insertTag(createStyleElement(this));\n    }\n    var tag = this.tags[this.tags.length - 1];\n    {\n      var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n      if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n        // this would only cause problem in speedy mode\n        // but we don't want enabling speedy to affect the observable behavior\n        // so we report this error at all times\n        console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n      }\n      this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n    }\n    if (this.isSpeedy) {\n      var sheet = sheetForTag(tag);\n      try {\n        // this is the ultrafast version, works across browsers\n        // the big drawback is that the css won't be editable in devtools\n        sheet.insertRule(rule, sheet.cssRules.length);\n      } catch (e) {\n        if (!/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n          console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n        }\n      }\n    } else {\n      tag.appendChild(document.createTextNode(rule));\n    }\n    this.ctr++;\n  };\n  _proto.flush = function flush() {\n    this.tags.forEach(function (tag) {\n      var _tag$parentNode;\n      return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n    });\n    this.tags = [];\n    this.ctr = 0;\n    {\n      this._alreadyInsertedOrderInsensitiveRule = false;\n    }\n  };\n  return StyleSheet;\n}();\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@emotion/sheet/dist/emotion-sheet.development.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ unitlessKeys)\n/* harmony export */ });\nvar unitlessKeys = {\n  animationIterationCount: 1,\n  aspectRatio: 1,\n  borderImageOutset: 1,\n  borderImageSlice: 1,\n  borderImageWidth: 1,\n  boxFlex: 1,\n  boxFlexGroup: 1,\n  boxOrdinalGroup: 1,\n  columnCount: 1,\n  columns: 1,\n  flex: 1,\n  flexGrow: 1,\n  flexPositive: 1,\n  flexShrink: 1,\n  flexNegative: 1,\n  flexOrder: 1,\n  gridRow: 1,\n  gridRowEnd: 1,\n  gridRowSpan: 1,\n  gridRowStart: 1,\n  gridColumn: 1,\n  gridColumnEnd: 1,\n  gridColumnSpan: 1,\n  gridColumnStart: 1,\n  msGridRow: 1,\n  msGridRowSpan: 1,\n  msGridColumn: 1,\n  msGridColumnSpan: 1,\n  fontWeight: 1,\n  lineHeight: 1,\n  opacity: 1,\n  order: 1,\n  orphans: 1,\n  scale: 1,\n  tabSize: 1,\n  widows: 1,\n  zIndex: 1,\n  zoom: 1,\n  WebkitLineClamp: 1,\n  // SVG-related properties\n  fillOpacity: 1,\n  floodOpacity: 1,\n  stopOpacity: 1,\n  strokeDasharray: 1,\n  strokeDashoffset: 1,\n  strokeMiterlimit: 1,\n  strokeOpacity: 1,\n  strokeWidth: 1\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js":
/*!*********************************************************************************************************************************************!*\
  !*** ../react-ui/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js ***!
  \*********************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useInsertionEffectAlwaysWithSyncFallback: () => (/* binding */ useInsertionEffectAlwaysWithSyncFallback),\n/* harmony export */   useInsertionEffectWithLayoutFallback: () => (/* binding */ useInsertionEffectWithLayoutFallback)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nvar syncFallback = function syncFallback(create) {\n  return create();\n};\nvar useInsertionEffect = react__WEBPACK_IMPORTED_MODULE_0__['useInsertion' + 'Effect'] ? react__WEBPACK_IMPORTED_MODULE_0__['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect;\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js":
/*!*********************************************************************************!*\
  !*** ../react-ui/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   getRegisteredStyles: () => (/* binding */ getRegisteredStyles),\n/* harmony export */   insertStyles: () => (/* binding */ insertStyles),\n/* harmony export */   registerStyles: () => (/* binding */ registerStyles)\n/* harmony export */ });\nvar isBrowser = true;\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n  var rawClassName = '';\n  classNames.split(' ').forEach(function (className) {\n    if (registered[className] !== undefined) {\n      registeredStyles.push(registered[className] + \";\");\n    } else if (className) {\n      rawClassName += className + \" \";\n    }\n  });\n  return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n  var className = cache.key + \"-\" + serialized.name;\n  if (\n  // we only need to add the styles to the registered cache if the\n  // class name could be used further down\n  // the tree but if it's a string tag, we know it won't\n  // so we don't have to add it to registered cache.\n  // this improves memory usage since we can avoid storing the whole style string\n  (isStringTag === false ||\n  // we need to always store it if we're in compat mode and\n  // in node since emotion-server relies on whether a style is in\n  // the registered cache to know whether a style is global or not\n  // also, note that this check will be dead code eliminated in the browser\n  isBrowser === false) && cache.registered[className] === undefined) {\n    cache.registered[className] = serialized.styles;\n  }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n  registerStyles(cache, serialized, isStringTag);\n  var className = cache.key + \"-\" + serialized.name;\n  if (cache.inserted[serialized.name] === undefined) {\n    var current = serialized;\n    do {\n      cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n      current = current.next;\n    } while (current !== undefined);\n  }\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js":
/*!***************************************************************************************!*\
  !*** ../react-ui/node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ weakMemoize)\n/* harmony export */ });\nvar weakMemoize = function weakMemoize(func) {\n  var cache = new WeakMap();\n  return function (arg) {\n    if (cache.has(arg)) {\n      // Use non-null assertion because we just checked that the cache `has` it\n      // This allows us to remove `undefined` from the return value\n      return cache.get(arg);\n    }\n    var ret = func(arg);\n    cache.set(arg, ret);\n    return ret;\n  };\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@floating-ui/core/dist/floating-ui.core.mjs":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/@floating-ui/core/dist/floating-ui.core.mjs ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   arrow: () => (/* binding */ arrow),\n/* harmony export */   autoPlacement: () => (/* binding */ autoPlacement),\n/* harmony export */   computePosition: () => (/* binding */ computePosition),\n/* harmony export */   detectOverflow: () => (/* binding */ detectOverflow),\n/* harmony export */   flip: () => (/* binding */ flip),\n/* harmony export */   hide: () => (/* binding */ hide),\n/* harmony export */   inline: () => (/* binding */ inline),\n/* harmony export */   limitShift: () => (/* binding */ limitShift),\n/* harmony export */   offset: () => (/* binding */ offset),\n/* harmony export */   rectToClientRect: () => (/* reexport safe */ _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect),\n/* harmony export */   shift: () => (/* binding */ shift),\n/* harmony export */   size: () => (/* binding */ size)\n/* harmony export */ });\n/* harmony import */ var _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/utils */ \"../react-ui/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\");\n\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n  let {\n    reference,\n    floating\n  } = _ref;\n  const sideAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement);\n  const alignmentAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentAxis)(placement);\n  const alignLength = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAxisLength)(alignmentAxis);\n  const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\n  const isVertical = sideAxis === 'y';\n  const commonX = reference.x + reference.width / 2 - floating.width / 2;\n  const commonY = reference.y + reference.height / 2 - floating.height / 2;\n  const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n  let coords;\n  switch (side) {\n    case 'top':\n      coords = {\n        x: commonX,\n        y: reference.y - floating.height\n      };\n      break;\n    case 'bottom':\n      coords = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n    case 'right':\n      coords = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n    case 'left':\n      coords = {\n        x: reference.x - floating.width,\n        y: commonY\n      };\n      break;\n    default:\n      coords = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n  switch ((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement)) {\n    case 'start':\n      coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n    case 'end':\n      coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n  }\n  return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n  const {\n    placement = 'bottom',\n    strategy = 'absolute',\n    middleware = [],\n    platform\n  } = config;\n  const validMiddleware = middleware.filter(Boolean);\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n  let rects = await platform.getElementRects({\n    reference,\n    floating,\n    strategy\n  });\n  let {\n    x,\n    y\n  } = computeCoordsFromPlacement(rects, placement, rtl);\n  let statefulPlacement = placement;\n  let middlewareData = {};\n  let resetCount = 0;\n  for (let i = 0; i < validMiddleware.length; i++) {\n    const {\n      name,\n      fn\n    } = validMiddleware[i];\n    const {\n      x: nextX,\n      y: nextY,\n      data,\n      reset\n    } = await fn({\n      x,\n      y,\n      initialPlacement: placement,\n      placement: statefulPlacement,\n      strategy,\n      middlewareData,\n      rects,\n      platform,\n      elements: {\n        reference,\n        floating\n      }\n    });\n    x = nextX != null ? nextX : x;\n    y = nextY != null ? nextY : y;\n    middlewareData = {\n      ...middlewareData,\n      [name]: {\n        ...middlewareData[name],\n        ...data\n      }\n    };\n    if (reset && resetCount <= 50) {\n      resetCount++;\n      if (typeof reset === 'object') {\n        if (reset.placement) {\n          statefulPlacement = reset.placement;\n        }\n        if (reset.rects) {\n          rects = reset.rects === true ? await platform.getElementRects({\n            reference,\n            floating,\n            strategy\n          }) : reset.rects;\n        }\n        ({\n          x,\n          y\n        } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n      }\n      i = -1;\n    }\n  }\n  return {\n    x,\n    y,\n    placement: statefulPlacement,\n    strategy,\n    middlewareData\n  };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n  var _await$platform$isEle;\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    x,\n    y,\n    platform,\n    rects,\n    elements,\n    strategy\n  } = state;\n  const {\n    boundary = 'clippingAncestors',\n    rootBoundary = 'viewport',\n    elementContext = 'floating',\n    altBoundary = false,\n    padding = 0\n  } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n  const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);\n  const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n  const element = elements[altBoundary ? altContext : elementContext];\n  const clippingClientRect = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(await platform.getClippingRect({\n    element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n    boundary,\n    rootBoundary,\n    strategy\n  }));\n  const rect = elementContext === 'floating' ? {\n    x,\n    y,\n    width: rects.floating.width,\n    height: rects.floating.height\n  } : rects.reference;\n  const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n  const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n    x: 1,\n    y: 1\n  } : {\n    x: 1,\n    y: 1\n  };\n  const elementClientRect = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  }) : rect);\n  return {\n    top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n    bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n    left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n    right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n  };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n  name: 'arrow',\n  options,\n  async fn(state) {\n    const {\n      x,\n      y,\n      placement,\n      rects,\n      platform,\n      elements,\n      middlewareData\n    } = state;\n    // Since `element` is required, we don't Partial<> the type.\n    const {\n      element,\n      padding = 0\n    } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state) || {};\n    if (element == null) {\n      return {};\n    }\n    const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);\n    const coords = {\n      x,\n      y\n    };\n    const axis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentAxis)(placement);\n    const length = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAxisLength)(axis);\n    const arrowDimensions = await platform.getDimensions(element);\n    const isYAxis = axis === 'y';\n    const minProp = isYAxis ? 'top' : 'left';\n    const maxProp = isYAxis ? 'bottom' : 'right';\n    const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n    const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n    const startDiff = coords[axis] - rects.reference[axis];\n    const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n    let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n    // DOM platform can return `window` as the `offsetParent`.\n    if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n      clientSize = elements.floating[clientProp] || rects.floating[length];\n    }\n    const centerToReference = endDiff / 2 - startDiff / 2;\n\n    // If the padding is large enough that it causes the arrow to no longer be\n    // centered, modify the padding so that it is centered.\n    const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n    const minPadding = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(paddingObject[minProp], largestPossiblePadding);\n    const maxPadding = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(paddingObject[maxProp], largestPossiblePadding);\n\n    // Make sure the arrow doesn't overflow the floating element if the center\n    // point is outside the floating element's bounds.\n    const min$1 = minPadding;\n    const max = clientSize - arrowDimensions[length] - maxPadding;\n    const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n    const offset = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min$1, center, max);\n\n    // If the reference is small enough that the arrow's padding causes it to\n    // to point to nothing for an aligned placement, adjust the offset of the\n    // floating element itself. To ensure `shift()` continues to take action,\n    // a single reset is performed when this is true.\n    const shouldAddOffset = !middlewareData.arrow && (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n    const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n    return {\n      [axis]: coords[axis] + alignmentOffset,\n      data: {\n        [axis]: offset,\n        centerOffset: center - offset - alignmentOffset,\n        ...(shouldAddOffset && {\n          alignmentOffset\n        })\n      },\n      reset: shouldAddOffset\n    };\n  }\n});\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n  const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) === alignment), ...allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) !== alignment)] : allowedPlacements.filter(placement => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === placement);\n  return allowedPlacementsSortedByAlignment.filter(placement => {\n    if (alignment) {\n      return (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement) === alignment || (autoAlignment ? (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAlignmentPlacement)(placement) !== placement : false);\n    }\n    return true;\n  });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'autoPlacement',\n    options,\n    async fn(state) {\n      var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n      const {\n        rects,\n        middlewareData,\n        placement,\n        platform,\n        elements\n      } = state;\n      const {\n        crossAxis = false,\n        alignment,\n        allowedPlacements = _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.placements,\n        autoAlignment = true,\n        ...detectOverflowOptions\n      } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n      const placements$1 = alignment !== undefined || allowedPlacements === _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n      const currentPlacement = placements$1[currentIndex];\n      if (currentPlacement == null) {\n        return {};\n      }\n      const alignmentSides = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentSides)(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n      // Make `computeCoords` start from the right place.\n      if (placement !== currentPlacement) {\n        return {\n          reset: {\n            placement: placements$1[0]\n          }\n        };\n      }\n      const currentOverflows = [overflow[(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n      const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n        placement: currentPlacement,\n        overflows: currentOverflows\n      }];\n      const nextPlacement = placements$1[currentIndex + 1];\n\n      // There are more placements to check.\n      if (nextPlacement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: nextPlacement\n          }\n        };\n      }\n      const placementsSortedByMostSpace = allOverflows.map(d => {\n        const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(d.placement);\n        return [d.placement, alignment && crossAxis ?\n        // Check along the mainAxis and main crossAxis side.\n        d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n        // Check only the mainAxis.\n        d.overflows[0], d.overflows];\n      }).sort((a, b) => a[1] - b[1]);\n      const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n      // Aligned placements should not check their opposite crossAxis\n      // side.\n      (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(d[0]) ? 2 : 3).every(v => v <= 0));\n      const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n      if (resetPlacement !== placement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: resetPlacement\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'flip',\n    options,\n    async fn(state) {\n      var _middlewareData$arrow, _middlewareData$flip;\n      const {\n        placement,\n        middlewareData,\n        rects,\n        initialPlacement,\n        platform,\n        elements\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true,\n        fallbackPlacements: specifiedFallbackPlacements,\n        fallbackStrategy = 'bestFit',\n        fallbackAxisSideDirection = 'none',\n        flipAlignment = true,\n        ...detectOverflowOptions\n      } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n\n      // If a reset by the arrow was caused due to an alignment offset being\n      // added, we should skip any logic now since `flip()` has already done its\n      // work.\n      // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n      if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\n      const initialSideAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(initialPlacement);\n      const isBasePlacement = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(initialPlacement) === initialPlacement;\n      const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n      const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositePlacement)(initialPlacement)] : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getExpandedPlacements)(initialPlacement));\n      const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n      if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n        fallbackPlacements.push(...(0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxisPlacements)(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n      }\n      const placements = [initialPlacement, ...fallbackPlacements];\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const overflows = [];\n      let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n      if (checkMainAxis) {\n        overflows.push(overflow[side]);\n      }\n      if (checkCrossAxis) {\n        const sides = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignmentSides)(placement, rects, rtl);\n        overflows.push(overflow[sides[0]], overflow[sides[1]]);\n      }\n      overflowsData = [...overflowsData, {\n        placement,\n        overflows\n      }];\n\n      // One or more sides is overflowing.\n      if (!overflows.every(side => side <= 0)) {\n        var _middlewareData$flip2, _overflowsData$filter;\n        const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n        const nextPlacement = placements[nextIndex];\n        if (nextPlacement) {\n          const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(nextPlacement) : false;\n          if (!ignoreCrossAxisOverflow ||\n          // We leave the current main axis only if every placement on that axis\n          // overflows the main axis.\n          overflowsData.every(d => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n            // Try next placement and re-run the lifecycle.\n            return {\n              data: {\n                index: nextIndex,\n                overflows: overflowsData\n              },\n              reset: {\n                placement: nextPlacement\n              }\n            };\n          }\n        }\n\n        // First, find the candidates that fit on the mainAxis side of overflow,\n        // then find the placement that fits the best on the main crossAxis side.\n        let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n        // Otherwise fallback.\n        if (!resetPlacement) {\n          switch (fallbackStrategy) {\n            case 'bestFit':\n              {\n                var _overflowsData$filter2;\n                const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n                  if (hasFallbackAxisSideDirection) {\n                    const currentSideAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(d.placement);\n                    return currentSideAxis === initialSideAxis ||\n                    // Create a bias to the `y` side axis due to horizontal\n                    // reading directions favoring greater width.\n                    currentSideAxis === 'y';\n                  }\n                  return true;\n                }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n                if (placement) {\n                  resetPlacement = placement;\n                }\n                break;\n              }\n            case 'initialPlacement':\n              resetPlacement = initialPlacement;\n              break;\n          }\n        }\n        if (placement !== resetPlacement) {\n          return {\n            reset: {\n              placement: resetPlacement\n            }\n          };\n        }\n      }\n      return {};\n    }\n  };\n};\nfunction getSideOffsets(overflow, rect) {\n  return {\n    top: overflow.top - rect.height,\n    right: overflow.right - rect.width,\n    bottom: overflow.bottom - rect.height,\n    left: overflow.left - rect.width\n  };\n}\nfunction isAnySideFullyClipped(overflow) {\n  return _floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'hide',\n    options,\n    async fn(state) {\n      const {\n        rects\n      } = state;\n      const {\n        strategy = 'referenceHidden',\n        ...detectOverflowOptions\n      } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n      switch (strategy) {\n        case 'referenceHidden':\n          {\n            const overflow = await detectOverflow(state, {\n              ...detectOverflowOptions,\n              elementContext: 'reference'\n            });\n            const offsets = getSideOffsets(overflow, rects.reference);\n            return {\n              data: {\n                referenceHiddenOffsets: offsets,\n                referenceHidden: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        case 'escaped':\n          {\n            const overflow = await detectOverflow(state, {\n              ...detectOverflowOptions,\n              altBoundary: true\n            });\n            const offsets = getSideOffsets(overflow, rects.floating);\n            return {\n              data: {\n                escapedOffsets: offsets,\n                escaped: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        default:\n          {\n            return {};\n          }\n      }\n    }\n  };\n};\nfunction getBoundingRect(rects) {\n  const minX = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...rects.map(rect => rect.left));\n  const minY = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...rects.map(rect => rect.top));\n  const maxX = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...rects.map(rect => rect.right));\n  const maxY = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...rects.map(rect => rect.bottom));\n  return {\n    x: minX,\n    y: minY,\n    width: maxX - minX,\n    height: maxY - minY\n  };\n}\nfunction getRectsByLine(rects) {\n  const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n  const groups = [];\n  let prevRect = null;\n  for (let i = 0; i < sortedRects.length; i++) {\n    const rect = sortedRects[i];\n    if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n      groups.push([rect]);\n    } else {\n      groups[groups.length - 1].push(rect);\n    }\n    prevRect = rect;\n  }\n  return groups.map(rect => (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'inline',\n    options,\n    async fn(state) {\n      const {\n        placement,\n        elements,\n        rects,\n        platform,\n        strategy\n      } = state;\n      // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n      // ClientRect's bounds, despite the event listener being triggered. A\n      // padding of 2 seems to handle this issue.\n      const {\n        padding = 2,\n        x,\n        y\n      } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n      const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n      const clientRects = getRectsByLine(nativeClientRects);\n      const fallback = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(getBoundingRect(nativeClientRects));\n      const paddingObject = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getPaddingObject)(padding);\n      function getBoundingClientRect() {\n        // There are two rects and they are disjoined.\n        if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n          // Find the first rect in which the point is fully inside.\n          return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n        }\n\n        // There are 2 or more connected rects.\n        if (clientRects.length >= 2) {\n          if ((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y') {\n            const firstRect = clientRects[0];\n            const lastRect = clientRects[clientRects.length - 1];\n            const isTop = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === 'top';\n            const top = firstRect.top;\n            const bottom = lastRect.bottom;\n            const left = isTop ? firstRect.left : lastRect.left;\n            const right = isTop ? firstRect.right : lastRect.right;\n            const width = right - left;\n            const height = bottom - top;\n            return {\n              top,\n              bottom,\n              left,\n              right,\n              width,\n              height,\n              x: left,\n              y: top\n            };\n          }\n          const isLeftSide = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement) === 'left';\n          const maxRight = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(...clientRects.map(rect => rect.right));\n          const minLeft = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(...clientRects.map(rect => rect.left));\n          const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n          const top = measureRects[0].top;\n          const bottom = measureRects[measureRects.length - 1].bottom;\n          const left = minLeft;\n          const right = maxRight;\n          const width = right - left;\n          const height = bottom - top;\n          return {\n            top,\n            bottom,\n            left,\n            right,\n            width,\n            height,\n            x: left,\n            y: top\n          };\n        }\n        return fallback;\n      }\n      const resetRects = await platform.getElementRects({\n        reference: {\n          getBoundingClientRect\n        },\n        floating: elements.floating,\n        strategy\n      });\n      if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n        return {\n          reset: {\n            rects: resetRects\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n  const {\n    placement,\n    platform,\n    elements\n  } = state;\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n  const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\n  const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement);\n  const isVertical = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y';\n  const mainAxisMulti = originSides.has(side) ? -1 : 1;\n  const crossAxisMulti = rtl && isVertical ? -1 : 1;\n  const rawValue = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n\n  // eslint-disable-next-line prefer-const\n  let {\n    mainAxis,\n    crossAxis,\n    alignmentAxis\n  } = typeof rawValue === 'number' ? {\n    mainAxis: rawValue,\n    crossAxis: 0,\n    alignmentAxis: null\n  } : {\n    mainAxis: rawValue.mainAxis || 0,\n    crossAxis: rawValue.crossAxis || 0,\n    alignmentAxis: rawValue.alignmentAxis\n  };\n  if (alignment && typeof alignmentAxis === 'number') {\n    crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n  }\n  return isVertical ? {\n    x: crossAxis * crossAxisMulti,\n    y: mainAxis * mainAxisMulti\n  } : {\n    x: mainAxis * mainAxisMulti,\n    y: crossAxis * crossAxisMulti\n  };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n  if (options === void 0) {\n    options = 0;\n  }\n  return {\n    name: 'offset',\n    options,\n    async fn(state) {\n      var _middlewareData$offse, _middlewareData$arrow;\n      const {\n        x,\n        y,\n        placement,\n        middlewareData\n      } = state;\n      const diffCoords = await convertValueToCoords(state, options);\n\n      // If the placement is the same and the arrow caused an alignment offset\n      // then we don't need to change the positioning coordinates.\n      if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      return {\n        x: x + diffCoords.x,\n        y: y + diffCoords.y,\n        data: {\n          ...diffCoords,\n          placement\n        }\n      };\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'shift',\n    options,\n    async fn(state) {\n      const {\n        x,\n        y,\n        placement\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = false,\n        limiter = {\n          fn: _ref => {\n            let {\n              x,\n              y\n            } = _ref;\n            return {\n              x,\n              y\n            };\n          }\n        },\n        ...detectOverflowOptions\n      } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const crossAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement));\n      const mainAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxis)(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      if (checkMainAxis) {\n        const minSide = mainAxis === 'y' ? 'top' : 'left';\n        const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n        const min = mainAxisCoord + overflow[minSide];\n        const max = mainAxisCoord - overflow[maxSide];\n        mainAxisCoord = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min, mainAxisCoord, max);\n      }\n      if (checkCrossAxis) {\n        const minSide = crossAxis === 'y' ? 'top' : 'left';\n        const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n        const min = crossAxisCoord + overflow[minSide];\n        const max = crossAxisCoord - overflow[maxSide];\n        crossAxisCoord = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.clamp)(min, crossAxisCoord, max);\n      }\n      const limitedCoords = limiter.fn({\n        ...state,\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      });\n      return {\n        ...limitedCoords,\n        data: {\n          x: limitedCoords.x - x,\n          y: limitedCoords.y - y,\n          enabled: {\n            [mainAxis]: checkMainAxis,\n            [crossAxis]: checkCrossAxis\n          }\n        }\n      };\n    }\n  };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    options,\n    fn(state) {\n      const {\n        x,\n        y,\n        placement,\n        rects,\n        middlewareData\n      } = state;\n      const {\n        offset = 0,\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true\n      } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const crossAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement);\n      const mainAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getOppositeAxis)(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      const rawOffset = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(offset, state);\n      const computedOffset = typeof rawOffset === 'number' ? {\n        mainAxis: rawOffset,\n        crossAxis: 0\n      } : {\n        mainAxis: 0,\n        crossAxis: 0,\n        ...rawOffset\n      };\n      if (checkMainAxis) {\n        const len = mainAxis === 'y' ? 'height' : 'width';\n        const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n        const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n        if (mainAxisCoord < limitMin) {\n          mainAxisCoord = limitMin;\n        } else if (mainAxisCoord > limitMax) {\n          mainAxisCoord = limitMax;\n        }\n      }\n      if (checkCrossAxis) {\n        var _middlewareData$offse, _middlewareData$offse2;\n        const len = mainAxis === 'y' ? 'width' : 'height';\n        const isOriginSide = originSides.has((0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement));\n        const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n        const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n        if (crossAxisCoord < limitMin) {\n          crossAxisCoord = limitMin;\n        } else if (crossAxisCoord > limitMax) {\n          crossAxisCoord = limitMax;\n        }\n      }\n      return {\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      };\n    }\n  };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'size',\n    options,\n    async fn(state) {\n      var _state$middlewareData, _state$middlewareData2;\n      const {\n        placement,\n        rects,\n        platform,\n        elements\n      } = state;\n      const {\n        apply = () => {},\n        ...detectOverflowOptions\n      } = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.evaluate)(options, state);\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const side = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSide)(placement);\n      const alignment = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getAlignment)(placement);\n      const isYAxis = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.getSideAxis)(placement) === 'y';\n      const {\n        width,\n        height\n      } = rects.floating;\n      let heightSide;\n      let widthSide;\n      if (side === 'top' || side === 'bottom') {\n        heightSide = side;\n        widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n      } else {\n        widthSide = side;\n        heightSide = alignment === 'end' ? 'top' : 'bottom';\n      }\n      const maximumClippingHeight = height - overflow.top - overflow.bottom;\n      const maximumClippingWidth = width - overflow.left - overflow.right;\n      const overflowAvailableHeight = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(height - overflow[heightSide], maximumClippingHeight);\n      const overflowAvailableWidth = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.min)(width - overflow[widthSide], maximumClippingWidth);\n      const noShift = !state.middlewareData.shift;\n      let availableHeight = overflowAvailableHeight;\n      let availableWidth = overflowAvailableWidth;\n      if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n        availableWidth = maximumClippingWidth;\n      }\n      if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n        availableHeight = maximumClippingHeight;\n      }\n      if (noShift && !alignment) {\n        const xMin = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.left, 0);\n        const xMax = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.right, 0);\n        const yMin = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.top, 0);\n        const yMax = (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.bottom, 0);\n        if (isYAxis) {\n          availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.left, overflow.right));\n        } else {\n          availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : (0,_floating_ui_utils__WEBPACK_IMPORTED_MODULE_0__.max)(overflow.top, overflow.bottom));\n        }\n      }\n      await apply({\n        ...state,\n        availableWidth,\n        availableHeight\n      });\n      const nextDimensions = await platform.getDimensions(elements.floating);\n      if (width !== nextDimensions.width || height !== nextDimensions.height) {\n        return {\n          reset: {\n            rects: true\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@floating-ui/core/dist/floating-ui.core.mjs?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   arrow: () => (/* binding */ arrow),\n/* harmony export */   autoPlacement: () => (/* binding */ autoPlacement),\n/* harmony export */   autoUpdate: () => (/* binding */ autoUpdate),\n/* harmony export */   computePosition: () => (/* binding */ computePosition),\n/* harmony export */   detectOverflow: () => (/* binding */ detectOverflow),\n/* harmony export */   flip: () => (/* binding */ flip),\n/* harmony export */   getOverflowAncestors: () => (/* reexport safe */ _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getOverflowAncestors),\n/* harmony export */   hide: () => (/* binding */ hide),\n/* harmony export */   inline: () => (/* binding */ inline),\n/* harmony export */   limitShift: () => (/* binding */ limitShift),\n/* harmony export */   offset: () => (/* binding */ offset),\n/* harmony export */   platform: () => (/* binding */ platform),\n/* harmony export */   shift: () => (/* binding */ shift),\n/* harmony export */   size: () => (/* binding */ size)\n/* harmony export */ });\n/* harmony import */ var _floating_ui_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @floating-ui/utils */ \"../react-ui/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs\");\n/* harmony import */ var _floating_ui_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @floating-ui/core */ \"../react-ui/node_modules/@floating-ui/core/dist/floating-ui.core.mjs\");\n/* harmony import */ var _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @floating-ui/utils/dom */ \"../react-ui/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs\");\n\n\n\n\nfunction getCssDimensions(element) {\n  const css = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getComputedStyle)(element);\n  // In testing environments, the `width` and `height` properties are empty\n  // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n  let width = parseFloat(css.width) || 0;\n  let height = parseFloat(css.height) || 0;\n  const hasOffset = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(element);\n  const offsetWidth = hasOffset ? element.offsetWidth : width;\n  const offsetHeight = hasOffset ? element.offsetHeight : height;\n  const shouldFallback = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.round)(width) !== offsetWidth || (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.round)(height) !== offsetHeight;\n  if (shouldFallback) {\n    width = offsetWidth;\n    height = offsetHeight;\n  }\n  return {\n    width,\n    height,\n    $: shouldFallback\n  };\n}\nfunction unwrapElement(element) {\n  return !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isElement)(element) ? element.contextElement : element;\n}\nfunction getScale(element) {\n  const domElement = unwrapElement(element);\n  if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(domElement)) {\n    return (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.createCoords)(1);\n  }\n  const rect = domElement.getBoundingClientRect();\n  const {\n    width,\n    height,\n    $\n  } = getCssDimensions(domElement);\n  let x = ($ ? (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.round)(rect.width) : rect.width) / width;\n  let y = ($ ? (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.round)(rect.height) : rect.height) / height;\n\n  // 0, NaN, or Infinity should always fallback to 1.\n\n  if (!x || !Number.isFinite(x)) {\n    x = 1;\n  }\n  if (!y || !Number.isFinite(y)) {\n    y = 1;\n  }\n  return {\n    x,\n    y\n  };\n}\nconst noOffsets = /*#__PURE__*/(0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.createCoords)(0);\nfunction getVisualOffsets(element) {\n  const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getWindow)(element);\n  if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isWebKit)() || !win.visualViewport) {\n    return noOffsets;\n  }\n  return {\n    x: win.visualViewport.offsetLeft,\n    y: win.visualViewport.offsetTop\n  };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n  if (isFixed === void 0) {\n    isFixed = false;\n  }\n  if (!floatingOffsetParent || isFixed && floatingOffsetParent !== (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getWindow)(element)) {\n    return false;\n  }\n  return isFixed;\n}\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n  if (isFixedStrategy === void 0) {\n    isFixedStrategy = false;\n  }\n  const clientRect = element.getBoundingClientRect();\n  const domElement = unwrapElement(element);\n  let scale = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.createCoords)(1);\n  if (includeScale) {\n    if (offsetParent) {\n      if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isElement)(offsetParent)) {\n        scale = getScale(offsetParent);\n      }\n    } else {\n      scale = getScale(element);\n    }\n  }\n  const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.createCoords)(0);\n  let x = (clientRect.left + visualOffsets.x) / scale.x;\n  let y = (clientRect.top + visualOffsets.y) / scale.y;\n  let width = clientRect.width / scale.x;\n  let height = clientRect.height / scale.y;\n  if (domElement) {\n    const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getWindow)(domElement);\n    const offsetWin = offsetParent && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isElement)(offsetParent) ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getWindow)(offsetParent) : offsetParent;\n    let currentWin = win;\n    let currentIFrame = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getFrameElement)(currentWin);\n    while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n      const iframeScale = getScale(currentIFrame);\n      const iframeRect = currentIFrame.getBoundingClientRect();\n      const css = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getComputedStyle)(currentIFrame);\n      const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n      const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n      x *= iframeScale.x;\n      y *= iframeScale.y;\n      width *= iframeScale.x;\n      height *= iframeScale.y;\n      x += left;\n      y += top;\n      currentWin = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getWindow)(currentIFrame);\n      currentIFrame = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getFrameElement)(currentWin);\n    }\n  }\n  return (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)({\n    width,\n    height,\n    x,\n    y\n  });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n  const leftScroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getNodeScroll)(element).scrollLeft;\n  if (!rect) {\n    return getBoundingClientRect((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getDocumentElement)(element)).left + leftScroll;\n  }\n  return rect.left + leftScroll;\n}\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n  if (ignoreScrollbarX === void 0) {\n    ignoreScrollbarX = false;\n  }\n  const htmlRect = documentElement.getBoundingClientRect();\n  const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n  // RTL <body> scrollbar.\n  getWindowScrollBarX(documentElement, htmlRect));\n  const y = htmlRect.top + scroll.scrollTop;\n  return {\n    x,\n    y\n  };\n}\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n  let {\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  } = _ref;\n  const isFixed = strategy === 'fixed';\n  const documentElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getDocumentElement)(offsetParent);\n  const topLayer = elements ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isTopLayer)(elements.floating) : false;\n  if (offsetParent === documentElement || topLayer && isFixed) {\n    return rect;\n  }\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  let scale = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.createCoords)(1);\n  const offsets = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.createCoords)(0);\n  const isOffsetParentAnElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(offsetParent);\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getNodeName)(offsetParent) !== 'body' || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isOverflowElement)(documentElement)) {\n      scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getNodeScroll)(offsetParent);\n    }\n    if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(offsetParent)) {\n      const offsetRect = getBoundingClientRect(offsetParent);\n      scale = getScale(offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    }\n  }\n  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.createCoords)(0);\n  return {\n    width: rect.width * scale.x,\n    height: rect.height * scale.y,\n    x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n    y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n  };\n}\nfunction getClientRects(element) {\n  return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n  const html = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getDocumentElement)(element);\n  const scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getNodeScroll)(element);\n  const body = element.ownerDocument.body;\n  const width = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.max)(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n  const height = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.max)(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n  let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n  const y = -scroll.scrollTop;\n  if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getComputedStyle)(body).direction === 'rtl') {\n    x += (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.max)(html.clientWidth, body.clientWidth) - width;\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\nfunction getViewportRect(element, strategy) {\n  const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getWindow)(element);\n  const html = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getDocumentElement)(element);\n  const visualViewport = win.visualViewport;\n  let width = html.clientWidth;\n  let height = html.clientHeight;\n  let x = 0;\n  let y = 0;\n  if (visualViewport) {\n    width = visualViewport.width;\n    height = visualViewport.height;\n    const visualViewportBased = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isWebKit)();\n    if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n      x = visualViewport.offsetLeft;\n      y = visualViewport.offsetTop;\n    }\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n  const top = clientRect.top + element.clientTop;\n  const left = clientRect.left + element.clientLeft;\n  const scale = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(element) ? getScale(element) : (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.createCoords)(1);\n  const width = element.clientWidth * scale.x;\n  const height = element.clientHeight * scale.y;\n  const x = left * scale.x;\n  const y = top * scale.y;\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n  let rect;\n  if (clippingAncestor === 'viewport') {\n    rect = getViewportRect(element, strategy);\n  } else if (clippingAncestor === 'document') {\n    rect = getDocumentRect((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getDocumentElement)(element));\n  } else if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isElement)(clippingAncestor)) {\n    rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n  } else {\n    const visualOffsets = getVisualOffsets(element);\n    rect = {\n      x: clippingAncestor.x - visualOffsets.x,\n      y: clippingAncestor.y - visualOffsets.y,\n      width: clippingAncestor.width,\n      height: clippingAncestor.height\n    };\n  }\n  return (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.rectToClientRect)(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n  const parentNode = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getParentNode)(element);\n  if (parentNode === stopNode || !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isElement)(parentNode) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isLastTraversableNode)(parentNode)) {\n    return false;\n  }\n  return (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getComputedStyle)(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n  const cachedResult = cache.get(element);\n  if (cachedResult) {\n    return cachedResult;\n  }\n  let result = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getOverflowAncestors)(element, [], false).filter(el => (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isElement)(el) && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getNodeName)(el) !== 'body');\n  let currentContainingBlockComputedStyle = null;\n  const elementIsFixed = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getComputedStyle)(element).position === 'fixed';\n  let currentNode = elementIsFixed ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getParentNode)(element) : element;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  while ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isElement)(currentNode) && !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isLastTraversableNode)(currentNode)) {\n    const computedStyle = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getComputedStyle)(currentNode);\n    const currentNodeIsContaining = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isContainingBlock)(currentNode);\n    if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n      currentContainingBlockComputedStyle = null;\n    }\n    const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isOverflowElement)(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n    if (shouldDropCurrentNode) {\n      // Drop non-containing blocks.\n      result = result.filter(ancestor => ancestor !== currentNode);\n    } else {\n      // Record last containing block for next iteration.\n      currentContainingBlockComputedStyle = computedStyle;\n    }\n    currentNode = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getParentNode)(currentNode);\n  }\n  cache.set(element, result);\n  return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n  let {\n    element,\n    boundary,\n    rootBoundary,\n    strategy\n  } = _ref;\n  const elementClippingAncestors = boundary === 'clippingAncestors' ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isTopLayer)(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n  const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n  const firstClippingAncestor = clippingAncestors[0];\n  const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n    const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n    accRect.top = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.max)(rect.top, accRect.top);\n    accRect.right = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.min)(rect.right, accRect.right);\n    accRect.bottom = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.min)(rect.bottom, accRect.bottom);\n    accRect.left = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.max)(rect.left, accRect.left);\n    return accRect;\n  }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n  return {\n    width: clippingRect.right - clippingRect.left,\n    height: clippingRect.bottom - clippingRect.top,\n    x: clippingRect.left,\n    y: clippingRect.top\n  };\n}\nfunction getDimensions(element) {\n  const {\n    width,\n    height\n  } = getCssDimensions(element);\n  return {\n    width,\n    height\n  };\n}\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n  const isOffsetParentAnElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(offsetParent);\n  const documentElement = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getDocumentElement)(offsetParent);\n  const isFixed = strategy === 'fixed';\n  const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  const offsets = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.createCoords)(0);\n\n  // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n  // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n  function setLeftRTLScrollbarOffset() {\n    offsets.x = getWindowScrollBarX(documentElement);\n  }\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getNodeName)(offsetParent) !== 'body' || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isOverflowElement)(documentElement)) {\n      scroll = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getNodeScroll)(offsetParent);\n    }\n    if (isOffsetParentAnElement) {\n      const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    } else if (documentElement) {\n      setLeftRTLScrollbarOffset();\n    }\n  }\n  if (isFixed && !isOffsetParentAnElement && documentElement) {\n    setLeftRTLScrollbarOffset();\n  }\n  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.createCoords)(0);\n  const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n  const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n  return {\n    x,\n    y,\n    width: rect.width,\n    height: rect.height\n  };\n}\nfunction isStaticPositioned(element) {\n  return (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getComputedStyle)(element).position === 'static';\n}\nfunction getTrueOffsetParent(element, polyfill) {\n  if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(element) || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getComputedStyle)(element).position === 'fixed') {\n    return null;\n  }\n  if (polyfill) {\n    return polyfill(element);\n  }\n  let rawOffsetParent = element.offsetParent;\n\n  // Firefox returns the <html> element as the offsetParent if it's non-static,\n  // while Chrome and Safari return the <body> element. The <body> element must\n  // be used to perform the correct calculations even if the <html> element is\n  // non-static.\n  if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getDocumentElement)(element) === rawOffsetParent) {\n    rawOffsetParent = rawOffsetParent.ownerDocument.body;\n  }\n  return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n  const win = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getWindow)(element);\n  if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isTopLayer)(element)) {\n    return win;\n  }\n  if (!(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isHTMLElement)(element)) {\n    let svgOffsetParent = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getParentNode)(element);\n    while (svgOffsetParent && !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isLastTraversableNode)(svgOffsetParent)) {\n      if ((0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isElement)(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n        return svgOffsetParent;\n      }\n      svgOffsetParent = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getParentNode)(svgOffsetParent);\n    }\n    return win;\n  }\n  let offsetParent = getTrueOffsetParent(element, polyfill);\n  while (offsetParent && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isTableElement)(offsetParent) && isStaticPositioned(offsetParent)) {\n    offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n  }\n  if (offsetParent && (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isLastTraversableNode)(offsetParent) && isStaticPositioned(offsetParent) && !(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isContainingBlock)(offsetParent)) {\n    return win;\n  }\n  return offsetParent || (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getContainingBlock)(element) || win;\n}\nconst getElementRects = async function (data) {\n  const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n  const getDimensionsFn = this.getDimensions;\n  const floatingDimensions = await getDimensionsFn(data.floating);\n  return {\n    reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n    floating: {\n      x: 0,\n      y: 0,\n      width: floatingDimensions.width,\n      height: floatingDimensions.height\n    }\n  };\n};\nfunction isRTL(element) {\n  return (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getComputedStyle)(element).direction === 'rtl';\n}\nconst platform = {\n  convertOffsetParentRelativeRectToViewportRelativeRect,\n  getDocumentElement: _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getDocumentElement,\n  getClippingRect,\n  getOffsetParent,\n  getElementRects,\n  getClientRects,\n  getDimensions,\n  getScale,\n  isElement: _floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.isElement,\n  isRTL\n};\nfunction rectsAreEqual(a, b) {\n  return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n  let io = null;\n  let timeoutId;\n  const root = (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getDocumentElement)(element);\n  function cleanup() {\n    var _io;\n    clearTimeout(timeoutId);\n    (_io = io) == null || _io.disconnect();\n    io = null;\n  }\n  function refresh(skip, threshold) {\n    if (skip === void 0) {\n      skip = false;\n    }\n    if (threshold === void 0) {\n      threshold = 1;\n    }\n    cleanup();\n    const elementRectForRootMargin = element.getBoundingClientRect();\n    const {\n      left,\n      top,\n      width,\n      height\n    } = elementRectForRootMargin;\n    if (!skip) {\n      onMove();\n    }\n    if (!width || !height) {\n      return;\n    }\n    const insetTop = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.floor)(top);\n    const insetRight = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.floor)(root.clientWidth - (left + width));\n    const insetBottom = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.floor)(root.clientHeight - (top + height));\n    const insetLeft = (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.floor)(left);\n    const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n    const options = {\n      rootMargin,\n      threshold: (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.max)(0, (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_0__.min)(1, threshold)) || 1\n    };\n    let isFirstUpdate = true;\n    function handleObserve(entries) {\n      const ratio = entries[0].intersectionRatio;\n      if (ratio !== threshold) {\n        if (!isFirstUpdate) {\n          return refresh();\n        }\n        if (!ratio) {\n          // If the reference is clipped, the ratio is 0. Throttle the refresh\n          // to prevent an infinite loop of updates.\n          timeoutId = setTimeout(() => {\n            refresh(false, 1e-7);\n          }, 1000);\n        } else {\n          refresh(false, ratio);\n        }\n      }\n      if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n        // It's possible that even though the ratio is reported as 1, the\n        // element is not actually fully within the IntersectionObserver's root\n        // area anymore. This can happen under performance constraints. This may\n        // be a bug in the browser's IntersectionObserver implementation. To\n        // work around this, we compare the element's bounding rect now with\n        // what it was at the time we created the IntersectionObserver. If they\n        // are not equal then the element moved, so we refresh.\n        refresh();\n      }\n      isFirstUpdate = false;\n    }\n\n    // Older browsers don't support a `document` as the root and will throw an\n    // error.\n    try {\n      io = new IntersectionObserver(handleObserve, {\n        ...options,\n        // Handle <iframe>s\n        root: root.ownerDocument\n      });\n    } catch (_e) {\n      io = new IntersectionObserver(handleObserve, options);\n    }\n    io.observe(element);\n  }\n  refresh(true);\n  return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    ancestorScroll = true,\n    ancestorResize = true,\n    elementResize = typeof ResizeObserver === 'function',\n    layoutShift = typeof IntersectionObserver === 'function',\n    animationFrame = false\n  } = options;\n  const referenceEl = unwrapElement(reference);\n  const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? (0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getOverflowAncestors)(referenceEl) : []), ...(0,_floating_ui_utils_dom__WEBPACK_IMPORTED_MODULE_2__.getOverflowAncestors)(floating)] : [];\n  ancestors.forEach(ancestor => {\n    ancestorScroll && ancestor.addEventListener('scroll', update, {\n      passive: true\n    });\n    ancestorResize && ancestor.addEventListener('resize', update);\n  });\n  const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n  let reobserveFrame = -1;\n  let resizeObserver = null;\n  if (elementResize) {\n    resizeObserver = new ResizeObserver(_ref => {\n      let [firstEntry] = _ref;\n      if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n        // Prevent update loops when using the `size` middleware.\n        // https://github.com/floating-ui/floating-ui/issues/1740\n        resizeObserver.unobserve(floating);\n        cancelAnimationFrame(reobserveFrame);\n        reobserveFrame = requestAnimationFrame(() => {\n          var _resizeObserver;\n          (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n        });\n      }\n      update();\n    });\n    if (referenceEl && !animationFrame) {\n      resizeObserver.observe(referenceEl);\n    }\n    resizeObserver.observe(floating);\n  }\n  let frameId;\n  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n  if (animationFrame) {\n    frameLoop();\n  }\n  function frameLoop() {\n    const nextRefRect = getBoundingClientRect(reference);\n    if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n      update();\n    }\n    prevRefRect = nextRefRect;\n    frameId = requestAnimationFrame(frameLoop);\n  }\n  update();\n  return () => {\n    var _resizeObserver2;\n    ancestors.forEach(ancestor => {\n      ancestorScroll && ancestor.removeEventListener('scroll', update);\n      ancestorResize && ancestor.removeEventListener('resize', update);\n    });\n    cleanupIo == null || cleanupIo();\n    (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n    resizeObserver = null;\n    if (animationFrame) {\n      cancelAnimationFrame(frameId);\n    }\n  };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = _floating_ui_core__WEBPACK_IMPORTED_MODULE_1__.detectOverflow;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = _floating_ui_core__WEBPACK_IMPORTED_MODULE_1__.offset;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = _floating_ui_core__WEBPACK_IMPORTED_MODULE_1__.autoPlacement;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = _floating_ui_core__WEBPACK_IMPORTED_MODULE_1__.shift;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = _floating_ui_core__WEBPACK_IMPORTED_MODULE_1__.flip;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = _floating_ui_core__WEBPACK_IMPORTED_MODULE_1__.size;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = _floating_ui_core__WEBPACK_IMPORTED_MODULE_1__.hide;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = _floating_ui_core__WEBPACK_IMPORTED_MODULE_1__.arrow;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = _floating_ui_core__WEBPACK_IMPORTED_MODULE_1__.inline;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = _floating_ui_core__WEBPACK_IMPORTED_MODULE_1__.limitShift;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n  // This caches the expensive `getClippingElementAncestors` function so that\n  // multiple lifecycle resets re-use the same result. It only lives for a\n  // single call. If other functions become expensive, we can add them as well.\n  const cache = new Map();\n  const mergedOptions = {\n    platform,\n    ...options\n  };\n  const platformWithCache = {\n    ...mergedOptions.platform,\n    _c: cache\n  };\n  return (0,_floating_ui_core__WEBPACK_IMPORTED_MODULE_1__.computePosition)(reference, floating, {\n    ...mergedOptions,\n    platform: platformWithCache\n  });\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs":
/*!**********************************************************************************!*\
  !*** ../react-ui/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs ***!
  \**********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   getComputedStyle: () => (/* binding */ getComputedStyle),\n/* harmony export */   getContainingBlock: () => (/* binding */ getContainingBlock),\n/* harmony export */   getDocumentElement: () => (/* binding */ getDocumentElement),\n/* harmony export */   getFrameElement: () => (/* binding */ getFrameElement),\n/* harmony export */   getNearestOverflowAncestor: () => (/* binding */ getNearestOverflowAncestor),\n/* harmony export */   getNodeName: () => (/* binding */ getNodeName),\n/* harmony export */   getNodeScroll: () => (/* binding */ getNodeScroll),\n/* harmony export */   getOverflowAncestors: () => (/* binding */ getOverflowAncestors),\n/* harmony export */   getParentNode: () => (/* binding */ getParentNode),\n/* harmony export */   getWindow: () => (/* binding */ getWindow),\n/* harmony export */   isContainingBlock: () => (/* binding */ isContainingBlock),\n/* harmony export */   isElement: () => (/* binding */ isElement),\n/* harmony export */   isHTMLElement: () => (/* binding */ isHTMLElement),\n/* harmony export */   isLastTraversableNode: () => (/* binding */ isLastTraversableNode),\n/* harmony export */   isNode: () => (/* binding */ isNode),\n/* harmony export */   isOverflowElement: () => (/* binding */ isOverflowElement),\n/* harmony export */   isShadowRoot: () => (/* binding */ isShadowRoot),\n/* harmony export */   isTableElement: () => (/* binding */ isTableElement),\n/* harmony export */   isTopLayer: () => (/* binding */ isTopLayer),\n/* harmony export */   isWebKit: () => (/* binding */ isWebKit)\n/* harmony export */ });\nfunction hasWindow() {\n  return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n  if (isNode(node)) {\n    return (node.nodeName || '').toLowerCase();\n  }\n  // Mocked nodes in testing environments may not be instances of Node. By\n  // returning `#document` an infinite loop won't occur.\n  // https://github.com/floating-ui/floating-ui/issues/2317\n  return '#document';\n}\nfunction getWindow(node) {\n  var _node$ownerDocument;\n  return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n  var _ref;\n  return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n  if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n    return false;\n  }\n  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\nfunction isOverflowElement(element) {\n  const {\n    overflow,\n    overflowX,\n    overflowY,\n    display\n  } = getComputedStyle(element);\n  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n  return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n  return topLayerSelectors.some(selector => {\n    try {\n      return element.matches(selector);\n    } catch (_e) {\n      return false;\n    }\n  });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n  const webkit = isWebKit();\n  const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n  return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n  let currentNode = getParentNode(element);\n  while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    if (isContainingBlock(currentNode)) {\n      return currentNode;\n    } else if (isTopLayer(currentNode)) {\n      return null;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  return null;\n}\nfunction isWebKit() {\n  if (typeof CSS === 'undefined' || !CSS.supports) return false;\n  return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n  return lastTraversableNodeNames.has(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n  return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n  if (isElement(element)) {\n    return {\n      scrollLeft: element.scrollLeft,\n      scrollTop: element.scrollTop\n    };\n  }\n  return {\n    scrollLeft: element.scrollX,\n    scrollTop: element.scrollY\n  };\n}\nfunction getParentNode(node) {\n  if (getNodeName(node) === 'html') {\n    return node;\n  }\n  const result =\n  // Step into the shadow DOM of the parent of a slotted node.\n  node.assignedSlot ||\n  // DOM Element detected.\n  node.parentNode ||\n  // ShadowRoot detected.\n  isShadowRoot(node) && node.host ||\n  // Fallback.\n  getDocumentElement(node);\n  return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n  const parentNode = getParentNode(node);\n  if (isLastTraversableNode(parentNode)) {\n    return node.ownerDocument ? node.ownerDocument.body : node.body;\n  }\n  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n    return parentNode;\n  }\n  return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n  var _node$ownerDocument2;\n  if (list === void 0) {\n    list = [];\n  }\n  if (traverseIframes === void 0) {\n    traverseIframes = true;\n  }\n  const scrollableAncestor = getNearestOverflowAncestor(node);\n  const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n  const win = getWindow(scrollableAncestor);\n  if (isBody) {\n    const frameElement = getFrameElement(win);\n    return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n  }\n  return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n  return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs":
/*!******************************************************************************!*\
  !*** ../react-ui/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs ***!
  \******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   alignments: () => (/* binding */ alignments),\n/* harmony export */   clamp: () => (/* binding */ clamp),\n/* harmony export */   createCoords: () => (/* binding */ createCoords),\n/* harmony export */   evaluate: () => (/* binding */ evaluate),\n/* harmony export */   expandPaddingObject: () => (/* binding */ expandPaddingObject),\n/* harmony export */   floor: () => (/* binding */ floor),\n/* harmony export */   getAlignment: () => (/* binding */ getAlignment),\n/* harmony export */   getAlignmentAxis: () => (/* binding */ getAlignmentAxis),\n/* harmony export */   getAlignmentSides: () => (/* binding */ getAlignmentSides),\n/* harmony export */   getAxisLength: () => (/* binding */ getAxisLength),\n/* harmony export */   getExpandedPlacements: () => (/* binding */ getExpandedPlacements),\n/* harmony export */   getOppositeAlignmentPlacement: () => (/* binding */ getOppositeAlignmentPlacement),\n/* harmony export */   getOppositeAxis: () => (/* binding */ getOppositeAxis),\n/* harmony export */   getOppositeAxisPlacements: () => (/* binding */ getOppositeAxisPlacements),\n/* harmony export */   getOppositePlacement: () => (/* binding */ getOppositePlacement),\n/* harmony export */   getPaddingObject: () => (/* binding */ getPaddingObject),\n/* harmony export */   getSide: () => (/* binding */ getSide),\n/* harmony export */   getSideAxis: () => (/* binding */ getSideAxis),\n/* harmony export */   max: () => (/* binding */ max),\n/* harmony export */   min: () => (/* binding */ min),\n/* harmony export */   placements: () => (/* binding */ placements),\n/* harmony export */   rectToClientRect: () => (/* binding */ rectToClientRect),\n/* harmony export */   round: () => (/* binding */ round),\n/* harmony export */   sides: () => (/* binding */ sides)\n/* harmony export */ });\n/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n  x: v,\n  y: v\n});\nconst oppositeSideMap = {\n  left: 'right',\n  right: 'left',\n  bottom: 'top',\n  top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n  start: 'end',\n  end: 'start'\n};\nfunction clamp(start, value, end) {\n  return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n  return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n  return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n  return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n  return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n  return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n  return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n  if (rtl === void 0) {\n    rtl = false;\n  }\n  const alignment = getAlignment(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const length = getAxisLength(alignmentAxis);\n  let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n  if (rects.reference[length] > rects.floating[length]) {\n    mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n  }\n  return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n  const oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n  switch (side) {\n    case 'top':\n    case 'bottom':\n      if (rtl) return isStart ? rlPlacement : lrPlacement;\n      return isStart ? lrPlacement : rlPlacement;\n    case 'left':\n    case 'right':\n      return isStart ? tbPlacement : btPlacement;\n    default:\n      return [];\n  }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n  const alignment = getAlignment(placement);\n  let list = getSideList(getSide(placement), direction === 'start', rtl);\n  if (alignment) {\n    list = list.map(side => side + \"-\" + alignment);\n    if (flipAlignment) {\n      list = list.concat(list.map(getOppositeAlignmentPlacement));\n    }\n  }\n  return list;\n}\nfunction getOppositePlacement(placement) {\n  return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n  return {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0,\n    ...padding\n  };\n}\nfunction getPaddingObject(padding) {\n  return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n    top: padding,\n    right: padding,\n    bottom: padding,\n    left: padding\n  };\n}\nfunction rectToClientRect(rect) {\n  const {\n    x,\n    y,\n    width,\n    height\n  } = rect;\n  return {\n    width,\n    height,\n    top: y,\n    left: x,\n    right: x + width,\n    bottom: y + height,\n    x,\n    y\n  };\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/core/index.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/core/index.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Calendar: () => (/* binding */ Calendar),\n/* harmony export */   JsonRequestError: () => (/* reexport safe */ _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.ae),\n/* harmony export */   createPlugin: () => (/* binding */ createPlugin),\n/* harmony export */   formatDate: () => (/* binding */ formatDate),\n/* harmony export */   formatRange: () => (/* binding */ formatRange),\n/* harmony export */   globalLocales: () => (/* binding */ globalLocales),\n/* harmony export */   globalPlugins: () => (/* binding */ globalPlugins),\n/* harmony export */   sliceEvents: () => (/* binding */ sliceEvents),\n/* harmony export */   version: () => (/* binding */ version)\n/* harmony export */ });\n/* harmony import */ var _internal_common_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./internal-common.js */ \"../react-ui/node_modules/@fullcalendar/core/internal-common.js\");\n/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! preact */ \"../react-ui/node_modules/preact/dist/preact.module.js\");\n/* harmony import */ var preact_compat__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! preact/compat */ \"../react-ui/node_modules/preact/compat/dist/compat.module.js\");\n\n\n\n\nconst globalLocales = [];\nconst MINIMAL_RAW_EN_LOCALE = {\n  code: 'en',\n  week: {\n    dow: 0,\n    doy: 4 // 4 days need to be within the year to be considered the first week\n  },\n  direction: 'ltr',\n  buttonText: {\n    prev: 'prev',\n    next: 'next',\n    prevYear: 'prev year',\n    nextYear: 'next year',\n    year: 'year',\n    today: 'today',\n    month: 'month',\n    week: 'week',\n    day: 'day',\n    list: 'list'\n  },\n  weekText: 'W',\n  weekTextLong: 'Week',\n  closeHint: 'Close',\n  timeHint: 'Time',\n  eventHint: 'Event',\n  allDayText: 'all-day',\n  moreLinkText: 'more',\n  noEventsText: 'No events to display'\n};\nconst RAW_EN_LOCALE = Object.assign(Object.assign({}, MINIMAL_RAW_EN_LOCALE), {\n  // Includes things we don't want other locales to inherit,\n  // things that derive from other translatable strings.\n  buttonHints: {\n    prev: 'Previous $0',\n    next: 'Next $0',\n    today(buttonText, unit) {\n      return unit === 'day' ? 'Today' : `This ${buttonText}`;\n    }\n  },\n  viewHint: '$0 view',\n  navLinkHint: 'Go to $0',\n  moreLinkHint(eventCnt) {\n    return `Show ${eventCnt} more event${eventCnt === 1 ? '' : 's'}`;\n  }\n});\nfunction organizeRawLocales(explicitRawLocales) {\n  let defaultCode = explicitRawLocales.length > 0 ? explicitRawLocales[0].code : 'en';\n  let allRawLocales = globalLocales.concat(explicitRawLocales);\n  let rawLocaleMap = {\n    en: RAW_EN_LOCALE\n  };\n  for (let rawLocale of allRawLocales) {\n    rawLocaleMap[rawLocale.code] = rawLocale;\n  }\n  return {\n    map: rawLocaleMap,\n    defaultCode\n  };\n}\nfunction buildLocale(inputSingular, available) {\n  if (typeof inputSingular === 'object' && !Array.isArray(inputSingular)) {\n    return parseLocale(inputSingular.code, [inputSingular.code], inputSingular);\n  }\n  return queryLocale(inputSingular, available);\n}\nfunction queryLocale(codeArg, available) {\n  let codes = [].concat(codeArg || []); // will convert to array\n  let raw = queryRawLocale(codes, available) || RAW_EN_LOCALE;\n  return parseLocale(codeArg, codes, raw);\n}\nfunction queryRawLocale(codes, available) {\n  for (let i = 0; i < codes.length; i += 1) {\n    let parts = codes[i].toLocaleLowerCase().split('-');\n    for (let j = parts.length; j > 0; j -= 1) {\n      let simpleId = parts.slice(0, j).join('-');\n      if (available[simpleId]) {\n        return available[simpleId];\n      }\n    }\n  }\n  return null;\n}\nfunction parseLocale(codeArg, codes, raw) {\n  let merged = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.m)([MINIMAL_RAW_EN_LOCALE, raw], ['buttonText']);\n  delete merged.code; // don't want this part of the options\n  let {\n    week\n  } = merged;\n  delete merged.week;\n  return {\n    codeArg,\n    codes,\n    week,\n    simpleNumberFormat: new Intl.NumberFormat(codeArg),\n    options: merged\n  };\n}\n\n// TODO: easier way to add new hooks? need to update a million things\nfunction createPlugin(input) {\n  return {\n    id: (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.g)(),\n    name: input.name,\n    premiumReleaseDate: input.premiumReleaseDate ? new Date(input.premiumReleaseDate) : undefined,\n    deps: input.deps || [],\n    reducers: input.reducers || [],\n    isLoadingFuncs: input.isLoadingFuncs || [],\n    contextInit: [].concat(input.contextInit || []),\n    eventRefiners: input.eventRefiners || {},\n    eventDefMemberAdders: input.eventDefMemberAdders || [],\n    eventSourceRefiners: input.eventSourceRefiners || {},\n    isDraggableTransformers: input.isDraggableTransformers || [],\n    eventDragMutationMassagers: input.eventDragMutationMassagers || [],\n    eventDefMutationAppliers: input.eventDefMutationAppliers || [],\n    dateSelectionTransformers: input.dateSelectionTransformers || [],\n    datePointTransforms: input.datePointTransforms || [],\n    dateSpanTransforms: input.dateSpanTransforms || [],\n    views: input.views || {},\n    viewPropsTransformers: input.viewPropsTransformers || [],\n    isPropsValid: input.isPropsValid || null,\n    externalDefTransforms: input.externalDefTransforms || [],\n    viewContainerAppends: input.viewContainerAppends || [],\n    eventDropTransformers: input.eventDropTransformers || [],\n    componentInteractions: input.componentInteractions || [],\n    calendarInteractions: input.calendarInteractions || [],\n    themeClasses: input.themeClasses || {},\n    eventSourceDefs: input.eventSourceDefs || [],\n    cmdFormatter: input.cmdFormatter,\n    recurringTypes: input.recurringTypes || [],\n    namedTimeZonedImpl: input.namedTimeZonedImpl,\n    initialView: input.initialView || '',\n    elementDraggingImpl: input.elementDraggingImpl,\n    optionChangeHandlers: input.optionChangeHandlers || {},\n    scrollGridImpl: input.scrollGridImpl || null,\n    listenerRefiners: input.listenerRefiners || {},\n    optionRefiners: input.optionRefiners || {},\n    propSetHandlers: input.propSetHandlers || {}\n  };\n}\nfunction buildPluginHooks(pluginDefs, globalDefs) {\n  let currentPluginIds = {};\n  let hooks = {\n    premiumReleaseDate: undefined,\n    reducers: [],\n    isLoadingFuncs: [],\n    contextInit: [],\n    eventRefiners: {},\n    eventDefMemberAdders: [],\n    eventSourceRefiners: {},\n    isDraggableTransformers: [],\n    eventDragMutationMassagers: [],\n    eventDefMutationAppliers: [],\n    dateSelectionTransformers: [],\n    datePointTransforms: [],\n    dateSpanTransforms: [],\n    views: {},\n    viewPropsTransformers: [],\n    isPropsValid: null,\n    externalDefTransforms: [],\n    viewContainerAppends: [],\n    eventDropTransformers: [],\n    componentInteractions: [],\n    calendarInteractions: [],\n    themeClasses: {},\n    eventSourceDefs: [],\n    cmdFormatter: null,\n    recurringTypes: [],\n    namedTimeZonedImpl: null,\n    initialView: '',\n    elementDraggingImpl: null,\n    optionChangeHandlers: {},\n    scrollGridImpl: null,\n    listenerRefiners: {},\n    optionRefiners: {},\n    propSetHandlers: {}\n  };\n  function addDefs(defs) {\n    for (let def of defs) {\n      const pluginName = def.name;\n      const currentId = currentPluginIds[pluginName];\n      if (currentId === undefined) {\n        currentPluginIds[pluginName] = def.id;\n        addDefs(def.deps);\n        hooks = combineHooks(hooks, def);\n      } else if (currentId !== def.id) {\n        // different ID than the one already added\n        console.warn(`Duplicate plugin '${pluginName}'`);\n      }\n    }\n  }\n  if (pluginDefs) {\n    addDefs(pluginDefs);\n  }\n  addDefs(globalDefs);\n  return hooks;\n}\nfunction buildBuildPluginHooks() {\n  let currentOverrideDefs = [];\n  let currentGlobalDefs = [];\n  let currentHooks;\n  return (overrideDefs, globalDefs) => {\n    if (!currentHooks || !(0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.i)(overrideDefs, currentOverrideDefs) || !(0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.i)(globalDefs, currentGlobalDefs)) {\n      currentHooks = buildPluginHooks(overrideDefs, globalDefs);\n    }\n    currentOverrideDefs = overrideDefs;\n    currentGlobalDefs = globalDefs;\n    return currentHooks;\n  };\n}\nfunction combineHooks(hooks0, hooks1) {\n  return {\n    premiumReleaseDate: compareOptionalDates(hooks0.premiumReleaseDate, hooks1.premiumReleaseDate),\n    reducers: hooks0.reducers.concat(hooks1.reducers),\n    isLoadingFuncs: hooks0.isLoadingFuncs.concat(hooks1.isLoadingFuncs),\n    contextInit: hooks0.contextInit.concat(hooks1.contextInit),\n    eventRefiners: Object.assign(Object.assign({}, hooks0.eventRefiners), hooks1.eventRefiners),\n    eventDefMemberAdders: hooks0.eventDefMemberAdders.concat(hooks1.eventDefMemberAdders),\n    eventSourceRefiners: Object.assign(Object.assign({}, hooks0.eventSourceRefiners), hooks1.eventSourceRefiners),\n    isDraggableTransformers: hooks0.isDraggableTransformers.concat(hooks1.isDraggableTransformers),\n    eventDragMutationMassagers: hooks0.eventDragMutationMassagers.concat(hooks1.eventDragMutationMassagers),\n    eventDefMutationAppliers: hooks0.eventDefMutationAppliers.concat(hooks1.eventDefMutationAppliers),\n    dateSelectionTransformers: hooks0.dateSelectionTransformers.concat(hooks1.dateSelectionTransformers),\n    datePointTransforms: hooks0.datePointTransforms.concat(hooks1.datePointTransforms),\n    dateSpanTransforms: hooks0.dateSpanTransforms.concat(hooks1.dateSpanTransforms),\n    views: Object.assign(Object.assign({}, hooks0.views), hooks1.views),\n    viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),\n    isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,\n    externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),\n    viewContainerAppends: hooks0.viewContainerAppends.concat(hooks1.viewContainerAppends),\n    eventDropTransformers: hooks0.eventDropTransformers.concat(hooks1.eventDropTransformers),\n    calendarInteractions: hooks0.calendarInteractions.concat(hooks1.calendarInteractions),\n    componentInteractions: hooks0.componentInteractions.concat(hooks1.componentInteractions),\n    themeClasses: Object.assign(Object.assign({}, hooks0.themeClasses), hooks1.themeClasses),\n    eventSourceDefs: hooks0.eventSourceDefs.concat(hooks1.eventSourceDefs),\n    cmdFormatter: hooks1.cmdFormatter || hooks0.cmdFormatter,\n    recurringTypes: hooks0.recurringTypes.concat(hooks1.recurringTypes),\n    namedTimeZonedImpl: hooks1.namedTimeZonedImpl || hooks0.namedTimeZonedImpl,\n    initialView: hooks0.initialView || hooks1.initialView,\n    elementDraggingImpl: hooks0.elementDraggingImpl || hooks1.elementDraggingImpl,\n    optionChangeHandlers: Object.assign(Object.assign({}, hooks0.optionChangeHandlers), hooks1.optionChangeHandlers),\n    scrollGridImpl: hooks1.scrollGridImpl || hooks0.scrollGridImpl,\n    listenerRefiners: Object.assign(Object.assign({}, hooks0.listenerRefiners), hooks1.listenerRefiners),\n    optionRefiners: Object.assign(Object.assign({}, hooks0.optionRefiners), hooks1.optionRefiners),\n    propSetHandlers: Object.assign(Object.assign({}, hooks0.propSetHandlers), hooks1.propSetHandlers)\n  };\n}\nfunction compareOptionalDates(date0, date1) {\n  if (date0 === undefined) {\n    return date1;\n  }\n  if (date1 === undefined) {\n    return date0;\n  }\n  return new Date(Math.max(date0.valueOf(), date1.valueOf()));\n}\nclass StandardTheme extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.T {}\nStandardTheme.prototype.classes = {\n  root: 'fc-theme-standard',\n  tableCellShaded: 'fc-cell-shaded',\n  buttonGroup: 'fc-button-group',\n  button: 'fc-button fc-button-primary',\n  buttonActive: 'fc-button-active'\n};\nStandardTheme.prototype.baseIconClass = 'fc-icon';\nStandardTheme.prototype.iconClasses = {\n  close: 'fc-icon-x',\n  prev: 'fc-icon-chevron-left',\n  next: 'fc-icon-chevron-right',\n  prevYear: 'fc-icon-chevrons-left',\n  nextYear: 'fc-icon-chevrons-right'\n};\nStandardTheme.prototype.rtlIconClasses = {\n  prev: 'fc-icon-chevron-right',\n  next: 'fc-icon-chevron-left',\n  prevYear: 'fc-icon-chevrons-right',\n  nextYear: 'fc-icon-chevrons-left'\n};\nStandardTheme.prototype.iconOverrideOption = 'buttonIcons'; // TODO: make TS-friendly\nStandardTheme.prototype.iconOverrideCustomButtonOption = 'icon';\nStandardTheme.prototype.iconOverridePrefix = 'fc-icon-';\nfunction compileViewDefs(defaultConfigs, overrideConfigs) {\n  let hash = {};\n  let viewType;\n  for (viewType in defaultConfigs) {\n    ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n  }\n  for (viewType in overrideConfigs) {\n    ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n  }\n  return hash;\n}\nfunction ensureViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n  if (hash[viewType]) {\n    return hash[viewType];\n  }\n  let viewDef = buildViewDef(viewType, hash, defaultConfigs, overrideConfigs);\n  if (viewDef) {\n    hash[viewType] = viewDef;\n  }\n  return viewDef;\n}\nfunction buildViewDef(viewType, hash, defaultConfigs, overrideConfigs) {\n  let defaultConfig = defaultConfigs[viewType];\n  let overrideConfig = overrideConfigs[viewType];\n  let queryProp = name => defaultConfig && defaultConfig[name] !== null ? defaultConfig[name] : overrideConfig && overrideConfig[name] !== null ? overrideConfig[name] : null;\n  let theComponent = queryProp('component');\n  let superType = queryProp('superType');\n  let superDef = null;\n  if (superType) {\n    if (superType === viewType) {\n      throw new Error('Can\\'t have a custom view type that references itself');\n    }\n    superDef = ensureViewDef(superType, hash, defaultConfigs, overrideConfigs);\n  }\n  if (!theComponent && superDef) {\n    theComponent = superDef.component;\n  }\n  if (!theComponent) {\n    return null; // don't throw a warning, might be settings for a single-unit view\n  }\n  return {\n    type: viewType,\n    component: theComponent,\n    defaults: Object.assign(Object.assign({}, superDef ? superDef.defaults : {}), defaultConfig ? defaultConfig.rawOptions : {}),\n    overrides: Object.assign(Object.assign({}, superDef ? superDef.overrides : {}), overrideConfig ? overrideConfig.rawOptions : {})\n  };\n}\nfunction parseViewConfigs(inputs) {\n  return (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a)(inputs, parseViewConfig);\n}\nfunction parseViewConfig(input) {\n  let rawOptions = typeof input === 'function' ? {\n    component: input\n  } : input;\n  let {\n    component\n  } = rawOptions;\n  if (rawOptions.content) {\n    // TODO: remove content/classNames/didMount/etc from options?\n    component = createViewHookComponent(rawOptions);\n  } else if (component && !(component.prototype instanceof _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.B)) {\n    // WHY?: people were using `component` property for `content`\n    // TODO: converge on one setting name\n    component = createViewHookComponent(Object.assign(Object.assign({}, rawOptions), {\n      content: component\n    }));\n  }\n  return {\n    superType: rawOptions.type,\n    component: component,\n    rawOptions // includes type and component too :(\n  };\n}\nfunction createViewHookComponent(options) {\n  return viewProps => (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.V.Consumer, null, context => (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.C, {\n    elTag: \"div\",\n    elClasses: (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.b)(context.viewSpec),\n    renderProps: Object.assign(Object.assign({}, viewProps), {\n      nextDayThreshold: context.options.nextDayThreshold\n    }),\n    generatorName: undefined,\n    customGenerator: options.content,\n    classNameGenerator: options.classNames,\n    didMount: options.didMount,\n    willUnmount: options.willUnmount\n  }));\n}\nfunction buildViewSpecs(defaultInputs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n  let defaultConfigs = parseViewConfigs(defaultInputs);\n  let overrideConfigs = parseViewConfigs(optionOverrides.views);\n  let viewDefs = compileViewDefs(defaultConfigs, overrideConfigs);\n  return (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a)(viewDefs, viewDef => buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults));\n}\nfunction buildViewSpec(viewDef, overrideConfigs, optionOverrides, dynamicOptionOverrides, localeDefaults) {\n  let durationInput = viewDef.overrides.duration || viewDef.defaults.duration || dynamicOptionOverrides.duration || optionOverrides.duration;\n  let duration = null;\n  let durationUnit = '';\n  let singleUnit = '';\n  let singleUnitOverrides = {};\n  if (durationInput) {\n    duration = createDurationCached(durationInput);\n    if (duration) {\n      // valid?\n      let denom = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.c)(duration);\n      durationUnit = denom.unit;\n      if (denom.value === 1) {\n        singleUnit = durationUnit;\n        singleUnitOverrides = overrideConfigs[durationUnit] ? overrideConfigs[durationUnit].rawOptions : {};\n      }\n    }\n  }\n  let queryButtonText = optionsSubset => {\n    let buttonTextMap = optionsSubset.buttonText || {};\n    let buttonTextKey = viewDef.defaults.buttonTextKey;\n    if (buttonTextKey != null && buttonTextMap[buttonTextKey] != null) {\n      return buttonTextMap[buttonTextKey];\n    }\n    if (buttonTextMap[viewDef.type] != null) {\n      return buttonTextMap[viewDef.type];\n    }\n    if (buttonTextMap[singleUnit] != null) {\n      return buttonTextMap[singleUnit];\n    }\n    return null;\n  };\n  let queryButtonTitle = optionsSubset => {\n    let buttonHints = optionsSubset.buttonHints || {};\n    let buttonKey = viewDef.defaults.buttonTextKey; // use same key as text\n    if (buttonKey != null && buttonHints[buttonKey] != null) {\n      return buttonHints[buttonKey];\n    }\n    if (buttonHints[viewDef.type] != null) {\n      return buttonHints[viewDef.type];\n    }\n    if (buttonHints[singleUnit] != null) {\n      return buttonHints[singleUnit];\n    }\n    return null;\n  };\n  return {\n    type: viewDef.type,\n    component: viewDef.component,\n    duration,\n    durationUnit,\n    singleUnit,\n    optionDefaults: viewDef.defaults,\n    optionOverrides: Object.assign(Object.assign({}, singleUnitOverrides), viewDef.overrides),\n    buttonTextOverride: queryButtonText(dynamicOptionOverrides) || queryButtonText(optionOverrides) ||\n    // constructor-specified buttonText lookup hash takes precedence\n    viewDef.overrides.buttonText,\n    buttonTextDefault: queryButtonText(localeDefaults) || viewDef.defaults.buttonText || queryButtonText(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.e) || viewDef.type,\n    // not DRY\n    buttonTitleOverride: queryButtonTitle(dynamicOptionOverrides) || queryButtonTitle(optionOverrides) || viewDef.overrides.buttonHint,\n    buttonTitleDefault: queryButtonTitle(localeDefaults) || viewDef.defaults.buttonHint || queryButtonTitle(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.e)\n    // will eventually fall back to buttonText\n  };\n}\n// hack to get memoization working\nlet durationInputMap = {};\nfunction createDurationCached(durationInput) {\n  let json = JSON.stringify(durationInput);\n  let res = durationInputMap[json];\n  if (res === undefined) {\n    res = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.d)(durationInput);\n    durationInputMap[json] = res;\n  }\n  return res;\n}\nfunction reduceViewType(viewType, action) {\n  switch (action.type) {\n    case 'CHANGE_VIEW_TYPE':\n      viewType = action.viewType;\n  }\n  return viewType;\n}\nfunction reduceCurrentDate(currentDate, action) {\n  switch (action.type) {\n    case 'CHANGE_DATE':\n      return action.dateMarker;\n    default:\n      return currentDate;\n  }\n}\n// should be initialized once and stay constant\n// this will change too\nfunction getInitialDate(options, dateEnv, nowManager) {\n  let initialDateInput = options.initialDate;\n  // compute the initial ambig-timezone date\n  if (initialDateInput != null) {\n    return dateEnv.createMarker(initialDateInput);\n  }\n  return nowManager.getDateMarker();\n}\nfunction reduceDynamicOptionOverrides(dynamicOptionOverrides, action) {\n  switch (action.type) {\n    case 'SET_OPTION':\n      return Object.assign(Object.assign({}, dynamicOptionOverrides), {\n        [action.optionName]: action.rawOptionValue\n      });\n    default:\n      return dynamicOptionOverrides;\n  }\n}\nfunction reduceDateProfile(currentDateProfile, action, currentDate, dateProfileGenerator) {\n  let dp;\n  switch (action.type) {\n    case 'CHANGE_VIEW_TYPE':\n      return dateProfileGenerator.build(action.dateMarker || currentDate);\n    case 'CHANGE_DATE':\n      return dateProfileGenerator.build(action.dateMarker);\n    case 'PREV':\n      dp = dateProfileGenerator.buildPrev(currentDateProfile, currentDate);\n      if (dp.isValid) {\n        return dp;\n      }\n      break;\n    case 'NEXT':\n      dp = dateProfileGenerator.buildNext(currentDateProfile, currentDate);\n      if (dp.isValid) {\n        return dp;\n      }\n      break;\n  }\n  return currentDateProfile;\n}\nfunction initEventSources(calendarOptions, dateProfile, context) {\n  let activeRange = dateProfile ? dateProfile.activeRange : null;\n  return addSources({}, parseInitialSources(calendarOptions, context), activeRange, context);\n}\nfunction reduceEventSources(eventSources, action, dateProfile, context) {\n  let activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n  switch (action.type) {\n    case 'ADD_EVENT_SOURCES':\n      // already parsed\n      return addSources(eventSources, action.sources, activeRange, context);\n    case 'REMOVE_EVENT_SOURCE':\n      return removeSource(eventSources, action.sourceId);\n    case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n    case 'NEXT':\n    case 'CHANGE_DATE':\n    case 'CHANGE_VIEW_TYPE':\n      if (dateProfile) {\n        return fetchDirtySources(eventSources, activeRange, context);\n      }\n      return eventSources;\n    case 'FETCH_EVENT_SOURCES':\n      return fetchSourcesByIds(eventSources, action.sourceIds ?\n      // why no type?\n      (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.f)(action.sourceIds) : excludeStaticSources(eventSources, context), activeRange, action.isRefetch || false, context);\n    case 'RECEIVE_EVENTS':\n    case 'RECEIVE_EVENT_ERROR':\n      return receiveResponse(eventSources, action.sourceId, action.fetchId, action.fetchRange);\n    case 'REMOVE_ALL_EVENT_SOURCES':\n      return {};\n    default:\n      return eventSources;\n  }\n}\nfunction reduceEventSourcesNewTimeZone(eventSources, dateProfile, context) {\n  let activeRange = dateProfile ? dateProfile.activeRange : null; // need this check?\n  return fetchSourcesByIds(eventSources, excludeStaticSources(eventSources, context), activeRange, true, context);\n}\nfunction computeEventSourcesLoading(eventSources) {\n  for (let sourceId in eventSources) {\n    if (eventSources[sourceId].isFetching) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction addSources(eventSourceHash, sources, fetchRange, context) {\n  let hash = {};\n  for (let source of sources) {\n    hash[source.sourceId] = source;\n  }\n  if (fetchRange) {\n    hash = fetchDirtySources(hash, fetchRange, context);\n  }\n  return Object.assign(Object.assign({}, eventSourceHash), hash);\n}\nfunction removeSource(eventSourceHash, sourceId) {\n  return (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.h)(eventSourceHash, eventSource => eventSource.sourceId !== sourceId);\n}\nfunction fetchDirtySources(sourceHash, fetchRange, context) {\n  return fetchSourcesByIds(sourceHash, (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.h)(sourceHash, eventSource => isSourceDirty(eventSource, fetchRange, context)), fetchRange, false, context);\n}\nfunction isSourceDirty(eventSource, fetchRange, context) {\n  if (!doesSourceNeedRange(eventSource, context)) {\n    return !eventSource.latestFetchId;\n  }\n  return !context.options.lazyFetching || !eventSource.fetchRange || eventSource.isFetching ||\n  // always cancel outdated in-progress fetches\n  fetchRange.start < eventSource.fetchRange.start || fetchRange.end > eventSource.fetchRange.end;\n}\nfunction fetchSourcesByIds(prevSources, sourceIdHash, fetchRange, isRefetch, context) {\n  let nextSources = {};\n  for (let sourceId in prevSources) {\n    let source = prevSources[sourceId];\n    if (sourceIdHash[sourceId]) {\n      nextSources[sourceId] = fetchSource(source, fetchRange, isRefetch, context);\n    } else {\n      nextSources[sourceId] = source;\n    }\n  }\n  return nextSources;\n}\nfunction fetchSource(eventSource, fetchRange, isRefetch, context) {\n  let {\n    options,\n    calendarApi\n  } = context;\n  let sourceDef = context.pluginHooks.eventSourceDefs[eventSource.sourceDefId];\n  let fetchId = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.g)();\n  sourceDef.fetch({\n    eventSource,\n    range: fetchRange,\n    isRefetch,\n    context\n  }, res => {\n    let {\n      rawEvents\n    } = res;\n    if (options.eventSourceSuccess) {\n      rawEvents = options.eventSourceSuccess.call(calendarApi, rawEvents, res.response) || rawEvents;\n    }\n    if (eventSource.success) {\n      rawEvents = eventSource.success.call(calendarApi, rawEvents, res.response) || rawEvents;\n    }\n    context.dispatch({\n      type: 'RECEIVE_EVENTS',\n      sourceId: eventSource.sourceId,\n      fetchId,\n      fetchRange,\n      rawEvents\n    });\n  }, error => {\n    let errorHandled = false;\n    if (options.eventSourceFailure) {\n      options.eventSourceFailure.call(calendarApi, error);\n      errorHandled = true;\n    }\n    if (eventSource.failure) {\n      eventSource.failure(error);\n      errorHandled = true;\n    }\n    if (!errorHandled) {\n      console.warn(error.message, error);\n    }\n    context.dispatch({\n      type: 'RECEIVE_EVENT_ERROR',\n      sourceId: eventSource.sourceId,\n      fetchId,\n      fetchRange,\n      error\n    });\n  });\n  return Object.assign(Object.assign({}, eventSource), {\n    isFetching: true,\n    latestFetchId: fetchId\n  });\n}\nfunction receiveResponse(sourceHash, sourceId, fetchId, fetchRange) {\n  let eventSource = sourceHash[sourceId];\n  if (eventSource &&\n  // not already removed\n  fetchId === eventSource.latestFetchId) {\n    return Object.assign(Object.assign({}, sourceHash), {\n      [sourceId]: Object.assign(Object.assign({}, eventSource), {\n        isFetching: false,\n        fetchRange\n      })\n    });\n  }\n  return sourceHash;\n}\nfunction excludeStaticSources(eventSources, context) {\n  return (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.h)(eventSources, eventSource => doesSourceNeedRange(eventSource, context));\n}\nfunction parseInitialSources(rawOptions, context) {\n  let refiners = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.j)(context);\n  let rawSources = [].concat(rawOptions.eventSources || []);\n  let sources = []; // parsed\n  if (rawOptions.initialEvents) {\n    rawSources.unshift(rawOptions.initialEvents);\n  }\n  if (rawOptions.events) {\n    rawSources.unshift(rawOptions.events);\n  }\n  for (let rawSource of rawSources) {\n    let source = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.p)(rawSource, context, refiners);\n    if (source) {\n      sources.push(source);\n    }\n  }\n  return sources;\n}\nfunction doesSourceNeedRange(eventSource, context) {\n  let defs = context.pluginHooks.eventSourceDefs;\n  return !defs[eventSource.sourceDefId].ignoreRange;\n}\nfunction reduceDateSelection(currentSelection, action) {\n  switch (action.type) {\n    case 'UNSELECT_DATES':\n      return null;\n    case 'SELECT_DATES':\n      return action.selection;\n    default:\n      return currentSelection;\n  }\n}\nfunction reduceSelectedEvent(currentInstanceId, action) {\n  switch (action.type) {\n    case 'UNSELECT_EVENT':\n      return '';\n    case 'SELECT_EVENT':\n      return action.eventInstanceId;\n    default:\n      return currentInstanceId;\n  }\n}\nfunction reduceEventDrag(currentDrag, action) {\n  let newDrag;\n  switch (action.type) {\n    case 'UNSET_EVENT_DRAG':\n      return null;\n    case 'SET_EVENT_DRAG':\n      newDrag = action.state;\n      return {\n        affectedEvents: newDrag.affectedEvents,\n        mutatedEvents: newDrag.mutatedEvents,\n        isEvent: newDrag.isEvent\n      };\n    default:\n      return currentDrag;\n  }\n}\nfunction reduceEventResize(currentResize, action) {\n  let newResize;\n  switch (action.type) {\n    case 'UNSET_EVENT_RESIZE':\n      return null;\n    case 'SET_EVENT_RESIZE':\n      newResize = action.state;\n      return {\n        affectedEvents: newResize.affectedEvents,\n        mutatedEvents: newResize.mutatedEvents,\n        isEvent: newResize.isEvent\n      };\n    default:\n      return currentResize;\n  }\n}\nfunction parseToolbars(calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n  let header = calendarOptions.headerToolbar ? parseToolbar(calendarOptions.headerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;\n  let footer = calendarOptions.footerToolbar ? parseToolbar(calendarOptions.footerToolbar, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) : null;\n  return {\n    header,\n    footer\n  };\n}\nfunction parseToolbar(sectionStrHash, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi) {\n  let sectionWidgets = {};\n  let viewsWithButtons = [];\n  let hasTitle = false;\n  for (let sectionName in sectionStrHash) {\n    let sectionStr = sectionStrHash[sectionName];\n    let sectionRes = parseSection(sectionStr, calendarOptions, calendarOptionOverrides, theme, viewSpecs, calendarApi);\n    sectionWidgets[sectionName] = sectionRes.widgets;\n    viewsWithButtons.push(...sectionRes.viewsWithButtons);\n    hasTitle = hasTitle || sectionRes.hasTitle;\n  }\n  return {\n    sectionWidgets,\n    viewsWithButtons,\n    hasTitle\n  };\n}\n/*\nBAD: querying icons and text here. should be done at render time\n*/\nfunction parseSection(sectionStr, calendarOptions,\n// defaults+overrides, then refined\ncalendarOptionOverrides,\n// overrides only!, unrefined :(\ntheme, viewSpecs, calendarApi) {\n  let isRtl = calendarOptions.direction === 'rtl';\n  let calendarCustomButtons = calendarOptions.customButtons || {};\n  let calendarButtonTextOverrides = calendarOptionOverrides.buttonText || {};\n  let calendarButtonText = calendarOptions.buttonText || {};\n  let calendarButtonHintOverrides = calendarOptionOverrides.buttonHints || {};\n  let calendarButtonHints = calendarOptions.buttonHints || {};\n  let sectionSubstrs = sectionStr ? sectionStr.split(' ') : [];\n  let viewsWithButtons = [];\n  let hasTitle = false;\n  let widgets = sectionSubstrs.map(buttonGroupStr => buttonGroupStr.split(',').map(buttonName => {\n    if (buttonName === 'title') {\n      hasTitle = true;\n      return {\n        buttonName\n      };\n    }\n    let customButtonProps;\n    let viewSpec;\n    let buttonClick;\n    let buttonIcon; // only one of these will be set\n    let buttonText; // \"\n    let buttonHint;\n    // ^ for the title=\"\" attribute, for accessibility\n    if (customButtonProps = calendarCustomButtons[buttonName]) {\n      buttonClick = ev => {\n        if (customButtonProps.click) {\n          customButtonProps.click.call(ev.target, ev, ev.target); // TODO: use Calendar this context?\n        }\n      };\n      (buttonIcon = theme.getCustomButtonIconClass(customButtonProps)) || (buttonIcon = theme.getIconClass(buttonName, isRtl)) || (buttonText = customButtonProps.text);\n      buttonHint = customButtonProps.hint || customButtonProps.text;\n    } else if (viewSpec = viewSpecs[buttonName]) {\n      viewsWithButtons.push(buttonName);\n      buttonClick = () => {\n        calendarApi.changeView(buttonName);\n      };\n      (buttonText = viewSpec.buttonTextOverride) || (buttonIcon = theme.getIconClass(buttonName, isRtl)) || (buttonText = viewSpec.buttonTextDefault);\n      let textFallback = viewSpec.buttonTextOverride || viewSpec.buttonTextDefault;\n      buttonHint = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.k)(viewSpec.buttonTitleOverride || viewSpec.buttonTitleDefault || calendarOptions.viewHint, [textFallback, buttonName],\n      // view-name = buttonName\n      textFallback);\n    } else if (calendarApi[buttonName]) {\n      // a calendarApi method\n      buttonClick = () => {\n        calendarApi[buttonName]();\n      };\n      (buttonText = calendarButtonTextOverrides[buttonName]) || (buttonIcon = theme.getIconClass(buttonName, isRtl)) || (buttonText = calendarButtonText[buttonName]); // everything else is considered default\n      if (buttonName === 'prevYear' || buttonName === 'nextYear') {\n        let prevOrNext = buttonName === 'prevYear' ? 'prev' : 'next';\n        buttonHint = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.k)(calendarButtonHintOverrides[prevOrNext] || calendarButtonHints[prevOrNext], [calendarButtonText.year || 'year', 'year'], calendarButtonText[buttonName]);\n      } else {\n        buttonHint = navUnit => (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.k)(calendarButtonHintOverrides[buttonName] || calendarButtonHints[buttonName], [calendarButtonText[navUnit] || navUnit, navUnit], calendarButtonText[buttonName]);\n      }\n    }\n    return {\n      buttonName,\n      buttonClick,\n      buttonIcon,\n      buttonText,\n      buttonHint\n    };\n  }));\n  return {\n    widgets,\n    viewsWithButtons,\n    hasTitle\n  };\n}\n\n// always represents the current view. otherwise, it'd need to change value every time date changes\nclass ViewImpl {\n  constructor(type, getCurrentData, dateEnv) {\n    this.type = type;\n    this.getCurrentData = getCurrentData;\n    this.dateEnv = dateEnv;\n  }\n  get calendar() {\n    return this.getCurrentData().calendarApi;\n  }\n  get title() {\n    return this.getCurrentData().viewTitle;\n  }\n  get activeStart() {\n    return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start);\n  }\n  get activeEnd() {\n    return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end);\n  }\n  get currentStart() {\n    return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start);\n  }\n  get currentEnd() {\n    return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end);\n  }\n  getOption(name) {\n    return this.getCurrentData().options[name]; // are the view-specific options\n  }\n}\nlet eventSourceDef$2 = {\n  ignoreRange: true,\n  parseMeta(refined) {\n    if (Array.isArray(refined.events)) {\n      return refined.events;\n    }\n    return null;\n  },\n  fetch(arg, successCallback) {\n    successCallback({\n      rawEvents: arg.eventSource.meta\n    });\n  }\n};\nconst arrayEventSourcePlugin = createPlugin({\n  name: 'array-event-source',\n  eventSourceDefs: [eventSourceDef$2]\n});\nlet eventSourceDef$1 = {\n  parseMeta(refined) {\n    if (typeof refined.events === 'function') {\n      return refined.events;\n    }\n    return null;\n  },\n  fetch(arg, successCallback, errorCallback) {\n    const {\n      dateEnv\n    } = arg.context;\n    const func = arg.eventSource.meta;\n    (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.u)(func.bind(null, (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.l)(arg.range, dateEnv)), rawEvents => successCallback({\n      rawEvents\n    }), errorCallback);\n  }\n};\nconst funcEventSourcePlugin = createPlugin({\n  name: 'func-event-source',\n  eventSourceDefs: [eventSourceDef$1]\n});\nconst JSON_FEED_EVENT_SOURCE_REFINERS = {\n  method: String,\n  extraParams: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.n,\n  startParam: String,\n  endParam: String,\n  timeZoneParam: String\n};\nlet eventSourceDef = {\n  parseMeta(refined) {\n    if (refined.url && (refined.format === 'json' || !refined.format)) {\n      return {\n        url: refined.url,\n        format: 'json',\n        method: (refined.method || 'GET').toUpperCase(),\n        extraParams: refined.extraParams,\n        startParam: refined.startParam,\n        endParam: refined.endParam,\n        timeZoneParam: refined.timeZoneParam\n      };\n    }\n    return null;\n  },\n  fetch(arg, successCallback, errorCallback) {\n    const {\n      meta\n    } = arg.eventSource;\n    const requestParams = buildRequestParams(meta, arg.range, arg.context);\n    (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.r)(meta.method, meta.url, requestParams).then(([rawEvents, response]) => {\n      successCallback({\n        rawEvents,\n        response\n      });\n    }, errorCallback);\n  }\n};\nconst jsonFeedEventSourcePlugin = createPlugin({\n  name: 'json-event-source',\n  eventSourceRefiners: JSON_FEED_EVENT_SOURCE_REFINERS,\n  eventSourceDefs: [eventSourceDef]\n});\nfunction buildRequestParams(meta, range, context) {\n  let {\n    dateEnv,\n    options\n  } = context;\n  let startParam;\n  let endParam;\n  let timeZoneParam;\n  let customRequestParams;\n  let params = {};\n  startParam = meta.startParam;\n  if (startParam == null) {\n    startParam = options.startParam;\n  }\n  endParam = meta.endParam;\n  if (endParam == null) {\n    endParam = options.endParam;\n  }\n  timeZoneParam = meta.timeZoneParam;\n  if (timeZoneParam == null) {\n    timeZoneParam = options.timeZoneParam;\n  }\n  // retrieve any outbound GET/POST data from the options\n  if (typeof meta.extraParams === 'function') {\n    // supplied as a function that returns a key/value object\n    customRequestParams = meta.extraParams();\n  } else {\n    // probably supplied as a straight key/value object\n    customRequestParams = meta.extraParams || {};\n  }\n  Object.assign(params, customRequestParams);\n  params[startParam] = dateEnv.formatIso(range.start);\n  params[endParam] = dateEnv.formatIso(range.end);\n  if (dateEnv.timeZone !== 'local') {\n    params[timeZoneParam] = dateEnv.timeZone;\n  }\n  return params;\n}\nconst SIMPLE_RECURRING_REFINERS = {\n  daysOfWeek: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.n,\n  startTime: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.d,\n  endTime: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.d,\n  duration: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.d,\n  startRecur: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.n,\n  endRecur: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.n\n};\nlet recurring = {\n  parse(refined, dateEnv) {\n    if (refined.daysOfWeek || refined.startTime || refined.endTime || refined.startRecur || refined.endRecur) {\n      let recurringData = {\n        daysOfWeek: refined.daysOfWeek || null,\n        startTime: refined.startTime || null,\n        endTime: refined.endTime || null,\n        startRecur: refined.startRecur ? dateEnv.createMarker(refined.startRecur) : null,\n        endRecur: refined.endRecur ? dateEnv.createMarker(refined.endRecur) : null,\n        dateEnv\n      };\n      let duration;\n      if (refined.duration) {\n        duration = refined.duration;\n      }\n      if (!duration && refined.startTime && refined.endTime) {\n        duration = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.s)(refined.endTime, refined.startTime);\n      }\n      return {\n        allDayGuess: Boolean(!refined.startTime && !refined.endTime),\n        duration,\n        typeData: recurringData // doesn't need endTime anymore but oh well\n      };\n    }\n    return null;\n  },\n  expand(typeData, framingRange, dateEnv) {\n    let clippedFramingRange = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.o)(framingRange, {\n      start: typeData.startRecur,\n      end: typeData.endRecur\n    });\n    if (clippedFramingRange) {\n      return expandRanges(typeData.daysOfWeek, typeData.startTime, typeData.dateEnv, dateEnv, clippedFramingRange);\n    }\n    return [];\n  }\n};\nconst simpleRecurringEventsPlugin = createPlugin({\n  name: 'simple-recurring-event',\n  recurringTypes: [recurring],\n  eventRefiners: SIMPLE_RECURRING_REFINERS\n});\nfunction expandRanges(daysOfWeek, startTime, eventDateEnv, calendarDateEnv, framingRange) {\n  let dowHash = daysOfWeek ? (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.f)(daysOfWeek) : null;\n  let dayMarker = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.q)(framingRange.start);\n  let endMarker = framingRange.end;\n  let instanceStarts = [];\n  while (dayMarker < endMarker) {\n    let instanceStart;\n    // if everyday, or this particular day-of-week\n    if (!dowHash || dowHash[dayMarker.getUTCDay()]) {\n      if (startTime) {\n        instanceStart = calendarDateEnv.add(dayMarker, startTime);\n      } else {\n        instanceStart = dayMarker;\n      }\n      instanceStarts.push(calendarDateEnv.createMarker(eventDateEnv.toDate(instanceStart)));\n    }\n    dayMarker = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.t)(dayMarker, 1);\n  }\n  return instanceStarts;\n}\nconst changeHandlerPlugin = createPlugin({\n  name: 'change-handler',\n  optionChangeHandlers: {\n    events(events, context) {\n      handleEventSources([events], context);\n    },\n    eventSources: handleEventSources\n  }\n});\n/*\nBUG: if `event` was supplied, all previously-given `eventSources` will be wiped out\n*/\nfunction handleEventSources(inputs, context) {\n  let unfoundSources = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.v)(context.getCurrentData().eventSources);\n  if (unfoundSources.length === 1 && inputs.length === 1 && Array.isArray(unfoundSources[0]._raw) && Array.isArray(inputs[0])) {\n    context.dispatch({\n      type: 'RESET_RAW_EVENTS',\n      sourceId: unfoundSources[0].sourceId,\n      rawEvents: inputs[0]\n    });\n    return;\n  }\n  let newInputs = [];\n  for (let input of inputs) {\n    let inputFound = false;\n    for (let i = 0; i < unfoundSources.length; i += 1) {\n      if (unfoundSources[i]._raw === input) {\n        unfoundSources.splice(i, 1); // delete\n        inputFound = true;\n        break;\n      }\n    }\n    if (!inputFound) {\n      newInputs.push(input);\n    }\n  }\n  for (let unfoundSource of unfoundSources) {\n    context.dispatch({\n      type: 'REMOVE_EVENT_SOURCE',\n      sourceId: unfoundSource.sourceId\n    });\n  }\n  for (let newInput of newInputs) {\n    context.calendarApi.addEventSource(newInput);\n  }\n}\nfunction handleDateProfile(dateProfile, context) {\n  context.emitter.trigger('datesSet', Object.assign(Object.assign({}, (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.l)(dateProfile.activeRange, context.dateEnv)), {\n    view: context.viewApi\n  }));\n}\nfunction handleEventStore(eventStore, context) {\n  let {\n    emitter\n  } = context;\n  if (emitter.hasHandlers('eventsSet')) {\n    emitter.trigger('eventsSet', (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.w)(eventStore, context));\n  }\n}\n\n/*\nthis array is exposed on the root namespace so that UMD plugins can add to it.\nsee the rollup-bundles script.\n*/\nconst globalPlugins = [arrayEventSourcePlugin, funcEventSourcePlugin, jsonFeedEventSourcePlugin, simpleRecurringEventsPlugin, changeHandlerPlugin, createPlugin({\n  name: 'misc',\n  isLoadingFuncs: [state => computeEventSourcesLoading(state.eventSources)],\n  propSetHandlers: {\n    dateProfile: handleDateProfile,\n    eventStore: handleEventStore\n  }\n})];\nclass TaskRunner {\n  constructor(runTaskOption, drainedOption) {\n    this.runTaskOption = runTaskOption;\n    this.drainedOption = drainedOption;\n    this.queue = [];\n    this.delayedRunner = new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.D(this.drain.bind(this));\n  }\n  request(task, delay) {\n    this.queue.push(task);\n    this.delayedRunner.request(delay);\n  }\n  pause(scope) {\n    this.delayedRunner.pause(scope);\n  }\n  resume(scope, force) {\n    this.delayedRunner.resume(scope, force);\n  }\n  drain() {\n    let {\n      queue\n    } = this;\n    while (queue.length) {\n      let completedTasks = [];\n      let task;\n      while (task = queue.shift()) {\n        this.runTask(task);\n        completedTasks.push(task);\n      }\n      this.drained(completedTasks);\n    } // keep going, in case new tasks were added in the drained handler\n  }\n  runTask(task) {\n    if (this.runTaskOption) {\n      this.runTaskOption(task);\n    }\n  }\n  drained(completedTasks) {\n    if (this.drainedOption) {\n      this.drainedOption(completedTasks);\n    }\n  }\n}\n\n// Computes what the title at the top of the calendarApi should be for this view\nfunction buildTitle(dateProfile, viewOptions, dateEnv) {\n  let range;\n  // for views that span a large unit of time, show the proper interval, ignoring stray days before and after\n  if (/^(year|month)$/.test(dateProfile.currentRangeUnit)) {\n    range = dateProfile.currentRange;\n  } else {\n    // for day units or smaller, use the actual day range\n    range = dateProfile.activeRange;\n  }\n  return dateEnv.formatRange(range.start, range.end, (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.x)(viewOptions.titleFormat || buildTitleFormat(dateProfile)), {\n    isEndExclusive: dateProfile.isRangeAllDay,\n    defaultSeparator: viewOptions.titleRangeSeparator\n  });\n}\n// Generates the format string that should be used to generate the title for the current date range.\n// Attempts to compute the most appropriate format if not explicitly specified with `titleFormat`.\nfunction buildTitleFormat(dateProfile) {\n  let {\n    currentRangeUnit\n  } = dateProfile;\n  if (currentRangeUnit === 'year') {\n    return {\n      year: 'numeric'\n    };\n  }\n  if (currentRangeUnit === 'month') {\n    return {\n      year: 'numeric',\n      month: 'long'\n    }; // like \"September 2014\"\n  }\n  let days = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.y)(dateProfile.currentRange.start, dateProfile.currentRange.end);\n  if (days !== null && days > 1) {\n    // multi-day range. shorter, like \"Sep 9 - 10 2014\"\n    return {\n      year: 'numeric',\n      month: 'short',\n      day: 'numeric'\n    };\n  }\n  // one day. longer, like \"September 9 2014\"\n  return {\n    year: 'numeric',\n    month: 'long',\n    day: 'numeric'\n  };\n}\n\n/*\nTODO: test switching timezones when NO timezone plugin\n*/\nclass CalendarNowManager {\n  constructor() {\n    this.resetListeners = new Set();\n  }\n  handleInput(dateEnv,\n  // will change if timezone setup changed\n  nowInput) {\n    const oldDateEnv = this.dateEnv;\n    if (dateEnv !== oldDateEnv) {\n      if (typeof nowInput === 'function') {\n        this.nowFn = nowInput;\n      } else if (!oldDateEnv) {\n        // first time?\n        this.nowAnchorDate = dateEnv.toDate(nowInput ? dateEnv.createMarker(nowInput) : dateEnv.createNowMarker());\n        this.nowAnchorQueried = Date.now();\n      }\n      this.dateEnv = dateEnv;\n      // not first time? fire reset handlers\n      if (oldDateEnv) {\n        for (const resetListener of this.resetListeners.values()) {\n          resetListener();\n        }\n      }\n    }\n  }\n  getDateMarker() {\n    return this.nowAnchorDate ? this.dateEnv.timestampToMarker(this.nowAnchorDate.valueOf() + (Date.now() - this.nowAnchorQueried)) : this.dateEnv.createMarker(this.nowFn());\n  }\n  addResetListener(handler) {\n    this.resetListeners.add(handler);\n  }\n  removeResetListener(handler) {\n    this.resetListeners.delete(handler);\n  }\n}\n\n// in future refactor, do the redux-style function(state=initial) for initial-state\n// also, whatever is happening in constructor, have it happen in action queue too\nclass CalendarDataManager {\n  constructor(props) {\n    this.computeCurrentViewData = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.z)(this._computeCurrentViewData);\n    this.organizeRawLocales = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.z)(organizeRawLocales);\n    this.buildLocale = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.z)(buildLocale);\n    this.buildPluginHooks = buildBuildPluginHooks();\n    this.buildDateEnv = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.z)(buildDateEnv$1);\n    this.buildTheme = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.z)(buildTheme);\n    this.parseToolbars = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.z)(parseToolbars);\n    this.buildViewSpecs = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.z)(buildViewSpecs);\n    this.buildDateProfileGenerator = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.A)(buildDateProfileGenerator);\n    this.buildViewApi = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.z)(buildViewApi);\n    this.buildViewUiProps = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.A)(buildViewUiProps);\n    this.buildEventUiBySource = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.z)(buildEventUiBySource, _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.E);\n    this.buildEventUiBases = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.z)(buildEventUiBases);\n    this.parseContextBusinessHours = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.A)(parseContextBusinessHours);\n    this.buildTitle = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.z)(buildTitle);\n    this.nowManager = new CalendarNowManager();\n    this.emitter = new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.F();\n    this.actionRunner = new TaskRunner(this._handleAction.bind(this), this.updateData.bind(this));\n    this.currentCalendarOptionsInput = {};\n    this.currentCalendarOptionsRefined = {};\n    this.currentViewOptionsInput = {};\n    this.currentViewOptionsRefined = {};\n    this.currentCalendarOptionsRefiners = {};\n    this.optionsForRefining = [];\n    this.optionsForHandling = [];\n    this.getCurrentData = () => this.data;\n    this.dispatch = action => {\n      this.actionRunner.request(action); // protects against recursive calls to _handleAction\n    };\n    this.props = props;\n    this.actionRunner.pause();\n    this.nowManager = new CalendarNowManager();\n    let dynamicOptionOverrides = {};\n    let optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n    let currentViewType = optionsData.calendarOptions.initialView || optionsData.pluginHooks.initialView;\n    let currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides);\n    // wire things up\n    // TODO: not DRY\n    props.calendarApi.currentDataManager = this;\n    this.emitter.setThisContext(props.calendarApi);\n    this.emitter.setOptions(currentViewData.options);\n    let calendarContext = {\n      nowManager: this.nowManager,\n      dateEnv: optionsData.dateEnv,\n      options: optionsData.calendarOptions,\n      pluginHooks: optionsData.pluginHooks,\n      calendarApi: props.calendarApi,\n      dispatch: this.dispatch,\n      emitter: this.emitter,\n      getCurrentData: this.getCurrentData\n    };\n    let currentDate = getInitialDate(optionsData.calendarOptions, optionsData.dateEnv, this.nowManager);\n    let dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n    if (!(0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.G)(dateProfile.activeRange, currentDate)) {\n      currentDate = dateProfile.currentRange.start;\n    }\n    // needs to be after setThisContext\n    for (let callback of optionsData.pluginHooks.contextInit) {\n      callback(calendarContext);\n    }\n    // NOT DRY\n    let eventSources = initEventSources(optionsData.calendarOptions, dateProfile, calendarContext);\n    let initialState = {\n      dynamicOptionOverrides,\n      currentViewType,\n      currentDate,\n      dateProfile,\n      businessHours: this.parseContextBusinessHours(calendarContext),\n      eventSources,\n      eventUiBases: {},\n      eventStore: (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.H)(),\n      renderableEventStore: (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.H)(),\n      dateSelection: null,\n      eventSelection: '',\n      eventDrag: null,\n      eventResize: null,\n      selectionConfig: this.buildViewUiProps(calendarContext).selectionConfig\n    };\n    let contextAndState = Object.assign(Object.assign({}, calendarContext), initialState);\n    for (let reducer of optionsData.pluginHooks.reducers) {\n      Object.assign(initialState, reducer(null, null, contextAndState));\n    }\n    if (computeIsLoading(initialState, calendarContext)) {\n      this.emitter.trigger('loading', true); // NOT DRY\n    }\n    this.state = initialState;\n    this.updateData();\n    this.actionRunner.resume();\n  }\n  resetOptions(optionOverrides, changedOptionNames) {\n    let {\n      props\n    } = this;\n    if (changedOptionNames === undefined) {\n      props.optionOverrides = optionOverrides;\n    } else {\n      props.optionOverrides = Object.assign(Object.assign({}, props.optionOverrides || {}), optionOverrides);\n      this.optionsForRefining.push(...changedOptionNames);\n    }\n    if (changedOptionNames === undefined || changedOptionNames.length) {\n      this.actionRunner.request({\n        type: 'NOTHING'\n      });\n    }\n  }\n  _handleAction(action) {\n    let {\n      props,\n      state,\n      emitter\n    } = this;\n    let dynamicOptionOverrides = reduceDynamicOptionOverrides(state.dynamicOptionOverrides, action);\n    let optionsData = this.computeOptionsData(props.optionOverrides, dynamicOptionOverrides, props.calendarApi);\n    let currentViewType = reduceViewType(state.currentViewType, action);\n    let currentViewData = this.computeCurrentViewData(currentViewType, optionsData, props.optionOverrides, dynamicOptionOverrides);\n    // wire things up\n    // TODO: not DRY\n    props.calendarApi.currentDataManager = this;\n    emitter.setThisContext(props.calendarApi);\n    emitter.setOptions(currentViewData.options);\n    let calendarContext = {\n      nowManager: this.nowManager,\n      dateEnv: optionsData.dateEnv,\n      options: optionsData.calendarOptions,\n      pluginHooks: optionsData.pluginHooks,\n      calendarApi: props.calendarApi,\n      dispatch: this.dispatch,\n      emitter,\n      getCurrentData: this.getCurrentData\n    };\n    let {\n      currentDate,\n      dateProfile\n    } = state;\n    if (this.data && this.data.dateProfileGenerator !== currentViewData.dateProfileGenerator) {\n      // hack\n      dateProfile = currentViewData.dateProfileGenerator.build(currentDate);\n    }\n    currentDate = reduceCurrentDate(currentDate, action);\n    dateProfile = reduceDateProfile(dateProfile, action, currentDate, currentViewData.dateProfileGenerator);\n    if (action.type === 'PREV' ||\n    // TODO: move this logic into DateProfileGenerator\n    action.type === 'NEXT' ||\n    // \"\n    !(0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.G)(dateProfile.currentRange, currentDate)) {\n      currentDate = dateProfile.currentRange.start;\n    }\n    let eventSources = reduceEventSources(state.eventSources, action, dateProfile, calendarContext);\n    let eventStore = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.I)(state.eventStore, action, eventSources, dateProfile, calendarContext);\n    let isEventsLoading = computeEventSourcesLoading(eventSources); // BAD. also called in this func in computeIsLoading\n    let renderableEventStore = isEventsLoading && !currentViewData.options.progressiveEventRendering ? state.renderableEventStore || eventStore :\n    // try from previous state\n    eventStore;\n    let {\n      eventUiSingleBase,\n      selectionConfig\n    } = this.buildViewUiProps(calendarContext); // will memoize obj\n    let eventUiBySource = this.buildEventUiBySource(eventSources);\n    let eventUiBases = this.buildEventUiBases(renderableEventStore.defs, eventUiSingleBase, eventUiBySource);\n    let newState = {\n      dynamicOptionOverrides,\n      currentViewType,\n      currentDate,\n      dateProfile,\n      eventSources,\n      eventStore,\n      renderableEventStore,\n      selectionConfig,\n      eventUiBases,\n      businessHours: this.parseContextBusinessHours(calendarContext),\n      dateSelection: reduceDateSelection(state.dateSelection, action),\n      eventSelection: reduceSelectedEvent(state.eventSelection, action),\n      eventDrag: reduceEventDrag(state.eventDrag, action),\n      eventResize: reduceEventResize(state.eventResize, action)\n    };\n    let contextAndState = Object.assign(Object.assign({}, calendarContext), newState);\n    for (let reducer of optionsData.pluginHooks.reducers) {\n      Object.assign(newState, reducer(state, action, contextAndState)); // give the OLD state, for old value\n    }\n    let wasLoading = computeIsLoading(state, calendarContext);\n    let isLoading = computeIsLoading(newState, calendarContext);\n    // TODO: use propSetHandlers in plugin system\n    if (!wasLoading && isLoading) {\n      emitter.trigger('loading', true);\n    } else if (wasLoading && !isLoading) {\n      emitter.trigger('loading', false);\n    }\n    this.state = newState;\n    if (props.onAction) {\n      props.onAction(action);\n    }\n  }\n  updateData() {\n    let {\n      props,\n      state\n    } = this;\n    let oldData = this.data;\n    let optionsData = this.computeOptionsData(props.optionOverrides, state.dynamicOptionOverrides, props.calendarApi);\n    let currentViewData = this.computeCurrentViewData(state.currentViewType, optionsData, props.optionOverrides, state.dynamicOptionOverrides);\n    let data = this.data = Object.assign(Object.assign(Object.assign({\n      nowManager: this.nowManager,\n      viewTitle: this.buildTitle(state.dateProfile, currentViewData.options, optionsData.dateEnv),\n      calendarApi: props.calendarApi,\n      dispatch: this.dispatch,\n      emitter: this.emitter,\n      getCurrentData: this.getCurrentData\n    }, optionsData), currentViewData), state);\n    let changeHandlers = optionsData.pluginHooks.optionChangeHandlers;\n    let oldCalendarOptions = oldData && oldData.calendarOptions;\n    let newCalendarOptions = optionsData.calendarOptions;\n    if (oldCalendarOptions && oldCalendarOptions !== newCalendarOptions) {\n      if (oldCalendarOptions.timeZone !== newCalendarOptions.timeZone) {\n        // hack\n        state.eventSources = data.eventSources = reduceEventSourcesNewTimeZone(data.eventSources, state.dateProfile, data);\n        state.eventStore = data.eventStore = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.J)(data.eventStore, oldData.dateEnv, data.dateEnv);\n        state.renderableEventStore = data.renderableEventStore = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.J)(data.renderableEventStore, oldData.dateEnv, data.dateEnv);\n      }\n      for (let optionName in changeHandlers) {\n        if (this.optionsForHandling.indexOf(optionName) !== -1 || oldCalendarOptions[optionName] !== newCalendarOptions[optionName]) {\n          changeHandlers[optionName](newCalendarOptions[optionName], data);\n        }\n      }\n    }\n    this.optionsForHandling = [];\n    if (props.onData) {\n      props.onData(data);\n    }\n  }\n  computeOptionsData(optionOverrides, dynamicOptionOverrides, calendarApi) {\n    // TODO: blacklist options that are handled by optionChangeHandlers\n    if (!this.optionsForRefining.length && optionOverrides === this.stableOptionOverrides && dynamicOptionOverrides === this.stableDynamicOptionOverrides) {\n      return this.stableCalendarOptionsData;\n    }\n    let {\n      refinedOptions,\n      pluginHooks,\n      localeDefaults,\n      availableLocaleData,\n      extra\n    } = this.processRawCalendarOptions(optionOverrides, dynamicOptionOverrides);\n    warnUnknownOptions(extra);\n    let dateEnv = this.buildDateEnv(refinedOptions.timeZone, refinedOptions.locale, refinedOptions.weekNumberCalculation, refinedOptions.firstDay, refinedOptions.weekText, pluginHooks, availableLocaleData, refinedOptions.defaultRangeSeparator);\n    let viewSpecs = this.buildViewSpecs(pluginHooks.views, this.stableOptionOverrides, this.stableDynamicOptionOverrides, localeDefaults);\n    let theme = this.buildTheme(refinedOptions, pluginHooks);\n    let toolbarConfig = this.parseToolbars(refinedOptions, this.stableOptionOverrides, theme, viewSpecs, calendarApi);\n    return this.stableCalendarOptionsData = {\n      calendarOptions: refinedOptions,\n      pluginHooks,\n      dateEnv,\n      viewSpecs,\n      theme,\n      toolbarConfig,\n      localeDefaults,\n      availableRawLocales: availableLocaleData.map\n    };\n  }\n  // always called from behind a memoizer\n  processRawCalendarOptions(optionOverrides, dynamicOptionOverrides) {\n    let {\n      locales,\n      locale\n    } = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.K)([_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.e, optionOverrides, dynamicOptionOverrides]);\n    let availableLocaleData = this.organizeRawLocales(locales);\n    let availableRawLocales = availableLocaleData.map;\n    let localeDefaults = this.buildLocale(locale || availableLocaleData.defaultCode, availableRawLocales).options;\n    let pluginHooks = this.buildPluginHooks(optionOverrides.plugins || [], globalPlugins);\n    let refiners = this.currentCalendarOptionsRefiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.L), _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.M), _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.N), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n    let extra = {};\n    let raw = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.K)([_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.e, localeDefaults, optionOverrides, dynamicOptionOverrides]);\n    let refined = {};\n    let currentRaw = this.currentCalendarOptionsInput;\n    let currentRefined = this.currentCalendarOptionsRefined;\n    let anyChanges = false;\n    for (let optionName in raw) {\n      if (this.optionsForRefining.indexOf(optionName) === -1 && (raw[optionName] === currentRaw[optionName] || _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.O[optionName] && optionName in currentRaw && _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.O[optionName](currentRaw[optionName], raw[optionName]))) {\n        refined[optionName] = currentRefined[optionName];\n      } else if (refiners[optionName]) {\n        refined[optionName] = refiners[optionName](raw[optionName]);\n        anyChanges = true;\n      } else {\n        extra[optionName] = currentRaw[optionName];\n      }\n    }\n    if (anyChanges) {\n      this.currentCalendarOptionsInput = raw;\n      this.currentCalendarOptionsRefined = refined;\n      this.stableOptionOverrides = optionOverrides;\n      this.stableDynamicOptionOverrides = dynamicOptionOverrides;\n    }\n    this.optionsForHandling.push(...this.optionsForRefining);\n    this.optionsForRefining = [];\n    return {\n      rawOptions: this.currentCalendarOptionsInput,\n      refinedOptions: this.currentCalendarOptionsRefined,\n      pluginHooks,\n      availableLocaleData,\n      localeDefaults,\n      extra\n    };\n  }\n  _computeCurrentViewData(viewType, optionsData, optionOverrides, dynamicOptionOverrides) {\n    let viewSpec = optionsData.viewSpecs[viewType];\n    if (!viewSpec) {\n      throw new Error(`viewType \"${viewType}\" is not available. Please make sure you've loaded all neccessary plugins`);\n    }\n    let {\n      refinedOptions,\n      extra\n    } = this.processRawViewOptions(viewSpec, optionsData.pluginHooks, optionsData.localeDefaults, optionOverrides, dynamicOptionOverrides);\n    warnUnknownOptions(extra);\n    this.nowManager.handleInput(optionsData.dateEnv, refinedOptions.now);\n    let dateProfileGenerator = this.buildDateProfileGenerator({\n      dateProfileGeneratorClass: viewSpec.optionDefaults.dateProfileGeneratorClass,\n      nowManager: this.nowManager,\n      duration: viewSpec.duration,\n      durationUnit: viewSpec.durationUnit,\n      usesMinMaxTime: viewSpec.optionDefaults.usesMinMaxTime,\n      dateEnv: optionsData.dateEnv,\n      calendarApi: this.props.calendarApi,\n      slotMinTime: refinedOptions.slotMinTime,\n      slotMaxTime: refinedOptions.slotMaxTime,\n      showNonCurrentDates: refinedOptions.showNonCurrentDates,\n      dayCount: refinedOptions.dayCount,\n      dateAlignment: refinedOptions.dateAlignment,\n      dateIncrement: refinedOptions.dateIncrement,\n      hiddenDays: refinedOptions.hiddenDays,\n      weekends: refinedOptions.weekends,\n      validRangeInput: refinedOptions.validRange,\n      visibleRangeInput: refinedOptions.visibleRange,\n      fixedWeekCount: refinedOptions.fixedWeekCount\n    });\n    let viewApi = this.buildViewApi(viewType, this.getCurrentData, optionsData.dateEnv);\n    return {\n      viewSpec,\n      options: refinedOptions,\n      dateProfileGenerator,\n      viewApi\n    };\n  }\n  processRawViewOptions(viewSpec, pluginHooks, localeDefaults, optionOverrides, dynamicOptionOverrides) {\n    let raw = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.K)([_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.e, viewSpec.optionDefaults, localeDefaults, optionOverrides, viewSpec.optionOverrides, dynamicOptionOverrides]);\n    let refiners = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.L), _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.M), _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.N), _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.P), pluginHooks.listenerRefiners), pluginHooks.optionRefiners);\n    let refined = {};\n    let currentRaw = this.currentViewOptionsInput;\n    let currentRefined = this.currentViewOptionsRefined;\n    let anyChanges = false;\n    let extra = {};\n    for (let optionName in raw) {\n      if (raw[optionName] === currentRaw[optionName] || _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.O[optionName] && _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.O[optionName](raw[optionName], currentRaw[optionName])) {\n        refined[optionName] = currentRefined[optionName];\n      } else {\n        if (raw[optionName] === this.currentCalendarOptionsInput[optionName] || _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.O[optionName] && _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.O[optionName](raw[optionName], this.currentCalendarOptionsInput[optionName])) {\n          if (optionName in this.currentCalendarOptionsRefined) {\n            // might be an \"extra\" prop\n            refined[optionName] = this.currentCalendarOptionsRefined[optionName];\n          }\n        } else if (refiners[optionName]) {\n          refined[optionName] = refiners[optionName](raw[optionName]);\n        } else {\n          extra[optionName] = raw[optionName];\n        }\n        anyChanges = true;\n      }\n    }\n    if (anyChanges) {\n      this.currentViewOptionsInput = raw;\n      this.currentViewOptionsRefined = refined;\n    }\n    return {\n      rawOptions: this.currentViewOptionsInput,\n      refinedOptions: this.currentViewOptionsRefined,\n      extra\n    };\n  }\n}\nfunction buildDateEnv$1(timeZone, explicitLocale, weekNumberCalculation, firstDay, weekText, pluginHooks, availableLocaleData, defaultSeparator) {\n  let locale = buildLocale(explicitLocale || availableLocaleData.defaultCode, availableLocaleData.map);\n  return new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.Q({\n    calendarSystem: 'gregory',\n    timeZone,\n    namedTimeZoneImpl: pluginHooks.namedTimeZonedImpl,\n    locale,\n    weekNumberCalculation,\n    firstDay,\n    weekText,\n    cmdFormatter: pluginHooks.cmdFormatter,\n    defaultSeparator\n  });\n}\nfunction buildTheme(options, pluginHooks) {\n  let ThemeClass = pluginHooks.themeClasses[options.themeSystem] || StandardTheme;\n  return new ThemeClass(options);\n}\nfunction buildDateProfileGenerator(props) {\n  let DateProfileGeneratorClass = props.dateProfileGeneratorClass || _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.R;\n  return new DateProfileGeneratorClass(props);\n}\nfunction buildViewApi(type, getCurrentData, dateEnv) {\n  return new ViewImpl(type, getCurrentData, dateEnv);\n}\nfunction buildEventUiBySource(eventSources) {\n  return (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a)(eventSources, eventSource => eventSource.ui);\n}\nfunction buildEventUiBases(eventDefs, eventUiSingleBase, eventUiBySource) {\n  let eventUiBases = {\n    '': eventUiSingleBase\n  };\n  for (let defId in eventDefs) {\n    let def = eventDefs[defId];\n    if (def.sourceId && eventUiBySource[def.sourceId]) {\n      eventUiBases[defId] = eventUiBySource[def.sourceId];\n    }\n  }\n  return eventUiBases;\n}\nfunction buildViewUiProps(calendarContext) {\n  let {\n    options\n  } = calendarContext;\n  return {\n    eventUiSingleBase: (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.S)({\n      display: options.eventDisplay,\n      editable: options.editable,\n      startEditable: options.eventStartEditable,\n      durationEditable: options.eventDurationEditable,\n      constraint: options.eventConstraint,\n      overlap: typeof options.eventOverlap === 'boolean' ? options.eventOverlap : undefined,\n      allow: options.eventAllow,\n      backgroundColor: options.eventBackgroundColor,\n      borderColor: options.eventBorderColor,\n      textColor: options.eventTextColor,\n      color: options.eventColor\n      // classNames: options.eventClassNames // render hook will handle this\n    }, calendarContext),\n    selectionConfig: (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.S)({\n      constraint: options.selectConstraint,\n      overlap: typeof options.selectOverlap === 'boolean' ? options.selectOverlap : undefined,\n      allow: options.selectAllow\n    }, calendarContext)\n  };\n}\nfunction computeIsLoading(state, context) {\n  for (let isLoadingFunc of context.pluginHooks.isLoadingFuncs) {\n    if (isLoadingFunc(state)) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction parseContextBusinessHours(calendarContext) {\n  return (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.U)(calendarContext.options.businessHours, calendarContext);\n}\nfunction warnUnknownOptions(options, viewName) {\n  for (let optionName in options) {\n    console.warn(`Unknown option '${optionName}'` + (viewName ? ` for view '${viewName}'` : ''));\n  }\n}\nclass ToolbarSection extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  render() {\n    let children = this.props.widgetGroups.map(widgetGroup => this.renderWidgetGroup(widgetGroup));\n    return (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', {\n      className: 'fc-toolbar-chunk'\n    }, ...children);\n  }\n  renderWidgetGroup(widgetGroup) {\n    let {\n      props\n    } = this;\n    let {\n      theme\n    } = this.context;\n    let children = [];\n    let isOnlyButtons = true;\n    for (let widget of widgetGroup) {\n      let {\n        buttonName,\n        buttonClick,\n        buttonText,\n        buttonIcon,\n        buttonHint\n      } = widget;\n      if (buttonName === 'title') {\n        isOnlyButtons = false;\n        children.push((0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"h2\", {\n          className: \"fc-toolbar-title\",\n          id: props.titleId\n        }, props.title));\n      } else {\n        let isPressed = buttonName === props.activeButton;\n        let isDisabled = !props.isTodayEnabled && buttonName === 'today' || !props.isPrevEnabled && buttonName === 'prev' || !props.isNextEnabled && buttonName === 'next';\n        let buttonClasses = [`fc-${buttonName}-button`, theme.getClass('button')];\n        if (isPressed) {\n          buttonClasses.push(theme.getClass('buttonActive'));\n        }\n        children.push((0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"button\", {\n          type: \"button\",\n          title: typeof buttonHint === 'function' ? buttonHint(props.navUnit) : buttonHint,\n          disabled: isDisabled,\n          \"aria-pressed\": isPressed,\n          className: buttonClasses.join(' '),\n          onClick: buttonClick\n        }, buttonText || (buttonIcon ? (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"span\", {\n          className: buttonIcon,\n          role: \"img\"\n        }) : '')));\n      }\n    }\n    if (children.length > 1) {\n      let groupClassName = isOnlyButtons && theme.getClass('buttonGroup') || '';\n      return (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)('div', {\n        className: groupClassName\n      }, ...children);\n    }\n    return children[0];\n  }\n}\nclass Toolbar extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  render() {\n    let {\n      model,\n      extraClassName\n    } = this.props;\n    let forceLtr = false;\n    let startContent;\n    let endContent;\n    let sectionWidgets = model.sectionWidgets;\n    let centerContent = sectionWidgets.center;\n    if (sectionWidgets.left) {\n      forceLtr = true;\n      startContent = sectionWidgets.left;\n    } else {\n      startContent = sectionWidgets.start;\n    }\n    if (sectionWidgets.right) {\n      forceLtr = true;\n      endContent = sectionWidgets.right;\n    } else {\n      endContent = sectionWidgets.end;\n    }\n    let classNames = [extraClassName || '', 'fc-toolbar', forceLtr ? 'fc-toolbar-ltr' : ''];\n    return (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: classNames.join(' ')\n    }, this.renderSection('start', startContent || []), this.renderSection('center', centerContent || []), this.renderSection('end', endContent || []));\n  }\n  renderSection(key, widgetGroups) {\n    let {\n      props\n    } = this;\n    return (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(ToolbarSection, {\n      key: key,\n      widgetGroups: widgetGroups,\n      title: props.title,\n      navUnit: props.navUnit,\n      activeButton: props.activeButton,\n      isTodayEnabled: props.isTodayEnabled,\n      isPrevEnabled: props.isPrevEnabled,\n      isNextEnabled: props.isNextEnabled,\n      titleId: props.titleId\n    });\n  }\n}\nclass ViewHarness extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  constructor() {\n    super(...arguments);\n    this.state = {\n      availableWidth: null\n    };\n    this.handleEl = el => {\n      this.el = el;\n      (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.W)(this.props.elRef, el);\n      this.updateAvailableWidth();\n    };\n    this.handleResize = () => {\n      this.updateAvailableWidth();\n    };\n  }\n  render() {\n    let {\n      props,\n      state\n    } = this;\n    let {\n      aspectRatio\n    } = props;\n    let classNames = ['fc-view-harness', aspectRatio || props.liquid || props.height ? 'fc-view-harness-active' // harness controls the height\n    : 'fc-view-harness-passive' // let the view do the height\n    ];\n    let height = '';\n    let paddingBottom = '';\n    if (aspectRatio) {\n      if (state.availableWidth !== null) {\n        height = state.availableWidth / aspectRatio;\n      } else {\n        // while waiting to know availableWidth, we can't set height to *zero*\n        // because will cause lots of unnecessary scrollbars within scrollgrid.\n        // BETTER: don't start rendering ANYTHING yet until we know container width\n        // NOTE: why not always use paddingBottom? Causes height oscillation (issue 5606)\n        paddingBottom = `${1 / aspectRatio * 100}%`;\n      }\n    } else {\n      height = props.height || '';\n    }\n    return (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      \"aria-labelledby\": props.labeledById,\n      ref: this.handleEl,\n      className: classNames.join(' '),\n      style: {\n        height,\n        paddingBottom\n      }\n    }, props.children);\n  }\n  componentDidMount() {\n    this.context.addResizeHandler(this.handleResize);\n  }\n  componentWillUnmount() {\n    this.context.removeResizeHandler(this.handleResize);\n  }\n  updateAvailableWidth() {\n    if (this.el &&\n    // needed. but why?\n    this.props.aspectRatio // aspectRatio is the only height setting that needs availableWidth\n    ) {\n      this.setState({\n        availableWidth: this.el.offsetWidth\n      });\n    }\n  }\n}\n\n/*\nDetects when the user clicks on an event within a DateComponent\n*/\nclass EventClicking extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.X {\n  constructor(settings) {\n    super(settings);\n    this.handleSegClick = (ev, segEl) => {\n      let {\n        component\n      } = this;\n      let {\n        context\n      } = component;\n      let seg = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.Y)(segEl);\n      if (seg &&\n      // might be the <div> surrounding the more link\n      component.isValidSegDownEl(ev.target)) {\n        // our way to simulate a link click for elements that can't be <a> tags\n        // grab before trigger fired in case trigger trashes DOM thru rerendering\n        let hasUrlContainer = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.Z)(ev.target, '.fc-event-forced-url');\n        let url = hasUrlContainer ? hasUrlContainer.querySelector('a[href]').href : '';\n        context.emitter.trigger('eventClick', {\n          el: segEl,\n          event: new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__._(component.context, seg.eventRange.def, seg.eventRange.instance),\n          jsEvent: ev,\n          view: context.viewApi\n        });\n        if (url && !ev.defaultPrevented) {\n          window.location.href = url;\n        }\n      }\n    };\n    this.destroy = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.$)(settings.el, 'click', '.fc-event',\n    // on both fg and bg events\n    this.handleSegClick);\n  }\n}\n\n/*\nTriggers events and adds/removes core classNames when the user's pointer\nenters/leaves event-elements of a component.\n*/\nclass EventHovering extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.X {\n  constructor(settings) {\n    super(settings);\n    // for simulating an eventMouseLeave when the event el is destroyed while mouse is over it\n    this.handleEventElRemove = el => {\n      if (el === this.currentSegEl) {\n        this.handleSegLeave(null, this.currentSegEl);\n      }\n    };\n    this.handleSegEnter = (ev, segEl) => {\n      if ((0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.Y)(segEl)) {\n        // TODO: better way to make sure not hovering over more+ link or its wrapper\n        this.currentSegEl = segEl;\n        this.triggerEvent('eventMouseEnter', ev, segEl);\n      }\n    };\n    this.handleSegLeave = (ev, segEl) => {\n      if (this.currentSegEl) {\n        this.currentSegEl = null;\n        this.triggerEvent('eventMouseLeave', ev, segEl);\n      }\n    };\n    this.removeHoverListeners = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a0)(settings.el, '.fc-event',\n    // on both fg and bg events\n    this.handleSegEnter, this.handleSegLeave);\n  }\n  destroy() {\n    this.removeHoverListeners();\n  }\n  triggerEvent(publicEvName, ev, segEl) {\n    let {\n      component\n    } = this;\n    let {\n      context\n    } = component;\n    let seg = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.Y)(segEl);\n    if (!ev || component.isValidSegDownEl(ev.target)) {\n      context.emitter.trigger(publicEvName, {\n        el: segEl,\n        event: new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__._(context, seg.eventRange.def, seg.eventRange.instance),\n        jsEvent: ev,\n        view: context.viewApi\n      });\n    }\n  }\n}\nclass CalendarContent extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a1 {\n  constructor() {\n    super(...arguments);\n    this.buildViewContext = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.z)(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a2);\n    this.buildViewPropTransformers = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.z)(buildViewPropTransformers);\n    this.buildToolbarProps = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.z)(buildToolbarProps);\n    this.headerRef = (0,preact__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n    this.footerRef = (0,preact__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n    this.interactionsStore = {};\n    // eslint-disable-next-line\n    this.state = {\n      viewLabelId: (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a3)()\n    };\n    // Component Registration\n    // -----------------------------------------------------------------------------------------------------------------\n    this.registerInteractiveComponent = (component, settingsInput) => {\n      let settings = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a4)(component, settingsInput);\n      let DEFAULT_INTERACTIONS = [EventClicking, EventHovering];\n      let interactionClasses = DEFAULT_INTERACTIONS.concat(this.props.pluginHooks.componentInteractions);\n      let interactions = interactionClasses.map(TheInteractionClass => new TheInteractionClass(settings));\n      this.interactionsStore[component.uid] = interactions;\n      _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a5[component.uid] = settings;\n    };\n    this.unregisterInteractiveComponent = component => {\n      let listeners = this.interactionsStore[component.uid];\n      if (listeners) {\n        for (let listener of listeners) {\n          listener.destroy();\n        }\n        delete this.interactionsStore[component.uid];\n      }\n      delete _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a5[component.uid];\n    };\n    // Resizing\n    // -----------------------------------------------------------------------------------------------------------------\n    this.resizeRunner = new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.D(() => {\n      this.props.emitter.trigger('_resize', true); // should window resizes be considered \"forced\" ?\n      this.props.emitter.trigger('windowResize', {\n        view: this.props.viewApi\n      });\n    });\n    this.handleWindowResize = ev => {\n      let {\n        options\n      } = this.props;\n      if (options.handleWindowResize && ev.target === window // avoid jqui events\n      ) {\n        this.resizeRunner.request(options.windowResizeDelay);\n      }\n    };\n  }\n  /*\n  renders INSIDE of an outer div\n  */\n  render() {\n    let {\n      props\n    } = this;\n    let {\n      toolbarConfig,\n      options\n    } = props;\n    let viewVGrow = false;\n    let viewHeight = '';\n    let viewAspectRatio;\n    if (props.isHeightAuto || props.forPrint) {\n      viewHeight = '';\n    } else if (options.height != null) {\n      viewVGrow = true;\n    } else if (options.contentHeight != null) {\n      viewHeight = options.contentHeight;\n    } else {\n      viewAspectRatio = Math.max(options.aspectRatio, 0.5); // prevent from getting too tall\n    }\n    let viewContext = this.buildViewContext(props.viewSpec, props.viewApi, props.options, props.dateProfileGenerator, props.dateEnv, props.nowManager, props.theme, props.pluginHooks, props.dispatch, props.getCurrentData, props.emitter, props.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent);\n    let viewLabelId = toolbarConfig.header && toolbarConfig.header.hasTitle ? this.state.viewLabelId : undefined;\n    return (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.V.Provider, {\n      value: viewContext\n    }, (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a6, {\n      unit: \"day\"\n    }, nowDate => {\n      let toolbarProps = this.buildToolbarProps(props.viewSpec, props.dateProfile, props.dateProfileGenerator, props.currentDate, nowDate, props.viewTitle);\n      return (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(preact__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, toolbarConfig.header && (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(Toolbar, Object.assign({\n        ref: this.headerRef,\n        extraClassName: \"fc-header-toolbar\",\n        model: toolbarConfig.header,\n        titleId: viewLabelId\n      }, toolbarProps)), (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(ViewHarness, {\n        liquid: viewVGrow,\n        height: viewHeight,\n        aspectRatio: viewAspectRatio,\n        labeledById: viewLabelId\n      }, this.renderView(props), this.buildAppendContent()), toolbarConfig.footer && (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(Toolbar, Object.assign({\n        ref: this.footerRef,\n        extraClassName: \"fc-footer-toolbar\",\n        model: toolbarConfig.footer,\n        titleId: \"\"\n      }, toolbarProps)));\n    }));\n  }\n  componentDidMount() {\n    let {\n      props\n    } = this;\n    this.calendarInteractions = props.pluginHooks.calendarInteractions.map(CalendarInteractionClass => new CalendarInteractionClass(props));\n    window.addEventListener('resize', this.handleWindowResize);\n    let {\n      propSetHandlers\n    } = props.pluginHooks;\n    for (let propName in propSetHandlers) {\n      propSetHandlers[propName](props[propName], props);\n    }\n  }\n  componentDidUpdate(prevProps) {\n    let {\n      props\n    } = this;\n    let {\n      propSetHandlers\n    } = props.pluginHooks;\n    for (let propName in propSetHandlers) {\n      if (props[propName] !== prevProps[propName]) {\n        propSetHandlers[propName](props[propName], props);\n      }\n    }\n  }\n  componentWillUnmount() {\n    window.removeEventListener('resize', this.handleWindowResize);\n    this.resizeRunner.clear();\n    for (let interaction of this.calendarInteractions) {\n      interaction.destroy();\n    }\n    this.props.emitter.trigger('_unmount');\n  }\n  buildAppendContent() {\n    let {\n      props\n    } = this;\n    let children = props.pluginHooks.viewContainerAppends.map(buildAppendContent => buildAppendContent(props));\n    return (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(preact__WEBPACK_IMPORTED_MODULE_1__.Fragment, {}, ...children);\n  }\n  renderView(props) {\n    let {\n      pluginHooks\n    } = props;\n    let {\n      viewSpec\n    } = props;\n    let viewProps = {\n      dateProfile: props.dateProfile,\n      businessHours: props.businessHours,\n      eventStore: props.renderableEventStore,\n      eventUiBases: props.eventUiBases,\n      dateSelection: props.dateSelection,\n      eventSelection: props.eventSelection,\n      eventDrag: props.eventDrag,\n      eventResize: props.eventResize,\n      isHeightAuto: props.isHeightAuto,\n      forPrint: props.forPrint\n    };\n    let transformers = this.buildViewPropTransformers(pluginHooks.viewPropsTransformers);\n    for (let transformer of transformers) {\n      Object.assign(viewProps, transformer.transform(viewProps, props));\n    }\n    let ViewComponent = viewSpec.component;\n    return (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(ViewComponent, Object.assign({}, viewProps));\n  }\n}\nfunction buildToolbarProps(viewSpec, dateProfile, dateProfileGenerator, currentDate, now, title) {\n  // don't force any date-profiles to valid date profiles (the `false`) so that we can tell if it's invalid\n  let todayInfo = dateProfileGenerator.build(now, undefined, false); // TODO: need `undefined` or else INFINITE LOOP for some reason\n  let prevInfo = dateProfileGenerator.buildPrev(dateProfile, currentDate, false);\n  let nextInfo = dateProfileGenerator.buildNext(dateProfile, currentDate, false);\n  return {\n    title,\n    activeButton: viewSpec.type,\n    navUnit: viewSpec.singleUnit,\n    isTodayEnabled: todayInfo.isValid && !(0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.G)(dateProfile.currentRange, now),\n    isPrevEnabled: prevInfo.isValid,\n    isNextEnabled: nextInfo.isValid\n  };\n}\n// Plugin\n// -----------------------------------------------------------------------------------------------------------------\nfunction buildViewPropTransformers(theClasses) {\n  return theClasses.map(TheClass => new TheClass());\n}\nclass Calendar extends _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a7 {\n  constructor(el, optionOverrides = {}) {\n    super();\n    this.isRendering = false;\n    this.isRendered = false;\n    this.currentClassNames = [];\n    this.customContentRenderId = 0;\n    this.handleAction = action => {\n      // actions we know we want to render immediately\n      switch (action.type) {\n        case 'SET_EVENT_DRAG':\n        case 'SET_EVENT_RESIZE':\n          this.renderRunner.tryDrain();\n      }\n    };\n    this.handleData = data => {\n      this.currentData = data;\n      this.renderRunner.request(data.calendarOptions.rerenderDelay);\n    };\n    this.handleRenderRequest = () => {\n      if (this.isRendering) {\n        this.isRendered = true;\n        let {\n          currentData\n        } = this;\n        (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a8)(() => {\n          (0,preact__WEBPACK_IMPORTED_MODULE_1__.render)((0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a9, {\n            options: currentData.calendarOptions,\n            theme: currentData.theme,\n            emitter: currentData.emitter\n          }, (classNames, height, isHeightAuto, forPrint) => {\n            this.setClassNames(classNames);\n            this.setHeight(height);\n            return (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.aa.Provider, {\n              value: this.customContentRenderId\n            }, (0,preact__WEBPACK_IMPORTED_MODULE_1__.createElement)(CalendarContent, Object.assign({\n              isHeightAuto: isHeightAuto,\n              forPrint: forPrint\n            }, currentData)));\n          }), this.el);\n        });\n      } else if (this.isRendered) {\n        this.isRendered = false;\n        (0,preact__WEBPACK_IMPORTED_MODULE_1__.render)(null, this.el);\n        this.setClassNames([]);\n        this.setHeight('');\n      }\n    };\n    (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.ab)(el);\n    this.el = el;\n    this.renderRunner = new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.D(this.handleRenderRequest);\n    new CalendarDataManager({\n      optionOverrides,\n      calendarApi: this,\n      onAction: this.handleAction,\n      onData: this.handleData\n    });\n  }\n  render() {\n    let wasRendering = this.isRendering;\n    if (!wasRendering) {\n      this.isRendering = true;\n    } else {\n      this.customContentRenderId += 1;\n    }\n    this.renderRunner.request();\n    if (wasRendering) {\n      this.updateSize();\n    }\n  }\n  destroy() {\n    if (this.isRendering) {\n      this.isRendering = false;\n      this.renderRunner.request();\n    }\n  }\n  updateSize() {\n    (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.a8)(() => {\n      super.updateSize();\n    });\n  }\n  batchRendering(func) {\n    this.renderRunner.pause('batchRendering');\n    func();\n    this.renderRunner.resume('batchRendering');\n  }\n  pauseRendering() {\n    this.renderRunner.pause('pauseRendering');\n  }\n  resumeRendering() {\n    this.renderRunner.resume('pauseRendering', true);\n  }\n  resetOptions(optionOverrides, changedOptionNames) {\n    this.currentDataManager.resetOptions(optionOverrides, changedOptionNames);\n  }\n  setClassNames(classNames) {\n    if (!(0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.i)(classNames, this.currentClassNames)) {\n      let {\n        classList\n      } = this.el;\n      for (let className of this.currentClassNames) {\n        classList.remove(className);\n      }\n      for (let className of classNames) {\n        classList.add(className);\n      }\n      this.currentClassNames = classNames;\n    }\n  }\n  setHeight(height) {\n    (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.ac)(this.el, 'height', height);\n  }\n}\nfunction formatDate(dateInput, options = {}) {\n  let dateEnv = buildDateEnv(options);\n  let formatter = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.x)(options);\n  let dateMeta = dateEnv.createMarkerMeta(dateInput);\n  if (!dateMeta) {\n    // TODO: warning?\n    return '';\n  }\n  return dateEnv.format(dateMeta.marker, formatter, {\n    forcedTzo: dateMeta.forcedTzo\n  });\n}\nfunction formatRange(startInput, endInput, options) {\n  let dateEnv = buildDateEnv(typeof options === 'object' && options ? options : {}); // pass in if non-null object\n  let formatter = (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.x)(options);\n  let startMeta = dateEnv.createMarkerMeta(startInput);\n  let endMeta = dateEnv.createMarkerMeta(endInput);\n  if (!startMeta || !endMeta) {\n    // TODO: warning?\n    return '';\n  }\n  return dateEnv.formatRange(startMeta.marker, endMeta.marker, formatter, {\n    forcedStartTzo: startMeta.forcedTzo,\n    forcedEndTzo: endMeta.forcedTzo,\n    isEndExclusive: options.isEndExclusive,\n    defaultSeparator: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.e.defaultRangeSeparator\n  });\n}\n// TODO: more DRY and optimized\nfunction buildDateEnv(settings) {\n  let locale = buildLocale(settings.locale || 'en', organizeRawLocales([]).map); // TODO: don't hardcode 'en' everywhere\n  return new _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.Q(Object.assign(Object.assign({\n    timeZone: _internal_common_js__WEBPACK_IMPORTED_MODULE_0__.e.timeZone,\n    calendarSystem: 'gregory'\n  }, settings), {\n    locale\n  }));\n}\n\n// HELPERS\n/*\nif nextDayThreshold is specified, slicing is done in an all-day fashion.\nyou can get nextDayThreshold from context.nextDayThreshold\n*/\nfunction sliceEvents(props, allDay) {\n  return (0,_internal_common_js__WEBPACK_IMPORTED_MODULE_0__.ad)(props.eventStore, props.eventUiBases, props.dateProfile.activeRange, allDay ? props.nextDayThreshold : null).fg;\n}\nconst version = '6.1.18';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/core/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/core/internal-common.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/core/internal-common.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   $: () => (/* binding */ listenBySelector),\n/* harmony export */   A: () => (/* binding */ memoizeObjArg),\n/* harmony export */   B: () => (/* binding */ BaseComponent),\n/* harmony export */   C: () => (/* binding */ ContentContainer),\n/* harmony export */   D: () => (/* binding */ DelayedRunner),\n/* harmony export */   E: () => (/* binding */ isPropsEqual),\n/* harmony export */   F: () => (/* binding */ Emitter),\n/* harmony export */   G: () => (/* binding */ rangeContainsMarker),\n/* harmony export */   H: () => (/* binding */ createEmptyEventStore),\n/* harmony export */   I: () => (/* binding */ reduceEventStore),\n/* harmony export */   J: () => (/* binding */ rezoneEventStoreDates),\n/* harmony export */   K: () => (/* binding */ mergeRawOptions),\n/* harmony export */   L: () => (/* binding */ BASE_OPTION_REFINERS),\n/* harmony export */   M: () => (/* binding */ CALENDAR_LISTENER_REFINERS),\n/* harmony export */   N: () => (/* binding */ CALENDAR_OPTION_REFINERS),\n/* harmony export */   O: () => (/* binding */ COMPLEX_OPTION_COMPARATORS),\n/* harmony export */   P: () => (/* binding */ VIEW_OPTION_REFINERS),\n/* harmony export */   Q: () => (/* binding */ DateEnv),\n/* harmony export */   R: () => (/* binding */ DateProfileGenerator),\n/* harmony export */   S: () => (/* binding */ createEventUi),\n/* harmony export */   T: () => (/* binding */ Theme),\n/* harmony export */   U: () => (/* binding */ parseBusinessHours),\n/* harmony export */   V: () => (/* binding */ ViewContextType),\n/* harmony export */   W: () => (/* binding */ setRef),\n/* harmony export */   X: () => (/* binding */ Interaction),\n/* harmony export */   Y: () => (/* binding */ getElSeg),\n/* harmony export */   Z: () => (/* binding */ elementClosest),\n/* harmony export */   _: () => (/* binding */ EventImpl),\n/* harmony export */   a: () => (/* binding */ mapHash),\n/* harmony export */   a$: () => (/* binding */ preventDefault),\n/* harmony export */   a0: () => (/* binding */ listenToHoverBySelector),\n/* harmony export */   a1: () => (/* binding */ PureComponent),\n/* harmony export */   a2: () => (/* binding */ buildViewContext),\n/* harmony export */   a3: () => (/* binding */ getUniqueDomId),\n/* harmony export */   a4: () => (/* binding */ parseInteractionSettings),\n/* harmony export */   a5: () => (/* binding */ interactionSettingsStore),\n/* harmony export */   a6: () => (/* binding */ NowTimer),\n/* harmony export */   a7: () => (/* binding */ CalendarImpl),\n/* harmony export */   a8: () => (/* binding */ flushSync),\n/* harmony export */   a9: () => (/* binding */ CalendarRoot),\n/* harmony export */   aA: () => (/* binding */ memoizeArraylike),\n/* harmony export */   aB: () => (/* binding */ memoizeHashlike),\n/* harmony export */   aC: () => (/* binding */ intersectRects),\n/* harmony export */   aD: () => (/* binding */ pointInsideRect),\n/* harmony export */   aE: () => (/* binding */ constrainPoint),\n/* harmony export */   aF: () => (/* binding */ getRectCenter),\n/* harmony export */   aG: () => (/* binding */ diffPoints),\n/* harmony export */   aH: () => (/* binding */ translateRect),\n/* harmony export */   aI: () => (/* binding */ compareObjs),\n/* harmony export */   aJ: () => (/* binding */ collectFromHash),\n/* harmony export */   aK: () => (/* binding */ findElements),\n/* harmony export */   aL: () => (/* binding */ findDirectChildren),\n/* harmony export */   aM: () => (/* binding */ removeElement),\n/* harmony export */   aN: () => (/* binding */ applyStyle),\n/* harmony export */   aO: () => (/* binding */ elementMatches),\n/* harmony export */   aP: () => (/* binding */ getEventTargetViaRoot),\n/* harmony export */   aQ: () => (/* binding */ parseClassNames),\n/* harmony export */   aR: () => (/* binding */ getCanVGrowWithinCell),\n/* harmony export */   aS: () => (/* binding */ mergeEventStores),\n/* harmony export */   aT: () => (/* binding */ getRelevantEvents),\n/* harmony export */   aU: () => (/* binding */ eventTupleToStore),\n/* harmony export */   aV: () => (/* binding */ combineEventUis),\n/* harmony export */   aW: () => (/* binding */ Splitter),\n/* harmony export */   aX: () => (/* binding */ getDayClassNames),\n/* harmony export */   aY: () => (/* binding */ getDateMeta),\n/* harmony export */   aZ: () => (/* binding */ getSlotClassNames),\n/* harmony export */   a_: () => (/* binding */ buildNavLinkAttrs),\n/* harmony export */   aa: () => (/* binding */ RenderId),\n/* harmony export */   ab: () => (/* binding */ ensureElHasStyles),\n/* harmony export */   ac: () => (/* binding */ applyStyleProp),\n/* harmony export */   ad: () => (/* binding */ sliceEventStore),\n/* harmony export */   ae: () => (/* binding */ JsonRequestError),\n/* harmony export */   af: () => (/* binding */ createContext),\n/* harmony export */   ag: () => (/* binding */ refineProps),\n/* harmony export */   ah: () => (/* binding */ createEventInstance),\n/* harmony export */   ai: () => (/* binding */ parseEventDef),\n/* harmony export */   aj: () => (/* binding */ refineEventDef),\n/* harmony export */   ak: () => (/* binding */ padStart),\n/* harmony export */   al: () => (/* binding */ isInt),\n/* harmony export */   am: () => (/* binding */ parseFieldSpecs),\n/* harmony export */   an: () => (/* binding */ compareByFieldSpecs),\n/* harmony export */   ao: () => (/* binding */ flexibleCompare),\n/* harmony export */   ap: () => (/* binding */ preventSelection),\n/* harmony export */   aq: () => (/* binding */ allowSelection),\n/* harmony export */   ar: () => (/* binding */ preventContextMenu),\n/* harmony export */   as: () => (/* binding */ allowContextMenu),\n/* harmony export */   at: () => (/* binding */ compareNumbers),\n/* harmony export */   au: () => (/* binding */ enableCursor),\n/* harmony export */   av: () => (/* binding */ disableCursor),\n/* harmony export */   aw: () => (/* binding */ computeVisibleDayRange),\n/* harmony export */   ax: () => (/* binding */ isMultiDayRange),\n/* harmony export */   ay: () => (/* binding */ diffDates),\n/* harmony export */   az: () => (/* binding */ removeExact),\n/* harmony export */   b: () => (/* binding */ buildViewClassNames),\n/* harmony export */   b$: () => (/* binding */ renderMicroColGroup),\n/* harmony export */   b0: () => (/* binding */ whenTransitionDone),\n/* harmony export */   b1: () => (/* binding */ computeInnerRect),\n/* harmony export */   b2: () => (/* binding */ computeEdges),\n/* harmony export */   b3: () => (/* binding */ getClippingParents),\n/* harmony export */   b4: () => (/* binding */ computeRect),\n/* harmony export */   b5: () => (/* binding */ rangesEqual),\n/* harmony export */   b6: () => (/* binding */ rangesIntersect),\n/* harmony export */   b7: () => (/* binding */ rangeContainsRange),\n/* harmony export */   b8: () => (/* binding */ PositionCache),\n/* harmony export */   b9: () => (/* binding */ ScrollController),\n/* harmony export */   bA: () => (/* binding */ getEntrySpanEnd),\n/* harmony export */   bB: () => (/* binding */ binarySearch),\n/* harmony export */   bC: () => (/* binding */ groupIntersectingEntries),\n/* harmony export */   bD: () => (/* binding */ intersectSpans),\n/* harmony export */   bE: () => (/* binding */ interactionSettingsToStore),\n/* harmony export */   bF: () => (/* binding */ ElementDragging),\n/* harmony export */   bG: () => (/* binding */ config),\n/* harmony export */   bH: () => (/* binding */ parseDragMeta),\n/* harmony export */   bI: () => (/* binding */ DayHeader),\n/* harmony export */   bJ: () => (/* binding */ computeFallbackHeaderFormat),\n/* harmony export */   bK: () => (/* binding */ TableDateCell),\n/* harmony export */   bL: () => (/* binding */ TableDowCell),\n/* harmony export */   bM: () => (/* binding */ DaySeriesModel),\n/* harmony export */   bN: () => (/* binding */ hasBgRendering),\n/* harmony export */   bO: () => (/* binding */ buildSegTimeText),\n/* harmony export */   bP: () => (/* binding */ sortEventSegs),\n/* harmony export */   bQ: () => (/* binding */ getSegMeta),\n/* harmony export */   bR: () => (/* binding */ buildEventRangeKey),\n/* harmony export */   bS: () => (/* binding */ getSegAnchorAttrs),\n/* harmony export */   bT: () => (/* binding */ DayTableModel),\n/* harmony export */   bU: () => (/* binding */ Slicer),\n/* harmony export */   bV: () => (/* binding */ applyMutationToEventStore),\n/* harmony export */   bW: () => (/* binding */ isPropsValid),\n/* harmony export */   bX: () => (/* binding */ isInteractionValid),\n/* harmony export */   bY: () => (/* binding */ isDateSelectionValid),\n/* harmony export */   bZ: () => (/* binding */ SimpleScrollGrid),\n/* harmony export */   b_: () => (/* binding */ hasShrinkWidth),\n/* harmony export */   ba: () => (/* binding */ ElementScrollController),\n/* harmony export */   bb: () => (/* binding */ WindowScrollController),\n/* harmony export */   bc: () => (/* binding */ DateComponent),\n/* harmony export */   bd: () => (/* binding */ isDateSpansEqual),\n/* harmony export */   be: () => (/* binding */ addMs),\n/* harmony export */   bf: () => (/* binding */ addWeeks),\n/* harmony export */   bg: () => (/* binding */ diffWeeks),\n/* harmony export */   bh: () => (/* binding */ diffWholeWeeks),\n/* harmony export */   bi: () => (/* binding */ diffDayAndTime),\n/* harmony export */   bj: () => (/* binding */ diffDays),\n/* harmony export */   bk: () => (/* binding */ isValidDate),\n/* harmony export */   bl: () => (/* binding */ asCleanDays),\n/* harmony export */   bm: () => (/* binding */ multiplyDuration),\n/* harmony export */   bn: () => (/* binding */ addDurations),\n/* harmony export */   bo: () => (/* binding */ asRoughMinutes),\n/* harmony export */   bp: () => (/* binding */ asRoughSeconds),\n/* harmony export */   bq: () => (/* binding */ asRoughMs),\n/* harmony export */   br: () => (/* binding */ wholeDivideDurations),\n/* harmony export */   bs: () => (/* binding */ formatIsoTimeString),\n/* harmony export */   bt: () => (/* binding */ formatDayString),\n/* harmony export */   bu: () => (/* binding */ buildIsoString),\n/* harmony export */   bv: () => (/* binding */ formatIsoMonthStr),\n/* harmony export */   bw: () => (/* binding */ NamedTimeZoneImpl),\n/* harmony export */   bx: () => (/* binding */ parse),\n/* harmony export */   by: () => (/* binding */ SegHierarchy),\n/* harmony export */   bz: () => (/* binding */ buildEntryKey),\n/* harmony export */   c: () => (/* binding */ greatestDurationDenominator),\n/* harmony export */   c0: () => (/* binding */ getScrollGridClassNames),\n/* harmony export */   c1: () => (/* binding */ getSectionClassNames),\n/* harmony export */   c2: () => (/* binding */ getSectionHasLiquidHeight),\n/* harmony export */   c3: () => (/* binding */ getAllowYScrolling),\n/* harmony export */   c4: () => (/* binding */ renderChunkContent),\n/* harmony export */   c5: () => (/* binding */ computeShrinkWidth),\n/* harmony export */   c6: () => (/* binding */ sanitizeShrinkWidth),\n/* harmony export */   c7: () => (/* binding */ isColPropsEqual),\n/* harmony export */   c8: () => (/* binding */ renderScrollShim),\n/* harmony export */   c9: () => (/* binding */ getStickyFooterScrollbar),\n/* harmony export */   ca: () => (/* binding */ getStickyHeaderDates),\n/* harmony export */   cb: () => (/* binding */ Scroller),\n/* harmony export */   cc: () => (/* binding */ getScrollbarWidths),\n/* harmony export */   cd: () => (/* binding */ RefMap),\n/* harmony export */   ce: () => (/* binding */ getIsRtlScrollbarOnLeft),\n/* harmony export */   cf: () => (/* binding */ ScrollResponder),\n/* harmony export */   cg: () => (/* binding */ StandardEvent),\n/* harmony export */   ch: () => (/* binding */ NowIndicatorContainer),\n/* harmony export */   ci: () => (/* binding */ DayCellContainer),\n/* harmony export */   cj: () => (/* binding */ hasCustomDayCellContent),\n/* harmony export */   ck: () => (/* binding */ EventContainer),\n/* harmony export */   cl: () => (/* binding */ renderFill),\n/* harmony export */   cm: () => (/* binding */ BgEvent),\n/* harmony export */   cn: () => (/* binding */ WeekNumberContainer),\n/* harmony export */   co: () => (/* binding */ MoreLinkContainer),\n/* harmony export */   cp: () => (/* binding */ computeEarliestSegStart),\n/* harmony export */   cq: () => (/* binding */ ViewContainer),\n/* harmony export */   cr: () => (/* binding */ triggerDateSelect),\n/* harmony export */   cs: () => (/* binding */ getDefaultEventEnd),\n/* harmony export */   ct: () => (/* binding */ injectStyles),\n/* harmony export */   cu: () => (/* binding */ buildElAttrs),\n/* harmony export */   cv: () => (/* binding */ CustomRenderingStore),\n/* harmony export */   d: () => (/* binding */ createDuration),\n/* harmony export */   e: () => (/* binding */ BASE_OPTION_DEFAULTS),\n/* harmony export */   f: () => (/* binding */ arrayToHash),\n/* harmony export */   g: () => (/* binding */ guid),\n/* harmony export */   h: () => (/* binding */ filterHash),\n/* harmony export */   i: () => (/* binding */ isArraysEqual),\n/* harmony export */   j: () => (/* binding */ buildEventSourceRefiners),\n/* harmony export */   k: () => (/* binding */ formatWithOrdinals),\n/* harmony export */   l: () => (/* binding */ buildRangeApiWithTimeZone),\n/* harmony export */   m: () => (/* binding */ mergeProps),\n/* harmony export */   n: () => (/* binding */ identity),\n/* harmony export */   o: () => (/* binding */ intersectRanges),\n/* harmony export */   p: () => (/* binding */ parseEventSource),\n/* harmony export */   q: () => (/* binding */ startOfDay),\n/* harmony export */   r: () => (/* binding */ requestJson),\n/* harmony export */   s: () => (/* binding */ subtractDurations),\n/* harmony export */   t: () => (/* binding */ addDays),\n/* harmony export */   u: () => (/* binding */ unpromisify),\n/* harmony export */   v: () => (/* binding */ hashValuesToArray),\n/* harmony export */   w: () => (/* binding */ buildEventApis),\n/* harmony export */   x: () => (/* binding */ createFormatter),\n/* harmony export */   y: () => (/* binding */ diffWholeDays),\n/* harmony export */   z: () => (/* binding */ memoize)\n/* harmony export */ });\n/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! preact */ \"../react-ui/node_modules/preact/dist/preact.module.js\");\n/* harmony import */ var preact_compat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! preact/compat */ \"../react-ui/node_modules/preact/compat/dist/compat.module.js\");\n\n\n\nconst styleTexts = [];\nconst styleEls = new Map();\nfunction injectStyles(styleText) {\n  styleTexts.push(styleText);\n  styleEls.forEach(styleEl => {\n    appendStylesTo(styleEl, styleText);\n  });\n}\nfunction ensureElHasStyles(el) {\n  if (el.isConnected &&\n  // sometimes true if SSR system simulates DOM\n  el.getRootNode // sometimes undefined if SSR system simulates DOM\n  ) {\n    registerStylesRoot(el.getRootNode());\n  }\n}\nfunction registerStylesRoot(rootNode) {\n  let styleEl = styleEls.get(rootNode);\n  if (!styleEl || !styleEl.isConnected) {\n    styleEl = rootNode.querySelector('style[data-fullcalendar]');\n    if (!styleEl) {\n      styleEl = document.createElement('style');\n      styleEl.setAttribute('data-fullcalendar', '');\n      const nonce = getNonceValue();\n      if (nonce) {\n        styleEl.nonce = nonce;\n      }\n      const parentEl = rootNode === document ? document.head : rootNode;\n      const insertBefore = rootNode === document ? parentEl.querySelector('script,link[rel=stylesheet],link[as=style],style') : parentEl.firstChild;\n      parentEl.insertBefore(styleEl, insertBefore);\n    }\n    styleEls.set(rootNode, styleEl);\n    hydrateStylesRoot(styleEl);\n  }\n}\nfunction hydrateStylesRoot(styleEl) {\n  for (const styleText of styleTexts) {\n    appendStylesTo(styleEl, styleText);\n  }\n}\nfunction appendStylesTo(styleEl, styleText) {\n  const {\n    sheet\n  } = styleEl;\n  const ruleCnt = sheet.cssRules.length;\n  styleText.split('}').forEach((styleStr, i) => {\n    styleStr = styleStr.trim();\n    if (styleStr) {\n      sheet.insertRule(styleStr + '}', ruleCnt + i);\n    }\n  });\n}\n// nonce\n// -------------------------------------------------------------------------------------------------\nlet queriedNonceValue;\nfunction getNonceValue() {\n  if (queriedNonceValue === undefined) {\n    queriedNonceValue = queryNonceValue();\n  }\n  return queriedNonceValue;\n}\n/*\nTODO: discourage meta tag and instead put nonce attribute on placeholder <style> tag\n*/\nfunction queryNonceValue() {\n  const metaWithNonce = document.querySelector('meta[name=\"csp-nonce\"]');\n  if (metaWithNonce && metaWithNonce.hasAttribute('content')) {\n    return metaWithNonce.getAttribute('content');\n  }\n  const elWithNonce = document.querySelector('script[nonce]');\n  if (elWithNonce) {\n    return elWithNonce.nonce || '';\n  }\n  return '';\n}\n// main\n// -------------------------------------------------------------------------------------------------\nif (typeof document !== 'undefined') {\n  registerStylesRoot(document);\n}\nvar css_248z = \":root{--fc-small-font-size:.85em;--fc-page-bg-color:#fff;--fc-neutral-bg-color:hsla(0,0%,82%,.3);--fc-neutral-text-color:grey;--fc-border-color:#ddd;--fc-button-text-color:#fff;--fc-button-bg-color:#2c3e50;--fc-button-border-color:#2c3e50;--fc-button-hover-bg-color:#1e2b37;--fc-button-hover-border-color:#1a252f;--fc-button-active-bg-color:#1a252f;--fc-button-active-border-color:#151e27;--fc-event-bg-color:#3788d8;--fc-event-border-color:#3788d8;--fc-event-text-color:#fff;--fc-event-selected-overlay-color:rgba(0,0,0,.25);--fc-more-link-bg-color:#d0d0d0;--fc-more-link-text-color:inherit;--fc-event-resizer-thickness:8px;--fc-event-resizer-dot-total-width:8px;--fc-event-resizer-dot-border-width:1px;--fc-non-business-color:hsla(0,0%,84%,.3);--fc-bg-event-color:#8fdf82;--fc-bg-event-opacity:0.3;--fc-highlight-color:rgba(188,232,241,.3);--fc-today-bg-color:rgba(255,220,40,.15);--fc-now-indicator-color:red}.fc-not-allowed,.fc-not-allowed .fc-event{cursor:not-allowed}.fc{display:flex;flex-direction:column;font-size:1em}.fc,.fc *,.fc :after,.fc :before{box-sizing:border-box}.fc table{border-collapse:collapse;border-spacing:0;font-size:1em}.fc th{text-align:center}.fc td,.fc th{padding:0;vertical-align:top}.fc a[data-navlink]{cursor:pointer}.fc a[data-navlink]:hover{text-decoration:underline}.fc-direction-ltr{direction:ltr;text-align:left}.fc-direction-rtl{direction:rtl;text-align:right}.fc-theme-standard td,.fc-theme-standard th{border:1px solid var(--fc-border-color)}.fc-liquid-hack td,.fc-liquid-hack th{position:relative}@font-face{font-family:fcicons;font-style:normal;font-weight:400;src:url(\\\"data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBfAAAAC8AAAAYGNtYXAXVtKNAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZgYydxIAAAF4AAAFNGhlYWQUJ7cIAAAGrAAAADZoaGVhB20DzAAABuQAAAAkaG10eCIABhQAAAcIAAAALGxvY2ED4AU6AAAHNAAAABhtYXhwAA8AjAAAB0wAAAAgbmFtZXsr690AAAdsAAABhnBvc3QAAwAAAAAI9AAAACAAAwPAAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpBgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6Qb//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAWIAjQKeAskAEwAAJSc3NjQnJiIHAQYUFwEWMjc2NCcCnuLiDQ0MJAz/AA0NAQAMJAwNDcni4gwjDQwM/wANIwz/AA0NDCMNAAAAAQFiAI0CngLJABMAACUBNjQnASYiBwYUHwEHBhQXFjI3AZ4BAA0N/wAMJAwNDeLiDQ0MJAyNAQAMIw0BAAwMDSMM4uINIwwNDQAAAAIA4gC3Ax4CngATACcAACUnNzY0JyYiDwEGFB8BFjI3NjQnISc3NjQnJiIPAQYUHwEWMjc2NCcB87e3DQ0MIw3VDQ3VDSMMDQ0BK7e3DQ0MJAzVDQ3VDCQMDQ3zuLcMJAwNDdUNIwzWDAwNIwy4twwkDA0N1Q0jDNYMDA0jDAAAAgDiALcDHgKeABMAJwAAJTc2NC8BJiIHBhQfAQcGFBcWMjchNzY0LwEmIgcGFB8BBwYUFxYyNwJJ1Q0N1Q0jDA0Nt7cNDQwjDf7V1Q0N1QwkDA0Nt7cNDQwkDLfWDCMN1Q0NDCQMt7gMIw0MDNYMIw3VDQ0MJAy3uAwjDQwMAAADAFUAAAOrA1UAMwBoAHcAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMhMjY1NCYjISIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAAVYRGRkR/qoRGRkRA1UFBAUOCQkVDAsZDf2rDRkLDBUJCA4FBQUFBQUOCQgVDAsZDQJVDRkLDBUJCQ4FBAVVAgECBQMCBwQECAX9qwQJAwQHAwMFAQICAgIBBQMDBwQDCQQCVQUIBAQHAgMFAgEC/oAZEhEZGRESGQAAAAADAFUAAAOrA1UAMwBoAIkAABMiBgcOAQcOAQcOARURFBYXHgEXHgEXHgEzITI2Nz4BNz4BNz4BNRE0JicuAScuAScuASMFITIWFx4BFx4BFx4BFREUBgcOAQcOAQcOASMhIiYnLgEnLgEnLgE1ETQ2Nz4BNz4BNz4BMxMzFRQWMzI2PQEzMjY1NCYrATU0JiMiBh0BIyIGFRQWM9UNGAwLFQkJDgUFBQUFBQ4JCRULDBgNAlYNGAwLFQkJDgUFBQUFBQ4JCRULDBgN/aoCVgQIBAQHAwMFAQIBAQIBBQMDBwQECAT9qgQIBAQHAwMFAQIBAQIBBQMDBwQECASAgBkSEhmAERkZEYAZEhIZgBEZGREDVQUEBQ4JCRUMCxkN/asNGQsMFQkIDgUFBQUFBQ4JCBUMCxkNAlUNGQsMFQkJDgUEBVUCAQIFAwIHBAQIBf2rBAkDBAcDAwUBAgICAgEFAwMHBAMJBAJVBQgEBAcCAwUCAQL+gIASGRkSgBkSERmAEhkZEoAZERIZAAABAOIAjQMeAskAIAAAExcHBhQXFjI/ARcWMjc2NC8BNzY0JyYiDwEnJiIHBhQX4uLiDQ0MJAzi4gwkDA0N4uINDQwkDOLiDCQMDQ0CjeLiDSMMDQ3h4Q0NDCMN4uIMIw0MDOLiDAwNIwwAAAABAAAAAQAAa5n0y18PPPUACwQAAAAAANivOVsAAAAA2K85WwAAAAADqwNVAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAOrAAEAAAAAAAAAAAAAAAAAAAALBAAAAAAAAAAAAAAAAgAAAAQAAWIEAAFiBAAA4gQAAOIEAABVBAAAVQQAAOIAAAAAAAoAFAAeAEQAagCqAOoBngJkApoAAQAAAAsAigADAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGZjaWNvbnMAZgBjAGkAYwBvAG4Ac1ZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGZjaWNvbnMAZgBjAGkAYwBvAG4Ac2ZjaWNvbnMAZgBjAGkAYwBvAG4Ac1JlZ3VsYXIAUgBlAGcAdQBsAGEAcmZjaWNvbnMAZgBjAGkAYwBvAG4Ac0ZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\\\") format(\\\"truetype\\\")}.fc-icon{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;font-family:fcicons!important;font-style:normal;font-variant:normal;font-weight:400;height:1em;line-height:1;text-align:center;text-transform:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:1em}.fc-icon-chevron-left:before{content:\\\"\\\\e900\\\"}.fc-icon-chevron-right:before{content:\\\"\\\\e901\\\"}.fc-icon-chevrons-left:before{content:\\\"\\\\e902\\\"}.fc-icon-chevrons-right:before{content:\\\"\\\\e903\\\"}.fc-icon-minus-square:before{content:\\\"\\\\e904\\\"}.fc-icon-plus-square:before{content:\\\"\\\\e905\\\"}.fc-icon-x:before{content:\\\"\\\\e906\\\"}.fc .fc-button{border-radius:0;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none}.fc .fc-button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.fc .fc-button{-webkit-appearance:button}.fc .fc-button:not(:disabled){cursor:pointer}.fc .fc-button{background-color:transparent;border:1px solid transparent;border-radius:.25em;display:inline-block;font-size:1em;font-weight:400;line-height:1.5;padding:.4em .65em;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle}.fc .fc-button:hover{text-decoration:none}.fc .fc-button:focus{box-shadow:0 0 0 .2rem rgba(44,62,80,.25);outline:0}.fc .fc-button:disabled{opacity:.65}.fc .fc-button-primary{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:hover{background-color:var(--fc-button-hover-bg-color);border-color:var(--fc-button-hover-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:disabled{background-color:var(--fc-button-bg-color);border-color:var(--fc-button-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background-color:var(--fc-button-active-bg-color);border-color:var(--fc-button-active-border-color);color:var(--fc-button-text-color)}.fc .fc-button-primary:not(:disabled).fc-button-active:focus,.fc .fc-button-primary:not(:disabled):active:focus{box-shadow:0 0 0 .2rem rgba(76,91,106,.5)}.fc .fc-button .fc-icon{font-size:1.5em;vertical-align:middle}.fc .fc-button-group{display:inline-flex;position:relative;vertical-align:middle}.fc .fc-button-group>.fc-button{flex:1 1 auto;position:relative}.fc .fc-button-group>.fc-button.fc-button-active,.fc .fc-button-group>.fc-button:active,.fc .fc-button-group>.fc-button:focus,.fc .fc-button-group>.fc-button:hover{z-index:1}.fc-direction-ltr .fc-button-group>.fc-button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-1px}.fc-direction-ltr .fc-button-group>.fc-button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.fc-direction-rtl .fc-button-group>.fc-button:not(:first-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.fc-direction-rtl .fc-button-group>.fc-button:not(:last-child){border-bottom-left-radius:0;border-top-left-radius:0}.fc .fc-toolbar{align-items:center;display:flex;justify-content:space-between}.fc .fc-toolbar.fc-header-toolbar{margin-bottom:1.5em}.fc .fc-toolbar.fc-footer-toolbar{margin-top:1.5em}.fc .fc-toolbar-title{font-size:1.75em;margin:0}.fc-direction-ltr .fc-toolbar>*>:not(:first-child){margin-left:.75em}.fc-direction-rtl .fc-toolbar>*>:not(:first-child){margin-right:.75em}.fc-direction-rtl .fc-toolbar-ltr{flex-direction:row-reverse}.fc .fc-scroller{-webkit-overflow-scrolling:touch;position:relative}.fc .fc-scroller-liquid{height:100%}.fc .fc-scroller-liquid-absolute{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-scroller-harness{direction:ltr;overflow:hidden;position:relative}.fc .fc-scroller-harness-liquid{height:100%}.fc-direction-rtl .fc-scroller-harness>.fc-scroller{direction:rtl}.fc-theme-standard .fc-scrollgrid{border:1px solid var(--fc-border-color)}.fc .fc-scrollgrid,.fc .fc-scrollgrid table{table-layout:fixed;width:100%}.fc .fc-scrollgrid table{border-left-style:hidden;border-right-style:hidden;border-top-style:hidden}.fc .fc-scrollgrid{border-bottom-width:0;border-collapse:separate;border-right-width:0}.fc .fc-scrollgrid-liquid{height:100%}.fc .fc-scrollgrid-section,.fc .fc-scrollgrid-section table,.fc .fc-scrollgrid-section>td{height:1px}.fc .fc-scrollgrid-section-liquid>td{height:100%}.fc .fc-scrollgrid-section>*{border-left-width:0;border-top-width:0}.fc .fc-scrollgrid-section-footer>*,.fc .fc-scrollgrid-section-header>*{border-bottom-width:0}.fc .fc-scrollgrid-section-body table,.fc .fc-scrollgrid-section-footer table{border-bottom-style:hidden}.fc .fc-scrollgrid-section-sticky>*{background:var(--fc-page-bg-color);position:sticky;z-index:3}.fc .fc-scrollgrid-section-header.fc-scrollgrid-section-sticky>*{top:0}.fc .fc-scrollgrid-section-footer.fc-scrollgrid-section-sticky>*{bottom:0}.fc .fc-scrollgrid-sticky-shim{height:1px;margin-bottom:-1px}.fc-sticky{position:sticky}.fc .fc-view-harness{flex-grow:1;position:relative}.fc .fc-view-harness-active>.fc-view{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-col-header-cell-cushion{display:inline-block;padding:2px 4px}.fc .fc-bg-event,.fc .fc-highlight,.fc .fc-non-business{bottom:0;left:0;position:absolute;right:0;top:0}.fc .fc-non-business{background:var(--fc-non-business-color)}.fc .fc-bg-event{background:var(--fc-bg-event-color);opacity:var(--fc-bg-event-opacity)}.fc .fc-bg-event .fc-event-title{font-size:var(--fc-small-font-size);font-style:italic;margin:.5em}.fc .fc-highlight{background:var(--fc-highlight-color)}.fc .fc-cell-shaded,.fc .fc-day-disabled{background:var(--fc-neutral-bg-color)}a.fc-event,a.fc-event:hover{text-decoration:none}.fc-event.fc-event-draggable,.fc-event[href]{cursor:pointer}.fc-event .fc-event-main{position:relative;z-index:2}.fc-event-dragging:not(.fc-event-selected){opacity:.75}.fc-event-dragging.fc-event-selected{box-shadow:0 2px 7px rgba(0,0,0,.3)}.fc-event .fc-event-resizer{display:none;position:absolute;z-index:4}.fc-event-selected .fc-event-resizer,.fc-event:hover .fc-event-resizer{display:block}.fc-event-selected .fc-event-resizer{background:var(--fc-page-bg-color);border-color:inherit;border-radius:calc(var(--fc-event-resizer-dot-total-width)/2);border-style:solid;border-width:var(--fc-event-resizer-dot-border-width);height:var(--fc-event-resizer-dot-total-width);width:var(--fc-event-resizer-dot-total-width)}.fc-event-selected .fc-event-resizer:before{bottom:-20px;content:\\\"\\\";left:-20px;position:absolute;right:-20px;top:-20px}.fc-event-selected,.fc-event:focus{box-shadow:0 2px 5px rgba(0,0,0,.2)}.fc-event-selected:before,.fc-event:focus:before{bottom:0;content:\\\"\\\";left:0;position:absolute;right:0;top:0;z-index:3}.fc-event-selected:after,.fc-event:focus:after{background:var(--fc-event-selected-overlay-color);bottom:-1px;content:\\\"\\\";left:-1px;position:absolute;right:-1px;top:-1px;z-index:1}.fc-h-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-h-event .fc-event-main{color:var(--fc-event-text-color)}.fc-h-event .fc-event-main-frame{display:flex}.fc-h-event .fc-event-time{max-width:100%;overflow:hidden}.fc-h-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-width:0}.fc-h-event .fc-event-title{display:inline-block;left:0;max-width:100%;overflow:hidden;right:0;vertical-align:top}.fc-h-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-start),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-end){border-bottom-left-radius:0;border-left-width:0;border-top-left-radius:0}.fc-direction-ltr .fc-daygrid-block-event:not(.fc-event-end),.fc-direction-rtl .fc-daygrid-block-event:not(.fc-event-start){border-bottom-right-radius:0;border-right-width:0;border-top-right-radius:0}.fc-h-event:not(.fc-event-selected) .fc-event-resizer{bottom:0;top:0;width:var(--fc-event-resizer-thickness)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end{cursor:w-resize;left:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-direction-ltr .fc-h-event:not(.fc-event-selected) .fc-event-resizer-end,.fc-direction-rtl .fc-h-event:not(.fc-event-selected) .fc-event-resizer-start{cursor:e-resize;right:calc(var(--fc-event-resizer-thickness)*-.5)}.fc-h-event.fc-event-selected .fc-event-resizer{margin-top:calc(var(--fc-event-resizer-dot-total-width)*-.5);top:50%}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-start,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-end{left:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc-direction-ltr .fc-h-event.fc-event-selected .fc-event-resizer-end,.fc-direction-rtl .fc-h-event.fc-event-selected .fc-event-resizer-start{right:calc(var(--fc-event-resizer-dot-total-width)*-.5)}.fc .fc-popover{box-shadow:0 2px 6px rgba(0,0,0,.15);position:absolute;z-index:9999}.fc .fc-popover-header{align-items:center;display:flex;flex-direction:row;justify-content:space-between;padding:3px 4px}.fc .fc-popover-title{margin:0 2px}.fc .fc-popover-close{cursor:pointer;font-size:1.1em;opacity:.65}.fc-theme-standard .fc-popover{background:var(--fc-page-bg-color);border:1px solid var(--fc-border-color)}.fc-theme-standard .fc-popover-header{background:var(--fc-neutral-bg-color)}\";\ninjectStyles(css_248z);\nclass DelayedRunner {\n  constructor(drainedOption) {\n    this.drainedOption = drainedOption;\n    this.isRunning = false;\n    this.isDirty = false;\n    this.pauseDepths = {};\n    this.timeoutId = 0;\n  }\n  request(delay) {\n    this.isDirty = true;\n    if (!this.isPaused()) {\n      this.clearTimeout();\n      if (delay == null) {\n        this.tryDrain();\n      } else {\n        this.timeoutId = setTimeout(\n        // NOT OPTIMAL! TODO: look at debounce\n        this.tryDrain.bind(this), delay);\n      }\n    }\n  }\n  pause(scope = '') {\n    let {\n      pauseDepths\n    } = this;\n    pauseDepths[scope] = (pauseDepths[scope] || 0) + 1;\n    this.clearTimeout();\n  }\n  resume(scope = '', force) {\n    let {\n      pauseDepths\n    } = this;\n    if (scope in pauseDepths) {\n      if (force) {\n        delete pauseDepths[scope];\n      } else {\n        pauseDepths[scope] -= 1;\n        let depth = pauseDepths[scope];\n        if (depth <= 0) {\n          delete pauseDepths[scope];\n        }\n      }\n      this.tryDrain();\n    }\n  }\n  isPaused() {\n    return Object.keys(this.pauseDepths).length;\n  }\n  tryDrain() {\n    if (!this.isRunning && !this.isPaused()) {\n      this.isRunning = true;\n      while (this.isDirty) {\n        this.isDirty = false;\n        this.drained(); // might set isDirty to true again\n      }\n      this.isRunning = false;\n    }\n  }\n  clear() {\n    this.clearTimeout();\n    this.isDirty = false;\n    this.pauseDepths = {};\n  }\n  clearTimeout() {\n    if (this.timeoutId) {\n      clearTimeout(this.timeoutId);\n      this.timeoutId = 0;\n    }\n  }\n  drained() {\n    if (this.drainedOption) {\n      this.drainedOption();\n    }\n  }\n}\nfunction removeElement(el) {\n  if (el.parentNode) {\n    el.parentNode.removeChild(el);\n  }\n}\n// Querying\n// ----------------------------------------------------------------------------------------------------------------\nfunction elementClosest(el, selector) {\n  if (el.closest) {\n    return el.closest(selector);\n    // really bad fallback for IE\n    // from https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n  }\n  if (!document.documentElement.contains(el)) {\n    return null;\n  }\n  do {\n    if (elementMatches(el, selector)) {\n      return el;\n    }\n    el = el.parentElement || el.parentNode;\n  } while (el !== null && el.nodeType === 1);\n  return null;\n}\nfunction elementMatches(el, selector) {\n  let method = el.matches || el.matchesSelector || el.msMatchesSelector;\n  return method.call(el, selector);\n}\n// accepts multiple subject els\n// returns a real array. good for methods like forEach\n// TODO: accept the document\nfunction findElements(container, selector) {\n  let containers = container instanceof HTMLElement ? [container] : container;\n  let allMatches = [];\n  for (let i = 0; i < containers.length; i += 1) {\n    let matches = containers[i].querySelectorAll(selector);\n    for (let j = 0; j < matches.length; j += 1) {\n      allMatches.push(matches[j]);\n    }\n  }\n  return allMatches;\n}\n// accepts multiple subject els\n// only queries direct child elements // TODO: rename to findDirectChildren!\nfunction findDirectChildren(parent, selector) {\n  let parents = parent instanceof HTMLElement ? [parent] : parent;\n  let allMatches = [];\n  for (let i = 0; i < parents.length; i += 1) {\n    let childNodes = parents[i].children; // only ever elements\n    for (let j = 0; j < childNodes.length; j += 1) {\n      let childNode = childNodes[j];\n      if (!selector || elementMatches(childNode, selector)) {\n        allMatches.push(childNode);\n      }\n    }\n  }\n  return allMatches;\n}\n// Style\n// ----------------------------------------------------------------------------------------------------------------\nconst PIXEL_PROP_RE = /(top|left|right|bottom|width|height)$/i;\nfunction applyStyle(el, props) {\n  for (let propName in props) {\n    applyStyleProp(el, propName, props[propName]);\n  }\n}\nfunction applyStyleProp(el, name, val) {\n  if (val == null) {\n    el.style[name] = '';\n  } else if (typeof val === 'number' && PIXEL_PROP_RE.test(name)) {\n    el.style[name] = `${val}px`;\n  } else {\n    el.style[name] = val;\n  }\n}\n// Event Handling\n// ----------------------------------------------------------------------------------------------------------------\n// if intercepting bubbled events at the document/window/body level,\n// and want to see originating element (the 'target'), use this util instead\n// of `ev.target` because it goes within web-component boundaries.\nfunction getEventTargetViaRoot(ev) {\n  var _a, _b;\n  return (_b = (_a = ev.composedPath) === null || _a === void 0 ? void 0 : _a.call(ev)[0]) !== null && _b !== void 0 ? _b : ev.target;\n}\n// Unique ID for DOM attribute\nlet guid$1 = 0;\nfunction getUniqueDomId() {\n  guid$1 += 1;\n  return 'fc-dom-' + guid$1;\n}\n\n// Stops a mouse/touch event from doing it's native browser action\nfunction preventDefault(ev) {\n  ev.preventDefault();\n}\n// Event Delegation\n// ----------------------------------------------------------------------------------------------------------------\nfunction buildDelegationHandler(selector, handler) {\n  return ev => {\n    let matchedChild = elementClosest(ev.target, selector);\n    if (matchedChild) {\n      handler.call(matchedChild, ev, matchedChild);\n    }\n  };\n}\nfunction listenBySelector(container, eventType, selector, handler) {\n  let attachedHandler = buildDelegationHandler(selector, handler);\n  container.addEventListener(eventType, attachedHandler);\n  return () => {\n    container.removeEventListener(eventType, attachedHandler);\n  };\n}\nfunction listenToHoverBySelector(container, selector, onMouseEnter, onMouseLeave) {\n  let currentMatchedChild;\n  return listenBySelector(container, 'mouseover', selector, (mouseOverEv, matchedChild) => {\n    if (matchedChild !== currentMatchedChild) {\n      currentMatchedChild = matchedChild;\n      onMouseEnter(mouseOverEv, matchedChild);\n      let realOnMouseLeave = mouseLeaveEv => {\n        currentMatchedChild = null;\n        onMouseLeave(mouseLeaveEv, matchedChild);\n        matchedChild.removeEventListener('mouseleave', realOnMouseLeave);\n      };\n      // listen to the next mouseleave, and then unattach\n      matchedChild.addEventListener('mouseleave', realOnMouseLeave);\n    }\n  });\n}\n// Animation\n// ----------------------------------------------------------------------------------------------------------------\nconst transitionEventNames = ['webkitTransitionEnd', 'otransitionend', 'oTransitionEnd', 'msTransitionEnd', 'transitionend'];\n// triggered only when the next single subsequent transition finishes\nfunction whenTransitionDone(el, callback) {\n  let realCallback = ev => {\n    callback(ev);\n    transitionEventNames.forEach(eventName => {\n      el.removeEventListener(eventName, realCallback);\n    });\n  };\n  transitionEventNames.forEach(eventName => {\n    el.addEventListener(eventName, realCallback); // cross-browser way to determine when the transition finishes\n  });\n}\n// ARIA workarounds\n// ----------------------------------------------------------------------------------------------------------------\nfunction createAriaClickAttrs(handler) {\n  return Object.assign({\n    onClick: handler\n  }, createAriaKeyboardAttrs(handler));\n}\nfunction createAriaKeyboardAttrs(handler) {\n  return {\n    tabIndex: 0,\n    onKeyDown(ev) {\n      if (ev.key === 'Enter' || ev.key === ' ') {\n        handler(ev);\n        ev.preventDefault(); // if space, don't scroll down page\n      }\n    }\n  };\n}\nlet guidNumber = 0;\nfunction guid() {\n  guidNumber += 1;\n  return String(guidNumber);\n}\n/* FullCalendar-specific DOM Utilities\n----------------------------------------------------------------------------------------------------------------------*/\n// Make the mouse cursor express that an event is not allowed in the current area\nfunction disableCursor() {\n  document.body.classList.add('fc-not-allowed');\n}\n// Returns the mouse cursor to its original look\nfunction enableCursor() {\n  document.body.classList.remove('fc-not-allowed');\n}\n/* Selection\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventSelection(el) {\n  el.style.userSelect = 'none';\n  el.style.webkitUserSelect = 'none';\n  el.addEventListener('selectstart', preventDefault);\n}\nfunction allowSelection(el) {\n  el.style.userSelect = '';\n  el.style.webkitUserSelect = '';\n  el.removeEventListener('selectstart', preventDefault);\n}\n/* Context Menu\n----------------------------------------------------------------------------------------------------------------------*/\nfunction preventContextMenu(el) {\n  el.addEventListener('contextmenu', preventDefault);\n}\nfunction allowContextMenu(el) {\n  el.removeEventListener('contextmenu', preventDefault);\n}\nfunction parseFieldSpecs(input) {\n  let specs = [];\n  let tokens = [];\n  let i;\n  let token;\n  if (typeof input === 'string') {\n    tokens = input.split(/\\s*,\\s*/);\n  } else if (typeof input === 'function') {\n    tokens = [input];\n  } else if (Array.isArray(input)) {\n    tokens = input;\n  }\n  for (i = 0; i < tokens.length; i += 1) {\n    token = tokens[i];\n    if (typeof token === 'string') {\n      specs.push(token.charAt(0) === '-' ? {\n        field: token.substring(1),\n        order: -1\n      } : {\n        field: token,\n        order: 1\n      });\n    } else if (typeof token === 'function') {\n      specs.push({\n        func: token\n      });\n    }\n  }\n  return specs;\n}\nfunction compareByFieldSpecs(obj0, obj1, fieldSpecs) {\n  let i;\n  let cmp;\n  for (i = 0; i < fieldSpecs.length; i += 1) {\n    cmp = compareByFieldSpec(obj0, obj1, fieldSpecs[i]);\n    if (cmp) {\n      return cmp;\n    }\n  }\n  return 0;\n}\nfunction compareByFieldSpec(obj0, obj1, fieldSpec) {\n  if (fieldSpec.func) {\n    return fieldSpec.func(obj0, obj1);\n  }\n  return flexibleCompare(obj0[fieldSpec.field], obj1[fieldSpec.field]) * (fieldSpec.order || 1);\n}\nfunction flexibleCompare(a, b) {\n  if (!a && !b) {\n    return 0;\n  }\n  if (b == null) {\n    return -1;\n  }\n  if (a == null) {\n    return 1;\n  }\n  if (typeof a === 'string' || typeof b === 'string') {\n    return String(a).localeCompare(String(b));\n  }\n  return a - b;\n}\n/* String Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction padStart(val, len) {\n  let s = String(val);\n  return '000'.substr(0, len - s.length) + s;\n}\nfunction formatWithOrdinals(formatter, args, fallbackText) {\n  if (typeof formatter === 'function') {\n    return formatter(...args);\n  }\n  if (typeof formatter === 'string') {\n    // non-blank string\n    return args.reduce((str, arg, index) => str.replace('$' + index, arg || ''), formatter);\n  }\n  return fallbackText;\n}\n/* Number Utilities\n----------------------------------------------------------------------------------------------------------------------*/\nfunction compareNumbers(a, b) {\n  return a - b;\n}\nfunction isInt(n) {\n  return n % 1 === 0;\n}\n/* FC-specific DOM dimension stuff\n----------------------------------------------------------------------------------------------------------------------*/\nfunction computeSmallestCellWidth(cellEl) {\n  let allWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-frame');\n  let contentWidthEl = cellEl.querySelector('.fc-scrollgrid-shrink-cushion');\n  if (!allWidthEl) {\n    throw new Error('needs fc-scrollgrid-shrink-frame className'); // TODO: use const\n  }\n  if (!contentWidthEl) {\n    throw new Error('needs fc-scrollgrid-shrink-cushion className');\n  }\n  return cellEl.getBoundingClientRect().width - allWidthEl.getBoundingClientRect().width +\n  // the cell padding+border\n  contentWidthEl.getBoundingClientRect().width;\n}\nconst INTERNAL_UNITS = ['years', 'months', 'days', 'milliseconds'];\nconst PARSE_RE = /^(-?)(?:(\\d+)\\.)?(\\d+):(\\d\\d)(?::(\\d\\d)(?:\\.(\\d\\d\\d))?)?/;\n// Parsing and Creation\nfunction createDuration(input, unit) {\n  if (typeof input === 'string') {\n    return parseString(input);\n  }\n  if (typeof input === 'object' && input) {\n    // non-null object\n    return parseObject(input);\n  }\n  if (typeof input === 'number') {\n    return parseObject({\n      [unit || 'milliseconds']: input\n    });\n  }\n  return null;\n}\nfunction parseString(s) {\n  let m = PARSE_RE.exec(s);\n  if (m) {\n    let sign = m[1] ? -1 : 1;\n    return {\n      years: 0,\n      months: 0,\n      days: sign * (m[2] ? parseInt(m[2], 10) : 0),\n      milliseconds: sign * ((m[3] ? parseInt(m[3], 10) : 0) * 60 * 60 * 1000 +\n      // hours\n      (m[4] ? parseInt(m[4], 10) : 0) * 60 * 1000 +\n      // minutes\n      (m[5] ? parseInt(m[5], 10) : 0) * 1000 + (\n      // seconds\n      m[6] ? parseInt(m[6], 10) : 0) // ms\n      )\n    };\n  }\n  return null;\n}\nfunction parseObject(obj) {\n  let duration = {\n    years: obj.years || obj.year || 0,\n    months: obj.months || obj.month || 0,\n    days: obj.days || obj.day || 0,\n    milliseconds: (obj.hours || obj.hour || 0) * 60 * 60 * 1000 +\n    // hours\n    (obj.minutes || obj.minute || 0) * 60 * 1000 +\n    // minutes\n    (obj.seconds || obj.second || 0) * 1000 + (\n    // seconds\n    obj.milliseconds || obj.millisecond || obj.ms || 0) // ms\n  };\n  let weeks = obj.weeks || obj.week;\n  if (weeks) {\n    duration.days += weeks * 7;\n    duration.specifiedWeeks = true;\n  }\n  return duration;\n}\n// Equality\nfunction durationsEqual(d0, d1) {\n  return d0.years === d1.years && d0.months === d1.months && d0.days === d1.days && d0.milliseconds === d1.milliseconds;\n}\nfunction asCleanDays(dur) {\n  if (!dur.years && !dur.months && !dur.milliseconds) {\n    return dur.days;\n  }\n  return 0;\n}\n// Simple Math\nfunction addDurations(d0, d1) {\n  return {\n    years: d0.years + d1.years,\n    months: d0.months + d1.months,\n    days: d0.days + d1.days,\n    milliseconds: d0.milliseconds + d1.milliseconds\n  };\n}\nfunction subtractDurations(d1, d0) {\n  return {\n    years: d1.years - d0.years,\n    months: d1.months - d0.months,\n    days: d1.days - d0.days,\n    milliseconds: d1.milliseconds - d0.milliseconds\n  };\n}\nfunction multiplyDuration(d, n) {\n  return {\n    years: d.years * n,\n    months: d.months * n,\n    days: d.days * n,\n    milliseconds: d.milliseconds * n\n  };\n}\n// Conversions\n// \"Rough\" because they are based on average-case Gregorian months/years\nfunction asRoughYears(dur) {\n  return asRoughDays(dur) / 365;\n}\nfunction asRoughMonths(dur) {\n  return asRoughDays(dur) / 30;\n}\nfunction asRoughDays(dur) {\n  return asRoughMs(dur) / 864e5;\n}\nfunction asRoughMinutes(dur) {\n  return asRoughMs(dur) / (1000 * 60);\n}\nfunction asRoughSeconds(dur) {\n  return asRoughMs(dur) / 1000;\n}\nfunction asRoughMs(dur) {\n  return dur.years * (365 * 864e5) + dur.months * (30 * 864e5) + dur.days * 864e5 + dur.milliseconds;\n}\n// Advanced Math\nfunction wholeDivideDurations(numerator, denominator) {\n  let res = null;\n  for (let i = 0; i < INTERNAL_UNITS.length; i += 1) {\n    let unit = INTERNAL_UNITS[i];\n    if (denominator[unit]) {\n      let localRes = numerator[unit] / denominator[unit];\n      if (!isInt(localRes) || res !== null && res !== localRes) {\n        return null;\n      }\n      res = localRes;\n    } else if (numerator[unit]) {\n      // needs to divide by something but can't!\n      return null;\n    }\n  }\n  return res;\n}\nfunction greatestDurationDenominator(dur) {\n  let ms = dur.milliseconds;\n  if (ms) {\n    if (ms % 1000 !== 0) {\n      return {\n        unit: 'millisecond',\n        value: ms\n      };\n    }\n    if (ms % (1000 * 60) !== 0) {\n      return {\n        unit: 'second',\n        value: ms / 1000\n      };\n    }\n    if (ms % (1000 * 60 * 60) !== 0) {\n      return {\n        unit: 'minute',\n        value: ms / (1000 * 60)\n      };\n    }\n    if (ms) {\n      return {\n        unit: 'hour',\n        value: ms / (1000 * 60 * 60)\n      };\n    }\n  }\n  if (dur.days) {\n    if (dur.specifiedWeeks && dur.days % 7 === 0) {\n      return {\n        unit: 'week',\n        value: dur.days / 7\n      };\n    }\n    return {\n      unit: 'day',\n      value: dur.days\n    };\n  }\n  if (dur.months) {\n    return {\n      unit: 'month',\n      value: dur.months\n    };\n  }\n  if (dur.years) {\n    return {\n      unit: 'year',\n      value: dur.years\n    };\n  }\n  return {\n    unit: 'millisecond',\n    value: 0\n  };\n}\n\n// TODO: new util arrayify?\nfunction removeExact(array, exactVal) {\n  let removeCnt = 0;\n  let i = 0;\n  while (i < array.length) {\n    if (array[i] === exactVal) {\n      array.splice(i, 1);\n      removeCnt += 1;\n    } else {\n      i += 1;\n    }\n  }\n  return removeCnt;\n}\nfunction isArraysEqual(a0, a1, equalityFunc) {\n  if (a0 === a1) {\n    return true;\n  }\n  let len = a0.length;\n  let i;\n  if (len !== a1.length) {\n    // not array? or not same length?\n    return false;\n  }\n  for (i = 0; i < len; i += 1) {\n    if (!(equalityFunc ? equalityFunc(a0[i], a1[i]) : a0[i] === a1[i])) {\n      return false;\n    }\n  }\n  return true;\n}\nconst DAY_IDS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];\n// Adding\nfunction addWeeks(m, n) {\n  let a = dateToUtcArray(m);\n  a[2] += n * 7;\n  return arrayToUtcDate(a);\n}\nfunction addDays(m, n) {\n  let a = dateToUtcArray(m);\n  a[2] += n;\n  return arrayToUtcDate(a);\n}\nfunction addMs(m, n) {\n  let a = dateToUtcArray(m);\n  a[6] += n;\n  return arrayToUtcDate(a);\n}\n// Diffing (all return floats)\n// TODO: why not use ranges?\nfunction diffWeeks(m0, m1) {\n  return diffDays(m0, m1) / 7;\n}\nfunction diffDays(m0, m1) {\n  return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60 * 24);\n}\nfunction diffHours(m0, m1) {\n  return (m1.valueOf() - m0.valueOf()) / (1000 * 60 * 60);\n}\nfunction diffMinutes(m0, m1) {\n  return (m1.valueOf() - m0.valueOf()) / (1000 * 60);\n}\nfunction diffSeconds(m0, m1) {\n  return (m1.valueOf() - m0.valueOf()) / 1000;\n}\nfunction diffDayAndTime(m0, m1) {\n  let m0day = startOfDay(m0);\n  let m1day = startOfDay(m1);\n  return {\n    years: 0,\n    months: 0,\n    days: Math.round(diffDays(m0day, m1day)),\n    milliseconds: m1.valueOf() - m1day.valueOf() - (m0.valueOf() - m0day.valueOf())\n  };\n}\n// Diffing Whole Units\nfunction diffWholeWeeks(m0, m1) {\n  let d = diffWholeDays(m0, m1);\n  if (d !== null && d % 7 === 0) {\n    return d / 7;\n  }\n  return null;\n}\nfunction diffWholeDays(m0, m1) {\n  if (timeAsMs(m0) === timeAsMs(m1)) {\n    return Math.round(diffDays(m0, m1));\n  }\n  return null;\n}\n// Start-Of\nfunction startOfDay(m) {\n  return arrayToUtcDate([m.getUTCFullYear(), m.getUTCMonth(), m.getUTCDate()]);\n}\nfunction startOfHour(m) {\n  return arrayToUtcDate([m.getUTCFullYear(), m.getUTCMonth(), m.getUTCDate(), m.getUTCHours()]);\n}\nfunction startOfMinute(m) {\n  return arrayToUtcDate([m.getUTCFullYear(), m.getUTCMonth(), m.getUTCDate(), m.getUTCHours(), m.getUTCMinutes()]);\n}\nfunction startOfSecond(m) {\n  return arrayToUtcDate([m.getUTCFullYear(), m.getUTCMonth(), m.getUTCDate(), m.getUTCHours(), m.getUTCMinutes(), m.getUTCSeconds()]);\n}\n// Week Computation\nfunction weekOfYear(marker, dow, doy) {\n  let y = marker.getUTCFullYear();\n  let w = weekOfGivenYear(marker, y, dow, doy);\n  if (w < 1) {\n    return weekOfGivenYear(marker, y - 1, dow, doy);\n  }\n  let nextW = weekOfGivenYear(marker, y + 1, dow, doy);\n  if (nextW >= 1) {\n    return Math.min(w, nextW);\n  }\n  return w;\n}\nfunction weekOfGivenYear(marker, year, dow, doy) {\n  let firstWeekStart = arrayToUtcDate([year, 0, 1 + firstWeekOffset(year, dow, doy)]);\n  let dayStart = startOfDay(marker);\n  let days = Math.round(diffDays(firstWeekStart, dayStart));\n  return Math.floor(days / 7) + 1; // zero-indexed\n}\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n  // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n  let fwd = 7 + dow - doy;\n  // first-week day local weekday -- which local weekday is fwd\n  let fwdlw = (7 + arrayToUtcDate([year, 0, fwd]).getUTCDay() - dow) % 7;\n  return -fwdlw + fwd - 1;\n}\n// Array Conversion\nfunction dateToLocalArray(date) {\n  return [date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()];\n}\nfunction arrayToLocalDate(a) {\n  return new Date(a[0], a[1] || 0, a[2] == null ? 1 : a[2],\n  // day of month\n  a[3] || 0, a[4] || 0, a[5] || 0);\n}\nfunction dateToUtcArray(date) {\n  return [date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds()];\n}\nfunction arrayToUtcDate(a) {\n  // according to web standards (and Safari), a month index is required.\n  // massage if only given a year.\n  if (a.length === 1) {\n    a = a.concat([0]);\n  }\n  return new Date(Date.UTC(...a));\n}\n// Other Utils\nfunction isValidDate(m) {\n  return !isNaN(m.valueOf());\n}\nfunction timeAsMs(m) {\n  return m.getUTCHours() * 1000 * 60 * 60 + m.getUTCMinutes() * 1000 * 60 + m.getUTCSeconds() * 1000 + m.getUTCMilliseconds();\n}\n\n// timeZoneOffset is in minutes\nfunction buildIsoString(marker, timeZoneOffset, stripZeroTime = false) {\n  let s = marker.toISOString();\n  s = s.replace('.000', '');\n  if (stripZeroTime) {\n    s = s.replace('T00:00:00Z', '');\n  }\n  if (s.length > 10) {\n    // time part wasn't stripped, can add timezone info\n    if (timeZoneOffset == null) {\n      s = s.replace('Z', '');\n    } else if (timeZoneOffset !== 0) {\n      s = s.replace('Z', formatTimeZoneOffset(timeZoneOffset, true));\n    }\n    // otherwise, its UTC-0 and we want to keep the Z\n  }\n  return s;\n}\n// formats the date, but with no time part\n// TODO: somehow merge with buildIsoString and stripZeroTime\n// TODO: rename. omit \"string\"\nfunction formatDayString(marker) {\n  return marker.toISOString().replace(/T.*$/, '');\n}\nfunction formatIsoMonthStr(marker) {\n  return marker.toISOString().match(/^\\d{4}-\\d{2}/)[0];\n}\n// TODO: use Date::toISOString and use everything after the T?\nfunction formatIsoTimeString(marker) {\n  return padStart(marker.getUTCHours(), 2) + ':' + padStart(marker.getUTCMinutes(), 2) + ':' + padStart(marker.getUTCSeconds(), 2);\n}\nfunction formatTimeZoneOffset(minutes, doIso = false) {\n  let sign = minutes < 0 ? '-' : '+';\n  let abs = Math.abs(minutes);\n  let hours = Math.floor(abs / 60);\n  let mins = Math.round(abs % 60);\n  if (doIso) {\n    return `${sign + padStart(hours, 2)}:${padStart(mins, 2)}`;\n  }\n  return `GMT${sign}${hours}${mins ? `:${padStart(mins, 2)}` : ''}`;\n}\nfunction memoize(workerFunc, resEquality, teardownFunc) {\n  let currentArgs;\n  let currentRes;\n  return function (...newArgs) {\n    if (!currentArgs) {\n      currentRes = workerFunc.apply(this, newArgs);\n    } else if (!isArraysEqual(currentArgs, newArgs)) {\n      if (teardownFunc) {\n        teardownFunc(currentRes);\n      }\n      let res = workerFunc.apply(this, newArgs);\n      if (!resEquality || !resEquality(res, currentRes)) {\n        currentRes = res;\n      }\n    }\n    currentArgs = newArgs;\n    return currentRes;\n  };\n}\nfunction memoizeObjArg(workerFunc, resEquality, teardownFunc) {\n  let currentArg;\n  let currentRes;\n  return newArg => {\n    if (!currentArg) {\n      currentRes = workerFunc.call(this, newArg);\n    } else if (!isPropsEqual(currentArg, newArg)) {\n      if (teardownFunc) {\n        teardownFunc(currentRes);\n      }\n      let res = workerFunc.call(this, newArg);\n      if (!resEquality || !resEquality(res, currentRes)) {\n        currentRes = res;\n      }\n    }\n    currentArg = newArg;\n    return currentRes;\n  };\n}\nfunction memoizeArraylike(\n// used at all?\nworkerFunc, resEquality, teardownFunc) {\n  let currentArgSets = [];\n  let currentResults = [];\n  return newArgSets => {\n    let currentLen = currentArgSets.length;\n    let newLen = newArgSets.length;\n    let i = 0;\n    for (; i < currentLen; i += 1) {\n      if (!newArgSets[i]) {\n        // one of the old sets no longer exists\n        if (teardownFunc) {\n          teardownFunc(currentResults[i]);\n        }\n      } else if (!isArraysEqual(currentArgSets[i], newArgSets[i])) {\n        if (teardownFunc) {\n          teardownFunc(currentResults[i]);\n        }\n        let res = workerFunc.apply(this, newArgSets[i]);\n        if (!resEquality || !resEquality(res, currentResults[i])) {\n          currentResults[i] = res;\n        }\n      }\n    }\n    for (; i < newLen; i += 1) {\n      currentResults[i] = workerFunc.apply(this, newArgSets[i]);\n    }\n    currentArgSets = newArgSets;\n    currentResults.splice(newLen); // remove excess\n    return currentResults;\n  };\n}\nfunction memoizeHashlike(workerFunc, resEquality, teardownFunc) {\n  let currentArgHash = {};\n  let currentResHash = {};\n  return newArgHash => {\n    let newResHash = {};\n    for (let key in newArgHash) {\n      if (!currentResHash[key]) {\n        newResHash[key] = workerFunc.apply(this, newArgHash[key]);\n      } else if (!isArraysEqual(currentArgHash[key], newArgHash[key])) {\n        if (teardownFunc) {\n          teardownFunc(currentResHash[key]);\n        }\n        let res = workerFunc.apply(this, newArgHash[key]);\n        newResHash[key] = resEquality && resEquality(res, currentResHash[key]) ? currentResHash[key] : res;\n      } else {\n        newResHash[key] = currentResHash[key];\n      }\n    }\n    currentArgHash = newArgHash;\n    currentResHash = newResHash;\n    return newResHash;\n  };\n}\nconst EXTENDED_SETTINGS_AND_SEVERITIES = {\n  week: 3,\n  separator: 9,\n  omitZeroMinute: 9,\n  meridiem: 9,\n  omitCommas: 9\n};\nconst STANDARD_DATE_PROP_SEVERITIES = {\n  timeZoneName: 7,\n  era: 6,\n  year: 5,\n  month: 4,\n  day: 2,\n  weekday: 2,\n  hour: 1,\n  minute: 1,\n  second: 1\n};\nconst MERIDIEM_RE = /\\s*([ap])\\.?m\\.?/i; // eats up leading spaces too\nconst COMMA_RE = /,/g; // we need re for globalness\nconst MULTI_SPACE_RE = /\\s+/g;\nconst LTR_RE = /\\u200e/g; // control character\nconst UTC_RE = /UTC|GMT/;\nclass NativeFormatter {\n  constructor(formatSettings) {\n    let standardDateProps = {};\n    let extendedSettings = {};\n    let smallestUnitNum = 9; // the smallest unit in the formatter (9 is a sentinel, beyond max)\n    for (let name in formatSettings) {\n      if (name in EXTENDED_SETTINGS_AND_SEVERITIES) {\n        extendedSettings[name] = formatSettings[name];\n        const severity = EXTENDED_SETTINGS_AND_SEVERITIES[name];\n        if (severity < 9) {\n          smallestUnitNum = Math.min(EXTENDED_SETTINGS_AND_SEVERITIES[name], smallestUnitNum);\n        }\n      } else {\n        standardDateProps[name] = formatSettings[name];\n        if (name in STANDARD_DATE_PROP_SEVERITIES) {\n          // TODO: what about hour12? no severity\n          smallestUnitNum = Math.min(STANDARD_DATE_PROP_SEVERITIES[name], smallestUnitNum);\n        }\n      }\n    }\n    this.standardDateProps = standardDateProps;\n    this.extendedSettings = extendedSettings;\n    this.smallestUnitNum = smallestUnitNum;\n    this.buildFormattingFunc = memoize(buildFormattingFunc);\n  }\n  format(date, context) {\n    return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, context)(date);\n  }\n  formatRange(start, end, context, betterDefaultSeparator) {\n    let {\n      standardDateProps,\n      extendedSettings\n    } = this;\n    let diffSeverity = computeMarkerDiffSeverity(start.marker, end.marker, context.calendarSystem);\n    if (!diffSeverity) {\n      return this.format(start, context);\n    }\n    let biggestUnitForPartial = diffSeverity;\n    if (biggestUnitForPartial > 1 && (\n    // the two dates are different in a way that's larger scale than time\n    standardDateProps.year === 'numeric' || standardDateProps.year === '2-digit') && (standardDateProps.month === 'numeric' || standardDateProps.month === '2-digit') && (standardDateProps.day === 'numeric' || standardDateProps.day === '2-digit')) {\n      biggestUnitForPartial = 1; // make it look like the dates are only different in terms of time\n    }\n    let full0 = this.format(start, context);\n    let full1 = this.format(end, context);\n    if (full0 === full1) {\n      return full0;\n    }\n    let partialDateProps = computePartialFormattingOptions(standardDateProps, biggestUnitForPartial);\n    let partialFormattingFunc = buildFormattingFunc(partialDateProps, extendedSettings, context);\n    let partial0 = partialFormattingFunc(start);\n    let partial1 = partialFormattingFunc(end);\n    let insertion = findCommonInsertion(full0, partial0, full1, partial1);\n    let separator = extendedSettings.separator || betterDefaultSeparator || context.defaultSeparator || '';\n    if (insertion) {\n      return insertion.before + partial0 + separator + partial1 + insertion.after;\n    }\n    return full0 + separator + full1;\n  }\n  getSmallestUnit() {\n    switch (this.smallestUnitNum) {\n      case 7:\n      case 6:\n      case 5:\n        return 'year';\n      case 4:\n        return 'month';\n      case 3:\n        return 'week';\n      case 2:\n        return 'day';\n      default:\n        return 'time';\n      // really?\n    }\n  }\n}\nfunction buildFormattingFunc(standardDateProps, extendedSettings, context) {\n  let standardDatePropCnt = Object.keys(standardDateProps).length;\n  if (standardDatePropCnt === 1 && standardDateProps.timeZoneName === 'short') {\n    return date => formatTimeZoneOffset(date.timeZoneOffset);\n  }\n  if (standardDatePropCnt === 0 && extendedSettings.week) {\n    return date => formatWeekNumber(context.computeWeekNumber(date.marker), context.weekText, context.weekTextLong, context.locale, extendedSettings.week);\n  }\n  return buildNativeFormattingFunc(standardDateProps, extendedSettings, context);\n}\nfunction buildNativeFormattingFunc(standardDateProps, extendedSettings, context) {\n  standardDateProps = Object.assign({}, standardDateProps); // copy\n  extendedSettings = Object.assign({}, extendedSettings); // copy\n  sanitizeSettings(standardDateProps, extendedSettings);\n  standardDateProps.timeZone = 'UTC'; // we leverage the only guaranteed timeZone for our UTC markers\n  let normalFormat = new Intl.DateTimeFormat(context.locale.codes, standardDateProps);\n  let zeroFormat; // needed?\n  if (extendedSettings.omitZeroMinute) {\n    let zeroProps = Object.assign({}, standardDateProps);\n    delete zeroProps.minute; // seconds and ms were already considered in sanitizeSettings\n    zeroFormat = new Intl.DateTimeFormat(context.locale.codes, zeroProps);\n  }\n  return date => {\n    let {\n      marker\n    } = date;\n    let format;\n    if (zeroFormat && !marker.getUTCMinutes()) {\n      format = zeroFormat;\n    } else {\n      format = normalFormat;\n    }\n    let s = format.format(marker);\n    return postProcess(s, date, standardDateProps, extendedSettings, context);\n  };\n}\nfunction sanitizeSettings(standardDateProps, extendedSettings) {\n  // deal with a browser inconsistency where formatting the timezone\n  // requires that the hour/minute be present.\n  if (standardDateProps.timeZoneName) {\n    if (!standardDateProps.hour) {\n      standardDateProps.hour = '2-digit';\n    }\n    if (!standardDateProps.minute) {\n      standardDateProps.minute = '2-digit';\n    }\n  }\n  // only support short timezone names\n  if (standardDateProps.timeZoneName === 'long') {\n    standardDateProps.timeZoneName = 'short';\n  }\n  // if requesting to display seconds, MUST display minutes\n  if (extendedSettings.omitZeroMinute && (standardDateProps.second || standardDateProps.millisecond)) {\n    delete extendedSettings.omitZeroMinute;\n  }\n}\nfunction postProcess(s, date, standardDateProps, extendedSettings, context) {\n  s = s.replace(LTR_RE, ''); // remove left-to-right control chars. do first. good for other regexes\n  if (standardDateProps.timeZoneName === 'short') {\n    s = injectTzoStr(s, context.timeZone === 'UTC' || date.timeZoneOffset == null ? 'UTC' :\n    // important to normalize for IE, which does \"GMT\"\n    formatTimeZoneOffset(date.timeZoneOffset));\n  }\n  if (extendedSettings.omitCommas) {\n    s = s.replace(COMMA_RE, '').trim();\n  }\n  if (extendedSettings.omitZeroMinute) {\n    s = s.replace(':00', ''); // zeroFormat doesn't always achieve this\n  }\n  // ^ do anything that might create adjacent spaces before this point,\n  // because MERIDIEM_RE likes to eat up loading spaces\n  if (extendedSettings.meridiem === false) {\n    s = s.replace(MERIDIEM_RE, '').trim();\n  } else if (extendedSettings.meridiem === 'narrow') {\n    // a/p\n    s = s.replace(MERIDIEM_RE, (m0, m1) => m1.toLocaleLowerCase());\n  } else if (extendedSettings.meridiem === 'short') {\n    // am/pm\n    s = s.replace(MERIDIEM_RE, (m0, m1) => `${m1.toLocaleLowerCase()}m`);\n  } else if (extendedSettings.meridiem === 'lowercase') {\n    // other meridiem transformers already converted to lowercase\n    s = s.replace(MERIDIEM_RE, m0 => m0.toLocaleLowerCase());\n  }\n  s = s.replace(MULTI_SPACE_RE, ' ');\n  s = s.trim();\n  return s;\n}\nfunction injectTzoStr(s, tzoStr) {\n  let replaced = false;\n  s = s.replace(UTC_RE, () => {\n    replaced = true;\n    return tzoStr;\n  });\n  // IE11 doesn't include UTC/GMT in the original string, so append to end\n  if (!replaced) {\n    s += ` ${tzoStr}`;\n  }\n  return s;\n}\nfunction formatWeekNumber(num, weekText, weekTextLong, locale, display) {\n  let parts = [];\n  if (display === 'long') {\n    parts.push(weekTextLong);\n  } else if (display === 'short' || display === 'narrow') {\n    parts.push(weekText);\n  }\n  if (display === 'long' || display === 'short') {\n    parts.push(' ');\n  }\n  parts.push(locale.simpleNumberFormat.format(num));\n  if (locale.options.direction === 'rtl') {\n    // TODO: use control characters instead?\n    parts.reverse();\n  }\n  return parts.join('');\n}\n// Range Formatting Utils\n// 0 = exactly the same\n// 1 = different by time\n// and bigger\nfunction computeMarkerDiffSeverity(d0, d1, ca) {\n  if (ca.getMarkerYear(d0) !== ca.getMarkerYear(d1)) {\n    return 5;\n  }\n  if (ca.getMarkerMonth(d0) !== ca.getMarkerMonth(d1)) {\n    return 4;\n  }\n  if (ca.getMarkerDay(d0) !== ca.getMarkerDay(d1)) {\n    return 2;\n  }\n  if (timeAsMs(d0) !== timeAsMs(d1)) {\n    return 1;\n  }\n  return 0;\n}\nfunction computePartialFormattingOptions(options, biggestUnit) {\n  let partialOptions = {};\n  for (let name in options) {\n    if (!(name in STANDARD_DATE_PROP_SEVERITIES) ||\n    // not a date part prop (like timeZone)\n    STANDARD_DATE_PROP_SEVERITIES[name] <= biggestUnit) {\n      partialOptions[name] = options[name];\n    }\n  }\n  return partialOptions;\n}\nfunction findCommonInsertion(full0, partial0, full1, partial1) {\n  let i0 = 0;\n  while (i0 < full0.length) {\n    let found0 = full0.indexOf(partial0, i0);\n    if (found0 === -1) {\n      break;\n    }\n    let before0 = full0.substr(0, found0);\n    i0 = found0 + partial0.length;\n    let after0 = full0.substr(i0);\n    let i1 = 0;\n    while (i1 < full1.length) {\n      let found1 = full1.indexOf(partial1, i1);\n      if (found1 === -1) {\n        break;\n      }\n      let before1 = full1.substr(0, found1);\n      i1 = found1 + partial1.length;\n      let after1 = full1.substr(i1);\n      if (before0 === before1 && after0 === after1) {\n        return {\n          before: before0,\n          after: after0\n        };\n      }\n    }\n  }\n  return null;\n}\nfunction expandZonedMarker(dateInfo, calendarSystem) {\n  let a = calendarSystem.markerToArray(dateInfo.marker);\n  return {\n    marker: dateInfo.marker,\n    timeZoneOffset: dateInfo.timeZoneOffset,\n    array: a,\n    year: a[0],\n    month: a[1],\n    day: a[2],\n    hour: a[3],\n    minute: a[4],\n    second: a[5],\n    millisecond: a[6]\n  };\n}\nfunction createVerboseFormattingArg(start, end, context, betterDefaultSeparator) {\n  let startInfo = expandZonedMarker(start, context.calendarSystem);\n  let endInfo = end ? expandZonedMarker(end, context.calendarSystem) : null;\n  return {\n    date: startInfo,\n    start: startInfo,\n    end: endInfo,\n    timeZone: context.timeZone,\n    localeCodes: context.locale.codes,\n    defaultSeparator: betterDefaultSeparator || context.defaultSeparator\n  };\n}\n\n/*\nTODO: fix the terminology of \"formatter\" vs \"formatting func\"\n*/\n/*\nAt the time of instantiation, this object does not know which cmd-formatting system it will use.\nIt receives this at the time of formatting, as a setting.\n*/\nclass CmdFormatter {\n  constructor(cmdStr) {\n    this.cmdStr = cmdStr;\n  }\n  format(date, context, betterDefaultSeparator) {\n    return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n  }\n  formatRange(start, end, context, betterDefaultSeparator) {\n    return context.cmdFormatter(this.cmdStr, createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n  }\n}\nclass FuncFormatter {\n  constructor(func) {\n    this.func = func;\n  }\n  format(date, context, betterDefaultSeparator) {\n    return this.func(createVerboseFormattingArg(date, null, context, betterDefaultSeparator));\n  }\n  formatRange(start, end, context, betterDefaultSeparator) {\n    return this.func(createVerboseFormattingArg(start, end, context, betterDefaultSeparator));\n  }\n}\nfunction createFormatter(input) {\n  if (typeof input === 'object' && input) {\n    // non-null object\n    return new NativeFormatter(input);\n  }\n  if (typeof input === 'string') {\n    return new CmdFormatter(input);\n  }\n  if (typeof input === 'function') {\n    return new FuncFormatter(input);\n  }\n  return null;\n}\n\n// base options\n// ------------\nconst BASE_OPTION_REFINERS = {\n  navLinkDayClick: identity,\n  navLinkWeekClick: identity,\n  duration: createDuration,\n  bootstrapFontAwesome: identity,\n  buttonIcons: identity,\n  customButtons: identity,\n  defaultAllDayEventDuration: createDuration,\n  defaultTimedEventDuration: createDuration,\n  nextDayThreshold: createDuration,\n  scrollTime: createDuration,\n  scrollTimeReset: Boolean,\n  slotMinTime: createDuration,\n  slotMaxTime: createDuration,\n  dayPopoverFormat: createFormatter,\n  slotDuration: createDuration,\n  snapDuration: createDuration,\n  headerToolbar: identity,\n  footerToolbar: identity,\n  defaultRangeSeparator: String,\n  titleRangeSeparator: String,\n  forceEventDuration: Boolean,\n  dayHeaders: Boolean,\n  dayHeaderFormat: createFormatter,\n  dayHeaderClassNames: identity,\n  dayHeaderContent: identity,\n  dayHeaderDidMount: identity,\n  dayHeaderWillUnmount: identity,\n  dayCellClassNames: identity,\n  dayCellContent: identity,\n  dayCellDidMount: identity,\n  dayCellWillUnmount: identity,\n  initialView: String,\n  aspectRatio: Number,\n  weekends: Boolean,\n  weekNumberCalculation: identity,\n  weekNumbers: Boolean,\n  weekNumberClassNames: identity,\n  weekNumberContent: identity,\n  weekNumberDidMount: identity,\n  weekNumberWillUnmount: identity,\n  editable: Boolean,\n  viewClassNames: identity,\n  viewDidMount: identity,\n  viewWillUnmount: identity,\n  nowIndicator: Boolean,\n  nowIndicatorClassNames: identity,\n  nowIndicatorContent: identity,\n  nowIndicatorDidMount: identity,\n  nowIndicatorWillUnmount: identity,\n  showNonCurrentDates: Boolean,\n  lazyFetching: Boolean,\n  startParam: String,\n  endParam: String,\n  timeZoneParam: String,\n  timeZone: String,\n  locales: identity,\n  locale: identity,\n  themeSystem: String,\n  dragRevertDuration: Number,\n  dragScroll: Boolean,\n  allDayMaintainDuration: Boolean,\n  unselectAuto: Boolean,\n  dropAccept: identity,\n  eventOrder: parseFieldSpecs,\n  eventOrderStrict: Boolean,\n  handleWindowResize: Boolean,\n  windowResizeDelay: Number,\n  longPressDelay: Number,\n  eventDragMinDistance: Number,\n  expandRows: Boolean,\n  height: identity,\n  contentHeight: identity,\n  direction: String,\n  weekNumberFormat: createFormatter,\n  eventResizableFromStart: Boolean,\n  displayEventTime: Boolean,\n  displayEventEnd: Boolean,\n  weekText: String,\n  weekTextLong: String,\n  progressiveEventRendering: Boolean,\n  businessHours: identity,\n  initialDate: identity,\n  now: identity,\n  eventDataTransform: identity,\n  stickyHeaderDates: identity,\n  stickyFooterScrollbar: identity,\n  viewHeight: identity,\n  defaultAllDay: Boolean,\n  eventSourceFailure: identity,\n  eventSourceSuccess: identity,\n  eventDisplay: String,\n  eventStartEditable: Boolean,\n  eventDurationEditable: Boolean,\n  eventOverlap: identity,\n  eventConstraint: identity,\n  eventAllow: identity,\n  eventBackgroundColor: String,\n  eventBorderColor: String,\n  eventTextColor: String,\n  eventColor: String,\n  eventClassNames: identity,\n  eventContent: identity,\n  eventDidMount: identity,\n  eventWillUnmount: identity,\n  selectConstraint: identity,\n  selectOverlap: identity,\n  selectAllow: identity,\n  droppable: Boolean,\n  unselectCancel: String,\n  slotLabelFormat: identity,\n  slotLaneClassNames: identity,\n  slotLaneContent: identity,\n  slotLaneDidMount: identity,\n  slotLaneWillUnmount: identity,\n  slotLabelClassNames: identity,\n  slotLabelContent: identity,\n  slotLabelDidMount: identity,\n  slotLabelWillUnmount: identity,\n  dayMaxEvents: identity,\n  dayMaxEventRows: identity,\n  dayMinWidth: Number,\n  slotLabelInterval: createDuration,\n  allDayText: String,\n  allDayClassNames: identity,\n  allDayContent: identity,\n  allDayDidMount: identity,\n  allDayWillUnmount: identity,\n  slotMinWidth: Number,\n  navLinks: Boolean,\n  eventTimeFormat: createFormatter,\n  rerenderDelay: Number,\n  moreLinkText: identity,\n  moreLinkHint: identity,\n  selectMinDistance: Number,\n  selectable: Boolean,\n  selectLongPressDelay: Number,\n  eventLongPressDelay: Number,\n  selectMirror: Boolean,\n  eventMaxStack: Number,\n  eventMinHeight: Number,\n  eventMinWidth: Number,\n  eventShortHeight: Number,\n  slotEventOverlap: Boolean,\n  plugins: identity,\n  firstDay: Number,\n  dayCount: Number,\n  dateAlignment: String,\n  dateIncrement: createDuration,\n  hiddenDays: identity,\n  fixedWeekCount: Boolean,\n  validRange: identity,\n  visibleRange: identity,\n  titleFormat: identity,\n  eventInteractive: Boolean,\n  // only used by list-view, but languages define the value, so we need it in base options\n  noEventsText: String,\n  viewHint: identity,\n  navLinkHint: identity,\n  closeHint: String,\n  timeHint: String,\n  eventHint: String,\n  moreLinkClick: identity,\n  moreLinkClassNames: identity,\n  moreLinkContent: identity,\n  moreLinkDidMount: identity,\n  moreLinkWillUnmount: identity,\n  monthStartFormat: createFormatter,\n  // for connectors\n  // (can't be part of plugin system b/c must be provided at runtime)\n  handleCustomRendering: identity,\n  customRenderingMetaMap: identity,\n  customRenderingReplaces: Boolean\n};\n// do NOT give a type here. need `typeof BASE_OPTION_DEFAULTS` to give real results.\n// raw values.\nconst BASE_OPTION_DEFAULTS = {\n  eventDisplay: 'auto',\n  defaultRangeSeparator: ' - ',\n  titleRangeSeparator: ' \\u2013 ',\n  defaultTimedEventDuration: '01:00:00',\n  defaultAllDayEventDuration: {\n    day: 1\n  },\n  forceEventDuration: false,\n  nextDayThreshold: '00:00:00',\n  dayHeaders: true,\n  initialView: '',\n  aspectRatio: 1.35,\n  headerToolbar: {\n    start: 'title',\n    center: '',\n    end: 'today prev,next'\n  },\n  weekends: true,\n  weekNumbers: false,\n  weekNumberCalculation: 'local',\n  editable: false,\n  nowIndicator: false,\n  scrollTime: '06:00:00',\n  scrollTimeReset: true,\n  slotMinTime: '00:00:00',\n  slotMaxTime: '24:00:00',\n  showNonCurrentDates: true,\n  lazyFetching: true,\n  startParam: 'start',\n  endParam: 'end',\n  timeZoneParam: 'timeZone',\n  timeZone: 'local',\n  locales: [],\n  locale: '',\n  themeSystem: 'standard',\n  dragRevertDuration: 500,\n  dragScroll: true,\n  allDayMaintainDuration: false,\n  unselectAuto: true,\n  dropAccept: '*',\n  eventOrder: 'start,-duration,allDay,title',\n  dayPopoverFormat: {\n    month: 'long',\n    day: 'numeric',\n    year: 'numeric'\n  },\n  handleWindowResize: true,\n  windowResizeDelay: 100,\n  longPressDelay: 1000,\n  eventDragMinDistance: 5,\n  expandRows: false,\n  navLinks: false,\n  selectable: false,\n  eventMinHeight: 15,\n  eventMinWidth: 30,\n  eventShortHeight: 30,\n  monthStartFormat: {\n    month: 'long',\n    day: 'numeric'\n  }\n};\n// calendar listeners\n// ------------------\nconst CALENDAR_LISTENER_REFINERS = {\n  datesSet: identity,\n  eventsSet: identity,\n  eventAdd: identity,\n  eventChange: identity,\n  eventRemove: identity,\n  windowResize: identity,\n  eventClick: identity,\n  eventMouseEnter: identity,\n  eventMouseLeave: identity,\n  select: identity,\n  unselect: identity,\n  loading: identity,\n  // internal\n  _unmount: identity,\n  _beforeprint: identity,\n  _afterprint: identity,\n  _noEventDrop: identity,\n  _noEventResize: identity,\n  _resize: identity,\n  _scrollRequest: identity\n};\n// calendar-specific options\n// -------------------------\nconst CALENDAR_OPTION_REFINERS = {\n  buttonText: identity,\n  buttonHints: identity,\n  views: identity,\n  plugins: identity,\n  initialEvents: identity,\n  events: identity,\n  eventSources: identity\n};\nconst COMPLEX_OPTION_COMPARATORS = {\n  headerToolbar: isMaybeObjectsEqual,\n  footerToolbar: isMaybeObjectsEqual,\n  buttonText: isMaybeObjectsEqual,\n  buttonHints: isMaybeObjectsEqual,\n  buttonIcons: isMaybeObjectsEqual,\n  dateIncrement: isMaybeObjectsEqual,\n  plugins: isMaybeArraysEqual,\n  events: isMaybeArraysEqual,\n  eventSources: isMaybeArraysEqual,\n  ['resources']: isMaybeArraysEqual\n};\nfunction isMaybeObjectsEqual(a, b) {\n  if (typeof a === 'object' && typeof b === 'object' && a && b) {\n    // both non-null objects\n    return isPropsEqual(a, b);\n  }\n  return a === b;\n}\nfunction isMaybeArraysEqual(a, b) {\n  if (Array.isArray(a) && Array.isArray(b)) {\n    return isArraysEqual(a, b);\n  }\n  return a === b;\n}\n// view-specific options\n// ---------------------\nconst VIEW_OPTION_REFINERS = {\n  type: String,\n  component: identity,\n  buttonText: String,\n  buttonTextKey: String,\n  dateProfileGeneratorClass: identity,\n  usesMinMaxTime: Boolean,\n  classNames: identity,\n  content: identity,\n  didMount: identity,\n  willUnmount: identity\n};\n// util funcs\n// ----------------------------------------------------------------------------------------------------\nfunction mergeRawOptions(optionSets) {\n  return mergeProps(optionSets, COMPLEX_OPTION_COMPARATORS);\n}\nfunction refineProps(input, refiners) {\n  let refined = {};\n  let extra = {};\n  for (let propName in refiners) {\n    if (propName in input) {\n      refined[propName] = refiners[propName](input[propName]);\n    }\n  }\n  for (let propName in input) {\n    if (!(propName in refiners)) {\n      extra[propName] = input[propName];\n    }\n  }\n  return {\n    refined,\n    extra\n  };\n}\nfunction identity(raw) {\n  return raw;\n}\nconst {\n  hasOwnProperty\n} = Object.prototype;\n// Merges an array of objects into a single object.\n// The second argument allows for an array of property names who's object values will be merged together.\nfunction mergeProps(propObjs, complexPropsMap) {\n  let dest = {};\n  if (complexPropsMap) {\n    for (let name in complexPropsMap) {\n      if (complexPropsMap[name] === isMaybeObjectsEqual) {\n        // implies that it's object-mergeable\n        let complexObjs = [];\n        // collect the trailing object values, stopping when a non-object is discovered\n        for (let i = propObjs.length - 1; i >= 0; i -= 1) {\n          let val = propObjs[i][name];\n          if (typeof val === 'object' && val) {\n            // non-null object\n            complexObjs.unshift(val);\n          } else if (val !== undefined) {\n            dest[name] = val; // if there were no objects, this value will be used\n            break;\n          }\n        }\n        // if the trailing values were objects, use the merged value\n        if (complexObjs.length) {\n          dest[name] = mergeProps(complexObjs);\n        }\n      }\n    }\n  }\n  // copy values into the destination, going from last to first\n  for (let i = propObjs.length - 1; i >= 0; i -= 1) {\n    let props = propObjs[i];\n    for (let name in props) {\n      if (!(name in dest)) {\n        // if already assigned by previous props or complex props, don't reassign\n        dest[name] = props[name];\n      }\n    }\n  }\n  return dest;\n}\nfunction filterHash(hash, func) {\n  let filtered = {};\n  for (let key in hash) {\n    if (func(hash[key], key)) {\n      filtered[key] = hash[key];\n    }\n  }\n  return filtered;\n}\nfunction mapHash(hash, func) {\n  let newHash = {};\n  for (let key in hash) {\n    newHash[key] = func(hash[key], key);\n  }\n  return newHash;\n}\nfunction arrayToHash(a) {\n  let hash = {};\n  for (let item of a) {\n    hash[item] = true;\n  }\n  return hash;\n}\n// TODO: reassess browser support\n// https://caniuse.com/?search=object.values\nfunction hashValuesToArray(obj) {\n  let a = [];\n  for (let key in obj) {\n    a.push(obj[key]);\n  }\n  return a;\n}\nfunction isPropsEqual(obj0, obj1) {\n  if (obj0 === obj1) {\n    return true;\n  }\n  for (let key in obj0) {\n    if (hasOwnProperty.call(obj0, key)) {\n      if (!(key in obj1)) {\n        return false;\n      }\n    }\n  }\n  for (let key in obj1) {\n    if (hasOwnProperty.call(obj1, key)) {\n      if (obj0[key] !== obj1[key]) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\nconst HANDLER_RE = /^on[A-Z]/;\nfunction isNonHandlerPropsEqual(obj0, obj1) {\n  const keys = getUnequalProps(obj0, obj1);\n  for (let key of keys) {\n    if (!HANDLER_RE.test(key)) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction getUnequalProps(obj0, obj1) {\n  let keys = [];\n  for (let key in obj0) {\n    if (hasOwnProperty.call(obj0, key)) {\n      if (!(key in obj1)) {\n        keys.push(key);\n      }\n    }\n  }\n  for (let key in obj1) {\n    if (hasOwnProperty.call(obj1, key)) {\n      if (obj0[key] !== obj1[key]) {\n        keys.push(key);\n      }\n    }\n  }\n  return keys;\n}\nfunction compareObjs(oldProps, newProps, equalityFuncs = {}) {\n  if (oldProps === newProps) {\n    return true;\n  }\n  // if (debug) {\n  //   for (let key in newProps) {\n  //     if (key in oldProps && isObjValsEqual(oldProps[key], newProps[key], equalityFuncs[key])) {\n  //       // equal\n  //     } else {\n  //       if (debug) {\n  //         console.log('prop difference', key, oldProps[key], newProps[key])\n  //       }\n  //     }\n  //   }\n  //   // check for props that were omitted in the new\n  //   for (let key in oldProps) {\n  //     if (!(key in newProps)) {\n  //       if (debug) {\n  //         console.log('prop absent', key)\n  //       }\n  //     }\n  //   }\n  // }\n  for (let key in newProps) {\n    if (key in oldProps && isObjValsEqual(oldProps[key], newProps[key], equalityFuncs[key])) ;else {\n      return false;\n    }\n  }\n  // check for props that were omitted in the new\n  for (let key in oldProps) {\n    if (!(key in newProps)) {\n      return false;\n    }\n  }\n  return true;\n}\n/*\nassumed \"true\" equality for handler names like \"onReceiveSomething\"\n*/\nfunction isObjValsEqual(val0, val1, comparator) {\n  if (val0 === val1 || comparator === true) {\n    return true;\n  }\n  if (comparator) {\n    return comparator(val0, val1);\n  }\n  return false;\n}\nfunction collectFromHash(hash, startIndex = 0, endIndex, step = 1) {\n  let res = [];\n  if (endIndex == null) {\n    endIndex = Object.keys(hash).length;\n  }\n  for (let i = startIndex; i < endIndex; i += step) {\n    let val = hash[i];\n    if (val !== undefined) {\n      // will disregard undefined for sparse arrays\n      res.push(val);\n    }\n  }\n  return res;\n}\nlet calendarSystemClassMap = {};\nfunction registerCalendarSystem(name, theClass) {\n  calendarSystemClassMap[name] = theClass;\n}\nfunction createCalendarSystem(name) {\n  return new calendarSystemClassMap[name]();\n}\nclass GregorianCalendarSystem {\n  getMarkerYear(d) {\n    return d.getUTCFullYear();\n  }\n  getMarkerMonth(d) {\n    return d.getUTCMonth();\n  }\n  getMarkerDay(d) {\n    return d.getUTCDate();\n  }\n  arrayToMarker(arr) {\n    return arrayToUtcDate(arr);\n  }\n  markerToArray(marker) {\n    return dateToUtcArray(marker);\n  }\n}\nregisterCalendarSystem('gregory', GregorianCalendarSystem);\nconst ISO_RE = /^\\s*(\\d{4})(-?(\\d{2})(-?(\\d{2})([T ](\\d{2}):?(\\d{2})(:?(\\d{2})(\\.(\\d+))?)?(Z|(([-+])(\\d{2})(:?(\\d{2}))?))?)?)?)?$/;\nfunction parse(str) {\n  let m = ISO_RE.exec(str);\n  if (m) {\n    let marker = new Date(Date.UTC(Number(m[1]), m[3] ? Number(m[3]) - 1 : 0, Number(m[5] || 1), Number(m[7] || 0), Number(m[8] || 0), Number(m[10] || 0), m[12] ? Number(`0.${m[12]}`) * 1000 : 0));\n    if (isValidDate(marker)) {\n      let timeZoneOffset = null;\n      if (m[13]) {\n        timeZoneOffset = (m[15] === '-' ? -1 : 1) * (Number(m[16] || 0) * 60 + Number(m[18] || 0));\n      }\n      return {\n        marker,\n        isTimeUnspecified: !m[6],\n        timeZoneOffset\n      };\n    }\n  }\n  return null;\n}\nclass DateEnv {\n  constructor(settings) {\n    let timeZone = this.timeZone = settings.timeZone;\n    let isNamedTimeZone = timeZone !== 'local' && timeZone !== 'UTC';\n    if (settings.namedTimeZoneImpl && isNamedTimeZone) {\n      this.namedTimeZoneImpl = new settings.namedTimeZoneImpl(timeZone);\n    }\n    this.canComputeOffset = Boolean(!isNamedTimeZone || this.namedTimeZoneImpl);\n    this.calendarSystem = createCalendarSystem(settings.calendarSystem);\n    this.locale = settings.locale;\n    this.weekDow = settings.locale.week.dow;\n    this.weekDoy = settings.locale.week.doy;\n    if (settings.weekNumberCalculation === 'ISO') {\n      this.weekDow = 1;\n      this.weekDoy = 4;\n    }\n    if (typeof settings.firstDay === 'number') {\n      this.weekDow = settings.firstDay;\n    }\n    if (typeof settings.weekNumberCalculation === 'function') {\n      this.weekNumberFunc = settings.weekNumberCalculation;\n    }\n    this.weekText = settings.weekText != null ? settings.weekText : settings.locale.options.weekText;\n    this.weekTextLong = (settings.weekTextLong != null ? settings.weekTextLong : settings.locale.options.weekTextLong) || this.weekText;\n    this.cmdFormatter = settings.cmdFormatter;\n    this.defaultSeparator = settings.defaultSeparator;\n  }\n  // Creating / Parsing\n  createMarker(input) {\n    let meta = this.createMarkerMeta(input);\n    if (meta === null) {\n      return null;\n    }\n    return meta.marker;\n  }\n  createNowMarker() {\n    if (this.canComputeOffset) {\n      return this.timestampToMarker(new Date().valueOf());\n    }\n    // if we can't compute the current date val for a timezone,\n    // better to give the current local date vals than UTC\n    return arrayToUtcDate(dateToLocalArray(new Date()));\n  }\n  createMarkerMeta(input) {\n    if (typeof input === 'string') {\n      return this.parse(input);\n    }\n    let marker = null;\n    if (typeof input === 'number') {\n      marker = this.timestampToMarker(input);\n    } else if (input instanceof Date) {\n      input = input.valueOf();\n      if (!isNaN(input)) {\n        marker = this.timestampToMarker(input);\n      }\n    } else if (Array.isArray(input)) {\n      marker = arrayToUtcDate(input);\n    }\n    if (marker === null || !isValidDate(marker)) {\n      return null;\n    }\n    return {\n      marker,\n      isTimeUnspecified: false,\n      forcedTzo: null\n    };\n  }\n  parse(s) {\n    let parts = parse(s);\n    if (parts === null) {\n      return null;\n    }\n    let {\n      marker\n    } = parts;\n    let forcedTzo = null;\n    if (parts.timeZoneOffset !== null) {\n      if (this.canComputeOffset) {\n        marker = this.timestampToMarker(marker.valueOf() - parts.timeZoneOffset * 60 * 1000);\n      } else {\n        forcedTzo = parts.timeZoneOffset;\n      }\n    }\n    return {\n      marker,\n      isTimeUnspecified: parts.isTimeUnspecified,\n      forcedTzo\n    };\n  }\n  // Accessors\n  getYear(marker) {\n    return this.calendarSystem.getMarkerYear(marker);\n  }\n  getMonth(marker) {\n    return this.calendarSystem.getMarkerMonth(marker);\n  }\n  getDay(marker) {\n    return this.calendarSystem.getMarkerDay(marker);\n  }\n  // Adding / Subtracting\n  add(marker, dur) {\n    let a = this.calendarSystem.markerToArray(marker);\n    a[0] += dur.years;\n    a[1] += dur.months;\n    a[2] += dur.days;\n    a[6] += dur.milliseconds;\n    return this.calendarSystem.arrayToMarker(a);\n  }\n  subtract(marker, dur) {\n    let a = this.calendarSystem.markerToArray(marker);\n    a[0] -= dur.years;\n    a[1] -= dur.months;\n    a[2] -= dur.days;\n    a[6] -= dur.milliseconds;\n    return this.calendarSystem.arrayToMarker(a);\n  }\n  addYears(marker, n) {\n    let a = this.calendarSystem.markerToArray(marker);\n    a[0] += n;\n    return this.calendarSystem.arrayToMarker(a);\n  }\n  addMonths(marker, n) {\n    let a = this.calendarSystem.markerToArray(marker);\n    a[1] += n;\n    return this.calendarSystem.arrayToMarker(a);\n  }\n  // Diffing Whole Units\n  diffWholeYears(m0, m1) {\n    let {\n      calendarSystem\n    } = this;\n    if (timeAsMs(m0) === timeAsMs(m1) && calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1) && calendarSystem.getMarkerMonth(m0) === calendarSystem.getMarkerMonth(m1)) {\n      return calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0);\n    }\n    return null;\n  }\n  diffWholeMonths(m0, m1) {\n    let {\n      calendarSystem\n    } = this;\n    if (timeAsMs(m0) === timeAsMs(m1) && calendarSystem.getMarkerDay(m0) === calendarSystem.getMarkerDay(m1)) {\n      return calendarSystem.getMarkerMonth(m1) - calendarSystem.getMarkerMonth(m0) + (calendarSystem.getMarkerYear(m1) - calendarSystem.getMarkerYear(m0)) * 12;\n    }\n    return null;\n  }\n  // Range / Duration\n  greatestWholeUnit(m0, m1) {\n    let n = this.diffWholeYears(m0, m1);\n    if (n !== null) {\n      return {\n        unit: 'year',\n        value: n\n      };\n    }\n    n = this.diffWholeMonths(m0, m1);\n    if (n !== null) {\n      return {\n        unit: 'month',\n        value: n\n      };\n    }\n    n = diffWholeWeeks(m0, m1);\n    if (n !== null) {\n      return {\n        unit: 'week',\n        value: n\n      };\n    }\n    n = diffWholeDays(m0, m1);\n    if (n !== null) {\n      return {\n        unit: 'day',\n        value: n\n      };\n    }\n    n = diffHours(m0, m1);\n    if (isInt(n)) {\n      return {\n        unit: 'hour',\n        value: n\n      };\n    }\n    n = diffMinutes(m0, m1);\n    if (isInt(n)) {\n      return {\n        unit: 'minute',\n        value: n\n      };\n    }\n    n = diffSeconds(m0, m1);\n    if (isInt(n)) {\n      return {\n        unit: 'second',\n        value: n\n      };\n    }\n    return {\n      unit: 'millisecond',\n      value: m1.valueOf() - m0.valueOf()\n    };\n  }\n  countDurationsBetween(m0, m1, d) {\n    // TODO: can use greatestWholeUnit\n    let diff;\n    if (d.years) {\n      diff = this.diffWholeYears(m0, m1);\n      if (diff !== null) {\n        return diff / asRoughYears(d);\n      }\n    }\n    if (d.months) {\n      diff = this.diffWholeMonths(m0, m1);\n      if (diff !== null) {\n        return diff / asRoughMonths(d);\n      }\n    }\n    if (d.days) {\n      diff = diffWholeDays(m0, m1);\n      if (diff !== null) {\n        return diff / asRoughDays(d);\n      }\n    }\n    return (m1.valueOf() - m0.valueOf()) / asRoughMs(d);\n  }\n  // Start-Of\n  // these DON'T return zoned-dates. only UTC start-of dates\n  startOf(m, unit) {\n    if (unit === 'year') {\n      return this.startOfYear(m);\n    }\n    if (unit === 'month') {\n      return this.startOfMonth(m);\n    }\n    if (unit === 'week') {\n      return this.startOfWeek(m);\n    }\n    if (unit === 'day') {\n      return startOfDay(m);\n    }\n    if (unit === 'hour') {\n      return startOfHour(m);\n    }\n    if (unit === 'minute') {\n      return startOfMinute(m);\n    }\n    if (unit === 'second') {\n      return startOfSecond(m);\n    }\n    return null;\n  }\n  startOfYear(m) {\n    return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(m)]);\n  }\n  startOfMonth(m) {\n    return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(m), this.calendarSystem.getMarkerMonth(m)]);\n  }\n  startOfWeek(m) {\n    return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(m), this.calendarSystem.getMarkerMonth(m), m.getUTCDate() - (m.getUTCDay() - this.weekDow + 7) % 7]);\n  }\n  // Week Number\n  computeWeekNumber(marker) {\n    if (this.weekNumberFunc) {\n      return this.weekNumberFunc(this.toDate(marker));\n    }\n    return weekOfYear(marker, this.weekDow, this.weekDoy);\n  }\n  // TODO: choke on timeZoneName: long\n  format(marker, formatter, dateOptions = {}) {\n    return formatter.format({\n      marker,\n      timeZoneOffset: dateOptions.forcedTzo != null ? dateOptions.forcedTzo : this.offsetForMarker(marker)\n    }, this);\n  }\n  formatRange(start, end, formatter, dateOptions = {}) {\n    if (dateOptions.isEndExclusive) {\n      end = addMs(end, -1);\n    }\n    return formatter.formatRange({\n      marker: start,\n      timeZoneOffset: dateOptions.forcedStartTzo != null ? dateOptions.forcedStartTzo : this.offsetForMarker(start)\n    }, {\n      marker: end,\n      timeZoneOffset: dateOptions.forcedEndTzo != null ? dateOptions.forcedEndTzo : this.offsetForMarker(end)\n    }, this, dateOptions.defaultSeparator);\n  }\n  /*\n  DUMB: the omitTime arg is dumb. if we omit the time, we want to omit the timezone offset. and if we do that,\n  might as well use buildIsoString or some other util directly\n  */\n  formatIso(marker, extraOptions = {}) {\n    let timeZoneOffset = null;\n    if (!extraOptions.omitTimeZoneOffset) {\n      if (extraOptions.forcedTzo != null) {\n        timeZoneOffset = extraOptions.forcedTzo;\n      } else {\n        timeZoneOffset = this.offsetForMarker(marker);\n      }\n    }\n    return buildIsoString(marker, timeZoneOffset, extraOptions.omitTime);\n  }\n  // TimeZone\n  timestampToMarker(ms) {\n    if (this.timeZone === 'local') {\n      return arrayToUtcDate(dateToLocalArray(new Date(ms)));\n    }\n    if (this.timeZone === 'UTC' || !this.namedTimeZoneImpl) {\n      return new Date(ms);\n    }\n    return arrayToUtcDate(this.namedTimeZoneImpl.timestampToArray(ms));\n  }\n  offsetForMarker(m) {\n    if (this.timeZone === 'local') {\n      return -arrayToLocalDate(dateToUtcArray(m)).getTimezoneOffset(); // convert \"inverse\" offset to \"normal\" offset\n    }\n    if (this.timeZone === 'UTC') {\n      return 0;\n    }\n    if (this.namedTimeZoneImpl) {\n      return this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m));\n    }\n    return null;\n  }\n  // Conversion\n  toDate(m, forcedTzo) {\n    if (this.timeZone === 'local') {\n      return arrayToLocalDate(dateToUtcArray(m));\n    }\n    if (this.timeZone === 'UTC') {\n      return new Date(m.valueOf()); // make sure it's a copy\n    }\n    if (!this.namedTimeZoneImpl) {\n      return new Date(m.valueOf() - (forcedTzo || 0));\n    }\n    return new Date(m.valueOf() - this.namedTimeZoneImpl.offsetForArray(dateToUtcArray(m)) * 1000 * 60);\n  }\n}\nclass Theme {\n  constructor(calendarOptions) {\n    if (this.iconOverrideOption) {\n      this.setIconOverride(calendarOptions[this.iconOverrideOption]);\n    }\n  }\n  setIconOverride(iconOverrideHash) {\n    let iconClassesCopy;\n    let buttonName;\n    if (typeof iconOverrideHash === 'object' && iconOverrideHash) {\n      // non-null object\n      iconClassesCopy = Object.assign({}, this.iconClasses);\n      for (buttonName in iconOverrideHash) {\n        iconClassesCopy[buttonName] = this.applyIconOverridePrefix(iconOverrideHash[buttonName]);\n      }\n      this.iconClasses = iconClassesCopy;\n    } else if (iconOverrideHash === false) {\n      this.iconClasses = {};\n    }\n  }\n  applyIconOverridePrefix(className) {\n    let prefix = this.iconOverridePrefix;\n    if (prefix && className.indexOf(prefix) !== 0) {\n      // if not already present\n      className = prefix + className;\n    }\n    return className;\n  }\n  getClass(key) {\n    return this.classes[key] || '';\n  }\n  getIconClass(buttonName, isRtl) {\n    let className;\n    if (isRtl && this.rtlIconClasses) {\n      className = this.rtlIconClasses[buttonName] || this.iconClasses[buttonName];\n    } else {\n      className = this.iconClasses[buttonName];\n    }\n    if (className) {\n      return `${this.baseIconClass} ${className}`;\n    }\n    return '';\n  }\n  getCustomButtonIconClass(customButtonProps) {\n    let className;\n    if (this.iconOverrideCustomButtonOption) {\n      className = customButtonProps[this.iconOverrideCustomButtonOption];\n      if (className) {\n        return `${this.baseIconClass} ${this.applyIconOverridePrefix(className)}`;\n      }\n    }\n    return '';\n  }\n}\nTheme.prototype.classes = {};\nTheme.prototype.iconClasses = {};\nTheme.prototype.baseIconClass = '';\nTheme.prototype.iconOverridePrefix = '';\n\n/*\nNOTE: this can be a public API, especially createElement for hooks.\nSee examples/typescript-scheduler/src/index.ts\n*/\nfunction flushSync(runBeforeFlush) {\n  runBeforeFlush();\n  let oldDebounceRendering = preact__WEBPACK_IMPORTED_MODULE_0__.options.debounceRendering; // orig\n  let callbackQ = [];\n  function execCallbackSync(callback) {\n    callbackQ.push(callback);\n  }\n  preact__WEBPACK_IMPORTED_MODULE_0__.options.debounceRendering = execCallbackSync;\n  preact__WEBPACK_IMPORTED_MODULE_0__.render(preact__WEBPACK_IMPORTED_MODULE_0__.createElement(FakeComponent, {}), document.createElement('div'));\n  while (callbackQ.length) {\n    callbackQ.shift()();\n  }\n  preact__WEBPACK_IMPORTED_MODULE_0__.options.debounceRendering = oldDebounceRendering;\n}\nclass FakeComponent extends preact__WEBPACK_IMPORTED_MODULE_0__.Component {\n  render() {\n    return preact__WEBPACK_IMPORTED_MODULE_0__.createElement('div', {});\n  }\n  componentDidMount() {\n    this.setState({});\n  }\n}\n// TODO: use preact/compat instead?\nfunction createContext(defaultValue) {\n  let ContextType = preact__WEBPACK_IMPORTED_MODULE_0__.createContext(defaultValue);\n  let origProvider = ContextType.Provider;\n  ContextType.Provider = function () {\n    let isNew = !this.getChildContext;\n    let children = origProvider.apply(this, arguments); // eslint-disable-line prefer-rest-params\n    if (isNew) {\n      let subs = [];\n      this.shouldComponentUpdate = _props => {\n        if (this.props.value !== _props.value) {\n          subs.forEach(c => {\n            c.context = _props.value;\n            c.forceUpdate();\n          });\n        }\n      };\n      this.sub = c => {\n        subs.push(c);\n        let old = c.componentWillUnmount;\n        c.componentWillUnmount = () => {\n          subs.splice(subs.indexOf(c), 1);\n          old && old.call(c);\n        };\n      };\n    }\n    return children;\n  };\n  return ContextType;\n}\nclass ScrollResponder {\n  constructor(execFunc, emitter, scrollTime, scrollTimeReset) {\n    this.execFunc = execFunc;\n    this.emitter = emitter;\n    this.scrollTime = scrollTime;\n    this.scrollTimeReset = scrollTimeReset;\n    this.handleScrollRequest = request => {\n      this.queuedRequest = Object.assign({}, this.queuedRequest || {}, request);\n      this.drain();\n    };\n    emitter.on('_scrollRequest', this.handleScrollRequest);\n    this.fireInitialScroll();\n  }\n  detach() {\n    this.emitter.off('_scrollRequest', this.handleScrollRequest);\n  }\n  update(isDatesNew) {\n    if (isDatesNew && this.scrollTimeReset) {\n      this.fireInitialScroll(); // will drain\n    } else {\n      this.drain();\n    }\n  }\n  fireInitialScroll() {\n    this.handleScrollRequest({\n      time: this.scrollTime\n    });\n  }\n  drain() {\n    if (this.queuedRequest && this.execFunc(this.queuedRequest)) {\n      this.queuedRequest = null;\n    }\n  }\n}\nconst ViewContextType = createContext({}); // for Components\nfunction buildViewContext(viewSpec, viewApi, viewOptions, dateProfileGenerator, dateEnv, nowManager, theme, pluginHooks, dispatch, getCurrentData, emitter, calendarApi, registerInteractiveComponent, unregisterInteractiveComponent) {\n  return {\n    dateEnv,\n    nowManager,\n    options: viewOptions,\n    pluginHooks,\n    emitter,\n    dispatch,\n    getCurrentData,\n    calendarApi,\n    viewSpec,\n    viewApi,\n    dateProfileGenerator,\n    theme,\n    isRtl: viewOptions.direction === 'rtl',\n    addResizeHandler(handler) {\n      emitter.on('_resize', handler);\n    },\n    removeResizeHandler(handler) {\n      emitter.off('_resize', handler);\n    },\n    createScrollResponder(execFunc) {\n      return new ScrollResponder(execFunc, emitter, createDuration(viewOptions.scrollTime), viewOptions.scrollTimeReset);\n    },\n    registerInteractiveComponent,\n    unregisterInteractiveComponent\n  };\n}\n\n/* eslint max-classes-per-file: off */\nclass PureComponent extends preact__WEBPACK_IMPORTED_MODULE_0__.Component {\n  // debug: boolean\n  shouldComponentUpdate(nextProps, nextState) {\n    const shouldUpdate = !compareObjs(this.props, nextProps, this.propEquality /*, this.debug */) || !compareObjs(this.state, nextState, this.stateEquality /*, this.debug */);\n    // if (this.debug && shouldUpdate) {\n    //   console.log('shouldUpdate!')\n    // }\n    return shouldUpdate;\n  }\n  // HACK for freakin' React StrictMode\n  safeSetState(newState) {\n    if (!compareObjs(this.state, Object.assign(Object.assign({}, this.state), newState), this.stateEquality)) {\n      this.setState(newState);\n    }\n  }\n}\nPureComponent.addPropsEquality = addPropsEquality;\nPureComponent.addStateEquality = addStateEquality;\nPureComponent.contextType = ViewContextType;\nPureComponent.prototype.propEquality = {};\nPureComponent.prototype.stateEquality = {};\nclass BaseComponent extends PureComponent {}\nBaseComponent.contextType = ViewContextType;\nfunction addPropsEquality(propEquality) {\n  let hash = Object.create(this.prototype.propEquality);\n  Object.assign(hash, propEquality);\n  this.prototype.propEquality = hash;\n}\nfunction addStateEquality(stateEquality) {\n  let hash = Object.create(this.prototype.stateEquality);\n  Object.assign(hash, stateEquality);\n  this.prototype.stateEquality = hash;\n}\n// use other one\nfunction setRef(ref, current) {\n  if (typeof ref === 'function') {\n    ref(current);\n  } else if (ref) {\n    // see https://github.com/facebook/react/issues/13029\n    ref.current = current;\n  }\n}\nclass ContentInjector extends BaseComponent {\n  constructor() {\n    super(...arguments);\n    this.id = guid();\n    this.queuedDomNodes = [];\n    this.currentDomNodes = [];\n    this.handleEl = el => {\n      const {\n        options\n      } = this.context;\n      const {\n        generatorName\n      } = this.props;\n      if (!options.customRenderingReplaces || !hasCustomRenderingHandler(generatorName, options)) {\n        this.updateElRef(el);\n      }\n    };\n    this.updateElRef = el => {\n      if (this.props.elRef) {\n        setRef(this.props.elRef, el);\n      }\n    };\n  }\n  render() {\n    const {\n      props,\n      context\n    } = this;\n    const {\n      options\n    } = context;\n    const {\n      customGenerator,\n      defaultGenerator,\n      renderProps\n    } = props;\n    const attrs = buildElAttrs(props, [], this.handleEl);\n    let useDefault = false;\n    let innerContent;\n    let queuedDomNodes = [];\n    let currentGeneratorMeta;\n    if (customGenerator != null) {\n      const customGeneratorRes = typeof customGenerator === 'function' ? customGenerator(renderProps, preact__WEBPACK_IMPORTED_MODULE_0__.createElement) : customGenerator;\n      if (customGeneratorRes === true) {\n        useDefault = true;\n      } else {\n        const isObject = customGeneratorRes && typeof customGeneratorRes === 'object'; // non-null\n        if (isObject && 'html' in customGeneratorRes) {\n          attrs.dangerouslySetInnerHTML = {\n            __html: customGeneratorRes.html\n          };\n        } else if (isObject && 'domNodes' in customGeneratorRes) {\n          queuedDomNodes = Array.prototype.slice.call(customGeneratorRes.domNodes);\n        } else if (isObject ? (0,preact__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(customGeneratorRes) // vdom node\n        : typeof customGeneratorRes !== 'function' // primitive value (like string or number)\n        ) {\n          // use in vdom\n          innerContent = customGeneratorRes;\n        } else {\n          // an exotic object for handleCustomRendering\n          currentGeneratorMeta = customGeneratorRes;\n        }\n      }\n    } else {\n      useDefault = !hasCustomRenderingHandler(props.generatorName, options);\n    }\n    if (useDefault && defaultGenerator) {\n      innerContent = defaultGenerator(renderProps);\n    }\n    this.queuedDomNodes = queuedDomNodes;\n    this.currentGeneratorMeta = currentGeneratorMeta;\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(props.elTag, attrs, innerContent);\n  }\n  componentDidMount() {\n    this.applyQueueudDomNodes();\n    this.triggerCustomRendering(true);\n  }\n  componentDidUpdate() {\n    this.applyQueueudDomNodes();\n    this.triggerCustomRendering(true);\n  }\n  componentWillUnmount() {\n    this.triggerCustomRendering(false); // TODO: different API for removal?\n  }\n  triggerCustomRendering(isActive) {\n    var _a;\n    const {\n      props,\n      context\n    } = this;\n    const {\n      handleCustomRendering,\n      customRenderingMetaMap\n    } = context.options;\n    if (handleCustomRendering) {\n      const generatorMeta = (_a = this.currentGeneratorMeta) !== null && _a !== void 0 ? _a : customRenderingMetaMap === null || customRenderingMetaMap === void 0 ? void 0 : customRenderingMetaMap[props.generatorName];\n      if (generatorMeta) {\n        handleCustomRendering(Object.assign(Object.assign({\n          id: this.id,\n          isActive,\n          containerEl: this.base,\n          reportNewContainerEl: this.updateElRef,\n          // front-end framework tells us about new container els\n          generatorMeta\n        }, props), {\n          elClasses: (props.elClasses || []).filter(isTruthy)\n        }));\n      }\n    }\n  }\n  applyQueueudDomNodes() {\n    const {\n      queuedDomNodes,\n      currentDomNodes\n    } = this;\n    const el = this.base;\n    if (!isArraysEqual(queuedDomNodes, currentDomNodes)) {\n      currentDomNodes.forEach(removeElement);\n      for (let newNode of queuedDomNodes) {\n        el.appendChild(newNode);\n      }\n      this.currentDomNodes = queuedDomNodes;\n    }\n  }\n}\nContentInjector.addPropsEquality({\n  elClasses: isArraysEqual,\n  elStyle: isPropsEqual,\n  elAttrs: isNonHandlerPropsEqual,\n  renderProps: isPropsEqual\n});\n// Util\n/*\nDoes UI-framework provide custom way of rendering that does not use Preact VDOM\nAND does the calendar's options define custom rendering?\nAKA. Should we NOT render the default content?\n*/\nfunction hasCustomRenderingHandler(generatorName, options) {\n  var _a;\n  return Boolean(options.handleCustomRendering && generatorName && ((_a = options.customRenderingMetaMap) === null || _a === void 0 ? void 0 : _a[generatorName]));\n}\nfunction buildElAttrs(props, extraClassNames, elRef) {\n  const attrs = Object.assign(Object.assign({}, props.elAttrs), {\n    ref: elRef\n  });\n  if (props.elClasses || extraClassNames) {\n    attrs.className = (props.elClasses || []).concat(extraClassNames || []).concat(attrs.className || []).filter(Boolean).join(' ');\n  }\n  if (props.elStyle) {\n    attrs.style = props.elStyle;\n  }\n  return attrs;\n}\nfunction isTruthy(val) {\n  return Boolean(val);\n}\nconst RenderId = createContext(0);\nclass ContentContainer extends preact__WEBPACK_IMPORTED_MODULE_0__.Component {\n  constructor() {\n    super(...arguments);\n    this.InnerContent = InnerContentInjector.bind(undefined, this);\n    this.handleEl = el => {\n      this.el = el;\n      if (this.props.elRef) {\n        setRef(this.props.elRef, el);\n        if (el && this.didMountMisfire) {\n          this.componentDidMount();\n        }\n      }\n    };\n  }\n  render() {\n    const {\n      props\n    } = this;\n    const generatedClassNames = generateClassNames(props.classNameGenerator, props.renderProps);\n    if (props.children) {\n      const elAttrs = buildElAttrs(props, generatedClassNames, this.handleEl);\n      const children = props.children(this.InnerContent, props.renderProps, elAttrs);\n      if (props.elTag) {\n        return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(props.elTag, elAttrs, children);\n      } else {\n        return children;\n      }\n    } else {\n      return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(ContentInjector, Object.assign(Object.assign({}, props), {\n        elRef: this.handleEl,\n        elTag: props.elTag || 'div',\n        elClasses: (props.elClasses || []).concat(generatedClassNames),\n        renderId: this.context\n      }));\n    }\n  }\n  componentDidMount() {\n    var _a, _b;\n    if (this.el) {\n      (_b = (_a = this.props).didMount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), {\n        el: this.el\n      }));\n    } else {\n      this.didMountMisfire = true;\n    }\n  }\n  componentWillUnmount() {\n    var _a, _b;\n    (_b = (_a = this.props).willUnmount) === null || _b === void 0 ? void 0 : _b.call(_a, Object.assign(Object.assign({}, this.props.renderProps), {\n      el: this.el\n    }));\n  }\n}\nContentContainer.contextType = RenderId;\nfunction InnerContentInjector(containerComponent, props) {\n  const parentProps = containerComponent.props;\n  return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(ContentInjector, Object.assign({\n    renderProps: parentProps.renderProps,\n    generatorName: parentProps.generatorName,\n    customGenerator: parentProps.customGenerator,\n    defaultGenerator: parentProps.defaultGenerator,\n    renderId: containerComponent.context\n  }, props));\n}\n// Utils\nfunction generateClassNames(classNameGenerator, renderProps) {\n  const classNames = typeof classNameGenerator === 'function' ? classNameGenerator(renderProps) : classNameGenerator || [];\n  return typeof classNames === 'string' ? [classNames] : classNames;\n}\nclass ViewContainer extends BaseComponent {\n  render() {\n    let {\n      props,\n      context\n    } = this;\n    let {\n      options\n    } = context;\n    let renderProps = {\n      view: context.viewApi\n    };\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(ContentContainer, {\n      elRef: props.elRef,\n      elTag: props.elTag || 'div',\n      elAttrs: props.elAttrs,\n      elClasses: [...buildViewClassNames(props.viewSpec), ...(props.elClasses || [])],\n      elStyle: props.elStyle,\n      renderProps: renderProps,\n      classNameGenerator: options.viewClassNames,\n      generatorName: undefined,\n      didMount: options.viewDidMount,\n      willUnmount: options.viewWillUnmount\n    }, () => props.children);\n  }\n}\nfunction buildViewClassNames(viewSpec) {\n  return [`fc-${viewSpec.type}-view`, 'fc-view'];\n}\nfunction parseRange(input, dateEnv) {\n  let start = null;\n  let end = null;\n  if (input.start) {\n    start = dateEnv.createMarker(input.start);\n  }\n  if (input.end) {\n    end = dateEnv.createMarker(input.end);\n  }\n  if (!start && !end) {\n    return null;\n  }\n  if (start && end && end < start) {\n    return null;\n  }\n  return {\n    start,\n    end\n  };\n}\n// SIDE-EFFECT: will mutate ranges.\n// Will return a new array result.\nfunction invertRanges(ranges, constraintRange) {\n  let invertedRanges = [];\n  let {\n    start\n  } = constraintRange; // the end of the previous range. the start of the new range\n  let i;\n  let dateRange;\n  // ranges need to be in order. required for our date-walking algorithm\n  ranges.sort(compareRanges);\n  for (i = 0; i < ranges.length; i += 1) {\n    dateRange = ranges[i];\n    // add the span of time before the event (if there is any)\n    if (dateRange.start > start) {\n      // compare millisecond time (skip any ambig logic)\n      invertedRanges.push({\n        start,\n        end: dateRange.start\n      });\n    }\n    if (dateRange.end > start) {\n      start = dateRange.end;\n    }\n  }\n  // add the span of time after the last event (if there is any)\n  if (start < constraintRange.end) {\n    // compare millisecond time (skip any ambig logic)\n    invertedRanges.push({\n      start,\n      end: constraintRange.end\n    });\n  }\n  return invertedRanges;\n}\nfunction compareRanges(range0, range1) {\n  return range0.start.valueOf() - range1.start.valueOf(); // earlier ranges go first\n}\nfunction intersectRanges(range0, range1) {\n  let {\n    start,\n    end\n  } = range0;\n  let newRange = null;\n  if (range1.start !== null) {\n    if (start === null) {\n      start = range1.start;\n    } else {\n      start = new Date(Math.max(start.valueOf(), range1.start.valueOf()));\n    }\n  }\n  if (range1.end != null) {\n    if (end === null) {\n      end = range1.end;\n    } else {\n      end = new Date(Math.min(end.valueOf(), range1.end.valueOf()));\n    }\n  }\n  if (start === null || end === null || start < end) {\n    newRange = {\n      start,\n      end\n    };\n  }\n  return newRange;\n}\nfunction rangesEqual(range0, range1) {\n  return (range0.start === null ? null : range0.start.valueOf()) === (range1.start === null ? null : range1.start.valueOf()) && (range0.end === null ? null : range0.end.valueOf()) === (range1.end === null ? null : range1.end.valueOf());\n}\nfunction rangesIntersect(range0, range1) {\n  return (range0.end === null || range1.start === null || range0.end > range1.start) && (range0.start === null || range1.end === null || range0.start < range1.end);\n}\nfunction rangeContainsRange(outerRange, innerRange) {\n  return (outerRange.start === null || innerRange.start !== null && innerRange.start >= outerRange.start) && (outerRange.end === null || innerRange.end !== null && innerRange.end <= outerRange.end);\n}\nfunction rangeContainsMarker(range, date) {\n  return (range.start === null || date >= range.start) && (range.end === null || date < range.end);\n}\n// If the given date is not within the given range, move it inside.\n// (If it's past the end, make it one millisecond before the end).\nfunction constrainMarkerToRange(date, range) {\n  if (range.start != null && date < range.start) {\n    return range.start;\n  }\n  if (range.end != null && date >= range.end) {\n    return new Date(range.end.valueOf() - 1);\n  }\n  return date;\n}\n\n/* Date stuff that doesn't belong in datelib core\n----------------------------------------------------------------------------------------------------------------------*/\n// given a timed range, computes an all-day range that has the same exact duration,\n// but whose start time is aligned with the start of the day.\nfunction computeAlignedDayRange(timedRange) {\n  let dayCnt = Math.floor(diffDays(timedRange.start, timedRange.end)) || 1;\n  let start = startOfDay(timedRange.start);\n  let end = addDays(start, dayCnt);\n  return {\n    start,\n    end\n  };\n}\n// given a timed range, computes an all-day range based on how for the end date bleeds into the next day\n// TODO: give nextDayThreshold a default arg\nfunction computeVisibleDayRange(timedRange, nextDayThreshold = createDuration(0)) {\n  let startDay = null;\n  let endDay = null;\n  if (timedRange.end) {\n    endDay = startOfDay(timedRange.end);\n    let endTimeMS = timedRange.end.valueOf() - endDay.valueOf(); // # of milliseconds into `endDay`\n    // If the end time is actually inclusively part of the next day and is equal to or\n    // beyond the next day threshold, adjust the end to be the exclusive end of `endDay`.\n    // Otherwise, leaving it as inclusive will cause it to exclude `endDay`.\n    if (endTimeMS && endTimeMS >= asRoughMs(nextDayThreshold)) {\n      endDay = addDays(endDay, 1);\n    }\n  }\n  if (timedRange.start) {\n    startDay = startOfDay(timedRange.start); // the beginning of the day the range starts\n    // If end is within `startDay` but not past nextDayThreshold, assign the default duration of one day.\n    if (endDay && endDay <= startDay) {\n      endDay = addDays(startDay, 1);\n    }\n  }\n  return {\n    start: startDay,\n    end: endDay\n  };\n}\n// spans from one day into another?\nfunction isMultiDayRange(range) {\n  let visibleRange = computeVisibleDayRange(range);\n  return diffDays(visibleRange.start, visibleRange.end) > 1;\n}\nfunction diffDates(date0, date1, dateEnv, largeUnit) {\n  if (largeUnit === 'year') {\n    return createDuration(dateEnv.diffWholeYears(date0, date1), 'year');\n  }\n  if (largeUnit === 'month') {\n    return createDuration(dateEnv.diffWholeMonths(date0, date1), 'month');\n  }\n  return diffDayAndTime(date0, date1); // returns a duration\n}\nclass DateProfileGenerator {\n  constructor(props) {\n    this.props = props;\n    this.initHiddenDays();\n  }\n  /* Date Range Computation\n  ------------------------------------------------------------------------------------------------------------------*/\n  // Builds a structure with info about what the dates/ranges will be for the \"prev\" view.\n  buildPrev(currentDateProfile, currentDate, forceToValid) {\n    let {\n      dateEnv\n    } = this.props;\n    let prevDate = dateEnv.subtract(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit),\n    // important for start-of-month\n    currentDateProfile.dateIncrement);\n    return this.build(prevDate, -1, forceToValid);\n  }\n  // Builds a structure with info about what the dates/ranges will be for the \"next\" view.\n  buildNext(currentDateProfile, currentDate, forceToValid) {\n    let {\n      dateEnv\n    } = this.props;\n    let nextDate = dateEnv.add(dateEnv.startOf(currentDate, currentDateProfile.currentRangeUnit),\n    // important for start-of-month\n    currentDateProfile.dateIncrement);\n    return this.build(nextDate, 1, forceToValid);\n  }\n  // Builds a structure holding dates/ranges for rendering around the given date.\n  // Optional direction param indicates whether the date is being incremented/decremented\n  // from its previous value. decremented = -1, incremented = 1 (default).\n  build(currentDate, direction, forceToValid = true) {\n    let {\n      props\n    } = this;\n    let validRange;\n    let currentInfo;\n    let isRangeAllDay;\n    let renderRange;\n    let activeRange;\n    let isValid;\n    validRange = this.buildValidRange();\n    validRange = this.trimHiddenDays(validRange);\n    if (forceToValid) {\n      currentDate = constrainMarkerToRange(currentDate, validRange);\n    }\n    currentInfo = this.buildCurrentRangeInfo(currentDate, direction);\n    isRangeAllDay = /^(year|month|week|day)$/.test(currentInfo.unit);\n    renderRange = this.buildRenderRange(this.trimHiddenDays(currentInfo.range), currentInfo.unit, isRangeAllDay);\n    renderRange = this.trimHiddenDays(renderRange);\n    activeRange = renderRange;\n    if (!props.showNonCurrentDates) {\n      activeRange = intersectRanges(activeRange, currentInfo.range);\n    }\n    activeRange = this.adjustActiveRange(activeRange);\n    activeRange = intersectRanges(activeRange, validRange); // might return null\n    // it's invalid if the originally requested date is not contained,\n    // or if the range is completely outside of the valid range.\n    isValid = rangesIntersect(currentInfo.range, validRange);\n    // HACK: constrain to render-range so `currentDate` is more useful to view rendering\n    if (!rangeContainsMarker(renderRange, currentDate)) {\n      currentDate = renderRange.start;\n    }\n    return {\n      currentDate,\n      // constraint for where prev/next operations can go and where events can be dragged/resized to.\n      // an object with optional start and end properties.\n      validRange,\n      // range the view is formally responsible for.\n      // for example, a month view might have 1st-31st, excluding padded dates\n      currentRange: currentInfo.range,\n      // name of largest unit being displayed, like \"month\" or \"week\"\n      currentRangeUnit: currentInfo.unit,\n      isRangeAllDay,\n      // dates that display events and accept drag-n-drop\n      // will be `null` if no dates accept events\n      activeRange,\n      // date range with a rendered skeleton\n      // includes not-active days that need some sort of DOM\n      renderRange,\n      // Duration object that denotes the first visible time of any given day\n      slotMinTime: props.slotMinTime,\n      // Duration object that denotes the exclusive visible end time of any given day\n      slotMaxTime: props.slotMaxTime,\n      isValid,\n      // how far the current date will move for a prev/next operation\n      dateIncrement: this.buildDateIncrement(currentInfo.duration)\n      // pass a fallback (might be null) ^\n    };\n  }\n  // Builds an object with optional start/end properties.\n  // Indicates the minimum/maximum dates to display.\n  // not responsible for trimming hidden days.\n  buildValidRange() {\n    let input = this.props.validRangeInput;\n    let simpleInput = typeof input === 'function' ? input.call(this.props.calendarApi, this.props.dateEnv.toDate(this.props.nowManager.getDateMarker())) : input;\n    return this.refineRange(simpleInput) || {\n      start: null,\n      end: null\n    }; // completely open-ended\n  }\n  // Builds a structure with info about the \"current\" range, the range that is\n  // highlighted as being the current month for example.\n  // See build() for a description of `direction`.\n  // Guaranteed to have `range` and `unit` properties. `duration` is optional.\n  buildCurrentRangeInfo(date, direction) {\n    let {\n      props\n    } = this;\n    let duration = null;\n    let unit = null;\n    let range = null;\n    let dayCount;\n    if (props.duration) {\n      duration = props.duration;\n      unit = props.durationUnit;\n      range = this.buildRangeFromDuration(date, direction, duration, unit);\n    } else if (dayCount = this.props.dayCount) {\n      unit = 'day';\n      range = this.buildRangeFromDayCount(date, direction, dayCount);\n    } else if (range = this.buildCustomVisibleRange(date)) {\n      unit = props.dateEnv.greatestWholeUnit(range.start, range.end).unit;\n    } else {\n      duration = this.getFallbackDuration();\n      unit = greatestDurationDenominator(duration).unit;\n      range = this.buildRangeFromDuration(date, direction, duration, unit);\n    }\n    return {\n      duration,\n      unit,\n      range\n    };\n  }\n  getFallbackDuration() {\n    return createDuration({\n      day: 1\n    });\n  }\n  // Returns a new activeRange to have time values (un-ambiguate)\n  // slotMinTime or slotMaxTime causes the range to expand.\n  adjustActiveRange(range) {\n    let {\n      dateEnv,\n      usesMinMaxTime,\n      slotMinTime,\n      slotMaxTime\n    } = this.props;\n    let {\n      start,\n      end\n    } = range;\n    if (usesMinMaxTime) {\n      // expand active range if slotMinTime is negative (why not when positive?)\n      if (asRoughDays(slotMinTime) < 0) {\n        start = startOfDay(start); // necessary?\n        start = dateEnv.add(start, slotMinTime);\n      }\n      // expand active range if slotMaxTime is beyond one day (why not when negative?)\n      if (asRoughDays(slotMaxTime) > 1) {\n        end = startOfDay(end); // necessary?\n        end = addDays(end, -1);\n        end = dateEnv.add(end, slotMaxTime);\n      }\n    }\n    return {\n      start,\n      end\n    };\n  }\n  // Builds the \"current\" range when it is specified as an explicit duration.\n  // `unit` is the already-computed greatestDurationDenominator unit of duration.\n  buildRangeFromDuration(date, direction, duration, unit) {\n    let {\n      dateEnv,\n      dateAlignment\n    } = this.props;\n    let start;\n    let end;\n    let res;\n    // compute what the alignment should be\n    if (!dateAlignment) {\n      let {\n        dateIncrement\n      } = this.props;\n      if (dateIncrement) {\n        // use the smaller of the two units\n        if (asRoughMs(dateIncrement) < asRoughMs(duration)) {\n          dateAlignment = greatestDurationDenominator(dateIncrement).unit;\n        } else {\n          dateAlignment = unit;\n        }\n      } else {\n        dateAlignment = unit;\n      }\n    }\n    // if the view displays a single day or smaller\n    if (asRoughDays(duration) <= 1) {\n      if (this.isHiddenDay(start)) {\n        start = this.skipHiddenDays(start, direction);\n        start = startOfDay(start);\n      }\n    }\n    function computeRes() {\n      start = dateEnv.startOf(date, dateAlignment);\n      end = dateEnv.add(start, duration);\n      res = {\n        start,\n        end\n      };\n    }\n    computeRes();\n    // if range is completely enveloped by hidden days, go past the hidden days\n    if (!this.trimHiddenDays(res)) {\n      date = this.skipHiddenDays(date, direction);\n      computeRes();\n    }\n    return res;\n  }\n  // Builds the \"current\" range when a dayCount is specified.\n  buildRangeFromDayCount(date, direction, dayCount) {\n    let {\n      dateEnv,\n      dateAlignment\n    } = this.props;\n    let runningCount = 0;\n    let start = date;\n    let end;\n    if (dateAlignment) {\n      start = dateEnv.startOf(start, dateAlignment);\n    }\n    start = startOfDay(start);\n    start = this.skipHiddenDays(start, direction);\n    end = start;\n    do {\n      end = addDays(end, 1);\n      if (!this.isHiddenDay(end)) {\n        runningCount += 1;\n      }\n    } while (runningCount < dayCount);\n    return {\n      start,\n      end\n    };\n  }\n  // Builds a normalized range object for the \"visible\" range,\n  // which is a way to define the currentRange and activeRange at the same time.\n  buildCustomVisibleRange(date) {\n    let {\n      props\n    } = this;\n    let input = props.visibleRangeInput;\n    let simpleInput = typeof input === 'function' ? input.call(props.calendarApi, props.dateEnv.toDate(date)) : input;\n    let range = this.refineRange(simpleInput);\n    if (range && (range.start == null || range.end == null)) {\n      return null;\n    }\n    return range;\n  }\n  // Computes the range that will represent the element/cells for *rendering*,\n  // but which may have voided days/times.\n  // not responsible for trimming hidden days.\n  buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {\n    return currentRange;\n  }\n  // Compute the duration value that should be added/substracted to the current date\n  // when a prev/next operation happens.\n  buildDateIncrement(fallback) {\n    let {\n      dateIncrement\n    } = this.props;\n    let customAlignment;\n    if (dateIncrement) {\n      return dateIncrement;\n    }\n    if (customAlignment = this.props.dateAlignment) {\n      return createDuration(1, customAlignment);\n    }\n    if (fallback) {\n      return fallback;\n    }\n    return createDuration({\n      days: 1\n    });\n  }\n  refineRange(rangeInput) {\n    if (rangeInput) {\n      let range = parseRange(rangeInput, this.props.dateEnv);\n      if (range) {\n        range = computeVisibleDayRange(range);\n      }\n      return range;\n    }\n    return null;\n  }\n  /* Hidden Days\n  ------------------------------------------------------------------------------------------------------------------*/\n  // Initializes internal variables related to calculating hidden days-of-week\n  initHiddenDays() {\n    let hiddenDays = this.props.hiddenDays || []; // array of day-of-week indices that are hidden\n    let isHiddenDayHash = []; // is the day-of-week hidden? (hash with day-of-week-index -> bool)\n    let dayCnt = 0;\n    let i;\n    if (this.props.weekends === false) {\n      hiddenDays.push(0, 6); // 0=sunday, 6=saturday\n    }\n    for (i = 0; i < 7; i += 1) {\n      if (!(isHiddenDayHash[i] = hiddenDays.indexOf(i) !== -1)) {\n        dayCnt += 1;\n      }\n    }\n    if (!dayCnt) {\n      throw new Error('invalid hiddenDays'); // all days were hidden? bad.\n    }\n    this.isHiddenDayHash = isHiddenDayHash;\n  }\n  // Remove days from the beginning and end of the range that are computed as hidden.\n  // If the whole range is trimmed off, returns null\n  trimHiddenDays(range) {\n    let {\n      start,\n      end\n    } = range;\n    if (start) {\n      start = this.skipHiddenDays(start);\n    }\n    if (end) {\n      end = this.skipHiddenDays(end, -1, true);\n    }\n    if (start == null || end == null || start < end) {\n      return {\n        start,\n        end\n      };\n    }\n    return null;\n  }\n  // Is the current day hidden?\n  // `day` is a day-of-week index (0-6), or a Date (used for UTC)\n  isHiddenDay(day) {\n    if (day instanceof Date) {\n      day = day.getUTCDay();\n    }\n    return this.isHiddenDayHash[day];\n  }\n  // Incrementing the current day until it is no longer a hidden day, returning a copy.\n  // DOES NOT CONSIDER validRange!\n  // If the initial value of `date` is not a hidden day, don't do anything.\n  // Pass `isExclusive` as `true` if you are dealing with an end date.\n  // `inc` defaults to `1` (increment one day forward each time)\n  skipHiddenDays(date, inc = 1, isExclusive = false) {\n    while (this.isHiddenDayHash[(date.getUTCDay() + (isExclusive ? inc : 0) + 7) % 7]) {\n      date = addDays(date, inc);\n    }\n    return date;\n  }\n}\nfunction createEventInstance(defId, range, forcedStartTzo, forcedEndTzo) {\n  return {\n    instanceId: guid(),\n    defId,\n    range,\n    forcedStartTzo: forcedStartTzo == null ? null : forcedStartTzo,\n    forcedEndTzo: forcedEndTzo == null ? null : forcedEndTzo\n  };\n}\nfunction parseRecurring(refined, defaultAllDay, dateEnv, recurringTypes) {\n  for (let i = 0; i < recurringTypes.length; i += 1) {\n    let parsed = recurringTypes[i].parse(refined, dateEnv);\n    if (parsed) {\n      let {\n        allDay\n      } = refined;\n      if (allDay == null) {\n        allDay = defaultAllDay;\n        if (allDay == null) {\n          allDay = parsed.allDayGuess;\n          if (allDay == null) {\n            allDay = false;\n          }\n        }\n      }\n      return {\n        allDay,\n        duration: parsed.duration,\n        typeData: parsed.typeData,\n        typeId: i\n      };\n    }\n  }\n  return null;\n}\nfunction expandRecurring(eventStore, framingRange, context) {\n  let {\n    dateEnv,\n    pluginHooks,\n    options\n  } = context;\n  let {\n    defs,\n    instances\n  } = eventStore;\n  // remove existing recurring instances\n  // TODO: bad. always expand events as a second step\n  instances = filterHash(instances, instance => !defs[instance.defId].recurringDef);\n  for (let defId in defs) {\n    let def = defs[defId];\n    if (def.recurringDef) {\n      let {\n        duration\n      } = def.recurringDef;\n      if (!duration) {\n        duration = def.allDay ? options.defaultAllDayEventDuration : options.defaultTimedEventDuration;\n      }\n      let starts = expandRecurringRanges(def, duration, framingRange, dateEnv, pluginHooks.recurringTypes);\n      for (let start of starts) {\n        let instance = createEventInstance(defId, {\n          start,\n          end: dateEnv.add(start, duration)\n        });\n        instances[instance.instanceId] = instance;\n      }\n    }\n  }\n  return {\n    defs,\n    instances\n  };\n}\n/*\nEvent MUST have a recurringDef\n*/\nfunction expandRecurringRanges(eventDef, duration, framingRange, dateEnv, recurringTypes) {\n  let typeDef = recurringTypes[eventDef.recurringDef.typeId];\n  let markers = typeDef.expand(eventDef.recurringDef.typeData, {\n    start: dateEnv.subtract(framingRange.start, duration),\n    end: framingRange.end\n  }, dateEnv);\n  // the recurrence plugins don't guarantee that all-day events are start-of-day, so we have to\n  if (eventDef.allDay) {\n    markers = markers.map(startOfDay);\n  }\n  return markers;\n}\nconst EVENT_NON_DATE_REFINERS = {\n  id: String,\n  groupId: String,\n  title: String,\n  url: String,\n  interactive: Boolean\n};\nconst EVENT_DATE_REFINERS = {\n  start: identity,\n  end: identity,\n  date: identity,\n  allDay: Boolean\n};\nconst EVENT_REFINERS = Object.assign(Object.assign(Object.assign({}, EVENT_NON_DATE_REFINERS), EVENT_DATE_REFINERS), {\n  extendedProps: identity\n});\nfunction parseEvent(raw, eventSource, context, allowOpenRange, refiners = buildEventRefiners(context), defIdMap, instanceIdMap) {\n  let {\n    refined,\n    extra\n  } = refineEventDef(raw, context, refiners);\n  let defaultAllDay = computeIsDefaultAllDay(eventSource, context);\n  let recurringRes = parseRecurring(refined, defaultAllDay, context.dateEnv, context.pluginHooks.recurringTypes);\n  if (recurringRes) {\n    let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', recurringRes.allDay, Boolean(recurringRes.duration), context, defIdMap);\n    def.recurringDef = {\n      typeId: recurringRes.typeId,\n      typeData: recurringRes.typeData,\n      duration: recurringRes.duration\n    };\n    return {\n      def,\n      instance: null\n    };\n  }\n  let singleRes = parseSingle(refined, defaultAllDay, context, allowOpenRange);\n  if (singleRes) {\n    let def = parseEventDef(refined, extra, eventSource ? eventSource.sourceId : '', singleRes.allDay, singleRes.hasEnd, context, defIdMap);\n    let instance = createEventInstance(def.defId, singleRes.range, singleRes.forcedStartTzo, singleRes.forcedEndTzo);\n    if (instanceIdMap && def.publicId && instanceIdMap[def.publicId]) {\n      instance.instanceId = instanceIdMap[def.publicId];\n    }\n    return {\n      def,\n      instance\n    };\n  }\n  return null;\n}\nfunction refineEventDef(raw, context, refiners = buildEventRefiners(context)) {\n  return refineProps(raw, refiners);\n}\nfunction buildEventRefiners(context) {\n  return Object.assign(Object.assign(Object.assign({}, EVENT_UI_REFINERS), EVENT_REFINERS), context.pluginHooks.eventRefiners);\n}\n/*\nWill NOT populate extendedProps with the leftover properties.\nWill NOT populate date-related props.\n*/\nfunction parseEventDef(refined, extra, sourceId, allDay, hasEnd, context, defIdMap) {\n  let def = {\n    title: refined.title || '',\n    groupId: refined.groupId || '',\n    publicId: refined.id || '',\n    url: refined.url || '',\n    recurringDef: null,\n    defId: (defIdMap && refined.id ? defIdMap[refined.id] : '') || guid(),\n    sourceId,\n    allDay,\n    hasEnd,\n    interactive: refined.interactive,\n    ui: createEventUi(refined, context),\n    extendedProps: Object.assign(Object.assign({}, refined.extendedProps || {}), extra)\n  };\n  for (let memberAdder of context.pluginHooks.eventDefMemberAdders) {\n    Object.assign(def, memberAdder(refined));\n  }\n  // help out EventImpl from having user modify props\n  Object.freeze(def.ui.classNames);\n  Object.freeze(def.extendedProps);\n  return def;\n}\nfunction parseSingle(refined, defaultAllDay, context, allowOpenRange) {\n  let {\n    allDay\n  } = refined;\n  let startMeta;\n  let startMarker = null;\n  let hasEnd = false;\n  let endMeta;\n  let endMarker = null;\n  let startInput = refined.start != null ? refined.start : refined.date;\n  startMeta = context.dateEnv.createMarkerMeta(startInput);\n  if (startMeta) {\n    startMarker = startMeta.marker;\n  } else if (!allowOpenRange) {\n    return null;\n  }\n  if (refined.end != null) {\n    endMeta = context.dateEnv.createMarkerMeta(refined.end);\n  }\n  if (allDay == null) {\n    if (defaultAllDay != null) {\n      allDay = defaultAllDay;\n    } else {\n      // fall back to the date props LAST\n      allDay = (!startMeta || startMeta.isTimeUnspecified) && (!endMeta || endMeta.isTimeUnspecified);\n    }\n  }\n  if (allDay && startMarker) {\n    startMarker = startOfDay(startMarker);\n  }\n  if (endMeta) {\n    endMarker = endMeta.marker;\n    if (allDay) {\n      endMarker = startOfDay(endMarker);\n    }\n    if (startMarker && endMarker <= startMarker) {\n      endMarker = null;\n    }\n  }\n  if (endMarker) {\n    hasEnd = true;\n  } else if (!allowOpenRange) {\n    hasEnd = context.options.forceEventDuration || false;\n    endMarker = context.dateEnv.add(startMarker, allDay ? context.options.defaultAllDayEventDuration : context.options.defaultTimedEventDuration);\n  }\n  return {\n    allDay,\n    hasEnd,\n    range: {\n      start: startMarker,\n      end: endMarker\n    },\n    forcedStartTzo: startMeta ? startMeta.forcedTzo : null,\n    forcedEndTzo: endMeta ? endMeta.forcedTzo : null\n  };\n}\nfunction computeIsDefaultAllDay(eventSource, context) {\n  let res = null;\n  if (eventSource) {\n    res = eventSource.defaultAllDay;\n  }\n  if (res == null) {\n    res = context.options.defaultAllDay;\n  }\n  return res;\n}\nfunction parseEvents(rawEvents, eventSource, context, allowOpenRange, defIdMap, instanceIdMap) {\n  let eventStore = createEmptyEventStore();\n  let eventRefiners = buildEventRefiners(context);\n  for (let rawEvent of rawEvents) {\n    let tuple = parseEvent(rawEvent, eventSource, context, allowOpenRange, eventRefiners, defIdMap, instanceIdMap);\n    if (tuple) {\n      eventTupleToStore(tuple, eventStore);\n    }\n  }\n  return eventStore;\n}\nfunction eventTupleToStore(tuple, eventStore = createEmptyEventStore()) {\n  eventStore.defs[tuple.def.defId] = tuple.def;\n  if (tuple.instance) {\n    eventStore.instances[tuple.instance.instanceId] = tuple.instance;\n  }\n  return eventStore;\n}\n// retrieves events that have the same groupId as the instance specified by `instanceId`\n// or they are the same as the instance.\n// why might instanceId not be in the store? an event from another calendar?\nfunction getRelevantEvents(eventStore, instanceId) {\n  let instance = eventStore.instances[instanceId];\n  if (instance) {\n    let def = eventStore.defs[instance.defId];\n    // get events/instances with same group\n    let newStore = filterEventStoreDefs(eventStore, lookDef => isEventDefsGrouped(def, lookDef));\n    // add the original\n    // TODO: wish we could use eventTupleToStore or something like it\n    newStore.defs[def.defId] = def;\n    newStore.instances[instance.instanceId] = instance;\n    return newStore;\n  }\n  return createEmptyEventStore();\n}\nfunction isEventDefsGrouped(def0, def1) {\n  return Boolean(def0.groupId && def0.groupId === def1.groupId);\n}\nfunction createEmptyEventStore() {\n  return {\n    defs: {},\n    instances: {}\n  };\n}\nfunction mergeEventStores(store0, store1) {\n  return {\n    defs: Object.assign(Object.assign({}, store0.defs), store1.defs),\n    instances: Object.assign(Object.assign({}, store0.instances), store1.instances)\n  };\n}\nfunction filterEventStoreDefs(eventStore, filterFunc) {\n  let defs = filterHash(eventStore.defs, filterFunc);\n  let instances = filterHash(eventStore.instances, instance => defs[instance.defId] // still exists?\n  );\n  return {\n    defs,\n    instances\n  };\n}\nfunction excludeSubEventStore(master, sub) {\n  let {\n    defs,\n    instances\n  } = master;\n  let filteredDefs = {};\n  let filteredInstances = {};\n  for (let defId in defs) {\n    if (!sub.defs[defId]) {\n      // not explicitly excluded\n      filteredDefs[defId] = defs[defId];\n    }\n  }\n  for (let instanceId in instances) {\n    if (!sub.instances[instanceId] &&\n    // not explicitly excluded\n    filteredDefs[instances[instanceId].defId] // def wasn't filtered away\n    ) {\n      filteredInstances[instanceId] = instances[instanceId];\n    }\n  }\n  return {\n    defs: filteredDefs,\n    instances: filteredInstances\n  };\n}\nfunction normalizeConstraint(input, context) {\n  if (Array.isArray(input)) {\n    return parseEvents(input, null, context, true); // allowOpenRange=true\n  }\n  if (typeof input === 'object' && input) {\n    // non-null object\n    return parseEvents([input], null, context, true); // allowOpenRange=true\n  }\n  if (input != null) {\n    return String(input);\n  }\n  return null;\n}\nfunction parseClassNames(raw) {\n  if (Array.isArray(raw)) {\n    return raw;\n  }\n  if (typeof raw === 'string') {\n    return raw.split(/\\s+/);\n  }\n  return [];\n}\n\n// TODO: better called \"EventSettings\" or \"EventConfig\"\n// TODO: move this file into structs\n// TODO: separate constraint/overlap/allow, because selection uses only that, not other props\nconst EVENT_UI_REFINERS = {\n  display: String,\n  editable: Boolean,\n  startEditable: Boolean,\n  durationEditable: Boolean,\n  constraint: identity,\n  overlap: identity,\n  allow: identity,\n  className: parseClassNames,\n  classNames: parseClassNames,\n  color: String,\n  backgroundColor: String,\n  borderColor: String,\n  textColor: String\n};\nconst EMPTY_EVENT_UI = {\n  display: null,\n  startEditable: null,\n  durationEditable: null,\n  constraints: [],\n  overlap: null,\n  allows: [],\n  backgroundColor: '',\n  borderColor: '',\n  textColor: '',\n  classNames: []\n};\nfunction createEventUi(refined, context) {\n  let constraint = normalizeConstraint(refined.constraint, context);\n  return {\n    display: refined.display || null,\n    startEditable: refined.startEditable != null ? refined.startEditable : refined.editable,\n    durationEditable: refined.durationEditable != null ? refined.durationEditable : refined.editable,\n    constraints: constraint != null ? [constraint] : [],\n    overlap: refined.overlap != null ? refined.overlap : null,\n    allows: refined.allow != null ? [refined.allow] : [],\n    backgroundColor: refined.backgroundColor || refined.color || '',\n    borderColor: refined.borderColor || refined.color || '',\n    textColor: refined.textColor || '',\n    classNames: (refined.className || []).concat(refined.classNames || []) // join singular and plural\n  };\n}\n// TODO: prevent against problems with <2 args!\nfunction combineEventUis(uis) {\n  return uis.reduce(combineTwoEventUis, EMPTY_EVENT_UI);\n}\nfunction combineTwoEventUis(item0, item1) {\n  return {\n    display: item1.display != null ? item1.display : item0.display,\n    startEditable: item1.startEditable != null ? item1.startEditable : item0.startEditable,\n    durationEditable: item1.durationEditable != null ? item1.durationEditable : item0.durationEditable,\n    constraints: item0.constraints.concat(item1.constraints),\n    overlap: typeof item1.overlap === 'boolean' ? item1.overlap : item0.overlap,\n    allows: item0.allows.concat(item1.allows),\n    backgroundColor: item1.backgroundColor || item0.backgroundColor,\n    borderColor: item1.borderColor || item0.borderColor,\n    textColor: item1.textColor || item0.textColor,\n    classNames: item0.classNames.concat(item1.classNames)\n  };\n}\nconst EVENT_SOURCE_REFINERS = {\n  id: String,\n  defaultAllDay: Boolean,\n  url: String,\n  format: String,\n  events: identity,\n  eventDataTransform: identity,\n  // for any network-related sources\n  success: identity,\n  failure: identity\n};\nfunction parseEventSource(raw, context, refiners = buildEventSourceRefiners(context)) {\n  let rawObj;\n  if (typeof raw === 'string') {\n    rawObj = {\n      url: raw\n    };\n  } else if (typeof raw === 'function' || Array.isArray(raw)) {\n    rawObj = {\n      events: raw\n    };\n  } else if (typeof raw === 'object' && raw) {\n    // not null\n    rawObj = raw;\n  }\n  if (rawObj) {\n    let {\n      refined,\n      extra\n    } = refineProps(rawObj, refiners);\n    let metaRes = buildEventSourceMeta(refined, context);\n    if (metaRes) {\n      return {\n        _raw: raw,\n        isFetching: false,\n        latestFetchId: '',\n        fetchRange: null,\n        defaultAllDay: refined.defaultAllDay,\n        eventDataTransform: refined.eventDataTransform,\n        success: refined.success,\n        failure: refined.failure,\n        publicId: refined.id || '',\n        sourceId: guid(),\n        sourceDefId: metaRes.sourceDefId,\n        meta: metaRes.meta,\n        ui: createEventUi(refined, context),\n        extendedProps: extra\n      };\n    }\n  }\n  return null;\n}\nfunction buildEventSourceRefiners(context) {\n  return Object.assign(Object.assign(Object.assign({}, EVENT_UI_REFINERS), EVENT_SOURCE_REFINERS), context.pluginHooks.eventSourceRefiners);\n}\nfunction buildEventSourceMeta(raw, context) {\n  let defs = context.pluginHooks.eventSourceDefs;\n  for (let i = defs.length - 1; i >= 0; i -= 1) {\n    // later-added plugins take precedence\n    let def = defs[i];\n    let meta = def.parseMeta(raw);\n    if (meta) {\n      return {\n        sourceDefId: i,\n        meta\n      };\n    }\n  }\n  return null;\n}\nfunction reduceEventStore(eventStore, action, eventSources, dateProfile, context) {\n  switch (action.type) {\n    case 'RECEIVE_EVENTS':\n      // raw\n      return receiveRawEvents(eventStore, eventSources[action.sourceId], action.fetchId, action.fetchRange, action.rawEvents, context);\n    case 'RESET_RAW_EVENTS':\n      return resetRawEvents(eventStore, eventSources[action.sourceId], action.rawEvents, dateProfile.activeRange, context);\n    case 'ADD_EVENTS':\n      // already parsed, but not expanded\n      return addEvent(eventStore, action.eventStore,\n      // new ones\n      dateProfile ? dateProfile.activeRange : null, context);\n    case 'RESET_EVENTS':\n      return action.eventStore;\n    case 'MERGE_EVENTS':\n      // already parsed and expanded\n      return mergeEventStores(eventStore, action.eventStore);\n    case 'PREV': // TODO: how do we track all actions that affect dateProfile :(\n    case 'NEXT':\n    case 'CHANGE_DATE':\n    case 'CHANGE_VIEW_TYPE':\n      if (dateProfile) {\n        return expandRecurring(eventStore, dateProfile.activeRange, context);\n      }\n      return eventStore;\n    case 'REMOVE_EVENTS':\n      return excludeSubEventStore(eventStore, action.eventStore);\n    case 'REMOVE_EVENT_SOURCE':\n      return excludeEventsBySourceId(eventStore, action.sourceId);\n    case 'REMOVE_ALL_EVENT_SOURCES':\n      return filterEventStoreDefs(eventStore, eventDef => !eventDef.sourceId // only keep events with no source id\n      );\n    case 'REMOVE_ALL_EVENTS':\n      return createEmptyEventStore();\n    default:\n      return eventStore;\n  }\n}\nfunction receiveRawEvents(eventStore, eventSource, fetchId, fetchRange, rawEvents, context) {\n  if (eventSource &&\n  // not already removed\n  fetchId === eventSource.latestFetchId // TODO: wish this logic was always in event-sources\n  ) {\n    let subset = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context);\n    if (fetchRange) {\n      subset = expandRecurring(subset, fetchRange, context);\n    }\n    return mergeEventStores(excludeEventsBySourceId(eventStore, eventSource.sourceId), subset);\n  }\n  return eventStore;\n}\nfunction resetRawEvents(existingEventStore, eventSource, rawEvents, activeRange, context) {\n  const {\n    defIdMap,\n    instanceIdMap\n  } = buildPublicIdMaps(existingEventStore);\n  let newEventStore = parseEvents(transformRawEvents(rawEvents, eventSource, context), eventSource, context, false, defIdMap, instanceIdMap);\n  return expandRecurring(newEventStore, activeRange, context);\n}\nfunction transformRawEvents(rawEvents, eventSource, context) {\n  let calEachTransform = context.options.eventDataTransform;\n  let sourceEachTransform = eventSource ? eventSource.eventDataTransform : null;\n  if (sourceEachTransform) {\n    rawEvents = transformEachRawEvent(rawEvents, sourceEachTransform);\n  }\n  if (calEachTransform) {\n    rawEvents = transformEachRawEvent(rawEvents, calEachTransform);\n  }\n  return rawEvents;\n}\nfunction transformEachRawEvent(rawEvents, func) {\n  let refinedEvents;\n  if (!func) {\n    refinedEvents = rawEvents;\n  } else {\n    refinedEvents = [];\n    for (let rawEvent of rawEvents) {\n      let refinedEvent = func(rawEvent);\n      if (refinedEvent) {\n        refinedEvents.push(refinedEvent);\n      } else if (refinedEvent == null) {\n        refinedEvents.push(rawEvent);\n      } // if a different falsy value, do nothing\n    }\n  }\n  return refinedEvents;\n}\nfunction addEvent(eventStore, subset, expandRange, context) {\n  if (expandRange) {\n    subset = expandRecurring(subset, expandRange, context);\n  }\n  return mergeEventStores(eventStore, subset);\n}\nfunction rezoneEventStoreDates(eventStore, oldDateEnv, newDateEnv) {\n  let {\n    defs\n  } = eventStore;\n  let instances = mapHash(eventStore.instances, instance => {\n    let def = defs[instance.defId];\n    if (def.allDay) {\n      return instance; // isn't dependent on timezone\n    }\n    return Object.assign(Object.assign({}, instance), {\n      range: {\n        start: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.start, instance.forcedStartTzo)),\n        end: newDateEnv.createMarker(oldDateEnv.toDate(instance.range.end, instance.forcedEndTzo))\n      },\n      forcedStartTzo: newDateEnv.canComputeOffset ? null : instance.forcedStartTzo,\n      forcedEndTzo: newDateEnv.canComputeOffset ? null : instance.forcedEndTzo\n    });\n  });\n  return {\n    defs,\n    instances\n  };\n}\nfunction excludeEventsBySourceId(eventStore, sourceId) {\n  return filterEventStoreDefs(eventStore, eventDef => eventDef.sourceId !== sourceId);\n}\n// QUESTION: why not just return instances? do a general object-property-exclusion util\nfunction excludeInstances(eventStore, removals) {\n  return {\n    defs: eventStore.defs,\n    instances: filterHash(eventStore.instances, instance => !removals[instance.instanceId])\n  };\n}\nfunction buildPublicIdMaps(eventStore) {\n  const {\n    defs,\n    instances\n  } = eventStore;\n  const defIdMap = {};\n  const instanceIdMap = {};\n  for (let defId in defs) {\n    const def = defs[defId];\n    const {\n      publicId\n    } = def;\n    if (publicId) {\n      defIdMap[publicId] = defId;\n    }\n  }\n  for (let instanceId in instances) {\n    const instance = instances[instanceId];\n    const def = defs[instance.defId];\n    const {\n      publicId\n    } = def;\n    if (publicId) {\n      instanceIdMap[publicId] = instanceId;\n    }\n  }\n  return {\n    defIdMap,\n    instanceIdMap\n  };\n}\nclass Emitter {\n  constructor() {\n    this.handlers = {};\n    this.thisContext = null;\n  }\n  setThisContext(thisContext) {\n    this.thisContext = thisContext;\n  }\n  setOptions(options) {\n    this.options = options;\n  }\n  on(type, handler) {\n    addToHash(this.handlers, type, handler);\n  }\n  off(type, handler) {\n    removeFromHash(this.handlers, type, handler);\n  }\n  trigger(type, ...args) {\n    let attachedHandlers = this.handlers[type] || [];\n    let optionHandler = this.options && this.options[type];\n    let handlers = [].concat(optionHandler || [], attachedHandlers);\n    for (let handler of handlers) {\n      handler.apply(this.thisContext, args);\n    }\n  }\n  hasHandlers(type) {\n    return Boolean(this.handlers[type] && this.handlers[type].length || this.options && this.options[type]);\n  }\n}\nfunction addToHash(hash, type, handler) {\n  (hash[type] || (hash[type] = [])).push(handler);\n}\nfunction removeFromHash(hash, type, handler) {\n  if (handler) {\n    if (hash[type]) {\n      hash[type] = hash[type].filter(func => func !== handler);\n    }\n  } else {\n    delete hash[type]; // remove all handler funcs for this type\n  }\n}\nconst DEF_DEFAULTS = {\n  startTime: '09:00',\n  endTime: '17:00',\n  daysOfWeek: [1, 2, 3, 4, 5],\n  display: 'inverse-background',\n  classNames: 'fc-non-business',\n  groupId: '_businessHours' // so multiple defs get grouped\n};\n/*\nTODO: pass around as EventDefHash!!!\n*/\nfunction parseBusinessHours(input, context) {\n  return parseEvents(refineInputs(input), null, context);\n}\nfunction refineInputs(input) {\n  let rawDefs;\n  if (input === true) {\n    rawDefs = [{}]; // will get DEF_DEFAULTS verbatim\n  } else if (Array.isArray(input)) {\n    // if specifying an array, every sub-definition NEEDS a day-of-week\n    rawDefs = input.filter(rawDef => rawDef.daysOfWeek);\n  } else if (typeof input === 'object' && input) {\n    // non-null object\n    rawDefs = [input];\n  } else {\n    // is probably false\n    rawDefs = [];\n  }\n  rawDefs = rawDefs.map(rawDef => Object.assign(Object.assign({}, DEF_DEFAULTS), rawDef));\n  return rawDefs;\n}\nfunction triggerDateSelect(selection, pev, context) {\n  context.emitter.trigger('select', Object.assign(Object.assign({}, buildDateSpanApiWithContext(selection, context)), {\n    jsEvent: pev ? pev.origEvent : null,\n    view: context.viewApi || context.calendarApi.view\n  }));\n}\nfunction triggerDateUnselect(pev, context) {\n  context.emitter.trigger('unselect', {\n    jsEvent: pev ? pev.origEvent : null,\n    view: context.viewApi || context.calendarApi.view\n  });\n}\nfunction buildDateSpanApiWithContext(dateSpan, context) {\n  let props = {};\n  for (let transform of context.pluginHooks.dateSpanTransforms) {\n    Object.assign(props, transform(dateSpan, context));\n  }\n  Object.assign(props, buildDateSpanApi(dateSpan, context.dateEnv));\n  return props;\n}\n// Given an event's allDay status and start date, return what its fallback end date should be.\n// TODO: rename to computeDefaultEventEnd\nfunction getDefaultEventEnd(allDay, marker, context) {\n  let {\n    dateEnv,\n    options\n  } = context;\n  let end = marker;\n  if (allDay) {\n    end = startOfDay(end);\n    end = dateEnv.add(end, options.defaultAllDayEventDuration);\n  } else {\n    end = dateEnv.add(end, options.defaultTimedEventDuration);\n  }\n  return end;\n}\n\n// applies the mutation to ALL defs/instances within the event store\nfunction applyMutationToEventStore(eventStore, eventConfigBase, mutation, context) {\n  let eventConfigs = compileEventUis(eventStore.defs, eventConfigBase);\n  let dest = createEmptyEventStore();\n  for (let defId in eventStore.defs) {\n    let def = eventStore.defs[defId];\n    dest.defs[defId] = applyMutationToEventDef(def, eventConfigs[defId], mutation, context);\n  }\n  for (let instanceId in eventStore.instances) {\n    let instance = eventStore.instances[instanceId];\n    let def = dest.defs[instance.defId]; // important to grab the newly modified def\n    dest.instances[instanceId] = applyMutationToEventInstance(instance, def, eventConfigs[instance.defId], mutation, context);\n  }\n  return dest;\n}\nfunction applyMutationToEventDef(eventDef, eventConfig, mutation, context) {\n  let standardProps = mutation.standardProps || {};\n  // if hasEnd has not been specified, guess a good value based on deltas.\n  // if duration will change, there's no way the default duration will persist,\n  // and thus, we need to mark the event as having a real end\n  if (standardProps.hasEnd == null && eventConfig.durationEditable && (mutation.startDelta || mutation.endDelta)) {\n    standardProps.hasEnd = true; // TODO: is this mutation okay?\n  }\n  let copy = Object.assign(Object.assign(Object.assign({}, eventDef), standardProps), {\n    ui: Object.assign(Object.assign({}, eventDef.ui), standardProps.ui)\n  });\n  if (mutation.extendedProps) {\n    copy.extendedProps = Object.assign(Object.assign({}, copy.extendedProps), mutation.extendedProps);\n  }\n  for (let applier of context.pluginHooks.eventDefMutationAppliers) {\n    applier(copy, mutation, context);\n  }\n  if (!copy.hasEnd && context.options.forceEventDuration) {\n    copy.hasEnd = true;\n  }\n  return copy;\n}\nfunction applyMutationToEventInstance(eventInstance, eventDef,\n// must first be modified by applyMutationToEventDef\neventConfig, mutation, context) {\n  let {\n    dateEnv\n  } = context;\n  let forceAllDay = mutation.standardProps && mutation.standardProps.allDay === true;\n  let clearEnd = mutation.standardProps && mutation.standardProps.hasEnd === false;\n  let copy = Object.assign({}, eventInstance);\n  if (forceAllDay) {\n    copy.range = computeAlignedDayRange(copy.range);\n  }\n  if (mutation.datesDelta && eventConfig.startEditable) {\n    copy.range = {\n      start: dateEnv.add(copy.range.start, mutation.datesDelta),\n      end: dateEnv.add(copy.range.end, mutation.datesDelta)\n    };\n  }\n  if (mutation.startDelta && eventConfig.durationEditable) {\n    copy.range = {\n      start: dateEnv.add(copy.range.start, mutation.startDelta),\n      end: copy.range.end\n    };\n  }\n  if (mutation.endDelta && eventConfig.durationEditable) {\n    copy.range = {\n      start: copy.range.start,\n      end: dateEnv.add(copy.range.end, mutation.endDelta)\n    };\n  }\n  if (clearEnd) {\n    copy.range = {\n      start: copy.range.start,\n      end: getDefaultEventEnd(eventDef.allDay, copy.range.start, context)\n    };\n  }\n  // in case event was all-day but the supplied deltas were not\n  // better util for this?\n  if (eventDef.allDay) {\n    copy.range = {\n      start: startOfDay(copy.range.start),\n      end: startOfDay(copy.range.end)\n    };\n  }\n  // handle invalid durations\n  if (copy.range.end < copy.range.start) {\n    copy.range.end = getDefaultEventEnd(eventDef.allDay, copy.range.start, context);\n  }\n  return copy;\n}\nclass EventSourceImpl {\n  constructor(context, internalEventSource) {\n    this.context = context;\n    this.internalEventSource = internalEventSource;\n  }\n  remove() {\n    this.context.dispatch({\n      type: 'REMOVE_EVENT_SOURCE',\n      sourceId: this.internalEventSource.sourceId\n    });\n  }\n  refetch() {\n    this.context.dispatch({\n      type: 'FETCH_EVENT_SOURCES',\n      sourceIds: [this.internalEventSource.sourceId],\n      isRefetch: true\n    });\n  }\n  get id() {\n    return this.internalEventSource.publicId;\n  }\n  get url() {\n    return this.internalEventSource.meta.url;\n  }\n  get format() {\n    return this.internalEventSource.meta.format; // TODO: bad. not guaranteed\n  }\n}\nclass EventImpl {\n  // instance will be null if expressing a recurring event that has no current instances,\n  // OR if trying to validate an incoming external event that has no dates assigned\n  constructor(context, def, instance) {\n    this._context = context;\n    this._def = def;\n    this._instance = instance || null;\n  }\n  /*\n  TODO: make event struct more responsible for this\n  */\n  setProp(name, val) {\n    if (name in EVENT_DATE_REFINERS) {\n      console.warn('Could not set date-related prop \\'name\\'. Use one of the date-related methods instead.');\n      // TODO: make proper aliasing system?\n    } else if (name === 'id') {\n      val = EVENT_NON_DATE_REFINERS[name](val);\n      this.mutate({\n        standardProps: {\n          publicId: val\n        } // hardcoded internal name\n      });\n    } else if (name in EVENT_NON_DATE_REFINERS) {\n      val = EVENT_NON_DATE_REFINERS[name](val);\n      this.mutate({\n        standardProps: {\n          [name]: val\n        }\n      });\n    } else if (name in EVENT_UI_REFINERS) {\n      let ui = EVENT_UI_REFINERS[name](val);\n      if (name === 'color') {\n        ui = {\n          backgroundColor: val,\n          borderColor: val\n        };\n      } else if (name === 'editable') {\n        ui = {\n          startEditable: val,\n          durationEditable: val\n        };\n      } else {\n        ui = {\n          [name]: val\n        };\n      }\n      this.mutate({\n        standardProps: {\n          ui\n        }\n      });\n    } else {\n      console.warn(`Could not set prop '${name}'. Use setExtendedProp instead.`);\n    }\n  }\n  setExtendedProp(name, val) {\n    this.mutate({\n      extendedProps: {\n        [name]: val\n      }\n    });\n  }\n  setStart(startInput, options = {}) {\n    let {\n      dateEnv\n    } = this._context;\n    let start = dateEnv.createMarker(startInput);\n    if (start && this._instance) {\n      // TODO: warning if parsed bad\n      let instanceRange = this._instance.range;\n      let startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity); // what if parsed bad!?\n      if (options.maintainDuration) {\n        this.mutate({\n          datesDelta: startDelta\n        });\n      } else {\n        this.mutate({\n          startDelta\n        });\n      }\n    }\n  }\n  setEnd(endInput, options = {}) {\n    let {\n      dateEnv\n    } = this._context;\n    let end;\n    if (endInput != null) {\n      end = dateEnv.createMarker(endInput);\n      if (!end) {\n        return; // TODO: warning if parsed bad\n      }\n    }\n    if (this._instance) {\n      if (end) {\n        let endDelta = diffDates(this._instance.range.end, end, dateEnv, options.granularity);\n        this.mutate({\n          endDelta\n        });\n      } else {\n        this.mutate({\n          standardProps: {\n            hasEnd: false\n          }\n        });\n      }\n    }\n  }\n  setDates(startInput, endInput, options = {}) {\n    let {\n      dateEnv\n    } = this._context;\n    let standardProps = {\n      allDay: options.allDay\n    };\n    let start = dateEnv.createMarker(startInput);\n    let end;\n    if (!start) {\n      return; // TODO: warning if parsed bad\n    }\n    if (endInput != null) {\n      end = dateEnv.createMarker(endInput);\n      if (!end) {\n        // TODO: warning if parsed bad\n        return;\n      }\n    }\n    if (this._instance) {\n      let instanceRange = this._instance.range;\n      // when computing the diff for an event being converted to all-day,\n      // compute diff off of the all-day values the way event-mutation does.\n      if (options.allDay === true) {\n        instanceRange = computeAlignedDayRange(instanceRange);\n      }\n      let startDelta = diffDates(instanceRange.start, start, dateEnv, options.granularity);\n      if (end) {\n        let endDelta = diffDates(instanceRange.end, end, dateEnv, options.granularity);\n        if (durationsEqual(startDelta, endDelta)) {\n          this.mutate({\n            datesDelta: startDelta,\n            standardProps\n          });\n        } else {\n          this.mutate({\n            startDelta,\n            endDelta,\n            standardProps\n          });\n        }\n      } else {\n        // means \"clear the end\"\n        standardProps.hasEnd = false;\n        this.mutate({\n          datesDelta: startDelta,\n          standardProps\n        });\n      }\n    }\n  }\n  moveStart(deltaInput) {\n    let delta = createDuration(deltaInput);\n    if (delta) {\n      // TODO: warning if parsed bad\n      this.mutate({\n        startDelta: delta\n      });\n    }\n  }\n  moveEnd(deltaInput) {\n    let delta = createDuration(deltaInput);\n    if (delta) {\n      // TODO: warning if parsed bad\n      this.mutate({\n        endDelta: delta\n      });\n    }\n  }\n  moveDates(deltaInput) {\n    let delta = createDuration(deltaInput);\n    if (delta) {\n      // TODO: warning if parsed bad\n      this.mutate({\n        datesDelta: delta\n      });\n    }\n  }\n  setAllDay(allDay, options = {}) {\n    let standardProps = {\n      allDay\n    };\n    let {\n      maintainDuration\n    } = options;\n    if (maintainDuration == null) {\n      maintainDuration = this._context.options.allDayMaintainDuration;\n    }\n    if (this._def.allDay !== allDay) {\n      standardProps.hasEnd = maintainDuration;\n    }\n    this.mutate({\n      standardProps\n    });\n  }\n  formatRange(formatInput) {\n    let {\n      dateEnv\n    } = this._context;\n    let instance = this._instance;\n    let formatter = createFormatter(formatInput);\n    if (this._def.hasEnd) {\n      return dateEnv.formatRange(instance.range.start, instance.range.end, formatter, {\n        forcedStartTzo: instance.forcedStartTzo,\n        forcedEndTzo: instance.forcedEndTzo\n      });\n    }\n    return dateEnv.format(instance.range.start, formatter, {\n      forcedTzo: instance.forcedStartTzo\n    });\n  }\n  mutate(mutation) {\n    let instance = this._instance;\n    if (instance) {\n      let def = this._def;\n      let context = this._context;\n      let {\n        eventStore\n      } = context.getCurrentData();\n      let relevantEvents = getRelevantEvents(eventStore, instance.instanceId);\n      let eventConfigBase = {\n        '': {\n          display: '',\n          startEditable: true,\n          durationEditable: true,\n          constraints: [],\n          overlap: null,\n          allows: [],\n          backgroundColor: '',\n          borderColor: '',\n          textColor: '',\n          classNames: []\n        }\n      };\n      relevantEvents = applyMutationToEventStore(relevantEvents, eventConfigBase, mutation, context);\n      let oldEvent = new EventImpl(context, def, instance); // snapshot\n      this._def = relevantEvents.defs[def.defId];\n      this._instance = relevantEvents.instances[instance.instanceId];\n      context.dispatch({\n        type: 'MERGE_EVENTS',\n        eventStore: relevantEvents\n      });\n      context.emitter.trigger('eventChange', {\n        oldEvent,\n        event: this,\n        relatedEvents: buildEventApis(relevantEvents, context, instance),\n        revert() {\n          context.dispatch({\n            type: 'RESET_EVENTS',\n            eventStore // the ORIGINAL store\n          });\n        }\n      });\n    }\n  }\n  remove() {\n    let context = this._context;\n    let asStore = eventApiToStore(this);\n    context.dispatch({\n      type: 'REMOVE_EVENTS',\n      eventStore: asStore\n    });\n    context.emitter.trigger('eventRemove', {\n      event: this,\n      relatedEvents: [],\n      revert() {\n        context.dispatch({\n          type: 'MERGE_EVENTS',\n          eventStore: asStore\n        });\n      }\n    });\n  }\n  get source() {\n    let {\n      sourceId\n    } = this._def;\n    if (sourceId) {\n      return new EventSourceImpl(this._context, this._context.getCurrentData().eventSources[sourceId]);\n    }\n    return null;\n  }\n  get start() {\n    return this._instance ? this._context.dateEnv.toDate(this._instance.range.start) : null;\n  }\n  get end() {\n    return this._instance && this._def.hasEnd ? this._context.dateEnv.toDate(this._instance.range.end) : null;\n  }\n  get startStr() {\n    let instance = this._instance;\n    if (instance) {\n      return this._context.dateEnv.formatIso(instance.range.start, {\n        omitTime: this._def.allDay,\n        forcedTzo: instance.forcedStartTzo\n      });\n    }\n    return '';\n  }\n  get endStr() {\n    let instance = this._instance;\n    if (instance && this._def.hasEnd) {\n      return this._context.dateEnv.formatIso(instance.range.end, {\n        omitTime: this._def.allDay,\n        forcedTzo: instance.forcedEndTzo\n      });\n    }\n    return '';\n  }\n  // computable props that all access the def\n  // TODO: find a TypeScript-compatible way to do this at scale\n  get id() {\n    return this._def.publicId;\n  }\n  get groupId() {\n    return this._def.groupId;\n  }\n  get allDay() {\n    return this._def.allDay;\n  }\n  get title() {\n    return this._def.title;\n  }\n  get url() {\n    return this._def.url;\n  }\n  get display() {\n    return this._def.ui.display || 'auto';\n  } // bad. just normalize the type earlier\n  get startEditable() {\n    return this._def.ui.startEditable;\n  }\n  get durationEditable() {\n    return this._def.ui.durationEditable;\n  }\n  get constraint() {\n    return this._def.ui.constraints[0] || null;\n  }\n  get overlap() {\n    return this._def.ui.overlap;\n  }\n  get allow() {\n    return this._def.ui.allows[0] || null;\n  }\n  get backgroundColor() {\n    return this._def.ui.backgroundColor;\n  }\n  get borderColor() {\n    return this._def.ui.borderColor;\n  }\n  get textColor() {\n    return this._def.ui.textColor;\n  }\n  // NOTE: user can't modify these because Object.freeze was called in event-def parsing\n  get classNames() {\n    return this._def.ui.classNames;\n  }\n  get extendedProps() {\n    return this._def.extendedProps;\n  }\n  toPlainObject(settings = {}) {\n    let def = this._def;\n    let {\n      ui\n    } = def;\n    let {\n      startStr,\n      endStr\n    } = this;\n    let res = {\n      allDay: def.allDay\n    };\n    if (def.title) {\n      res.title = def.title;\n    }\n    if (startStr) {\n      res.start = startStr;\n    }\n    if (endStr) {\n      res.end = endStr;\n    }\n    if (def.publicId) {\n      res.id = def.publicId;\n    }\n    if (def.groupId) {\n      res.groupId = def.groupId;\n    }\n    if (def.url) {\n      res.url = def.url;\n    }\n    if (ui.display && ui.display !== 'auto') {\n      res.display = ui.display;\n    }\n    // TODO: what about recurring-event properties???\n    // TODO: include startEditable/durationEditable/constraint/overlap/allow\n    if (settings.collapseColor && ui.backgroundColor && ui.backgroundColor === ui.borderColor) {\n      res.color = ui.backgroundColor;\n    } else {\n      if (ui.backgroundColor) {\n        res.backgroundColor = ui.backgroundColor;\n      }\n      if (ui.borderColor) {\n        res.borderColor = ui.borderColor;\n      }\n    }\n    if (ui.textColor) {\n      res.textColor = ui.textColor;\n    }\n    if (ui.classNames.length) {\n      res.classNames = ui.classNames;\n    }\n    if (Object.keys(def.extendedProps).length) {\n      if (settings.collapseExtendedProps) {\n        Object.assign(res, def.extendedProps);\n      } else {\n        res.extendedProps = def.extendedProps;\n      }\n    }\n    return res;\n  }\n  toJSON() {\n    return this.toPlainObject();\n  }\n}\nfunction eventApiToStore(eventApi) {\n  let def = eventApi._def;\n  let instance = eventApi._instance;\n  return {\n    defs: {\n      [def.defId]: def\n    },\n    instances: instance ? {\n      [instance.instanceId]: instance\n    } : {}\n  };\n}\nfunction buildEventApis(eventStore, context, excludeInstance) {\n  let {\n    defs,\n    instances\n  } = eventStore;\n  let eventApis = [];\n  let excludeInstanceId = excludeInstance ? excludeInstance.instanceId : '';\n  for (let id in instances) {\n    let instance = instances[id];\n    let def = defs[instance.defId];\n    if (instance.instanceId !== excludeInstanceId) {\n      eventApis.push(new EventImpl(context, def, instance));\n    }\n  }\n  return eventApis;\n}\n\n/*\nSpecifying nextDayThreshold signals that all-day ranges should be sliced.\n*/\nfunction sliceEventStore(eventStore, eventUiBases, framingRange, nextDayThreshold) {\n  let inverseBgByGroupId = {};\n  let inverseBgByDefId = {};\n  let defByGroupId = {};\n  let bgRanges = [];\n  let fgRanges = [];\n  let eventUis = compileEventUis(eventStore.defs, eventUiBases);\n  for (let defId in eventStore.defs) {\n    let def = eventStore.defs[defId];\n    let ui = eventUis[def.defId];\n    if (ui.display === 'inverse-background') {\n      if (def.groupId) {\n        inverseBgByGroupId[def.groupId] = [];\n        if (!defByGroupId[def.groupId]) {\n          defByGroupId[def.groupId] = def;\n        }\n      } else {\n        inverseBgByDefId[defId] = [];\n      }\n    }\n  }\n  for (let instanceId in eventStore.instances) {\n    let instance = eventStore.instances[instanceId];\n    let def = eventStore.defs[instance.defId];\n    let ui = eventUis[def.defId];\n    let origRange = instance.range;\n    let normalRange = !def.allDay && nextDayThreshold ? computeVisibleDayRange(origRange, nextDayThreshold) : origRange;\n    let slicedRange = intersectRanges(normalRange, framingRange);\n    if (slicedRange) {\n      if (ui.display === 'inverse-background') {\n        if (def.groupId) {\n          inverseBgByGroupId[def.groupId].push(slicedRange);\n        } else {\n          inverseBgByDefId[instance.defId].push(slicedRange);\n        }\n      } else if (ui.display !== 'none') {\n        (ui.display === 'background' ? bgRanges : fgRanges).push({\n          def,\n          ui,\n          instance,\n          range: slicedRange,\n          isStart: normalRange.start && normalRange.start.valueOf() === slicedRange.start.valueOf(),\n          isEnd: normalRange.end && normalRange.end.valueOf() === slicedRange.end.valueOf()\n        });\n      }\n    }\n  }\n  for (let groupId in inverseBgByGroupId) {\n    // BY GROUP\n    let ranges = inverseBgByGroupId[groupId];\n    let invertedRanges = invertRanges(ranges, framingRange);\n    for (let invertedRange of invertedRanges) {\n      let def = defByGroupId[groupId];\n      let ui = eventUis[def.defId];\n      bgRanges.push({\n        def,\n        ui,\n        instance: null,\n        range: invertedRange,\n        isStart: false,\n        isEnd: false\n      });\n    }\n  }\n  for (let defId in inverseBgByDefId) {\n    let ranges = inverseBgByDefId[defId];\n    let invertedRanges = invertRanges(ranges, framingRange);\n    for (let invertedRange of invertedRanges) {\n      bgRanges.push({\n        def: eventStore.defs[defId],\n        ui: eventUis[defId],\n        instance: null,\n        range: invertedRange,\n        isStart: false,\n        isEnd: false\n      });\n    }\n  }\n  return {\n    bg: bgRanges,\n    fg: fgRanges\n  };\n}\nfunction hasBgRendering(def) {\n  return def.ui.display === 'background' || def.ui.display === 'inverse-background';\n}\nfunction setElSeg(el, seg) {\n  el.fcSeg = seg;\n}\nfunction getElSeg(el) {\n  return el.fcSeg || el.parentNode.fcSeg ||\n  // for the harness\n  null;\n}\n// event ui computation\nfunction compileEventUis(eventDefs, eventUiBases) {\n  return mapHash(eventDefs, eventDef => compileEventUi(eventDef, eventUiBases));\n}\nfunction compileEventUi(eventDef, eventUiBases) {\n  let uis = [];\n  if (eventUiBases['']) {\n    uis.push(eventUiBases['']);\n  }\n  if (eventUiBases[eventDef.defId]) {\n    uis.push(eventUiBases[eventDef.defId]);\n  }\n  uis.push(eventDef.ui);\n  return combineEventUis(uis);\n}\nfunction sortEventSegs(segs, eventOrderSpecs) {\n  let objs = segs.map(buildSegCompareObj);\n  objs.sort((obj0, obj1) => compareByFieldSpecs(obj0, obj1, eventOrderSpecs));\n  return objs.map(c => c._seg);\n}\n// returns a object with all primitive props that can be compared\nfunction buildSegCompareObj(seg) {\n  let {\n    eventRange\n  } = seg;\n  let eventDef = eventRange.def;\n  let range = eventRange.instance ? eventRange.instance.range : eventRange.range;\n  let start = range.start ? range.start.valueOf() : 0; // TODO: better support for open-range events\n  let end = range.end ? range.end.valueOf() : 0; // \"\n  return Object.assign(Object.assign(Object.assign({}, eventDef.extendedProps), eventDef), {\n    id: eventDef.publicId,\n    start,\n    end,\n    duration: end - start,\n    allDay: Number(eventDef.allDay),\n    _seg: seg\n  });\n}\nfunction computeSegDraggable(seg, context) {\n  let {\n    pluginHooks\n  } = context;\n  let transformers = pluginHooks.isDraggableTransformers;\n  let {\n    def,\n    ui\n  } = seg.eventRange;\n  let val = ui.startEditable;\n  for (let transformer of transformers) {\n    val = transformer(val, def, ui, context);\n  }\n  return val;\n}\nfunction computeSegStartResizable(seg, context) {\n  return seg.isStart && seg.eventRange.ui.durationEditable && context.options.eventResizableFromStart;\n}\nfunction computeSegEndResizable(seg, context) {\n  return seg.isEnd && seg.eventRange.ui.durationEditable;\n}\nfunction buildSegTimeText(seg, timeFormat, context, defaultDisplayEventTime,\n// defaults to true\ndefaultDisplayEventEnd,\n// defaults to true\nstartOverride, endOverride) {\n  let {\n    dateEnv,\n    options\n  } = context;\n  let {\n    displayEventTime,\n    displayEventEnd\n  } = options;\n  let eventDef = seg.eventRange.def;\n  let eventInstance = seg.eventRange.instance;\n  if (displayEventTime == null) {\n    displayEventTime = defaultDisplayEventTime !== false;\n  }\n  if (displayEventEnd == null) {\n    displayEventEnd = defaultDisplayEventEnd !== false;\n  }\n  let wholeEventStart = eventInstance.range.start;\n  let wholeEventEnd = eventInstance.range.end;\n  let segStart = startOverride || seg.start || seg.eventRange.range.start;\n  let segEnd = endOverride || seg.end || seg.eventRange.range.end;\n  let isStartDay = startOfDay(wholeEventStart).valueOf() === startOfDay(segStart).valueOf();\n  let isEndDay = startOfDay(addMs(wholeEventEnd, -1)).valueOf() === startOfDay(addMs(segEnd, -1)).valueOf();\n  if (displayEventTime && !eventDef.allDay && (isStartDay || isEndDay)) {\n    segStart = isStartDay ? wholeEventStart : segStart;\n    segEnd = isEndDay ? wholeEventEnd : segEnd;\n    if (displayEventEnd && eventDef.hasEnd) {\n      return dateEnv.formatRange(segStart, segEnd, timeFormat, {\n        forcedStartTzo: startOverride ? null : eventInstance.forcedStartTzo,\n        forcedEndTzo: endOverride ? null : eventInstance.forcedEndTzo\n      });\n    }\n    return dateEnv.format(segStart, timeFormat, {\n      forcedTzo: startOverride ? null : eventInstance.forcedStartTzo // nooooo, same\n    });\n  }\n  return '';\n}\nfunction getSegMeta(seg, todayRange, nowDate) {\n  let segRange = seg.eventRange.range;\n  return {\n    isPast: segRange.end <= (nowDate || todayRange.start),\n    isFuture: segRange.start >= (nowDate || todayRange.end),\n    isToday: todayRange && rangeContainsMarker(todayRange, segRange.start)\n  };\n}\nfunction getEventClassNames(props) {\n  let classNames = ['fc-event'];\n  if (props.isMirror) {\n    classNames.push('fc-event-mirror');\n  }\n  if (props.isDraggable) {\n    classNames.push('fc-event-draggable');\n  }\n  if (props.isStartResizable || props.isEndResizable) {\n    classNames.push('fc-event-resizable');\n  }\n  if (props.isDragging) {\n    classNames.push('fc-event-dragging');\n  }\n  if (props.isResizing) {\n    classNames.push('fc-event-resizing');\n  }\n  if (props.isSelected) {\n    classNames.push('fc-event-selected');\n  }\n  if (props.isStart) {\n    classNames.push('fc-event-start');\n  }\n  if (props.isEnd) {\n    classNames.push('fc-event-end');\n  }\n  if (props.isPast) {\n    classNames.push('fc-event-past');\n  }\n  if (props.isToday) {\n    classNames.push('fc-event-today');\n  }\n  if (props.isFuture) {\n    classNames.push('fc-event-future');\n  }\n  return classNames;\n}\nfunction buildEventRangeKey(eventRange) {\n  return eventRange.instance ? eventRange.instance.instanceId : `${eventRange.def.defId}:${eventRange.range.start.toISOString()}`;\n  // inverse-background events don't have specific instances. TODO: better solution\n}\nfunction getSegAnchorAttrs(seg, context) {\n  let {\n    def,\n    instance\n  } = seg.eventRange;\n  let {\n    url\n  } = def;\n  if (url) {\n    return {\n      href: url\n    };\n  }\n  let {\n    emitter,\n    options\n  } = context;\n  let {\n    eventInteractive\n  } = options;\n  if (eventInteractive == null) {\n    eventInteractive = def.interactive;\n    if (eventInteractive == null) {\n      eventInteractive = Boolean(emitter.hasHandlers('eventClick'));\n    }\n  }\n  // mock what happens in EventClicking\n  if (eventInteractive) {\n    // only attach keyboard-related handlers because click handler is already done in EventClicking\n    return createAriaKeyboardAttrs(ev => {\n      emitter.trigger('eventClick', {\n        el: ev.target,\n        event: new EventImpl(context, def, instance),\n        jsEvent: ev,\n        view: context.viewApi\n      });\n    });\n  }\n  return {};\n}\nconst STANDARD_PROPS = {\n  start: identity,\n  end: identity,\n  allDay: Boolean\n};\nfunction parseDateSpan(raw, dateEnv, defaultDuration) {\n  let span = parseOpenDateSpan(raw, dateEnv);\n  let {\n    range\n  } = span;\n  if (!range.start) {\n    return null;\n  }\n  if (!range.end) {\n    if (defaultDuration == null) {\n      return null;\n    }\n    range.end = dateEnv.add(range.start, defaultDuration);\n  }\n  return span;\n}\n/*\nTODO: somehow combine with parseRange?\nWill return null if the start/end props were present but parsed invalidly.\n*/\nfunction parseOpenDateSpan(raw, dateEnv) {\n  let {\n    refined: standardProps,\n    extra\n  } = refineProps(raw, STANDARD_PROPS);\n  let startMeta = standardProps.start ? dateEnv.createMarkerMeta(standardProps.start) : null;\n  let endMeta = standardProps.end ? dateEnv.createMarkerMeta(standardProps.end) : null;\n  let {\n    allDay\n  } = standardProps;\n  if (allDay == null) {\n    allDay = startMeta && startMeta.isTimeUnspecified && (!endMeta || endMeta.isTimeUnspecified);\n  }\n  return Object.assign({\n    range: {\n      start: startMeta ? startMeta.marker : null,\n      end: endMeta ? endMeta.marker : null\n    },\n    allDay\n  }, extra);\n}\nfunction isDateSpansEqual(span0, span1) {\n  return rangesEqual(span0.range, span1.range) && span0.allDay === span1.allDay && isSpanPropsEqual(span0, span1);\n}\n// the NON-DATE-RELATED props\nfunction isSpanPropsEqual(span0, span1) {\n  for (let propName in span1) {\n    if (propName !== 'range' && propName !== 'allDay') {\n      if (span0[propName] !== span1[propName]) {\n        return false;\n      }\n    }\n  }\n  // are there any props that span0 has that span1 DOESN'T have?\n  // both have range/allDay, so no need to special-case.\n  for (let propName in span0) {\n    if (!(propName in span1)) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction buildDateSpanApi(span, dateEnv) {\n  return Object.assign(Object.assign({}, buildRangeApi(span.range, dateEnv, span.allDay)), {\n    allDay: span.allDay\n  });\n}\nfunction buildRangeApiWithTimeZone(range, dateEnv, omitTime) {\n  return Object.assign(Object.assign({}, buildRangeApi(range, dateEnv, omitTime)), {\n    timeZone: dateEnv.timeZone\n  });\n}\nfunction buildRangeApi(range, dateEnv, omitTime) {\n  return {\n    start: dateEnv.toDate(range.start),\n    end: dateEnv.toDate(range.end),\n    startStr: dateEnv.formatIso(range.start, {\n      omitTime\n    }),\n    endStr: dateEnv.formatIso(range.end, {\n      omitTime\n    })\n  };\n}\nfunction fabricateEventRange(dateSpan, eventUiBases, context) {\n  let res = refineEventDef({\n    editable: false\n  }, context);\n  let def = parseEventDef(res.refined, res.extra, '',\n  // sourceId\n  dateSpan.allDay, true,\n  // hasEnd\n  context);\n  return {\n    def,\n    ui: compileEventUi(def, eventUiBases),\n    instance: createEventInstance(def.defId, dateSpan.range),\n    range: dateSpan.range,\n    isStart: true,\n    isEnd: true\n  };\n}\n\n/*\ngiven a function that resolves a result asynchronously.\nthe function can either call passed-in success and failure callbacks,\nor it can return a promise.\nif you need to pass additional params to func, bind them first.\n*/\nfunction unpromisify(func, normalizedSuccessCallback, normalizedFailureCallback) {\n  // guard against success/failure callbacks being called more than once\n  // and guard against a promise AND callback being used together.\n  let isResolved = false;\n  let wrappedSuccess = function (res) {\n    if (!isResolved) {\n      isResolved = true;\n      normalizedSuccessCallback(res);\n    }\n  };\n  let wrappedFailure = function (error) {\n    if (!isResolved) {\n      isResolved = true;\n      normalizedFailureCallback(error);\n    }\n  };\n  let res = func(wrappedSuccess, wrappedFailure);\n  if (res && typeof res.then === 'function') {\n    res.then(wrappedSuccess, wrappedFailure);\n  }\n}\nclass JsonRequestError extends Error {\n  constructor(message, response) {\n    super(message);\n    this.response = response;\n  }\n}\nfunction requestJson(method, url, params) {\n  method = method.toUpperCase();\n  const fetchOptions = {\n    method\n  };\n  if (method === 'GET') {\n    url += (url.indexOf('?') === -1 ? '?' : '&') + new URLSearchParams(params);\n  } else {\n    fetchOptions.body = new URLSearchParams(params);\n    fetchOptions.headers = {\n      'Content-Type': 'application/x-www-form-urlencoded'\n    };\n  }\n  return fetch(url, fetchOptions).then(fetchRes => {\n    if (fetchRes.ok) {\n      return fetchRes.json().then(parsedResponse => {\n        return [parsedResponse, fetchRes];\n      }, () => {\n        throw new JsonRequestError('Failure parsing JSON', fetchRes);\n      });\n    } else {\n      throw new JsonRequestError('Request failed', fetchRes);\n    }\n  });\n}\nlet canVGrowWithinCell;\nfunction getCanVGrowWithinCell() {\n  if (canVGrowWithinCell == null) {\n    canVGrowWithinCell = computeCanVGrowWithinCell();\n  }\n  return canVGrowWithinCell;\n}\nfunction computeCanVGrowWithinCell() {\n  // for SSR, because this function is call immediately at top-level\n  // TODO: just make this logic execute top-level, immediately, instead of doing lazily\n  if (typeof document === 'undefined') {\n    return true;\n  }\n  let el = document.createElement('div');\n  el.style.position = 'absolute';\n  el.style.top = '0px';\n  el.style.left = '0px';\n  el.innerHTML = '<table><tr><td><div></div></td></tr></table>';\n  el.querySelector('table').style.height = '100px';\n  el.querySelector('div').style.height = '100%';\n  document.body.appendChild(el);\n  let div = el.querySelector('div');\n  let possible = div.offsetHeight > 0;\n  document.body.removeChild(el);\n  return possible;\n}\nclass CalendarRoot extends BaseComponent {\n  constructor() {\n    super(...arguments);\n    this.state = {\n      forPrint: false\n    };\n    this.handleBeforePrint = () => {\n      flushSync(() => {\n        this.setState({\n          forPrint: true\n        });\n      });\n    };\n    this.handleAfterPrint = () => {\n      flushSync(() => {\n        this.setState({\n          forPrint: false\n        });\n      });\n    };\n  }\n  render() {\n    let {\n      props\n    } = this;\n    let {\n      options\n    } = props;\n    let {\n      forPrint\n    } = this.state;\n    let isHeightAuto = forPrint || options.height === 'auto' || options.contentHeight === 'auto';\n    let height = !isHeightAuto && options.height != null ? options.height : '';\n    let classNames = ['fc', forPrint ? 'fc-media-print' : 'fc-media-screen', `fc-direction-${options.direction}`, props.theme.getClass('root')];\n    if (!getCanVGrowWithinCell()) {\n      classNames.push('fc-liquid-hack');\n    }\n    return props.children(classNames, height, isHeightAuto, forPrint);\n  }\n  componentDidMount() {\n    let {\n      emitter\n    } = this.props;\n    emitter.on('_beforeprint', this.handleBeforePrint);\n    emitter.on('_afterprint', this.handleAfterPrint);\n  }\n  componentWillUnmount() {\n    let {\n      emitter\n    } = this.props;\n    emitter.off('_beforeprint', this.handleBeforePrint);\n    emitter.off('_afterprint', this.handleAfterPrint);\n  }\n}\nclass Interaction {\n  constructor(settings) {\n    this.component = settings.component;\n    this.isHitComboAllowed = settings.isHitComboAllowed || null;\n  }\n  destroy() {}\n}\nfunction parseInteractionSettings(component, input) {\n  return {\n    component,\n    el: input.el,\n    useEventCenter: input.useEventCenter != null ? input.useEventCenter : true,\n    isHitComboAllowed: input.isHitComboAllowed || null\n  };\n}\nfunction interactionSettingsToStore(settings) {\n  return {\n    [settings.component.uid]: settings\n  };\n}\n// global state\nconst interactionSettingsStore = {};\nclass NowTimer extends preact__WEBPACK_IMPORTED_MODULE_0__.Component {\n  constructor(props, context) {\n    super(props, context);\n    this.handleRefresh = () => {\n      let timing = this.computeTiming();\n      if (timing.state.nowDate.valueOf() !== this.state.nowDate.valueOf()) {\n        this.setState(timing.state);\n      }\n      this.clearTimeout();\n      this.setTimeout(timing.waitMs);\n    };\n    this.handleVisibilityChange = () => {\n      if (!document.hidden) {\n        this.handleRefresh();\n      }\n    };\n    this.state = this.computeTiming().state;\n  }\n  render() {\n    let {\n      props,\n      state\n    } = this;\n    return props.children(state.nowDate, state.todayRange);\n  }\n  componentDidMount() {\n    this.setTimeout();\n    this.context.nowManager.addResetListener(this.handleRefresh);\n    // fired tab becomes visible after being hidden\n    document.addEventListener('visibilitychange', this.handleVisibilityChange);\n  }\n  componentDidUpdate(prevProps) {\n    if (prevProps.unit !== this.props.unit) {\n      this.clearTimeout();\n      this.setTimeout();\n    }\n  }\n  componentWillUnmount() {\n    this.clearTimeout();\n    this.context.nowManager.removeResetListener(this.handleRefresh);\n    document.removeEventListener('visibilitychange', this.handleVisibilityChange);\n  }\n  computeTiming() {\n    let {\n      props,\n      context\n    } = this;\n    let unroundedNow = context.nowManager.getDateMarker();\n    let currentUnitStart = context.dateEnv.startOf(unroundedNow, props.unit);\n    let nextUnitStart = context.dateEnv.add(currentUnitStart, createDuration(1, props.unit));\n    let waitMs = nextUnitStart.valueOf() - unroundedNow.valueOf();\n    // there is a max setTimeout ms value (https://stackoverflow.com/a/3468650/96342)\n    // ensure no longer than a day\n    waitMs = Math.min(1000 * 60 * 60 * 24, waitMs);\n    return {\n      state: {\n        nowDate: currentUnitStart,\n        todayRange: buildDayRange(currentUnitStart)\n      },\n      waitMs\n    };\n  }\n  setTimeout(waitMs = this.computeTiming().waitMs) {\n    // NOTE: timeout could take longer than expected if tab sleeps,\n    // which is why we listen to 'visibilitychange'\n    this.timeoutId = setTimeout(() => {\n      // NOTE: timeout could also return *earlier* than expected, and we need to wait 2 ms more\n      // This is why use use same waitMs from computeTiming, so we don't skip an interval while\n      // .setState() is executing\n      const timing = this.computeTiming();\n      this.setState(timing.state, () => {\n        this.setTimeout(timing.waitMs);\n      });\n    }, waitMs);\n  }\n  clearTimeout() {\n    if (this.timeoutId) {\n      clearTimeout(this.timeoutId);\n    }\n  }\n}\nNowTimer.contextType = ViewContextType;\nfunction buildDayRange(date) {\n  let start = startOfDay(date);\n  let end = addDays(start, 1);\n  return {\n    start,\n    end\n  };\n}\nclass CalendarImpl {\n  getCurrentData() {\n    return this.currentDataManager.getCurrentData();\n  }\n  dispatch(action) {\n    this.currentDataManager.dispatch(action);\n  }\n  get view() {\n    return this.getCurrentData().viewApi;\n  }\n  batchRendering(callback) {\n    callback();\n  }\n  updateSize() {\n    this.trigger('_resize', true);\n  }\n  // Options\n  // -----------------------------------------------------------------------------------------------------------------\n  setOption(name, val) {\n    this.dispatch({\n      type: 'SET_OPTION',\n      optionName: name,\n      rawOptionValue: val\n    });\n  }\n  getOption(name) {\n    return this.currentDataManager.currentCalendarOptionsInput[name];\n  }\n  getAvailableLocaleCodes() {\n    return Object.keys(this.getCurrentData().availableRawLocales);\n  }\n  // Trigger\n  // -----------------------------------------------------------------------------------------------------------------\n  on(handlerName, handler) {\n    let {\n      currentDataManager\n    } = this;\n    if (currentDataManager.currentCalendarOptionsRefiners[handlerName]) {\n      currentDataManager.emitter.on(handlerName, handler);\n    } else {\n      console.warn(`Unknown listener name '${handlerName}'`);\n    }\n  }\n  off(handlerName, handler) {\n    this.currentDataManager.emitter.off(handlerName, handler);\n  }\n  // not meant for public use\n  trigger(handlerName, ...args) {\n    this.currentDataManager.emitter.trigger(handlerName, ...args);\n  }\n  // View\n  // -----------------------------------------------------------------------------------------------------------------\n  changeView(viewType, dateOrRange) {\n    this.batchRendering(() => {\n      this.unselect();\n      if (dateOrRange) {\n        if (dateOrRange.start && dateOrRange.end) {\n          // a range\n          this.dispatch({\n            type: 'CHANGE_VIEW_TYPE',\n            viewType\n          });\n          this.dispatch({\n            type: 'SET_OPTION',\n            optionName: 'visibleRange',\n            rawOptionValue: dateOrRange\n          });\n        } else {\n          let {\n            dateEnv\n          } = this.getCurrentData();\n          this.dispatch({\n            type: 'CHANGE_VIEW_TYPE',\n            viewType,\n            dateMarker: dateEnv.createMarker(dateOrRange)\n          });\n        }\n      } else {\n        this.dispatch({\n          type: 'CHANGE_VIEW_TYPE',\n          viewType\n        });\n      }\n    });\n  }\n  // Forces navigation to a view for the given date.\n  // `viewType` can be a specific view name or a generic one like \"week\" or \"day\".\n  // needs to change\n  zoomTo(dateMarker, viewType) {\n    let state = this.getCurrentData();\n    let spec;\n    viewType = viewType || 'day'; // day is default zoom\n    spec = state.viewSpecs[viewType] || this.getUnitViewSpec(viewType);\n    this.unselect();\n    if (spec) {\n      this.dispatch({\n        type: 'CHANGE_VIEW_TYPE',\n        viewType: spec.type,\n        dateMarker\n      });\n    } else {\n      this.dispatch({\n        type: 'CHANGE_DATE',\n        dateMarker\n      });\n    }\n  }\n  // Given a duration singular unit, like \"week\" or \"day\", finds a matching view spec.\n  // Preference is given to views that have corresponding buttons.\n  getUnitViewSpec(unit) {\n    let {\n      viewSpecs,\n      toolbarConfig\n    } = this.getCurrentData();\n    let viewTypes = [].concat(toolbarConfig.header ? toolbarConfig.header.viewsWithButtons : [], toolbarConfig.footer ? toolbarConfig.footer.viewsWithButtons : []);\n    let i;\n    let spec;\n    for (let viewType in viewSpecs) {\n      viewTypes.push(viewType);\n    }\n    for (i = 0; i < viewTypes.length; i += 1) {\n      spec = viewSpecs[viewTypes[i]];\n      if (spec) {\n        if (spec.singleUnit === unit) {\n          return spec;\n        }\n      }\n    }\n    return null;\n  }\n  // Current Date\n  // -----------------------------------------------------------------------------------------------------------------\n  prev() {\n    this.unselect();\n    this.dispatch({\n      type: 'PREV'\n    });\n  }\n  next() {\n    this.unselect();\n    this.dispatch({\n      type: 'NEXT'\n    });\n  }\n  prevYear() {\n    let state = this.getCurrentData();\n    this.unselect();\n    this.dispatch({\n      type: 'CHANGE_DATE',\n      dateMarker: state.dateEnv.addYears(state.currentDate, -1)\n    });\n  }\n  nextYear() {\n    let state = this.getCurrentData();\n    this.unselect();\n    this.dispatch({\n      type: 'CHANGE_DATE',\n      dateMarker: state.dateEnv.addYears(state.currentDate, 1)\n    });\n  }\n  today() {\n    let state = this.getCurrentData();\n    this.unselect();\n    this.dispatch({\n      type: 'CHANGE_DATE',\n      dateMarker: state.nowManager.getDateMarker()\n    });\n  }\n  gotoDate(zonedDateInput) {\n    let state = this.getCurrentData();\n    this.unselect();\n    this.dispatch({\n      type: 'CHANGE_DATE',\n      dateMarker: state.dateEnv.createMarker(zonedDateInput)\n    });\n  }\n  incrementDate(deltaInput) {\n    let state = this.getCurrentData();\n    let delta = createDuration(deltaInput);\n    if (delta) {\n      // else, warn about invalid input?\n      this.unselect();\n      this.dispatch({\n        type: 'CHANGE_DATE',\n        dateMarker: state.dateEnv.add(state.currentDate, delta)\n      });\n    }\n  }\n  getDate() {\n    let state = this.getCurrentData();\n    return state.dateEnv.toDate(state.currentDate);\n  }\n  // Date Formatting Utils\n  // -----------------------------------------------------------------------------------------------------------------\n  formatDate(d, formatter) {\n    let {\n      dateEnv\n    } = this.getCurrentData();\n    return dateEnv.format(dateEnv.createMarker(d), createFormatter(formatter));\n  }\n  // `settings` is for formatter AND isEndExclusive\n  formatRange(d0, d1, settings) {\n    let {\n      dateEnv\n    } = this.getCurrentData();\n    return dateEnv.formatRange(dateEnv.createMarker(d0), dateEnv.createMarker(d1), createFormatter(settings), settings);\n  }\n  formatIso(d, omitTime) {\n    let {\n      dateEnv\n    } = this.getCurrentData();\n    return dateEnv.formatIso(dateEnv.createMarker(d), {\n      omitTime\n    });\n  }\n  // Date Selection / Event Selection / DayClick\n  // -----------------------------------------------------------------------------------------------------------------\n  select(dateOrObj, endDate) {\n    let selectionInput;\n    if (endDate == null) {\n      if (dateOrObj.start != null) {\n        selectionInput = dateOrObj;\n      } else {\n        selectionInput = {\n          start: dateOrObj,\n          end: null\n        };\n      }\n    } else {\n      selectionInput = {\n        start: dateOrObj,\n        end: endDate\n      };\n    }\n    let state = this.getCurrentData();\n    let selection = parseDateSpan(selectionInput, state.dateEnv, createDuration({\n      days: 1\n    }));\n    if (selection) {\n      // throw parse error otherwise?\n      this.dispatch({\n        type: 'SELECT_DATES',\n        selection\n      });\n      triggerDateSelect(selection, null, state);\n    }\n  }\n  unselect(pev) {\n    let state = this.getCurrentData();\n    if (state.dateSelection) {\n      this.dispatch({\n        type: 'UNSELECT_DATES'\n      });\n      triggerDateUnselect(pev, state);\n    }\n  }\n  // Public Events API\n  // -----------------------------------------------------------------------------------------------------------------\n  addEvent(eventInput, sourceInput) {\n    if (eventInput instanceof EventImpl) {\n      let def = eventInput._def;\n      let instance = eventInput._instance;\n      let currentData = this.getCurrentData();\n      // not already present? don't want to add an old snapshot\n      if (!currentData.eventStore.defs[def.defId]) {\n        this.dispatch({\n          type: 'ADD_EVENTS',\n          eventStore: eventTupleToStore({\n            def,\n            instance\n          }) // TODO: better util for two args?\n        });\n        this.triggerEventAdd(eventInput);\n      }\n      return eventInput;\n    }\n    let state = this.getCurrentData();\n    let eventSource;\n    if (sourceInput instanceof EventSourceImpl) {\n      eventSource = sourceInput.internalEventSource;\n    } else if (typeof sourceInput === 'boolean') {\n      if (sourceInput) {\n        // true. part of the first event source\n        [eventSource] = hashValuesToArray(state.eventSources);\n      }\n    } else if (sourceInput != null) {\n      // an ID. accepts a number too\n      let sourceApi = this.getEventSourceById(sourceInput); // TODO: use an internal function\n      if (!sourceApi) {\n        console.warn(`Could not find an event source with ID \"${sourceInput}\"`); // TODO: test\n        return null;\n      }\n      eventSource = sourceApi.internalEventSource;\n    }\n    let tuple = parseEvent(eventInput, eventSource, state, false);\n    if (tuple) {\n      let newEventApi = new EventImpl(state, tuple.def, tuple.def.recurringDef ? null : tuple.instance);\n      this.dispatch({\n        type: 'ADD_EVENTS',\n        eventStore: eventTupleToStore(tuple)\n      });\n      this.triggerEventAdd(newEventApi);\n      return newEventApi;\n    }\n    return null;\n  }\n  triggerEventAdd(eventApi) {\n    let {\n      emitter\n    } = this.getCurrentData();\n    emitter.trigger('eventAdd', {\n      event: eventApi,\n      relatedEvents: [],\n      revert: () => {\n        this.dispatch({\n          type: 'REMOVE_EVENTS',\n          eventStore: eventApiToStore(eventApi)\n        });\n      }\n    });\n  }\n  // TODO: optimize\n  getEventById(id) {\n    let state = this.getCurrentData();\n    let {\n      defs,\n      instances\n    } = state.eventStore;\n    id = String(id);\n    for (let defId in defs) {\n      let def = defs[defId];\n      if (def.publicId === id) {\n        if (def.recurringDef) {\n          return new EventImpl(state, def, null);\n        }\n        for (let instanceId in instances) {\n          let instance = instances[instanceId];\n          if (instance.defId === def.defId) {\n            return new EventImpl(state, def, instance);\n          }\n        }\n      }\n    }\n    return null;\n  }\n  getEvents() {\n    let currentData = this.getCurrentData();\n    return buildEventApis(currentData.eventStore, currentData);\n  }\n  removeAllEvents() {\n    this.dispatch({\n      type: 'REMOVE_ALL_EVENTS'\n    });\n  }\n  // Public Event Sources API\n  // -----------------------------------------------------------------------------------------------------------------\n  getEventSources() {\n    let state = this.getCurrentData();\n    let sourceHash = state.eventSources;\n    let sourceApis = [];\n    for (let internalId in sourceHash) {\n      sourceApis.push(new EventSourceImpl(state, sourceHash[internalId]));\n    }\n    return sourceApis;\n  }\n  getEventSourceById(id) {\n    let state = this.getCurrentData();\n    let sourceHash = state.eventSources;\n    id = String(id);\n    for (let sourceId in sourceHash) {\n      if (sourceHash[sourceId].publicId === id) {\n        return new EventSourceImpl(state, sourceHash[sourceId]);\n      }\n    }\n    return null;\n  }\n  addEventSource(sourceInput) {\n    let state = this.getCurrentData();\n    if (sourceInput instanceof EventSourceImpl) {\n      // not already present? don't want to add an old snapshot\n      if (!state.eventSources[sourceInput.internalEventSource.sourceId]) {\n        this.dispatch({\n          type: 'ADD_EVENT_SOURCES',\n          sources: [sourceInput.internalEventSource]\n        });\n      }\n      return sourceInput;\n    }\n    let eventSource = parseEventSource(sourceInput, state);\n    if (eventSource) {\n      // TODO: error otherwise?\n      this.dispatch({\n        type: 'ADD_EVENT_SOURCES',\n        sources: [eventSource]\n      });\n      return new EventSourceImpl(state, eventSource);\n    }\n    return null;\n  }\n  removeAllEventSources() {\n    this.dispatch({\n      type: 'REMOVE_ALL_EVENT_SOURCES'\n    });\n  }\n  refetchEvents() {\n    this.dispatch({\n      type: 'FETCH_EVENT_SOURCES',\n      isRefetch: true\n    });\n  }\n  // Scroll\n  // -----------------------------------------------------------------------------------------------------------------\n  scrollToTime(timeInput) {\n    let time = createDuration(timeInput);\n    if (time) {\n      this.trigger('_scrollRequest', {\n        time\n      });\n    }\n  }\n}\nfunction pointInsideRect(point, rect) {\n  return point.left >= rect.left && point.left < rect.right && point.top >= rect.top && point.top < rect.bottom;\n}\n// Returns a new rectangle that is the intersection of the two rectangles. If they don't intersect, returns false\nfunction intersectRects(rect1, rect2) {\n  let res = {\n    left: Math.max(rect1.left, rect2.left),\n    right: Math.min(rect1.right, rect2.right),\n    top: Math.max(rect1.top, rect2.top),\n    bottom: Math.min(rect1.bottom, rect2.bottom)\n  };\n  if (res.left < res.right && res.top < res.bottom) {\n    return res;\n  }\n  return false;\n}\nfunction translateRect(rect, deltaX, deltaY) {\n  return {\n    left: rect.left + deltaX,\n    right: rect.right + deltaX,\n    top: rect.top + deltaY,\n    bottom: rect.bottom + deltaY\n  };\n}\n// Returns a new point that will have been moved to reside within the given rectangle\nfunction constrainPoint(point, rect) {\n  return {\n    left: Math.min(Math.max(point.left, rect.left), rect.right),\n    top: Math.min(Math.max(point.top, rect.top), rect.bottom)\n  };\n}\n// Returns a point that is the center of the given rectangle\nfunction getRectCenter(rect) {\n  return {\n    left: (rect.left + rect.right) / 2,\n    top: (rect.top + rect.bottom) / 2\n  };\n}\n// Subtracts point2's coordinates from point1's coordinates, returning a delta\nfunction diffPoints(point1, point2) {\n  return {\n    left: point1.left - point2.left,\n    top: point1.top - point2.top\n  };\n}\nconst EMPTY_EVENT_STORE = createEmptyEventStore(); // for purecomponents. TODO: keep elsewhere\nclass Splitter {\n  constructor() {\n    this.getKeysForEventDefs = memoize(this._getKeysForEventDefs);\n    this.splitDateSelection = memoize(this._splitDateSpan);\n    this.splitEventStore = memoize(this._splitEventStore);\n    this.splitIndividualUi = memoize(this._splitIndividualUi);\n    this.splitEventDrag = memoize(this._splitInteraction);\n    this.splitEventResize = memoize(this._splitInteraction);\n    this.eventUiBuilders = {}; // TODO: typescript protection\n  }\n  splitProps(props) {\n    let keyInfos = this.getKeyInfo(props);\n    let defKeys = this.getKeysForEventDefs(props.eventStore);\n    let dateSelections = this.splitDateSelection(props.dateSelection);\n    let individualUi = this.splitIndividualUi(props.eventUiBases, defKeys); // the individual *bases*\n    let eventStores = this.splitEventStore(props.eventStore, defKeys);\n    let eventDrags = this.splitEventDrag(props.eventDrag);\n    let eventResizes = this.splitEventResize(props.eventResize);\n    let splitProps = {};\n    this.eventUiBuilders = mapHash(keyInfos, (info, key) => this.eventUiBuilders[key] || memoize(buildEventUiForKey));\n    for (let key in keyInfos) {\n      let keyInfo = keyInfos[key];\n      let eventStore = eventStores[key] || EMPTY_EVENT_STORE;\n      let buildEventUi = this.eventUiBuilders[key];\n      splitProps[key] = {\n        businessHours: keyInfo.businessHours || props.businessHours,\n        dateSelection: dateSelections[key] || null,\n        eventStore,\n        eventUiBases: buildEventUi(props.eventUiBases[''], keyInfo.ui, individualUi[key]),\n        eventSelection: eventStore.instances[props.eventSelection] ? props.eventSelection : '',\n        eventDrag: eventDrags[key] || null,\n        eventResize: eventResizes[key] || null\n      };\n    }\n    return splitProps;\n  }\n  _splitDateSpan(dateSpan) {\n    let dateSpans = {};\n    if (dateSpan) {\n      let keys = this.getKeysForDateSpan(dateSpan);\n      for (let key of keys) {\n        dateSpans[key] = dateSpan;\n      }\n    }\n    return dateSpans;\n  }\n  _getKeysForEventDefs(eventStore) {\n    return mapHash(eventStore.defs, eventDef => this.getKeysForEventDef(eventDef));\n  }\n  _splitEventStore(eventStore, defKeys) {\n    let {\n      defs,\n      instances\n    } = eventStore;\n    let splitStores = {};\n    for (let defId in defs) {\n      for (let key of defKeys[defId]) {\n        if (!splitStores[key]) {\n          splitStores[key] = createEmptyEventStore();\n        }\n        splitStores[key].defs[defId] = defs[defId];\n      }\n    }\n    for (let instanceId in instances) {\n      let instance = instances[instanceId];\n      for (let key of defKeys[instance.defId]) {\n        if (splitStores[key]) {\n          // must have already been created\n          splitStores[key].instances[instanceId] = instance;\n        }\n      }\n    }\n    return splitStores;\n  }\n  _splitIndividualUi(eventUiBases, defKeys) {\n    let splitHashes = {};\n    for (let defId in eventUiBases) {\n      if (defId) {\n        // not the '' key\n        for (let key of defKeys[defId]) {\n          if (!splitHashes[key]) {\n            splitHashes[key] = {};\n          }\n          splitHashes[key][defId] = eventUiBases[defId];\n        }\n      }\n    }\n    return splitHashes;\n  }\n  _splitInteraction(interaction) {\n    let splitStates = {};\n    if (interaction) {\n      let affectedStores = this._splitEventStore(interaction.affectedEvents, this._getKeysForEventDefs(interaction.affectedEvents));\n      // can't rely on defKeys because event data is mutated\n      let mutatedKeysByDefId = this._getKeysForEventDefs(interaction.mutatedEvents);\n      let mutatedStores = this._splitEventStore(interaction.mutatedEvents, mutatedKeysByDefId);\n      let populate = key => {\n        if (!splitStates[key]) {\n          splitStates[key] = {\n            affectedEvents: affectedStores[key] || EMPTY_EVENT_STORE,\n            mutatedEvents: mutatedStores[key] || EMPTY_EVENT_STORE,\n            isEvent: interaction.isEvent\n          };\n        }\n      };\n      for (let key in affectedStores) {\n        populate(key);\n      }\n      for (let key in mutatedStores) {\n        populate(key);\n      }\n    }\n    return splitStates;\n  }\n}\nfunction buildEventUiForKey(allUi, eventUiForKey, individualUi) {\n  let baseParts = [];\n  if (allUi) {\n    baseParts.push(allUi);\n  }\n  if (eventUiForKey) {\n    baseParts.push(eventUiForKey);\n  }\n  let stuff = {\n    '': combineEventUis(baseParts)\n  };\n  if (individualUi) {\n    Object.assign(stuff, individualUi);\n  }\n  return stuff;\n}\nfunction getDateMeta(date, todayRange, nowDate, dateProfile) {\n  return {\n    dow: date.getUTCDay(),\n    isDisabled: Boolean(dateProfile && (!dateProfile.activeRange || !rangeContainsMarker(dateProfile.activeRange, date))),\n    isOther: Boolean(dateProfile && !rangeContainsMarker(dateProfile.currentRange, date)),\n    isToday: Boolean(todayRange && rangeContainsMarker(todayRange, date)),\n    isPast: Boolean(nowDate ? date < nowDate : todayRange ? date < todayRange.start : false),\n    isFuture: Boolean(nowDate ? date > nowDate : todayRange ? date >= todayRange.end : false)\n  };\n}\nfunction getDayClassNames(meta, theme) {\n  let classNames = ['fc-day', `fc-day-${DAY_IDS[meta.dow]}`];\n  if (meta.isDisabled) {\n    classNames.push('fc-day-disabled');\n  } else {\n    if (meta.isToday) {\n      classNames.push('fc-day-today');\n      classNames.push(theme.getClass('today'));\n    }\n    if (meta.isPast) {\n      classNames.push('fc-day-past');\n    }\n    if (meta.isFuture) {\n      classNames.push('fc-day-future');\n    }\n    if (meta.isOther) {\n      classNames.push('fc-day-other');\n    }\n  }\n  return classNames;\n}\nfunction getSlotClassNames(meta, theme) {\n  let classNames = ['fc-slot', `fc-slot-${DAY_IDS[meta.dow]}`];\n  if (meta.isDisabled) {\n    classNames.push('fc-slot-disabled');\n  } else {\n    if (meta.isToday) {\n      classNames.push('fc-slot-today');\n      classNames.push(theme.getClass('today'));\n    }\n    if (meta.isPast) {\n      classNames.push('fc-slot-past');\n    }\n    if (meta.isFuture) {\n      classNames.push('fc-slot-future');\n    }\n  }\n  return classNames;\n}\nconst DAY_FORMAT = createFormatter({\n  year: 'numeric',\n  month: 'long',\n  day: 'numeric'\n});\nconst WEEK_FORMAT = createFormatter({\n  week: 'long'\n});\nfunction buildNavLinkAttrs(context, dateMarker, viewType = 'day', isTabbable = true) {\n  const {\n    dateEnv,\n    options,\n    calendarApi\n  } = context;\n  let dateStr = dateEnv.format(dateMarker, viewType === 'week' ? WEEK_FORMAT : DAY_FORMAT);\n  if (options.navLinks) {\n    let zonedDate = dateEnv.toDate(dateMarker);\n    const handleInteraction = ev => {\n      let customAction = viewType === 'day' ? options.navLinkDayClick : viewType === 'week' ? options.navLinkWeekClick : null;\n      if (typeof customAction === 'function') {\n        customAction.call(calendarApi, dateEnv.toDate(dateMarker), ev);\n      } else {\n        if (typeof customAction === 'string') {\n          viewType = customAction;\n        }\n        calendarApi.zoomTo(dateMarker, viewType);\n      }\n    };\n    return Object.assign({\n      title: formatWithOrdinals(options.navLinkHint, [dateStr, zonedDate], dateStr),\n      'data-navlink': ''\n    }, isTabbable ? createAriaClickAttrs(handleInteraction) : {\n      onClick: handleInteraction\n    });\n  }\n  return {\n    'aria-label': dateStr\n  };\n}\nlet _isRtlScrollbarOnLeft = null;\nfunction getIsRtlScrollbarOnLeft() {\n  if (_isRtlScrollbarOnLeft === null) {\n    _isRtlScrollbarOnLeft = computeIsRtlScrollbarOnLeft();\n  }\n  return _isRtlScrollbarOnLeft;\n}\nfunction computeIsRtlScrollbarOnLeft() {\n  let outerEl = document.createElement('div');\n  applyStyle(outerEl, {\n    position: 'absolute',\n    top: -1000,\n    left: 0,\n    border: 0,\n    padding: 0,\n    overflow: 'scroll',\n    direction: 'rtl'\n  });\n  outerEl.innerHTML = '<div></div>';\n  document.body.appendChild(outerEl);\n  let innerEl = outerEl.firstChild;\n  let res = innerEl.getBoundingClientRect().left > outerEl.getBoundingClientRect().left;\n  removeElement(outerEl);\n  return res;\n}\nlet _scrollbarWidths;\nfunction getScrollbarWidths() {\n  if (!_scrollbarWidths) {\n    _scrollbarWidths = computeScrollbarWidths();\n  }\n  return _scrollbarWidths;\n}\nfunction computeScrollbarWidths() {\n  let el = document.createElement('div');\n  el.style.overflow = 'scroll';\n  el.style.position = 'absolute';\n  el.style.top = '-9999px';\n  el.style.left = '-9999px';\n  document.body.appendChild(el);\n  let res = computeScrollbarWidthsForEl(el);\n  document.body.removeChild(el);\n  return res;\n}\n// WARNING: will include border\nfunction computeScrollbarWidthsForEl(el) {\n  return {\n    x: el.offsetHeight - el.clientHeight,\n    y: el.offsetWidth - el.clientWidth\n  };\n}\nfunction computeEdges(el, getPadding = false) {\n  let computedStyle = window.getComputedStyle(el);\n  let borderLeft = parseInt(computedStyle.borderLeftWidth, 10) || 0;\n  let borderRight = parseInt(computedStyle.borderRightWidth, 10) || 0;\n  let borderTop = parseInt(computedStyle.borderTopWidth, 10) || 0;\n  let borderBottom = parseInt(computedStyle.borderBottomWidth, 10) || 0;\n  let badScrollbarWidths = computeScrollbarWidthsForEl(el); // includes border!\n  let scrollbarLeftRight = badScrollbarWidths.y - borderLeft - borderRight;\n  let scrollbarBottom = badScrollbarWidths.x - borderTop - borderBottom;\n  let res = {\n    borderLeft,\n    borderRight,\n    borderTop,\n    borderBottom,\n    scrollbarBottom,\n    scrollbarLeft: 0,\n    scrollbarRight: 0\n  };\n  if (getIsRtlScrollbarOnLeft() && computedStyle.direction === 'rtl') {\n    // is the scrollbar on the left side?\n    res.scrollbarLeft = scrollbarLeftRight;\n  } else {\n    res.scrollbarRight = scrollbarLeftRight;\n  }\n  if (getPadding) {\n    res.paddingLeft = parseInt(computedStyle.paddingLeft, 10) || 0;\n    res.paddingRight = parseInt(computedStyle.paddingRight, 10) || 0;\n    res.paddingTop = parseInt(computedStyle.paddingTop, 10) || 0;\n    res.paddingBottom = parseInt(computedStyle.paddingBottom, 10) || 0;\n  }\n  return res;\n}\nfunction computeInnerRect(el, goWithinPadding = false, doFromWindowViewport) {\n  let outerRect = doFromWindowViewport ? el.getBoundingClientRect() : computeRect(el);\n  let edges = computeEdges(el, goWithinPadding);\n  let res = {\n    left: outerRect.left + edges.borderLeft + edges.scrollbarLeft,\n    right: outerRect.right - edges.borderRight - edges.scrollbarRight,\n    top: outerRect.top + edges.borderTop,\n    bottom: outerRect.bottom - edges.borderBottom - edges.scrollbarBottom\n  };\n  if (goWithinPadding) {\n    res.left += edges.paddingLeft;\n    res.right -= edges.paddingRight;\n    res.top += edges.paddingTop;\n    res.bottom -= edges.paddingBottom;\n  }\n  return res;\n}\nfunction computeRect(el) {\n  let rect = el.getBoundingClientRect();\n  return {\n    left: rect.left + window.scrollX,\n    top: rect.top + window.scrollY,\n    right: rect.right + window.scrollX,\n    bottom: rect.bottom + window.scrollY\n  };\n}\nfunction computeClippedClientRect(el) {\n  let clippingParents = getClippingParents(el);\n  let rect = el.getBoundingClientRect();\n  for (let clippingParent of clippingParents) {\n    let intersection = intersectRects(rect, clippingParent.getBoundingClientRect());\n    if (intersection) {\n      rect = intersection;\n    } else {\n      return null;\n    }\n  }\n  return rect;\n}\n// does not return window\nfunction getClippingParents(el) {\n  let parents = [];\n  while (el instanceof HTMLElement) {\n    // will stop when gets to document or null\n    let computedStyle = window.getComputedStyle(el);\n    if (computedStyle.position === 'fixed') {\n      break;\n    }\n    if (/(auto|scroll)/.test(computedStyle.overflow + computedStyle.overflowY + computedStyle.overflowX)) {\n      parents.push(el);\n    }\n    el = el.parentNode;\n  }\n  return parents;\n}\n\n/*\nRecords offset information for a set of elements, relative to an origin element.\nCan record the left/right OR the top/bottom OR both.\nProvides methods for querying the cache by position.\n*/\nclass PositionCache {\n  constructor(originEl, els, isHorizontal, isVertical) {\n    this.els = els;\n    let originClientRect = this.originClientRect = originEl.getBoundingClientRect(); // relative to viewport top-left\n    if (isHorizontal) {\n      this.buildElHorizontals(originClientRect.left);\n    }\n    if (isVertical) {\n      this.buildElVerticals(originClientRect.top);\n    }\n  }\n  // Populates the left/right internal coordinate arrays\n  buildElHorizontals(originClientLeft) {\n    let lefts = [];\n    let rights = [];\n    for (let el of this.els) {\n      let rect = el.getBoundingClientRect();\n      lefts.push(rect.left - originClientLeft);\n      rights.push(rect.right - originClientLeft);\n    }\n    this.lefts = lefts;\n    this.rights = rights;\n  }\n  // Populates the top/bottom internal coordinate arrays\n  buildElVerticals(originClientTop) {\n    let tops = [];\n    let bottoms = [];\n    for (let el of this.els) {\n      let rect = el.getBoundingClientRect();\n      tops.push(rect.top - originClientTop);\n      bottoms.push(rect.bottom - originClientTop);\n    }\n    this.tops = tops;\n    this.bottoms = bottoms;\n  }\n  // Given a left offset (from document left), returns the index of the el that it horizontally intersects.\n  // If no intersection is made, returns undefined.\n  leftToIndex(leftPosition) {\n    let {\n      lefts,\n      rights\n    } = this;\n    let len = lefts.length;\n    let i;\n    for (i = 0; i < len; i += 1) {\n      if (leftPosition >= lefts[i] && leftPosition < rights[i]) {\n        return i;\n      }\n    }\n    return undefined; // TODO: better\n  }\n  // Given a top offset (from document top), returns the index of the el that it vertically intersects.\n  // If no intersection is made, returns undefined.\n  topToIndex(topPosition) {\n    let {\n      tops,\n      bottoms\n    } = this;\n    let len = tops.length;\n    let i;\n    for (i = 0; i < len; i += 1) {\n      if (topPosition >= tops[i] && topPosition < bottoms[i]) {\n        return i;\n      }\n    }\n    return undefined; // TODO: better\n  }\n  // Gets the width of the element at the given index\n  getWidth(leftIndex) {\n    return this.rights[leftIndex] - this.lefts[leftIndex];\n  }\n  // Gets the height of the element at the given index\n  getHeight(topIndex) {\n    return this.bottoms[topIndex] - this.tops[topIndex];\n  }\n  similarTo(otherCache) {\n    return similarNumArrays(this.tops || [], otherCache.tops || []) && similarNumArrays(this.bottoms || [], otherCache.bottoms || []) && similarNumArrays(this.lefts || [], otherCache.lefts || []) && similarNumArrays(this.rights || [], otherCache.rights || []);\n  }\n}\nfunction similarNumArrays(a, b) {\n  const len = a.length;\n  if (len !== b.length) {\n    return false;\n  }\n  for (let i = 0; i < len; i++) {\n    if (Math.round(a[i]) !== Math.round(b[i])) {\n      return false;\n    }\n  }\n  return true;\n}\n\n/* eslint max-classes-per-file: \"off\" */\n/*\nAn object for getting/setting scroll-related information for an element.\nInternally, this is done very differently for window versus DOM element,\nso this object serves as a common interface.\n*/\nclass ScrollController {\n  getMaxScrollTop() {\n    return this.getScrollHeight() - this.getClientHeight();\n  }\n  getMaxScrollLeft() {\n    return this.getScrollWidth() - this.getClientWidth();\n  }\n  canScrollVertically() {\n    return this.getMaxScrollTop() > 0;\n  }\n  canScrollHorizontally() {\n    return this.getMaxScrollLeft() > 0;\n  }\n  canScrollUp() {\n    return this.getScrollTop() > 0;\n  }\n  canScrollDown() {\n    return this.getScrollTop() < this.getMaxScrollTop();\n  }\n  canScrollLeft() {\n    return this.getScrollLeft() > 0;\n  }\n  canScrollRight() {\n    return this.getScrollLeft() < this.getMaxScrollLeft();\n  }\n}\nclass ElementScrollController extends ScrollController {\n  constructor(el) {\n    super();\n    this.el = el;\n  }\n  getScrollTop() {\n    return this.el.scrollTop;\n  }\n  getScrollLeft() {\n    return this.el.scrollLeft;\n  }\n  setScrollTop(top) {\n    this.el.scrollTop = top;\n  }\n  setScrollLeft(left) {\n    this.el.scrollLeft = left;\n  }\n  getScrollWidth() {\n    return this.el.scrollWidth;\n  }\n  getScrollHeight() {\n    return this.el.scrollHeight;\n  }\n  getClientHeight() {\n    return this.el.clientHeight;\n  }\n  getClientWidth() {\n    return this.el.clientWidth;\n  }\n}\nclass WindowScrollController extends ScrollController {\n  getScrollTop() {\n    return window.scrollY;\n  }\n  getScrollLeft() {\n    return window.scrollX;\n  }\n  setScrollTop(n) {\n    window.scroll(window.scrollX, n);\n  }\n  setScrollLeft(n) {\n    window.scroll(n, window.scrollY);\n  }\n  getScrollWidth() {\n    return document.documentElement.scrollWidth;\n  }\n  getScrollHeight() {\n    return document.documentElement.scrollHeight;\n  }\n  getClientHeight() {\n    return document.documentElement.clientHeight;\n  }\n  getClientWidth() {\n    return document.documentElement.clientWidth;\n  }\n}\n\n/*\nan INTERACTABLE date component\n\nPURPOSES:\n- hook up to fg, fill, and mirror renderers\n- interface for dragging and hits\n*/\nclass DateComponent extends BaseComponent {\n  constructor() {\n    super(...arguments);\n    this.uid = guid();\n  }\n  // Hit System\n  // -----------------------------------------------------------------------------------------------------------------\n  prepareHits() {}\n  queryHit(positionLeft, positionTop, elWidth, elHeight) {\n    return null; // this should be abstract\n  }\n  // Pointer Interaction Utils\n  // -----------------------------------------------------------------------------------------------------------------\n  isValidSegDownEl(el) {\n    return !this.props.eventDrag &&\n    // HACK\n    !this.props.eventResize &&\n    // HACK\n    !elementClosest(el, '.fc-event-mirror');\n  }\n  isValidDateDownEl(el) {\n    return !elementClosest(el, '.fc-event:not(.fc-bg-event)') && !elementClosest(el, '.fc-more-link') &&\n    // a \"more..\" link\n    !elementClosest(el, 'a[data-navlink]') &&\n    // a clickable nav link\n    !elementClosest(el, '.fc-popover'); // hack\n  }\n}\nclass NamedTimeZoneImpl {\n  constructor(timeZoneName) {\n    this.timeZoneName = timeZoneName;\n  }\n}\nclass SegHierarchy {\n  constructor(getEntryThickness = entry => {\n    // if no thickness known, assume 1 (if 0, so small it always fits)\n    return entry.thickness || 1;\n  }) {\n    this.getEntryThickness = getEntryThickness;\n    // settings\n    this.strictOrder = false;\n    this.allowReslicing = false;\n    this.maxCoord = -1; // -1 means no max\n    this.maxStackCnt = -1; // -1 means no max\n    this.levelCoords = []; // ordered\n    this.entriesByLevel = []; // parallel with levelCoords\n    this.stackCnts = {}; // TODO: use better technique!?\n  }\n  addSegs(inputs) {\n    let hiddenEntries = [];\n    for (let input of inputs) {\n      this.insertEntry(input, hiddenEntries);\n    }\n    return hiddenEntries;\n  }\n  insertEntry(entry, hiddenEntries) {\n    let insertion = this.findInsertion(entry);\n    if (this.isInsertionValid(insertion, entry)) {\n      this.insertEntryAt(entry, insertion);\n    } else {\n      this.handleInvalidInsertion(insertion, entry, hiddenEntries);\n    }\n  }\n  isInsertionValid(insertion, entry) {\n    return (this.maxCoord === -1 || insertion.levelCoord + this.getEntryThickness(entry) <= this.maxCoord) && (this.maxStackCnt === -1 || insertion.stackCnt < this.maxStackCnt);\n  }\n  handleInvalidInsertion(insertion, entry, hiddenEntries) {\n    if (this.allowReslicing && insertion.touchingEntry) {\n      const hiddenEntry = Object.assign(Object.assign({}, entry), {\n        span: intersectSpans(entry.span, insertion.touchingEntry.span)\n      });\n      hiddenEntries.push(hiddenEntry);\n      this.splitEntry(entry, insertion.touchingEntry, hiddenEntries);\n    } else {\n      hiddenEntries.push(entry);\n    }\n  }\n  /*\n  Does NOT add what hit the `barrier` into hiddenEntries. Should already be done.\n  */\n  splitEntry(entry, barrier, hiddenEntries) {\n    let entrySpan = entry.span;\n    let barrierSpan = barrier.span;\n    if (entrySpan.start < barrierSpan.start) {\n      this.insertEntry({\n        index: entry.index,\n        thickness: entry.thickness,\n        span: {\n          start: entrySpan.start,\n          end: barrierSpan.start\n        }\n      }, hiddenEntries);\n    }\n    if (entrySpan.end > barrierSpan.end) {\n      this.insertEntry({\n        index: entry.index,\n        thickness: entry.thickness,\n        span: {\n          start: barrierSpan.end,\n          end: entrySpan.end\n        }\n      }, hiddenEntries);\n    }\n  }\n  insertEntryAt(entry, insertion) {\n    let {\n      entriesByLevel,\n      levelCoords\n    } = this;\n    if (insertion.lateral === -1) {\n      // create a new level\n      insertAt(levelCoords, insertion.level, insertion.levelCoord);\n      insertAt(entriesByLevel, insertion.level, [entry]);\n    } else {\n      // insert into existing level\n      insertAt(entriesByLevel[insertion.level], insertion.lateral, entry);\n    }\n    this.stackCnts[buildEntryKey(entry)] = insertion.stackCnt;\n  }\n  /*\n  does not care about limits\n  */\n  findInsertion(newEntry) {\n    let {\n      levelCoords,\n      entriesByLevel,\n      strictOrder,\n      stackCnts\n    } = this;\n    let levelCnt = levelCoords.length;\n    let candidateCoord = 0;\n    let touchingLevel = -1;\n    let touchingLateral = -1;\n    let touchingEntry = null;\n    let stackCnt = 0;\n    for (let trackingLevel = 0; trackingLevel < levelCnt; trackingLevel += 1) {\n      const trackingCoord = levelCoords[trackingLevel];\n      // if the current level is past the placed entry, we have found a good empty space and can stop.\n      // if strictOrder, keep finding more lateral intersections.\n      if (!strictOrder && trackingCoord >= candidateCoord + this.getEntryThickness(newEntry)) {\n        break;\n      }\n      let trackingEntries = entriesByLevel[trackingLevel];\n      let trackingEntry;\n      let searchRes = binarySearch(trackingEntries, newEntry.span.start, getEntrySpanEnd); // find first entry after newEntry's end\n      let lateralIndex = searchRes[0] + searchRes[1]; // if exact match (which doesn't collide), go to next one\n      while (\n      // loop through entries that horizontally intersect\n      (trackingEntry = trackingEntries[lateralIndex]) &&\n      // but not past the whole entry list\n      trackingEntry.span.start < newEntry.span.end // and not entirely past newEntry\n      ) {\n        let trackingEntryBottom = trackingCoord + this.getEntryThickness(trackingEntry);\n        // intersects into the top of the candidate?\n        if (trackingEntryBottom > candidateCoord) {\n          candidateCoord = trackingEntryBottom;\n          touchingEntry = trackingEntry;\n          touchingLevel = trackingLevel;\n          touchingLateral = lateralIndex;\n        }\n        // butts up against top of candidate? (will happen if just intersected as well)\n        if (trackingEntryBottom === candidateCoord) {\n          // accumulate the highest possible stackCnt of the trackingEntries that butt up\n          stackCnt = Math.max(stackCnt, stackCnts[buildEntryKey(trackingEntry)] + 1);\n        }\n        lateralIndex += 1;\n      }\n    }\n    // the destination level will be after touchingEntry's level. find it\n    let destLevel = 0;\n    if (touchingEntry) {\n      destLevel = touchingLevel + 1;\n      while (destLevel < levelCnt && levelCoords[destLevel] < candidateCoord) {\n        destLevel += 1;\n      }\n    }\n    // if adding to an existing level, find where to insert\n    let destLateral = -1;\n    if (destLevel < levelCnt && levelCoords[destLevel] === candidateCoord) {\n      destLateral = binarySearch(entriesByLevel[destLevel], newEntry.span.end, getEntrySpanEnd)[0];\n    }\n    return {\n      touchingLevel,\n      touchingLateral,\n      touchingEntry,\n      stackCnt,\n      levelCoord: candidateCoord,\n      level: destLevel,\n      lateral: destLateral\n    };\n  }\n  // sorted by levelCoord (lowest to highest)\n  toRects() {\n    let {\n      entriesByLevel,\n      levelCoords\n    } = this;\n    let levelCnt = entriesByLevel.length;\n    let rects = [];\n    for (let level = 0; level < levelCnt; level += 1) {\n      let entries = entriesByLevel[level];\n      let levelCoord = levelCoords[level];\n      for (let entry of entries) {\n        rects.push(Object.assign(Object.assign({}, entry), {\n          thickness: this.getEntryThickness(entry),\n          levelCoord\n        }));\n      }\n    }\n    return rects;\n  }\n}\nfunction getEntrySpanEnd(entry) {\n  return entry.span.end;\n}\nfunction buildEntryKey(entry) {\n  return entry.index + ':' + entry.span.start;\n}\n// returns groups with entries sorted by input order\nfunction groupIntersectingEntries(entries) {\n  let merges = [];\n  for (let entry of entries) {\n    let filteredMerges = [];\n    let hungryMerge = {\n      span: entry.span,\n      entries: [entry]\n    };\n    for (let merge of merges) {\n      if (intersectSpans(merge.span, hungryMerge.span)) {\n        hungryMerge = {\n          entries: merge.entries.concat(hungryMerge.entries),\n          span: joinSpans(merge.span, hungryMerge.span)\n        };\n      } else {\n        filteredMerges.push(merge);\n      }\n    }\n    filteredMerges.push(hungryMerge);\n    merges = filteredMerges;\n  }\n  return merges;\n}\nfunction joinSpans(span0, span1) {\n  return {\n    start: Math.min(span0.start, span1.start),\n    end: Math.max(span0.end, span1.end)\n  };\n}\nfunction intersectSpans(span0, span1) {\n  let start = Math.max(span0.start, span1.start);\n  let end = Math.min(span0.end, span1.end);\n  if (start < end) {\n    return {\n      start,\n      end\n    };\n  }\n  return null;\n}\n// general util\n// ---------------------------------------------------------------------------------------------------------------------\nfunction insertAt(arr, index, item) {\n  arr.splice(index, 0, item);\n}\nfunction binarySearch(a, searchVal, getItemVal) {\n  let startIndex = 0;\n  let endIndex = a.length; // exclusive\n  if (!endIndex || searchVal < getItemVal(a[startIndex])) {\n    // no items OR before first item\n    return [0, 0];\n  }\n  if (searchVal > getItemVal(a[endIndex - 1])) {\n    // after last item\n    return [endIndex, 0];\n  }\n  while (startIndex < endIndex) {\n    let middleIndex = Math.floor(startIndex + (endIndex - startIndex) / 2);\n    let middleVal = getItemVal(a[middleIndex]);\n    if (searchVal < middleVal) {\n      endIndex = middleIndex;\n    } else if (searchVal > middleVal) {\n      startIndex = middleIndex + 1;\n    } else {\n      // equal!\n      return [middleIndex, 1];\n    }\n  }\n  return [startIndex, 0];\n}\n\n/*\nAn abstraction for a dragging interaction originating on an event.\nDoes higher-level things than PointerDragger, such as possibly:\n- a \"mirror\" that moves with the pointer\n- a minimum number of pixels or other criteria for a true drag to begin\n\nsubclasses must emit:\n- pointerdown\n- dragstart\n- dragmove\n- pointerup\n- dragend\n*/\nclass ElementDragging {\n  constructor(el, selector) {\n    this.emitter = new Emitter();\n  }\n  destroy() {}\n  setMirrorIsVisible(bool) {\n    // optional if subclass doesn't want to support a mirror\n  }\n  setMirrorNeedsRevert(bool) {\n    // optional if subclass doesn't want to support a mirror\n  }\n  setAutoScrollEnabled(bool) {\n    // optional\n  }\n}\n\n// TODO: get rid of this in favor of options system,\n// tho it's really easy to access this globally rather than pass thru options.\nconst config = {};\n\n/*\nInformation about what will happen when an external element is dragged-and-dropped\nonto a calendar. Contains information for creating an event.\n*/\nconst DRAG_META_REFINERS = {\n  startTime: createDuration,\n  duration: createDuration,\n  create: Boolean,\n  sourceId: String\n};\nfunction parseDragMeta(raw) {\n  let {\n    refined,\n    extra\n  } = refineProps(raw, DRAG_META_REFINERS);\n  return {\n    startTime: refined.startTime || null,\n    duration: refined.duration || null,\n    create: refined.create != null ? refined.create : true,\n    sourceId: refined.sourceId,\n    leftoverProps: extra\n  };\n}\n\n// Computes a default column header formatting string if `colFormat` is not explicitly defined\nfunction computeFallbackHeaderFormat(datesRepDistinctDays, dayCnt) {\n  // if more than one week row, or if there are a lot of columns with not much space,\n  // put just the day numbers will be in each cell\n  if (!datesRepDistinctDays || dayCnt > 10) {\n    return createFormatter({\n      weekday: 'short'\n    }); // \"Sat\"\n  }\n  if (dayCnt > 1) {\n    return createFormatter({\n      weekday: 'short',\n      month: 'numeric',\n      day: 'numeric',\n      omitCommas: true\n    }); // \"Sat 11/12\"\n  }\n  return createFormatter({\n    weekday: 'long'\n  }); // \"Saturday\"\n}\nconst CLASS_NAME = 'fc-col-header-cell'; // do the cushion too? no\nfunction renderInner$1(renderProps) {\n  return renderProps.text;\n}\n\n// BAD name for this class now. used in the Header\nclass TableDateCell extends BaseComponent {\n  render() {\n    let {\n      dateEnv,\n      options,\n      theme,\n      viewApi\n    } = this.context;\n    let {\n      props\n    } = this;\n    let {\n      date,\n      dateProfile\n    } = props;\n    let dayMeta = getDateMeta(date, props.todayRange, null, dateProfile);\n    let classNames = [CLASS_NAME].concat(getDayClassNames(dayMeta, theme));\n    let text = dateEnv.format(date, props.dayHeaderFormat);\n    // if colCnt is 1, we are already in a day-view and don't need a navlink\n    let navLinkAttrs = !dayMeta.isDisabled && props.colCnt > 1 ? buildNavLinkAttrs(this.context, date) : {};\n    let publicDate = dateEnv.toDate(date);\n    // workaround for Luxon (and maybe moment) returning prior-days when start-of-day\n    // in DST gap: https://github.com/fullcalendar/fullcalendar/issues/7633\n    if (dateEnv.namedTimeZoneImpl) {\n      publicDate = addMs(publicDate, 3600000); // add an hour\n    }\n    let renderProps = Object.assign(Object.assign(Object.assign({\n      date: publicDate,\n      view: viewApi\n    }, props.extraRenderProps), {\n      text\n    }), dayMeta);\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(ContentContainer, {\n      elTag: \"th\",\n      elClasses: classNames,\n      elAttrs: Object.assign({\n        role: 'columnheader',\n        colSpan: props.colSpan,\n        'data-date': !dayMeta.isDisabled ? formatDayString(date) : undefined\n      }, props.extraDataAttrs),\n      renderProps: renderProps,\n      generatorName: \"dayHeaderContent\",\n      customGenerator: options.dayHeaderContent,\n      defaultGenerator: renderInner$1,\n      classNameGenerator: options.dayHeaderClassNames,\n      didMount: options.dayHeaderDidMount,\n      willUnmount: options.dayHeaderWillUnmount\n    }, InnerContainer => (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n      className: \"fc-scrollgrid-sync-inner\"\n    }, !dayMeta.isDisabled && (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(InnerContainer, {\n      elTag: \"a\",\n      elAttrs: navLinkAttrs,\n      elClasses: ['fc-col-header-cell-cushion', props.isSticky && 'fc-sticky']\n    })));\n  }\n}\nconst WEEKDAY_FORMAT = createFormatter({\n  weekday: 'long'\n});\nclass TableDowCell extends BaseComponent {\n  render() {\n    let {\n      props\n    } = this;\n    let {\n      dateEnv,\n      theme,\n      viewApi,\n      options\n    } = this.context;\n    let date = addDays(new Date(259200000), props.dow); // start with Sun, 04 Jan 1970 00:00:00 GMT\n    let dateMeta = {\n      dow: props.dow,\n      isDisabled: false,\n      isFuture: false,\n      isPast: false,\n      isToday: false,\n      isOther: false\n    };\n    let text = dateEnv.format(date, props.dayHeaderFormat);\n    let renderProps = Object.assign(Object.assign(Object.assign(Object.assign({\n      // TODO: make this public?\n      date\n    }, dateMeta), {\n      view: viewApi\n    }), props.extraRenderProps), {\n      text\n    });\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(ContentContainer, {\n      elTag: \"th\",\n      elClasses: [CLASS_NAME, ...getDayClassNames(dateMeta, theme), ...(props.extraClassNames || [])],\n      elAttrs: Object.assign({\n        role: 'columnheader',\n        colSpan: props.colSpan\n      }, props.extraDataAttrs),\n      renderProps: renderProps,\n      generatorName: \"dayHeaderContent\",\n      customGenerator: options.dayHeaderContent,\n      defaultGenerator: renderInner$1,\n      classNameGenerator: options.dayHeaderClassNames,\n      didMount: options.dayHeaderDidMount,\n      willUnmount: options.dayHeaderWillUnmount\n    }, InnerContent => (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n      className: \"fc-scrollgrid-sync-inner\"\n    }, (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(InnerContent, {\n      elTag: \"a\",\n      elClasses: ['fc-col-header-cell-cushion', props.isSticky && 'fc-sticky'],\n      elAttrs: {\n        'aria-label': dateEnv.format(date, WEEKDAY_FORMAT)\n      }\n    })));\n  }\n}\nclass DayHeader extends BaseComponent {\n  constructor() {\n    super(...arguments);\n    this.createDayHeaderFormatter = memoize(createDayHeaderFormatter);\n  }\n  render() {\n    let {\n      context\n    } = this;\n    let {\n      dates,\n      dateProfile,\n      datesRepDistinctDays,\n      renderIntro\n    } = this.props;\n    let dayHeaderFormat = this.createDayHeaderFormatter(context.options.dayHeaderFormat, datesRepDistinctDays, dates.length);\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(NowTimer, {\n      unit: \"day\"\n    }, (nowDate, todayRange) => (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"tr\", {\n      role: \"row\"\n    }, renderIntro && renderIntro('day'), dates.map(date => datesRepDistinctDays ? (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(TableDateCell, {\n      key: date.toISOString(),\n      date: date,\n      dateProfile: dateProfile,\n      todayRange: todayRange,\n      colCnt: dates.length,\n      dayHeaderFormat: dayHeaderFormat\n    }) : (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(TableDowCell, {\n      key: date.getUTCDay(),\n      dow: date.getUTCDay(),\n      dayHeaderFormat: dayHeaderFormat\n    }))));\n  }\n}\nfunction createDayHeaderFormatter(explicitFormat, datesRepDistinctDays, dateCnt) {\n  return explicitFormat || computeFallbackHeaderFormat(datesRepDistinctDays, dateCnt);\n}\nclass DaySeriesModel {\n  constructor(range, dateProfileGenerator) {\n    let date = range.start;\n    let {\n      end\n    } = range;\n    let indices = [];\n    let dates = [];\n    let dayIndex = -1;\n    while (date < end) {\n      // loop each day from start to end\n      if (dateProfileGenerator.isHiddenDay(date)) {\n        indices.push(dayIndex + 0.5); // mark that it's between indices\n      } else {\n        dayIndex += 1;\n        indices.push(dayIndex);\n        dates.push(date);\n      }\n      date = addDays(date, 1);\n    }\n    this.dates = dates;\n    this.indices = indices;\n    this.cnt = dates.length;\n  }\n  sliceRange(range) {\n    let firstIndex = this.getDateDayIndex(range.start); // inclusive first index\n    let lastIndex = this.getDateDayIndex(addDays(range.end, -1)); // inclusive last index\n    let clippedFirstIndex = Math.max(0, firstIndex);\n    let clippedLastIndex = Math.min(this.cnt - 1, lastIndex);\n    // deal with in-between indices\n    clippedFirstIndex = Math.ceil(clippedFirstIndex); // in-between starts round to next cell\n    clippedLastIndex = Math.floor(clippedLastIndex); // in-between ends round to prev cell\n    if (clippedFirstIndex <= clippedLastIndex) {\n      return {\n        firstIndex: clippedFirstIndex,\n        lastIndex: clippedLastIndex,\n        isStart: firstIndex === clippedFirstIndex,\n        isEnd: lastIndex === clippedLastIndex\n      };\n    }\n    return null;\n  }\n  // Given a date, returns its chronolocial cell-index from the first cell of the grid.\n  // If the date lies between cells (because of hiddenDays), returns a floating-point value between offsets.\n  // If before the first offset, returns a negative number.\n  // If after the last offset, returns an offset past the last cell offset.\n  // Only works for *start* dates of cells. Will not work for exclusive end dates for cells.\n  getDateDayIndex(date) {\n    let {\n      indices\n    } = this;\n    let dayOffset = Math.floor(diffDays(this.dates[0], date));\n    if (dayOffset < 0) {\n      return indices[0] - 1;\n    }\n    if (dayOffset >= indices.length) {\n      return indices[indices.length - 1] + 1;\n    }\n    return indices[dayOffset];\n  }\n}\nclass DayTableModel {\n  constructor(daySeries, breakOnWeeks) {\n    let {\n      dates\n    } = daySeries;\n    let daysPerRow;\n    let firstDay;\n    let rowCnt;\n    if (breakOnWeeks) {\n      // count columns until the day-of-week repeats\n      firstDay = dates[0].getUTCDay();\n      for (daysPerRow = 1; daysPerRow < dates.length; daysPerRow += 1) {\n        if (dates[daysPerRow].getUTCDay() === firstDay) {\n          break;\n        }\n      }\n      rowCnt = Math.ceil(dates.length / daysPerRow);\n    } else {\n      rowCnt = 1;\n      daysPerRow = dates.length;\n    }\n    this.rowCnt = rowCnt;\n    this.colCnt = daysPerRow;\n    this.daySeries = daySeries;\n    this.cells = this.buildCells();\n    this.headerDates = this.buildHeaderDates();\n  }\n  buildCells() {\n    let rows = [];\n    for (let row = 0; row < this.rowCnt; row += 1) {\n      let cells = [];\n      for (let col = 0; col < this.colCnt; col += 1) {\n        cells.push(this.buildCell(row, col));\n      }\n      rows.push(cells);\n    }\n    return rows;\n  }\n  buildCell(row, col) {\n    let date = this.daySeries.dates[row * this.colCnt + col];\n    return {\n      key: date.toISOString(),\n      date\n    };\n  }\n  buildHeaderDates() {\n    let dates = [];\n    for (let col = 0; col < this.colCnt; col += 1) {\n      dates.push(this.cells[0][col].date);\n    }\n    return dates;\n  }\n  sliceRange(range) {\n    let {\n      colCnt\n    } = this;\n    let seriesSeg = this.daySeries.sliceRange(range);\n    let segs = [];\n    if (seriesSeg) {\n      let {\n        firstIndex,\n        lastIndex\n      } = seriesSeg;\n      let index = firstIndex;\n      while (index <= lastIndex) {\n        let row = Math.floor(index / colCnt);\n        let nextIndex = Math.min((row + 1) * colCnt, lastIndex + 1);\n        segs.push({\n          row,\n          firstCol: index % colCnt,\n          lastCol: (nextIndex - 1) % colCnt,\n          isStart: seriesSeg.isStart && index === firstIndex,\n          isEnd: seriesSeg.isEnd && nextIndex - 1 === lastIndex\n        });\n        index = nextIndex;\n      }\n    }\n    return segs;\n  }\n}\nclass Slicer {\n  constructor() {\n    this.sliceBusinessHours = memoize(this._sliceBusinessHours);\n    this.sliceDateSelection = memoize(this._sliceDateSpan);\n    this.sliceEventStore = memoize(this._sliceEventStore);\n    this.sliceEventDrag = memoize(this._sliceInteraction);\n    this.sliceEventResize = memoize(this._sliceInteraction);\n    this.forceDayIfListItem = false; // hack\n  }\n  sliceProps(props, dateProfile, nextDayThreshold, context, ...extraArgs) {\n    let {\n      eventUiBases\n    } = props;\n    let eventSegs = this.sliceEventStore(props.eventStore, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs);\n    return {\n      dateSelectionSegs: this.sliceDateSelection(props.dateSelection, dateProfile, nextDayThreshold, eventUiBases, context, ...extraArgs),\n      businessHourSegs: this.sliceBusinessHours(props.businessHours, dateProfile, nextDayThreshold, context, ...extraArgs),\n      fgEventSegs: eventSegs.fg,\n      bgEventSegs: eventSegs.bg,\n      eventDrag: this.sliceEventDrag(props.eventDrag, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs),\n      eventResize: this.sliceEventResize(props.eventResize, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs),\n      eventSelection: props.eventSelection\n    }; // TODO: give interactionSegs?\n  }\n  sliceNowDate(\n  // does not memoize\n  date, dateProfile, nextDayThreshold, context, ...extraArgs) {\n    return this._sliceDateSpan({\n      range: {\n        start: date,\n        end: addMs(date, 1)\n      },\n      allDay: false\n    },\n    // add 1 ms, protect against null range\n    dateProfile, nextDayThreshold, {}, context, ...extraArgs);\n  }\n  _sliceBusinessHours(businessHours, dateProfile, nextDayThreshold, context, ...extraArgs) {\n    if (!businessHours) {\n      return [];\n    }\n    return this._sliceEventStore(expandRecurring(businessHours, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), context), {}, dateProfile, nextDayThreshold, ...extraArgs).bg;\n  }\n  _sliceEventStore(eventStore, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs) {\n    if (eventStore) {\n      let rangeRes = sliceEventStore(eventStore, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n      return {\n        bg: this.sliceEventRanges(rangeRes.bg, extraArgs),\n        fg: this.sliceEventRanges(rangeRes.fg, extraArgs)\n      };\n    }\n    return {\n      bg: [],\n      fg: []\n    };\n  }\n  _sliceInteraction(interaction, eventUiBases, dateProfile, nextDayThreshold, ...extraArgs) {\n    if (!interaction) {\n      return null;\n    }\n    let rangeRes = sliceEventStore(interaction.mutatedEvents, eventUiBases, computeActiveRange(dateProfile, Boolean(nextDayThreshold)), nextDayThreshold);\n    return {\n      segs: this.sliceEventRanges(rangeRes.fg, extraArgs),\n      affectedInstances: interaction.affectedEvents.instances,\n      isEvent: interaction.isEvent\n    };\n  }\n  _sliceDateSpan(dateSpan, dateProfile, nextDayThreshold, eventUiBases, context, ...extraArgs) {\n    if (!dateSpan) {\n      return [];\n    }\n    let activeRange = computeActiveRange(dateProfile, Boolean(nextDayThreshold));\n    let activeDateSpanRange = intersectRanges(dateSpan.range, activeRange);\n    if (activeDateSpanRange) {\n      dateSpan = Object.assign(Object.assign({}, dateSpan), {\n        range: activeDateSpanRange\n      });\n      let eventRange = fabricateEventRange(dateSpan, eventUiBases, context);\n      let segs = this.sliceRange(dateSpan.range, ...extraArgs);\n      for (let seg of segs) {\n        seg.eventRange = eventRange;\n      }\n      return segs;\n    }\n    return [];\n  }\n  /*\n  \"complete\" seg means it has component and eventRange\n  */\n  sliceEventRanges(eventRanges, extraArgs) {\n    let segs = [];\n    for (let eventRange of eventRanges) {\n      segs.push(...this.sliceEventRange(eventRange, extraArgs));\n    }\n    return segs;\n  }\n  /*\n  \"complete\" seg means it has component and eventRange\n  */\n  sliceEventRange(eventRange, extraArgs) {\n    let dateRange = eventRange.range;\n    // hack to make multi-day events that are being force-displayed as list-items to take up only one day\n    if (this.forceDayIfListItem && eventRange.ui.display === 'list-item') {\n      dateRange = {\n        start: dateRange.start,\n        end: addDays(dateRange.start, 1)\n      };\n    }\n    let segs = this.sliceRange(dateRange, ...extraArgs);\n    for (let seg of segs) {\n      seg.eventRange = eventRange;\n      seg.isStart = eventRange.isStart && seg.isStart;\n      seg.isEnd = eventRange.isEnd && seg.isEnd;\n    }\n    return segs;\n  }\n}\n/*\nfor incorporating slotMinTime/slotMaxTime if appropriate\nTODO: should be part of DateProfile!\nTimelineDateProfile already does this btw\n*/\nfunction computeActiveRange(dateProfile, isComponentAllDay) {\n  let range = dateProfile.activeRange;\n  if (isComponentAllDay) {\n    return range;\n  }\n  return {\n    start: addMs(range.start, dateProfile.slotMinTime.milliseconds),\n    end: addMs(range.end, dateProfile.slotMaxTime.milliseconds - 864e5) // 864e5 = ms in a day\n  };\n}\n\n// high-level segmenting-aware tester functions\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionValid(interaction, dateProfile, context) {\n  let {\n    instances\n  } = interaction.mutatedEvents;\n  for (let instanceId in instances) {\n    if (!rangeContainsRange(dateProfile.validRange, instances[instanceId].range)) {\n      return false;\n    }\n  }\n  return isNewPropsValid({\n    eventDrag: interaction\n  }, context); // HACK: the eventDrag props is used for ALL interactions\n}\nfunction isDateSelectionValid(dateSelection, dateProfile, context) {\n  if (!rangeContainsRange(dateProfile.validRange, dateSelection.range)) {\n    return false;\n  }\n  return isNewPropsValid({\n    dateSelection\n  }, context);\n}\nfunction isNewPropsValid(newProps, context) {\n  let calendarState = context.getCurrentData();\n  let props = Object.assign({\n    businessHours: calendarState.businessHours,\n    dateSelection: '',\n    eventStore: calendarState.eventStore,\n    eventUiBases: calendarState.eventUiBases,\n    eventSelection: '',\n    eventDrag: null,\n    eventResize: null\n  }, newProps);\n  return (context.pluginHooks.isPropsValid || isPropsValid)(props, context);\n}\nfunction isPropsValid(state, context, dateSpanMeta = {}, filterConfig) {\n  if (state.eventDrag && !isInteractionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n    return false;\n  }\n  if (state.dateSelection && !isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig)) {\n    return false;\n  }\n  return true;\n}\n// Moving Event Validation\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isInteractionPropsValid(state, context, dateSpanMeta, filterConfig) {\n  let currentState = context.getCurrentData();\n  let interaction = state.eventDrag; // HACK: the eventDrag props is used for ALL interactions\n  let subjectEventStore = interaction.mutatedEvents;\n  let subjectDefs = subjectEventStore.defs;\n  let subjectInstances = subjectEventStore.instances;\n  let subjectConfigs = compileEventUis(subjectDefs, interaction.isEvent ? state.eventUiBases : {\n    '': currentState.selectionConfig\n  });\n  if (filterConfig) {\n    subjectConfigs = mapHash(subjectConfigs, filterConfig);\n  }\n  // exclude the subject events. TODO: exclude defs too?\n  let otherEventStore = excludeInstances(state.eventStore, interaction.affectedEvents.instances);\n  let otherDefs = otherEventStore.defs;\n  let otherInstances = otherEventStore.instances;\n  let otherConfigs = compileEventUis(otherDefs, state.eventUiBases);\n  for (let subjectInstanceId in subjectInstances) {\n    let subjectInstance = subjectInstances[subjectInstanceId];\n    let subjectRange = subjectInstance.range;\n    let subjectConfig = subjectConfigs[subjectInstance.defId];\n    let subjectDef = subjectDefs[subjectInstance.defId];\n    // constraint\n    if (!allConstraintsPass(subjectConfig.constraints, subjectRange, otherEventStore, state.businessHours, context)) {\n      return false;\n    }\n    // overlap\n    let {\n      eventOverlap\n    } = context.options;\n    let eventOverlapFunc = typeof eventOverlap === 'function' ? eventOverlap : null;\n    for (let otherInstanceId in otherInstances) {\n      let otherInstance = otherInstances[otherInstanceId];\n      // intersect! evaluate\n      if (rangesIntersect(subjectRange, otherInstance.range)) {\n        let otherOverlap = otherConfigs[otherInstance.defId].overlap;\n        // consider the other event's overlap. only do this if the subject event is a \"real\" event\n        if (otherOverlap === false && interaction.isEvent) {\n          return false;\n        }\n        if (subjectConfig.overlap === false) {\n          return false;\n        }\n        if (eventOverlapFunc && !eventOverlapFunc(new EventImpl(context, otherDefs[otherInstance.defId], otherInstance),\n        // still event\n        new EventImpl(context, subjectDef, subjectInstance))) {\n          return false;\n        }\n      }\n    }\n    // allow (a function)\n    let calendarEventStore = currentState.eventStore; // need global-to-calendar, not local to component (splittable)state\n    for (let subjectAllow of subjectConfig.allows) {\n      let subjectDateSpan = Object.assign(Object.assign({}, dateSpanMeta), {\n        range: subjectInstance.range,\n        allDay: subjectDef.allDay\n      });\n      let origDef = calendarEventStore.defs[subjectDef.defId];\n      let origInstance = calendarEventStore.instances[subjectInstanceId];\n      let eventApi;\n      if (origDef) {\n        // was previously in the calendar\n        eventApi = new EventImpl(context, origDef, origInstance);\n      } else {\n        // was an external event\n        eventApi = new EventImpl(context, subjectDef); // no instance, because had no dates\n      }\n      if (!subjectAllow(buildDateSpanApiWithContext(subjectDateSpan, context), eventApi)) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\n// Date Selection Validation\n// ------------------------------------------------------------------------------------------------------------------------\nfunction isDateSelectionPropsValid(state, context, dateSpanMeta, filterConfig) {\n  let relevantEventStore = state.eventStore;\n  let relevantDefs = relevantEventStore.defs;\n  let relevantInstances = relevantEventStore.instances;\n  let selection = state.dateSelection;\n  let selectionRange = selection.range;\n  let {\n    selectionConfig\n  } = context.getCurrentData();\n  if (filterConfig) {\n    selectionConfig = filterConfig(selectionConfig);\n  }\n  // constraint\n  if (!allConstraintsPass(selectionConfig.constraints, selectionRange, relevantEventStore, state.businessHours, context)) {\n    return false;\n  }\n  // overlap\n  let {\n    selectOverlap\n  } = context.options;\n  let selectOverlapFunc = typeof selectOverlap === 'function' ? selectOverlap : null;\n  for (let relevantInstanceId in relevantInstances) {\n    let relevantInstance = relevantInstances[relevantInstanceId];\n    // intersect! evaluate\n    if (rangesIntersect(selectionRange, relevantInstance.range)) {\n      if (selectionConfig.overlap === false) {\n        return false;\n      }\n      if (selectOverlapFunc && !selectOverlapFunc(new EventImpl(context, relevantDefs[relevantInstance.defId], relevantInstance), null)) {\n        return false;\n      }\n    }\n  }\n  // allow (a function)\n  for (let selectionAllow of selectionConfig.allows) {\n    let fullDateSpan = Object.assign(Object.assign({}, dateSpanMeta), selection);\n    if (!selectionAllow(buildDateSpanApiWithContext(fullDateSpan, context), null)) {\n      return false;\n    }\n  }\n  return true;\n}\n// Constraint Utils\n// ------------------------------------------------------------------------------------------------------------------------\nfunction allConstraintsPass(constraints, subjectRange, otherEventStore, businessHoursUnexpanded, context) {\n  for (let constraint of constraints) {\n    if (!anyRangesContainRange(constraintToRanges(constraint, subjectRange, otherEventStore, businessHoursUnexpanded, context), subjectRange)) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction constraintToRanges(constraint, subjectRange,\n// for expanding a recurring constraint, or expanding business hours\notherEventStore,\n// for if constraint is an even group ID\nbusinessHoursUnexpanded,\n// for if constraint is 'businessHours'\ncontext) {\n  if (constraint === 'businessHours') {\n    return eventStoreToRanges(expandRecurring(businessHoursUnexpanded, subjectRange, context));\n  }\n  if (typeof constraint === 'string') {\n    // an group ID\n    return eventStoreToRanges(filterEventStoreDefs(otherEventStore, eventDef => eventDef.groupId === constraint));\n  }\n  if (typeof constraint === 'object' && constraint) {\n    // non-null object\n    return eventStoreToRanges(expandRecurring(constraint, subjectRange, context));\n  }\n  return []; // if it's false\n}\n// TODO: move to event-store file?\nfunction eventStoreToRanges(eventStore) {\n  let {\n    instances\n  } = eventStore;\n  let ranges = [];\n  for (let instanceId in instances) {\n    ranges.push(instances[instanceId].range);\n  }\n  return ranges;\n}\n// TODO: move to geom file?\nfunction anyRangesContainRange(outerRanges, innerRange) {\n  for (let outerRange of outerRanges) {\n    if (rangeContainsRange(outerRange, innerRange)) {\n      return true;\n    }\n  }\n  return false;\n}\nconst VISIBLE_HIDDEN_RE = /^(visible|hidden)$/;\nclass Scroller extends BaseComponent {\n  constructor() {\n    super(...arguments);\n    this.handleEl = el => {\n      this.el = el;\n      setRef(this.props.elRef, el);\n    };\n  }\n  render() {\n    let {\n      props\n    } = this;\n    let {\n      liquid,\n      liquidIsAbsolute\n    } = props;\n    let isAbsolute = liquid && liquidIsAbsolute;\n    let className = ['fc-scroller'];\n    if (liquid) {\n      if (liquidIsAbsolute) {\n        className.push('fc-scroller-liquid-absolute');\n      } else {\n        className.push('fc-scroller-liquid');\n      }\n    }\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n      ref: this.handleEl,\n      className: className.join(' '),\n      style: {\n        overflowX: props.overflowX,\n        overflowY: props.overflowY,\n        left: isAbsolute && -(props.overcomeLeft || 0) || '',\n        right: isAbsolute && -(props.overcomeRight || 0) || '',\n        bottom: isAbsolute && -(props.overcomeBottom || 0) || '',\n        marginLeft: !isAbsolute && -(props.overcomeLeft || 0) || '',\n        marginRight: !isAbsolute && -(props.overcomeRight || 0) || '',\n        marginBottom: !isAbsolute && -(props.overcomeBottom || 0) || '',\n        maxHeight: props.maxHeight || ''\n      }\n    }, props.children);\n  }\n  needsXScrolling() {\n    if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n      return false;\n    }\n    // testing scrollWidth>clientWidth is unreliable cross-browser when pixel heights aren't integers.\n    // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n    // inner-child margins and absolute positioning\n    let {\n      el\n    } = this;\n    let realClientWidth = this.el.getBoundingClientRect().width - this.getYScrollbarWidth();\n    let {\n      children\n    } = el;\n    for (let i = 0; i < children.length; i += 1) {\n      let childEl = children[i];\n      if (childEl.getBoundingClientRect().width > realClientWidth) {\n        return true;\n      }\n    }\n    return false;\n  }\n  needsYScrolling() {\n    if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n      return false;\n    }\n    // testing scrollHeight>clientHeight is unreliable cross-browser when pixel heights aren't integers.\n    // much more reliable to see if children are taller than the scroller, even tho doesn't account for\n    // inner-child margins and absolute positioning\n    let {\n      el\n    } = this;\n    let realClientHeight = this.el.getBoundingClientRect().height - this.getXScrollbarWidth();\n    let {\n      children\n    } = el;\n    for (let i = 0; i < children.length; i += 1) {\n      let childEl = children[i];\n      if (childEl.getBoundingClientRect().height > realClientHeight) {\n        return true;\n      }\n    }\n    return false;\n  }\n  getXScrollbarWidth() {\n    if (VISIBLE_HIDDEN_RE.test(this.props.overflowX)) {\n      return 0;\n    }\n    return this.el.offsetHeight - this.el.clientHeight; // only works because we guarantee no borders. TODO: add to CSS with important?\n  }\n  getYScrollbarWidth() {\n    if (VISIBLE_HIDDEN_RE.test(this.props.overflowY)) {\n      return 0;\n    }\n    return this.el.offsetWidth - this.el.clientWidth; // only works because we guarantee no borders. TODO: add to CSS with important?\n  }\n}\n\n/*\nTODO: somehow infer OtherArgs from masterCallback?\nTODO: infer RefType from masterCallback if provided\n*/\nclass RefMap {\n  constructor(masterCallback) {\n    this.masterCallback = masterCallback;\n    this.currentMap = {};\n    this.depths = {};\n    this.callbackMap = {};\n    this.handleValue = (val, key) => {\n      let {\n        depths,\n        currentMap\n      } = this;\n      let removed = false;\n      let added = false;\n      if (val !== null) {\n        // for bug... ACTUALLY: can probably do away with this now that callers don't share numeric indices anymore\n        removed = key in currentMap;\n        currentMap[key] = val;\n        depths[key] = (depths[key] || 0) + 1;\n        added = true;\n      } else {\n        depths[key] -= 1;\n        if (!depths[key]) {\n          delete currentMap[key];\n          delete this.callbackMap[key];\n          removed = true;\n        }\n      }\n      if (this.masterCallback) {\n        if (removed) {\n          this.masterCallback(null, String(key));\n        }\n        if (added) {\n          this.masterCallback(val, String(key));\n        }\n      }\n    };\n  }\n  createRef(key) {\n    let refCallback = this.callbackMap[key];\n    if (!refCallback) {\n      refCallback = this.callbackMap[key] = val => {\n        this.handleValue(val, String(key));\n      };\n    }\n    return refCallback;\n  }\n  // TODO: check callers that don't care about order. should use getAll instead\n  // NOTE: this method has become less valuable now that we are encouraged to map order by some other index\n  // TODO: provide ONE array-export function, buildArray, which fails on non-numeric indexes. caller can manipulate and \"collect\"\n  collect(startIndex, endIndex, step) {\n    return collectFromHash(this.currentMap, startIndex, endIndex, step);\n  }\n  getAll() {\n    return hashValuesToArray(this.currentMap);\n  }\n}\nfunction computeShrinkWidth(chunkEls) {\n  let shrinkCells = findElements(chunkEls, '.fc-scrollgrid-shrink');\n  let largestWidth = 0;\n  for (let shrinkCell of shrinkCells) {\n    largestWidth = Math.max(largestWidth, computeSmallestCellWidth(shrinkCell));\n  }\n  return Math.ceil(largestWidth); // <table> elements work best with integers. round up to ensure contents fits\n}\nfunction getSectionHasLiquidHeight(props, sectionConfig) {\n  return props.liquid && sectionConfig.liquid; // does the section do liquid-height? (need to have whole scrollgrid liquid-height as well)\n}\nfunction getAllowYScrolling(props, sectionConfig) {\n  return sectionConfig.maxHeight != null ||\n  // if its possible for the height to max out, we might need scrollbars\n  getSectionHasLiquidHeight(props, sectionConfig); // if the section is liquid height, it might condense enough to require scrollbars\n}\n// TODO: ONLY use `arg`. force out internal function to use same API\nfunction renderChunkContent(sectionConfig, chunkConfig, arg, isHeader) {\n  let {\n    expandRows\n  } = arg;\n  let content = typeof chunkConfig.content === 'function' ? chunkConfig.content(arg) : (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)('table', {\n    role: 'presentation',\n    className: [chunkConfig.tableClassName, sectionConfig.syncRowHeights ? 'fc-scrollgrid-sync-table' : ''].join(' '),\n    style: {\n      minWidth: arg.tableMinWidth,\n      width: arg.clientWidth,\n      height: expandRows ? arg.clientHeight : '' // css `height` on a <table> serves as a min-height\n    }\n  }, arg.tableColGroupNode, (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(isHeader ? 'thead' : 'tbody', {\n    role: 'presentation'\n  }, typeof chunkConfig.rowContent === 'function' ? chunkConfig.rowContent(arg) : chunkConfig.rowContent));\n  return content;\n}\nfunction isColPropsEqual(cols0, cols1) {\n  return isArraysEqual(cols0, cols1, isPropsEqual);\n}\nfunction renderMicroColGroup(cols, shrinkWidth) {\n  let colNodes = [];\n  /*\n  for ColProps with spans, it would have been great to make a single <col span=\"\">\n  HOWEVER, Chrome was getting messing up distributing the width to <td>/<th> elements with colspans.\n  SOLUTION: making individual <col> elements makes Chrome behave.\n  */\n  for (let colProps of cols) {\n    let span = colProps.span || 1;\n    for (let i = 0; i < span; i += 1) {\n      colNodes.push((0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"col\", {\n        style: {\n          width: colProps.width === 'shrink' ? sanitizeShrinkWidth(shrinkWidth) : colProps.width || '',\n          minWidth: colProps.minWidth || ''\n        }\n      }));\n    }\n  }\n  return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)('colgroup', {}, ...colNodes);\n}\nfunction sanitizeShrinkWidth(shrinkWidth) {\n  /* why 4? if we do 0, it will kill any border, which are needed for computeSmallestCellWidth\n  4 accounts for 2 2-pixel borders. TODO: better solution? */\n  return shrinkWidth == null ? 4 : shrinkWidth;\n}\nfunction hasShrinkWidth(cols) {\n  for (let col of cols) {\n    if (col.width === 'shrink') {\n      return true;\n    }\n  }\n  return false;\n}\nfunction getScrollGridClassNames(liquid, context) {\n  let classNames = ['fc-scrollgrid', context.theme.getClass('table')];\n  if (liquid) {\n    classNames.push('fc-scrollgrid-liquid');\n  }\n  return classNames;\n}\nfunction getSectionClassNames(sectionConfig, wholeTableVGrow) {\n  let classNames = ['fc-scrollgrid-section', `fc-scrollgrid-section-${sectionConfig.type}`, sectionConfig.className // used?\n  ];\n  if (wholeTableVGrow && sectionConfig.liquid && sectionConfig.maxHeight == null) {\n    classNames.push('fc-scrollgrid-section-liquid');\n  }\n  if (sectionConfig.isSticky) {\n    classNames.push('fc-scrollgrid-section-sticky');\n  }\n  return classNames;\n}\nfunction renderScrollShim(arg) {\n  return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n    className: \"fc-scrollgrid-sticky-shim\",\n    style: {\n      width: arg.clientWidth,\n      minWidth: arg.tableMinWidth\n    }\n  });\n}\nfunction getStickyHeaderDates(options) {\n  let {\n    stickyHeaderDates\n  } = options;\n  if (stickyHeaderDates == null || stickyHeaderDates === 'auto') {\n    stickyHeaderDates = options.height === 'auto' || options.viewHeight === 'auto';\n  }\n  return stickyHeaderDates;\n}\nfunction getStickyFooterScrollbar(options) {\n  let {\n    stickyFooterScrollbar\n  } = options;\n  if (stickyFooterScrollbar == null || stickyFooterScrollbar === 'auto') {\n    stickyFooterScrollbar = options.height === 'auto' || options.viewHeight === 'auto';\n  }\n  return stickyFooterScrollbar;\n}\nclass SimpleScrollGrid extends BaseComponent {\n  constructor() {\n    super(...arguments);\n    this.processCols = memoize(a => a, isColPropsEqual); // so we get same `cols` props every time\n    // yucky to memoize VNodes, but much more efficient for consumers\n    this.renderMicroColGroup = memoize(renderMicroColGroup);\n    this.scrollerRefs = new RefMap();\n    this.scrollerElRefs = new RefMap(this._handleScrollerEl.bind(this));\n    this.state = {\n      shrinkWidth: null,\n      forceYScrollbars: false,\n      scrollerClientWidths: {},\n      scrollerClientHeights: {}\n    };\n    // TODO: can do a really simple print-view. dont need to join rows\n    this.handleSizing = () => {\n      this.safeSetState(Object.assign({\n        shrinkWidth: this.computeShrinkWidth()\n      }, this.computeScrollerDims()));\n    };\n  }\n  render() {\n    let {\n      props,\n      state,\n      context\n    } = this;\n    let sectionConfigs = props.sections || [];\n    let cols = this.processCols(props.cols);\n    let microColGroupNode = this.renderMicroColGroup(cols, state.shrinkWidth);\n    let classNames = getScrollGridClassNames(props.liquid, context);\n    if (props.collapsibleWidth) {\n      classNames.push('fc-scrollgrid-collapsible');\n    }\n    // TODO: make DRY\n    let configCnt = sectionConfigs.length;\n    let configI = 0;\n    let currentConfig;\n    let headSectionNodes = [];\n    let bodySectionNodes = [];\n    let footSectionNodes = [];\n    while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'header') {\n      headSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));\n      configI += 1;\n    }\n    while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'body') {\n      bodySectionNodes.push(this.renderSection(currentConfig, microColGroupNode, false));\n      configI += 1;\n    }\n    while (configI < configCnt && (currentConfig = sectionConfigs[configI]).type === 'footer') {\n      footSectionNodes.push(this.renderSection(currentConfig, microColGroupNode, true));\n      configI += 1;\n    }\n    // firefox bug: when setting height on table and there is a thead or tfoot,\n    // the necessary height:100% on the liquid-height body section forces the *whole* table to be taller. (bug #5524)\n    // use getCanVGrowWithinCell as a way to detect table-stupid firefox.\n    // if so, use a simpler dom structure, jam everything into a lone tbody.\n    let isBuggy = !getCanVGrowWithinCell();\n    const roleAttrs = {\n      role: 'rowgroup'\n    };\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)('table', {\n      role: 'grid',\n      className: classNames.join(' '),\n      style: {\n        height: props.height\n      }\n    }, Boolean(!isBuggy && headSectionNodes.length) && (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)('thead', roleAttrs, ...headSectionNodes), Boolean(!isBuggy && bodySectionNodes.length) && (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)('tbody', roleAttrs, ...bodySectionNodes), Boolean(!isBuggy && footSectionNodes.length) && (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)('tfoot', roleAttrs, ...footSectionNodes), isBuggy && (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)('tbody', roleAttrs, ...headSectionNodes, ...bodySectionNodes, ...footSectionNodes));\n  }\n  renderSection(sectionConfig, microColGroupNode, isHeader) {\n    if ('outerContent' in sectionConfig) {\n      return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(preact__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n        key: sectionConfig.key\n      }, sectionConfig.outerContent);\n    }\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"tr\", {\n      key: sectionConfig.key,\n      role: \"presentation\",\n      className: getSectionClassNames(sectionConfig, this.props.liquid).join(' ')\n    }, this.renderChunkTd(sectionConfig, microColGroupNode, sectionConfig.chunk, isHeader));\n  }\n  renderChunkTd(sectionConfig, microColGroupNode, chunkConfig, isHeader) {\n    if ('outerContent' in chunkConfig) {\n      return chunkConfig.outerContent;\n    }\n    let {\n      props\n    } = this;\n    let {\n      forceYScrollbars,\n      scrollerClientWidths,\n      scrollerClientHeights\n    } = this.state;\n    let needsYScrolling = getAllowYScrolling(props, sectionConfig); // TODO: do lazily. do in section config?\n    let isLiquid = getSectionHasLiquidHeight(props, sectionConfig);\n    // for `!props.liquid` - is WHOLE scrollgrid natural height?\n    // TODO: do same thing in advanced scrollgrid? prolly not b/c always has horizontal scrollbars\n    let overflowY = !props.liquid ? 'visible' : forceYScrollbars ? 'scroll' : !needsYScrolling ? 'hidden' : 'auto';\n    let sectionKey = sectionConfig.key;\n    let content = renderChunkContent(sectionConfig, chunkConfig, {\n      tableColGroupNode: microColGroupNode,\n      tableMinWidth: '',\n      clientWidth: !props.collapsibleWidth && scrollerClientWidths[sectionKey] !== undefined ? scrollerClientWidths[sectionKey] : null,\n      clientHeight: scrollerClientHeights[sectionKey] !== undefined ? scrollerClientHeights[sectionKey] : null,\n      expandRows: sectionConfig.expandRows,\n      syncRowHeights: false,\n      rowSyncHeights: [],\n      reportRowHeightChange: () => {}\n    }, isHeader);\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(isHeader ? 'th' : 'td', {\n      ref: chunkConfig.elRef,\n      role: 'presentation'\n    }, (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n      className: `fc-scroller-harness${isLiquid ? ' fc-scroller-harness-liquid' : ''}`\n    }, (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(Scroller, {\n      ref: this.scrollerRefs.createRef(sectionKey),\n      elRef: this.scrollerElRefs.createRef(sectionKey),\n      overflowY: overflowY,\n      overflowX: !props.liquid ? 'visible' : 'hidden' /* natural height? */,\n      maxHeight: sectionConfig.maxHeight,\n      liquid: isLiquid,\n      liquidIsAbsolute // because its within a harness\n      : true\n    }, content)));\n  }\n  _handleScrollerEl(scrollerEl, key) {\n    let section = getSectionByKey(this.props.sections, key);\n    if (section) {\n      setRef(section.chunk.scrollerElRef, scrollerEl);\n    }\n  }\n  componentDidMount() {\n    this.handleSizing();\n    this.context.addResizeHandler(this.handleSizing);\n  }\n  componentDidUpdate() {\n    // TODO: need better solution when state contains non-sizing things\n    this.handleSizing();\n  }\n  componentWillUnmount() {\n    this.context.removeResizeHandler(this.handleSizing);\n  }\n  computeShrinkWidth() {\n    return hasShrinkWidth(this.props.cols) ? computeShrinkWidth(this.scrollerElRefs.getAll()) : 0;\n  }\n  computeScrollerDims() {\n    let scrollbarWidth = getScrollbarWidths();\n    let {\n      scrollerRefs,\n      scrollerElRefs\n    } = this;\n    let forceYScrollbars = false;\n    let scrollerClientWidths = {};\n    let scrollerClientHeights = {};\n    for (let sectionKey in scrollerRefs.currentMap) {\n      let scroller = scrollerRefs.currentMap[sectionKey];\n      if (scroller && scroller.needsYScrolling()) {\n        forceYScrollbars = true;\n        break;\n      }\n    }\n    for (let section of this.props.sections) {\n      let sectionKey = section.key;\n      let scrollerEl = scrollerElRefs.currentMap[sectionKey];\n      if (scrollerEl) {\n        let harnessEl = scrollerEl.parentNode; // TODO: weird way to get this. need harness b/c doesn't include table borders\n        scrollerClientWidths[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().width - (forceYScrollbars ? scrollbarWidth.y // use global because scroller might not have scrollbars yet but will need them in future\n        : 0));\n        scrollerClientHeights[sectionKey] = Math.floor(harnessEl.getBoundingClientRect().height);\n      }\n    }\n    return {\n      forceYScrollbars,\n      scrollerClientWidths,\n      scrollerClientHeights\n    };\n  }\n}\nSimpleScrollGrid.addStateEquality({\n  scrollerClientWidths: isPropsEqual,\n  scrollerClientHeights: isPropsEqual\n});\nfunction getSectionByKey(sections, key) {\n  for (let section of sections) {\n    if (section.key === key) {\n      return section;\n    }\n  }\n  return null;\n}\nclass EventContainer extends BaseComponent {\n  constructor() {\n    super(...arguments);\n    // memo\n    this.buildPublicEvent = memoize((context, eventDef, eventInstance) => new EventImpl(context, eventDef, eventInstance));\n    this.handleEl = el => {\n      this.el = el;\n      setRef(this.props.elRef, el);\n      if (el) {\n        setElSeg(el, this.props.seg);\n      }\n    };\n  }\n  render() {\n    const {\n      props,\n      context\n    } = this;\n    const {\n      options\n    } = context;\n    const {\n      seg\n    } = props;\n    const {\n      eventRange\n    } = seg;\n    const {\n      ui\n    } = eventRange;\n    const renderProps = {\n      event: this.buildPublicEvent(context, eventRange.def, eventRange.instance),\n      view: context.viewApi,\n      timeText: props.timeText,\n      textColor: ui.textColor,\n      backgroundColor: ui.backgroundColor,\n      borderColor: ui.borderColor,\n      isDraggable: !props.disableDragging && computeSegDraggable(seg, context),\n      isStartResizable: !props.disableResizing && computeSegStartResizable(seg, context),\n      isEndResizable: !props.disableResizing && computeSegEndResizable(seg),\n      isMirror: Boolean(props.isDragging || props.isResizing || props.isDateSelecting),\n      isStart: Boolean(seg.isStart),\n      isEnd: Boolean(seg.isEnd),\n      isPast: Boolean(props.isPast),\n      isFuture: Boolean(props.isFuture),\n      isToday: Boolean(props.isToday),\n      isSelected: Boolean(props.isSelected),\n      isDragging: Boolean(props.isDragging),\n      isResizing: Boolean(props.isResizing)\n    };\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(ContentContainer, {\n      elRef: this.handleEl,\n      elTag: props.elTag,\n      elAttrs: props.elAttrs,\n      elClasses: [...getEventClassNames(renderProps), ...seg.eventRange.ui.classNames, ...(props.elClasses || [])],\n      elStyle: props.elStyle,\n      renderProps: renderProps,\n      generatorName: \"eventContent\",\n      customGenerator: options.eventContent,\n      defaultGenerator: props.defaultGenerator,\n      classNameGenerator: options.eventClassNames,\n      didMount: options.eventDidMount,\n      willUnmount: options.eventWillUnmount\n    }, props.children);\n  }\n  componentDidUpdate(prevProps) {\n    if (this.el && this.props.seg !== prevProps.seg) {\n      setElSeg(this.el, this.props.seg);\n    }\n  }\n}\n\n// should not be a purecomponent\nclass StandardEvent extends BaseComponent {\n  render() {\n    let {\n      props,\n      context\n    } = this;\n    let {\n      options\n    } = context;\n    let {\n      seg\n    } = props;\n    let {\n      ui\n    } = seg.eventRange;\n    let timeFormat = options.eventTimeFormat || props.defaultTimeFormat;\n    let timeText = buildSegTimeText(seg, timeFormat, context, props.defaultDisplayEventTime, props.defaultDisplayEventEnd);\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(EventContainer, Object.assign({}, props /* includes elRef */, {\n      elTag: \"a\",\n      elStyle: {\n        borderColor: ui.borderColor,\n        backgroundColor: ui.backgroundColor\n      },\n      elAttrs: getSegAnchorAttrs(seg, context),\n      defaultGenerator: renderInnerContent$1,\n      timeText: timeText\n    }), (InnerContent, eventContentArg) => (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(preact__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(InnerContent, {\n      elTag: \"div\",\n      elClasses: ['fc-event-main'],\n      elStyle: {\n        color: eventContentArg.textColor\n      }\n    }), Boolean(eventContentArg.isStartResizable) && (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n      className: \"fc-event-resizer fc-event-resizer-start\"\n    }), Boolean(eventContentArg.isEndResizable) && (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n      className: \"fc-event-resizer fc-event-resizer-end\"\n    })));\n  }\n}\nStandardEvent.addPropsEquality({\n  seg: isPropsEqual\n});\nfunction renderInnerContent$1(innerProps) {\n  return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n    className: \"fc-event-main-frame\"\n  }, innerProps.timeText && (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n    className: \"fc-event-time\"\n  }, innerProps.timeText), (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n    className: \"fc-event-title-container\"\n  }, (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n    className: \"fc-event-title fc-sticky\"\n  }, innerProps.event.title || (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(preact__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, \"\\u00A0\"))));\n}\nconst NowIndicatorContainer = props => (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(ViewContextType.Consumer, null, context => {\n  let {\n    options\n  } = context;\n  let renderProps = {\n    isAxis: props.isAxis,\n    date: context.dateEnv.toDate(props.date),\n    view: context.viewApi\n  };\n  return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(ContentContainer, {\n    elRef: props.elRef,\n    elTag: props.elTag || 'div',\n    elAttrs: props.elAttrs,\n    elClasses: props.elClasses,\n    elStyle: props.elStyle,\n    renderProps: renderProps,\n    generatorName: \"nowIndicatorContent\",\n    customGenerator: options.nowIndicatorContent,\n    classNameGenerator: options.nowIndicatorClassNames,\n    didMount: options.nowIndicatorDidMount,\n    willUnmount: options.nowIndicatorWillUnmount\n  }, props.children);\n});\nconst DAY_NUM_FORMAT = createFormatter({\n  day: 'numeric'\n});\nclass DayCellContainer extends BaseComponent {\n  constructor() {\n    super(...arguments);\n    this.refineRenderProps = memoizeObjArg(refineRenderProps);\n  }\n  render() {\n    let {\n      props,\n      context\n    } = this;\n    let {\n      options\n    } = context;\n    let renderProps = this.refineRenderProps({\n      date: props.date,\n      dateProfile: props.dateProfile,\n      todayRange: props.todayRange,\n      isMonthStart: props.isMonthStart || false,\n      showDayNumber: props.showDayNumber,\n      extraRenderProps: props.extraRenderProps,\n      viewApi: context.viewApi,\n      dateEnv: context.dateEnv,\n      monthStartFormat: options.monthStartFormat\n    });\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(ContentContainer, {\n      elRef: props.elRef,\n      elTag: props.elTag,\n      elAttrs: Object.assign(Object.assign({}, props.elAttrs), renderProps.isDisabled ? {} : {\n        'data-date': formatDayString(props.date)\n      }),\n      elClasses: [...getDayClassNames(renderProps, context.theme), ...(props.elClasses || [])],\n      elStyle: props.elStyle,\n      renderProps: renderProps,\n      generatorName: \"dayCellContent\",\n      customGenerator: options.dayCellContent,\n      defaultGenerator: props.defaultGenerator,\n      classNameGenerator:\n      // don't use custom classNames if disabled\n      renderProps.isDisabled ? undefined : options.dayCellClassNames,\n      didMount: options.dayCellDidMount,\n      willUnmount: options.dayCellWillUnmount\n    }, props.children);\n  }\n}\nfunction hasCustomDayCellContent(options) {\n  return Boolean(options.dayCellContent || hasCustomRenderingHandler('dayCellContent', options));\n}\nfunction refineRenderProps(raw) {\n  let {\n    date,\n    dateEnv,\n    dateProfile,\n    isMonthStart\n  } = raw;\n  let dayMeta = getDateMeta(date, raw.todayRange, null, dateProfile);\n  let dayNumberText = raw.showDayNumber ? dateEnv.format(date, isMonthStart ? raw.monthStartFormat : DAY_NUM_FORMAT) : '';\n  return Object.assign(Object.assign(Object.assign({\n    date: dateEnv.toDate(date),\n    view: raw.viewApi\n  }, dayMeta), {\n    isMonthStart,\n    dayNumberText\n  }), raw.extraRenderProps);\n}\nclass BgEvent extends BaseComponent {\n  render() {\n    let {\n      props\n    } = this;\n    let {\n      seg\n    } = props;\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(EventContainer, {\n      elTag: \"div\",\n      elClasses: ['fc-bg-event'],\n      elStyle: {\n        backgroundColor: seg.eventRange.ui.backgroundColor\n      },\n      defaultGenerator: renderInnerContent,\n      seg: seg,\n      timeText: \"\",\n      isDragging: false,\n      isResizing: false,\n      isDateSelecting: false,\n      isSelected: false,\n      isPast: props.isPast,\n      isFuture: props.isFuture,\n      isToday: props.isToday,\n      disableDragging: true,\n      disableResizing: true\n    });\n  }\n}\nfunction renderInnerContent(props) {\n  let {\n    title\n  } = props.event;\n  return title && (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n    className: \"fc-event-title\"\n  }, props.event.title);\n}\nfunction renderFill(fillType) {\n  return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n    className: `fc-${fillType}`\n  });\n}\nconst WeekNumberContainer = props => (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(ViewContextType.Consumer, null, context => {\n  let {\n    dateEnv,\n    options\n  } = context;\n  let {\n    date\n  } = props;\n  let format = options.weekNumberFormat || props.defaultFormat;\n  let num = dateEnv.computeWeekNumber(date); // TODO: somehow use for formatting as well?\n  let text = dateEnv.format(date, format);\n  let renderProps = {\n    num,\n    text,\n    date\n  };\n  return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(ContentContainer // why isn't WeekNumberContentArg being auto-detected?\n  , {\n    elRef: props.elRef,\n    elTag: props.elTag,\n    elAttrs: props.elAttrs,\n    elClasses: props.elClasses,\n    elStyle: props.elStyle,\n    renderProps: renderProps,\n    generatorName: \"weekNumberContent\",\n    customGenerator: options.weekNumberContent,\n    defaultGenerator: renderInner,\n    classNameGenerator: options.weekNumberClassNames,\n    didMount: options.weekNumberDidMount,\n    willUnmount: options.weekNumberWillUnmount\n  }, props.children);\n});\nfunction renderInner(innerProps) {\n  return innerProps.text;\n}\nconst PADDING_FROM_VIEWPORT = 10;\nclass Popover extends BaseComponent {\n  constructor() {\n    super(...arguments);\n    this.state = {\n      titleId: getUniqueDomId()\n    };\n    this.handleRootEl = el => {\n      this.rootEl = el;\n      if (this.props.elRef) {\n        setRef(this.props.elRef, el);\n      }\n    };\n    // Triggered when the user clicks *anywhere* in the document, for the autoHide feature\n    this.handleDocumentMouseDown = ev => {\n      // only hide the popover if the click happened outside the popover\n      const target = getEventTargetViaRoot(ev);\n      if (!this.rootEl.contains(target)) {\n        this.handleCloseClick();\n      }\n    };\n    this.handleDocumentKeyDown = ev => {\n      if (ev.key === 'Escape') {\n        this.handleCloseClick();\n      }\n    };\n    this.handleCloseClick = () => {\n      let {\n        onClose\n      } = this.props;\n      if (onClose) {\n        onClose();\n      }\n    };\n  }\n  render() {\n    let {\n      theme,\n      options\n    } = this.context;\n    let {\n      props,\n      state\n    } = this;\n    let classNames = ['fc-popover', theme.getClass('popover')].concat(props.extraClassNames || []);\n    return (0,preact_compat__WEBPACK_IMPORTED_MODULE_1__.createPortal)((0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", Object.assign({}, props.extraAttrs, {\n      id: props.id,\n      className: classNames.join(' '),\n      \"aria-labelledby\": state.titleId,\n      ref: this.handleRootEl\n    }), (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n      className: 'fc-popover-header ' + theme.getClass('popoverHeader')\n    }, (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"span\", {\n      className: \"fc-popover-title\",\n      id: state.titleId\n    }, props.title), (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"span\", {\n      className: 'fc-popover-close ' + theme.getIconClass('close'),\n      title: options.closeHint,\n      onClick: this.handleCloseClick\n    })), (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(\"div\", {\n      className: 'fc-popover-body ' + theme.getClass('popoverContent')\n    }, props.children)), props.parentEl);\n  }\n  componentDidMount() {\n    document.addEventListener('mousedown', this.handleDocumentMouseDown);\n    document.addEventListener('keydown', this.handleDocumentKeyDown);\n    this.updateSize();\n  }\n  componentWillUnmount() {\n    document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n    document.removeEventListener('keydown', this.handleDocumentKeyDown);\n  }\n  updateSize() {\n    let {\n      isRtl\n    } = this.context;\n    let {\n      alignmentEl,\n      alignGridTop\n    } = this.props;\n    let {\n      rootEl\n    } = this;\n    let alignmentRect = computeClippedClientRect(alignmentEl);\n    if (alignmentRect) {\n      let popoverDims = rootEl.getBoundingClientRect();\n      // position relative to viewport\n      let popoverTop = alignGridTop ? elementClosest(alignmentEl, '.fc-scrollgrid').getBoundingClientRect().top : alignmentRect.top;\n      let popoverLeft = isRtl ? alignmentRect.right - popoverDims.width : alignmentRect.left;\n      // constrain\n      popoverTop = Math.max(popoverTop, PADDING_FROM_VIEWPORT);\n      popoverLeft = Math.min(popoverLeft, document.documentElement.clientWidth - PADDING_FROM_VIEWPORT - popoverDims.width);\n      popoverLeft = Math.max(popoverLeft, PADDING_FROM_VIEWPORT);\n      let origin = rootEl.offsetParent.getBoundingClientRect();\n      applyStyle(rootEl, {\n        top: popoverTop - origin.top,\n        left: popoverLeft - origin.left\n      });\n    }\n  }\n}\nclass MorePopover extends DateComponent {\n  constructor() {\n    super(...arguments);\n    this.handleRootEl = rootEl => {\n      this.rootEl = rootEl;\n      if (rootEl) {\n        this.context.registerInteractiveComponent(this, {\n          el: rootEl,\n          useEventCenter: false\n        });\n      } else {\n        this.context.unregisterInteractiveComponent(this);\n      }\n    };\n  }\n  render() {\n    let {\n      options,\n      dateEnv\n    } = this.context;\n    let {\n      props\n    } = this;\n    let {\n      startDate,\n      todayRange,\n      dateProfile\n    } = props;\n    let title = dateEnv.format(startDate, options.dayPopoverFormat);\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(DayCellContainer, {\n      elRef: this.handleRootEl,\n      date: startDate,\n      dateProfile: dateProfile,\n      todayRange: todayRange\n    }, (InnerContent, renderProps, elAttrs) => (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(Popover, {\n      elRef: elAttrs.ref,\n      id: props.id,\n      title: title,\n      extraClassNames: ['fc-more-popover'].concat(elAttrs.className || []),\n      extraAttrs: elAttrs /* TODO: make these time-based when not whole-day? */,\n      parentEl: props.parentEl,\n      alignmentEl: props.alignmentEl,\n      alignGridTop: props.alignGridTop,\n      onClose: props.onClose\n    }, hasCustomDayCellContent(options) && (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(InnerContent, {\n      elTag: \"div\",\n      elClasses: ['fc-more-popover-misc']\n    }), props.children));\n  }\n  queryHit(positionLeft, positionTop, elWidth, elHeight) {\n    let {\n      rootEl,\n      props\n    } = this;\n    if (positionLeft >= 0 && positionLeft < elWidth && positionTop >= 0 && positionTop < elHeight) {\n      return {\n        dateProfile: props.dateProfile,\n        dateSpan: Object.assign({\n          allDay: !props.forceTimed,\n          range: {\n            start: props.startDate,\n            end: props.endDate\n          }\n        }, props.extraDateSpan),\n        dayEl: rootEl,\n        rect: {\n          left: 0,\n          top: 0,\n          right: elWidth,\n          bottom: elHeight\n        },\n        layer: 1 // important when comparing with hits from other components\n      };\n    }\n    return null;\n  }\n}\nclass MoreLinkContainer extends BaseComponent {\n  constructor() {\n    super(...arguments);\n    this.state = {\n      isPopoverOpen: false,\n      popoverId: getUniqueDomId()\n    };\n    this.handleLinkEl = linkEl => {\n      this.linkEl = linkEl;\n      if (this.props.elRef) {\n        setRef(this.props.elRef, linkEl);\n      }\n    };\n    this.handleClick = ev => {\n      let {\n        props,\n        context\n      } = this;\n      let {\n        moreLinkClick\n      } = context.options;\n      let date = computeRange(props).start;\n      function buildPublicSeg(seg) {\n        let {\n          def,\n          instance,\n          range\n        } = seg.eventRange;\n        return {\n          event: new EventImpl(context, def, instance),\n          start: context.dateEnv.toDate(range.start),\n          end: context.dateEnv.toDate(range.end),\n          isStart: seg.isStart,\n          isEnd: seg.isEnd\n        };\n      }\n      if (typeof moreLinkClick === 'function') {\n        moreLinkClick = moreLinkClick({\n          date,\n          allDay: Boolean(props.allDayDate),\n          allSegs: props.allSegs.map(buildPublicSeg),\n          hiddenSegs: props.hiddenSegs.map(buildPublicSeg),\n          jsEvent: ev,\n          view: context.viewApi\n        });\n      }\n      if (!moreLinkClick || moreLinkClick === 'popover') {\n        this.setState({\n          isPopoverOpen: true\n        });\n      } else if (typeof moreLinkClick === 'string') {\n        // a view name\n        context.calendarApi.zoomTo(date, moreLinkClick);\n      }\n    };\n    this.handlePopoverClose = () => {\n      this.setState({\n        isPopoverOpen: false\n      });\n    };\n  }\n  render() {\n    let {\n      props,\n      state\n    } = this;\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(ViewContextType.Consumer, null, context => {\n      let {\n        viewApi,\n        options,\n        calendarApi\n      } = context;\n      let {\n        moreLinkText\n      } = options;\n      let {\n        moreCnt\n      } = props;\n      let range = computeRange(props);\n      let text = typeof moreLinkText === 'function' // TODO: eventually use formatWithOrdinals\n      ? moreLinkText.call(calendarApi, moreCnt) : `+${moreCnt} ${moreLinkText}`;\n      let hint = formatWithOrdinals(options.moreLinkHint, [moreCnt], text);\n      let renderProps = {\n        num: moreCnt,\n        shortText: `+${moreCnt}`,\n        text,\n        view: viewApi\n      };\n      return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(preact__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, Boolean(props.moreCnt) && (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(ContentContainer, {\n        elTag: props.elTag || 'a',\n        elRef: this.handleLinkEl,\n        elClasses: [...(props.elClasses || []), 'fc-more-link'],\n        elStyle: props.elStyle,\n        elAttrs: Object.assign(Object.assign(Object.assign({}, props.elAttrs), createAriaClickAttrs(this.handleClick)), {\n          title: hint,\n          'aria-expanded': state.isPopoverOpen,\n          'aria-controls': state.isPopoverOpen ? state.popoverId : ''\n        }),\n        renderProps: renderProps,\n        generatorName: \"moreLinkContent\",\n        customGenerator: options.moreLinkContent,\n        defaultGenerator: props.defaultGenerator || renderMoreLinkInner,\n        classNameGenerator: options.moreLinkClassNames,\n        didMount: options.moreLinkDidMount,\n        willUnmount: options.moreLinkWillUnmount\n      }, props.children), state.isPopoverOpen && (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(MorePopover, {\n        id: state.popoverId,\n        startDate: range.start,\n        endDate: range.end,\n        dateProfile: props.dateProfile,\n        todayRange: props.todayRange,\n        extraDateSpan: props.extraDateSpan,\n        parentEl: this.parentEl,\n        alignmentEl: props.alignmentElRef ? props.alignmentElRef.current : this.linkEl,\n        alignGridTop: props.alignGridTop,\n        forceTimed: props.forceTimed,\n        onClose: this.handlePopoverClose\n      }, props.popoverContent()));\n    });\n  }\n  componentDidMount() {\n    this.updateParentEl();\n  }\n  componentDidUpdate() {\n    this.updateParentEl();\n  }\n  updateParentEl() {\n    if (this.linkEl) {\n      this.parentEl = elementClosest(this.linkEl, '.fc-view-harness');\n    }\n  }\n}\nfunction renderMoreLinkInner(props) {\n  return props.text;\n}\nfunction computeRange(props) {\n  if (props.allDayDate) {\n    return {\n      start: props.allDayDate,\n      end: addDays(props.allDayDate, 1)\n    };\n  }\n  let {\n    hiddenSegs\n  } = props;\n  return {\n    start: computeEarliestSegStart(hiddenSegs),\n    end: computeLatestSegEnd(hiddenSegs)\n  };\n}\nfunction computeEarliestSegStart(segs) {\n  return segs.reduce(pickEarliestStart).eventRange.range.start;\n}\nfunction pickEarliestStart(seg0, seg1) {\n  return seg0.eventRange.range.start < seg1.eventRange.range.start ? seg0 : seg1;\n}\nfunction computeLatestSegEnd(segs) {\n  return segs.reduce(pickLatestEnd).eventRange.range.end;\n}\nfunction pickLatestEnd(seg0, seg1) {\n  return seg0.eventRange.range.end > seg1.eventRange.range.end ? seg0 : seg1;\n}\nclass Store {\n  constructor() {\n    this.handlers = [];\n  }\n  set(value) {\n    this.currentValue = value;\n    for (let handler of this.handlers) {\n      handler(value);\n    }\n  }\n  subscribe(handler) {\n    this.handlers.push(handler);\n    if (this.currentValue !== undefined) {\n      handler(this.currentValue);\n    }\n  }\n}\n\n/*\nSubscribers will get a LIST of CustomRenderings\n*/\nclass CustomRenderingStore extends Store {\n  constructor() {\n    super(...arguments);\n    this.map = new Map();\n  }\n  // for consistent order\n  handle(customRendering) {\n    const {\n      map\n    } = this;\n    let updated = false;\n    if (customRendering.isActive) {\n      map.set(customRendering.id, customRendering);\n      updated = true;\n    } else if (map.has(customRendering.id)) {\n      map.delete(customRendering.id);\n      updated = true;\n    }\n    if (updated) {\n      this.set(map);\n    }\n  }\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/core/internal-common.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/core/locales/cs.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/core/locales/cs.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ l13)\n/* harmony export */ });\nvar l13 = {\n  code: 'cs',\n  week: {\n    dow: 1,\n    doy: 4 // The week that contains Jan 4th is the first week of the year.\n  },\n  buttonText: {\n    prev: 'Dříve',\n    next: 'Později',\n    today: 'Nyní',\n    year: 'Rok',\n    month: 'Měsíc',\n    week: 'Týden',\n    day: 'Den',\n    list: 'Agenda'\n  },\n  weekText: 'Týd',\n  allDayText: 'Celý den',\n  moreLinkText(n) {\n    return '+další: ' + n;\n  },\n  noEventsText: 'Žádné akce k zobrazení'\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/core/locales/cs.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/core/locales/de.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/core/locales/de.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ l17)\n/* harmony export */ });\nfunction affix(buttonText) {\n  return buttonText === 'Tag' || buttonText === 'Monat' ? 'r' : buttonText === 'Jahr' ? 's' : '';\n}\nvar l17 = {\n  code: 'de',\n  week: {\n    dow: 1,\n    doy: 4 // The week that contains Jan 4th is the first week of the year.\n  },\n  buttonText: {\n    prev: 'Zurück',\n    next: 'Vor',\n    today: 'Heute',\n    year: 'Jahr',\n    month: 'Monat',\n    week: 'Woche',\n    day: 'Tag',\n    list: 'Terminübersicht'\n  },\n  weekText: 'KW',\n  weekTextLong: 'Woche',\n  allDayText: 'Ganztägig',\n  moreLinkText(n) {\n    return '+ weitere ' + n;\n  },\n  noEventsText: 'Keine Ereignisse anzuzeigen',\n  buttonHints: {\n    prev(buttonText) {\n      return `Vorherige${affix(buttonText)} ${buttonText}`;\n    },\n    next(buttonText) {\n      return `Nächste${affix(buttonText)} ${buttonText}`;\n    },\n    today(buttonText) {\n      // → Heute, Diese Woche, Dieser Monat, Dieses Jahr\n      if (buttonText === 'Tag') {\n        return 'Heute';\n      }\n      return `Diese${affix(buttonText)} ${buttonText}`;\n    }\n  },\n  viewHint(buttonText) {\n    // → Tagesansicht, Wochenansicht, Monatsansicht, Jahresansicht\n    const glue = buttonText === 'Woche' ? 'n' : buttonText === 'Monat' ? 's' : 'es';\n    return buttonText + glue + 'ansicht';\n  },\n  navLinkHint: 'Gehe zu $0',\n  moreLinkHint(eventCnt) {\n    return 'Zeige ' + (eventCnt === 1 ? 'ein weiteres Ereignis' : eventCnt + ' weitere Ereignisse');\n  },\n  closeHint: 'Schließen',\n  timeHint: 'Uhrzeit',\n  eventHint: 'Ereignis'\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/core/locales/de.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/core/locales/es.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/core/locales/es.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ l24)\n/* harmony export */ });\nvar l24 = {\n  code: 'es',\n  week: {\n    dow: 1,\n    doy: 4 // The week that contains Jan 4th is the first week of the year.\n  },\n  buttonText: {\n    prev: 'Ant',\n    next: 'Sig',\n    today: 'Hoy',\n    year: 'Año',\n    month: 'Mes',\n    week: 'Semana',\n    day: 'Día',\n    list: 'Agenda'\n  },\n  buttonHints: {\n    prev: '$0 antes',\n    next: '$0 siguiente',\n    today(buttonText) {\n      return buttonText === 'Día' ? 'Hoy' : (buttonText === 'Semana' ? 'Esta' : 'Este') + ' ' + buttonText.toLocaleLowerCase();\n    }\n  },\n  viewHint(buttonText) {\n    return 'Vista ' + (buttonText === 'Semana' ? 'de la' : 'del') + ' ' + buttonText.toLocaleLowerCase();\n  },\n  weekText: 'Sm',\n  weekTextLong: 'Semana',\n  allDayText: 'Todo el día',\n  moreLinkText: 'más',\n  moreLinkHint(eventCnt) {\n    return `Mostrar ${eventCnt} eventos más`;\n  },\n  noEventsText: 'No hay eventos para mostrar',\n  navLinkHint: 'Ir al $0',\n  closeHint: 'Cerrar',\n  timeHint: 'La hora',\n  eventHint: 'Evento'\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/core/locales/es.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/core/locales/fr.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/core/locales/fr.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ l31)\n/* harmony export */ });\nvar l31 = {\n  code: 'fr',\n  week: {\n    dow: 1,\n    doy: 4 // The week that contains Jan 4th is the first week of the year.\n  },\n  buttonText: {\n    prev: 'Précédent',\n    next: 'Suivant',\n    today: 'Aujourd\\'hui',\n    year: 'Année',\n    month: 'Mois',\n    week: 'Semaine',\n    day: 'Jour',\n    list: 'Planning'\n  },\n  weekText: 'Sem.',\n  weekTextLong: 'Semaine',\n  allDayText: 'Toute la journée',\n  moreLinkText: 'en plus',\n  noEventsText: 'Aucun évènement à afficher'\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/core/locales/fr.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/core/locales/it.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/core/locales/it.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ l40)\n/* harmony export */ });\nvar l40 = {\n  code: 'it',\n  week: {\n    dow: 1,\n    doy: 4 // The week that contains Jan 4th is the first week of the year.\n  },\n  buttonText: {\n    prev: 'Prec',\n    next: 'Succ',\n    today: 'Oggi',\n    year: 'Anno',\n    month: 'Mese',\n    week: 'Settimana',\n    day: 'Giorno',\n    list: 'Agenda'\n  },\n  weekText: 'Sm',\n  allDayText: 'Tutto il giorno',\n  moreLinkText(n) {\n    return '+altri ' + n;\n  },\n  noEventsText: 'Non ci sono eventi da visualizzare'\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/core/locales/it.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/core/locales/pl.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/core/locales/pl.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ l56)\n/* harmony export */ });\nvar l56 = {\n  code: 'pl',\n  week: {\n    dow: 1,\n    doy: 4 // The week that contains Jan 4th is the first week of the year.\n  },\n  buttonText: {\n    prev: 'Poprzedni',\n    next: 'Następny',\n    today: 'Dziś',\n    year: 'Rok',\n    month: 'Miesiąc',\n    week: 'Tydzień',\n    day: 'Dzień',\n    list: 'Plan dnia'\n  },\n  weekText: 'Tydz',\n  allDayText: 'Cały dzień',\n  moreLinkText: 'więcej',\n  noEventsText: 'Brak wydarzeń do wyświetlenia'\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/core/locales/pl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/core/locales/ro.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/core/locales/ro.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ l59)\n/* harmony export */ });\nvar l59 = {\n  code: 'ro',\n  week: {\n    dow: 1,\n    doy: 7 // The week that contains Jan 1st is the first week of the year.\n  },\n  buttonText: {\n    prev: 'precedentă',\n    next: 'următoare',\n    today: 'Azi',\n    year: 'An',\n    month: 'Lună',\n    week: 'Săptămână',\n    day: 'Zi',\n    list: 'Agendă'\n  },\n  weekText: 'Săpt',\n  allDayText: 'Toată ziua',\n  moreLinkText(n) {\n    return '+alte ' + n;\n  },\n  noEventsText: 'Nu există evenimente de afișat'\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/core/locales/ro.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/core/locales/sk.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/core/locales/sk.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ l62)\n/* harmony export */ });\nvar l62 = {\n  code: 'sk',\n  week: {\n    dow: 1,\n    doy: 4 // The week that contains Jan 4th is the first week of the year.\n  },\n  buttonText: {\n    prev: 'Predchádzajúci',\n    next: 'Nasledujúci',\n    today: 'Dnes',\n    year: 'Rok',\n    month: 'Mesiac',\n    week: 'Týždeň',\n    day: 'Deň',\n    list: 'Rozvrh'\n  },\n  weekText: 'Ty',\n  allDayText: 'Celý deň',\n  moreLinkText(n) {\n    return '+ďalšie: ' + n;\n  },\n  noEventsText: 'Žiadne akcie na zobrazenie'\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/core/locales/sk.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/daygrid/index.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/daygrid/index.js ***!
  \***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ index)\n/* harmony export */ });\n/* harmony import */ var _fullcalendar_core_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @fullcalendar/core/index.js */ \"../react-ui/node_modules/@fullcalendar/core/index.js\");\n/* harmony import */ var _internal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal.js */ \"../react-ui/node_modules/@fullcalendar/daygrid/internal.js\");\n\n\n\n\nvar index = (0,_fullcalendar_core_index_js__WEBPACK_IMPORTED_MODULE_0__.createPlugin)({\n  name: '@fullcalendar/daygrid',\n  initialView: 'dayGridMonth',\n  views: {\n    dayGrid: {\n      component: _internal_js__WEBPACK_IMPORTED_MODULE_1__.DayGridView,\n      dateProfileGeneratorClass: _internal_js__WEBPACK_IMPORTED_MODULE_1__.TableDateProfileGenerator\n    },\n    dayGridDay: {\n      type: 'dayGrid',\n      duration: {\n        days: 1\n      }\n    },\n    dayGridWeek: {\n      type: 'dayGrid',\n      duration: {\n        weeks: 1\n      }\n    },\n    dayGridMonth: {\n      type: 'dayGrid',\n      duration: {\n        months: 1\n      },\n      fixedWeekCount: true\n    },\n    dayGridYear: {\n      type: 'dayGrid',\n      duration: {\n        years: 1\n      }\n    }\n  }\n});\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/daygrid/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/daygrid/internal.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/daygrid/internal.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DayGridView: () => (/* binding */ DayTableView),\n/* harmony export */   DayTable: () => (/* binding */ DayTable),\n/* harmony export */   DayTableSlicer: () => (/* binding */ DayTableSlicer),\n/* harmony export */   Table: () => (/* binding */ Table),\n/* harmony export */   TableDateProfileGenerator: () => (/* binding */ TableDateProfileGenerator),\n/* harmony export */   TableRows: () => (/* binding */ TableRows),\n/* harmony export */   TableView: () => (/* binding */ TableView),\n/* harmony export */   buildDayTableModel: () => (/* binding */ buildDayTableModel),\n/* harmony export */   buildDayTableRenderRange: () => (/* binding */ buildDayTableRenderRange)\n/* harmony export */ });\n/* harmony import */ var _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @fullcalendar/core/internal.js */ \"../react-ui/node_modules/@fullcalendar/core/internal-common.js\");\n/* harmony import */ var _fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @fullcalendar/core/preact.js */ \"../react-ui/node_modules/preact/dist/preact.module.js\");\n\n\n\n/* An abstract class for the daygrid views, as well as month view. Renders one or more rows of day cells.\n----------------------------------------------------------------------------------------------------------------------*/\n// It is a manager for a Table subcomponent, which does most of the heavy lifting.\n// It is responsible for managing width/height.\nclass TableView extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bc {\n  constructor() {\n    super(...arguments);\n    this.headerElRef = (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n  }\n  renderSimpleLayout(headerRowContent, bodyContent) {\n    let {\n      props,\n      context\n    } = this;\n    let sections = [];\n    let stickyHeaderDates = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ca)(context.options);\n    if (headerRowContent) {\n      sections.push({\n        type: 'header',\n        key: 'header',\n        isSticky: stickyHeaderDates,\n        chunk: {\n          elRef: this.headerElRef,\n          tableClassName: 'fc-col-header',\n          rowContent: headerRowContent\n        }\n      });\n    }\n    sections.push({\n      type: 'body',\n      key: 'body',\n      liquid: true,\n      chunk: {\n        content: bodyContent\n      }\n    });\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cq, {\n      elClasses: ['fc-daygrid'],\n      viewSpec: context.viewSpec\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bZ, {\n      liquid: !props.isHeightAuto && !props.forPrint,\n      collapsibleWidth: props.forPrint,\n      cols: [] /* TODO: make optional? */,\n      sections: sections\n    }));\n  }\n  renderHScrollLayout(headerRowContent, bodyContent, colCnt, dayMinWidth) {\n    let ScrollGrid = this.context.pluginHooks.scrollGridImpl;\n    if (!ScrollGrid) {\n      throw new Error('No ScrollGrid implementation');\n    }\n    let {\n      props,\n      context\n    } = this;\n    let stickyHeaderDates = !props.forPrint && (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ca)(context.options);\n    let stickyFooterScrollbar = !props.forPrint && (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.c9)(context.options);\n    let sections = [];\n    if (headerRowContent) {\n      sections.push({\n        type: 'header',\n        key: 'header',\n        isSticky: stickyHeaderDates,\n        chunks: [{\n          key: 'main',\n          elRef: this.headerElRef,\n          tableClassName: 'fc-col-header',\n          rowContent: headerRowContent\n        }]\n      });\n    }\n    sections.push({\n      type: 'body',\n      key: 'body',\n      liquid: true,\n      chunks: [{\n        key: 'main',\n        content: bodyContent\n      }]\n    });\n    if (stickyFooterScrollbar) {\n      sections.push({\n        type: 'footer',\n        key: 'footer',\n        isSticky: true,\n        chunks: [{\n          key: 'main',\n          content: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.c8\n        }]\n      });\n    }\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cq, {\n      elClasses: ['fc-daygrid'],\n      viewSpec: context.viewSpec\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(ScrollGrid, {\n      liquid: !props.isHeightAuto && !props.forPrint,\n      forPrint: props.forPrint,\n      collapsibleWidth: props.forPrint,\n      colGroups: [{\n        cols: [{\n          span: colCnt,\n          minWidth: dayMinWidth\n        }]\n      }],\n      sections: sections\n    }));\n  }\n}\nfunction splitSegsByRow(segs, rowCnt) {\n  let byRow = [];\n  for (let i = 0; i < rowCnt; i += 1) {\n    byRow[i] = [];\n  }\n  for (let seg of segs) {\n    byRow[seg.row].push(seg);\n  }\n  return byRow;\n}\nfunction splitSegsByFirstCol(segs, colCnt) {\n  let byCol = [];\n  for (let i = 0; i < colCnt; i += 1) {\n    byCol[i] = [];\n  }\n  for (let seg of segs) {\n    byCol[seg.firstCol].push(seg);\n  }\n  return byCol;\n}\nfunction splitInteractionByRow(ui, rowCnt) {\n  let byRow = [];\n  if (!ui) {\n    for (let i = 0; i < rowCnt; i += 1) {\n      byRow[i] = null;\n    }\n  } else {\n    for (let i = 0; i < rowCnt; i += 1) {\n      byRow[i] = {\n        affectedInstances: ui.affectedInstances,\n        isEvent: ui.isEvent,\n        segs: []\n      };\n    }\n    for (let seg of ui.segs) {\n      byRow[seg.row].segs.push(seg);\n    }\n  }\n  return byRow;\n}\nconst DEFAULT_TABLE_EVENT_TIME_FORMAT = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.x)({\n  hour: 'numeric',\n  minute: '2-digit',\n  omitZeroMinute: true,\n  meridiem: 'narrow'\n});\nfunction hasListItemDisplay(seg) {\n  let {\n    display\n  } = seg.eventRange.ui;\n  return display === 'list-item' || display === 'auto' && !seg.eventRange.def.allDay && seg.firstCol === seg.lastCol &&\n  // can't be multi-day\n  seg.isStart &&\n  // \"\n  seg.isEnd // \"\n  ;\n}\nclass TableBlockEvent extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  render() {\n    let {\n      props\n    } = this;\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cg, Object.assign({}, props, {\n      elClasses: ['fc-daygrid-event', 'fc-daygrid-block-event', 'fc-h-event'],\n      defaultTimeFormat: DEFAULT_TABLE_EVENT_TIME_FORMAT,\n      defaultDisplayEventEnd: props.defaultDisplayEventEnd,\n      disableResizing: !props.seg.eventRange.def.allDay\n    }));\n  }\n}\nclass TableListItemEvent extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  render() {\n    let {\n      props,\n      context\n    } = this;\n    let {\n      options\n    } = context;\n    let {\n      seg\n    } = props;\n    let timeFormat = options.eventTimeFormat || DEFAULT_TABLE_EVENT_TIME_FORMAT;\n    let timeText = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bO)(seg, timeFormat, context, true, props.defaultDisplayEventEnd);\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ck, Object.assign({}, props, {\n      elTag: \"a\",\n      elClasses: ['fc-daygrid-event', 'fc-daygrid-dot-event'],\n      elAttrs: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bS)(props.seg, context),\n      defaultGenerator: renderInnerContent,\n      timeText: timeText,\n      isResizing: false,\n      isDateSelecting: false\n    }));\n  }\n}\nfunction renderInnerContent(renderProps) {\n  return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n    className: \"fc-daygrid-event-dot\",\n    style: {\n      borderColor: renderProps.borderColor || renderProps.backgroundColor\n    }\n  }), renderProps.timeText && (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n    className: \"fc-event-time\"\n  }, renderProps.timeText), (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n    className: \"fc-event-title\"\n  }, renderProps.event.title || (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, \"\\u00A0\")));\n}\nclass TableCellMoreLink extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  constructor() {\n    super(...arguments);\n    this.compileSegs = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(compileSegs);\n  }\n  render() {\n    let {\n      props\n    } = this;\n    let {\n      allSegs,\n      invisibleSegs\n    } = this.compileSegs(props.singlePlacements);\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.co, {\n      elClasses: ['fc-daygrid-more-link'],\n      dateProfile: props.dateProfile,\n      todayRange: props.todayRange,\n      allDayDate: props.allDayDate,\n      moreCnt: props.moreCnt,\n      allSegs: allSegs,\n      hiddenSegs: invisibleSegs,\n      alignmentElRef: props.alignmentElRef,\n      alignGridTop: props.alignGridTop,\n      extraDateSpan: props.extraDateSpan,\n      popoverContent: () => {\n        let isForcedInvisible = (props.eventDrag ? props.eventDrag.affectedInstances : null) || (props.eventResize ? props.eventResize.affectedInstances : null) || {};\n        return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, allSegs.map(seg => {\n          let instanceId = seg.eventRange.instance.instanceId;\n          return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n            className: \"fc-daygrid-event-harness\",\n            key: instanceId,\n            style: {\n              visibility: isForcedInvisible[instanceId] ? 'hidden' : ''\n            }\n          }, hasListItemDisplay(seg) ? (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TableListItemEvent, Object.assign({\n            seg: seg,\n            isDragging: false,\n            isSelected: instanceId === props.eventSelection,\n            defaultDisplayEventEnd: false\n          }, (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bQ)(seg, props.todayRange))) : (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TableBlockEvent, Object.assign({\n            seg: seg,\n            isDragging: false,\n            isResizing: false,\n            isDateSelecting: false,\n            isSelected: instanceId === props.eventSelection,\n            defaultDisplayEventEnd: false\n          }, (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bQ)(seg, props.todayRange))));\n        }));\n      }\n    });\n  }\n}\nfunction compileSegs(singlePlacements) {\n  let allSegs = [];\n  let invisibleSegs = [];\n  for (let placement of singlePlacements) {\n    allSegs.push(placement.seg);\n    if (!placement.isVisible) {\n      invisibleSegs.push(placement.seg);\n    }\n  }\n  return {\n    allSegs,\n    invisibleSegs\n  };\n}\nconst DEFAULT_WEEK_NUM_FORMAT = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.x)({\n  week: 'narrow'\n});\nclass TableCell extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bc {\n  constructor() {\n    super(...arguments);\n    this.rootElRef = (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n    this.state = {\n      dayNumberId: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.a3)()\n    };\n    this.handleRootEl = el => {\n      (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.W)(this.rootElRef, el);\n      (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.W)(this.props.elRef, el);\n    };\n  }\n  render() {\n    let {\n      context,\n      props,\n      state,\n      rootElRef\n    } = this;\n    let {\n      options,\n      dateEnv\n    } = context;\n    let {\n      date,\n      dateProfile\n    } = props;\n    // TODO: memoize this?\n    const isMonthStart = props.showDayNumber && shouldDisplayMonthStart(date, dateProfile.currentRange, dateEnv);\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ci, {\n      elTag: \"td\",\n      elRef: this.handleRootEl,\n      elClasses: ['fc-daygrid-day', ...(props.extraClassNames || [])],\n      elAttrs: Object.assign(Object.assign(Object.assign({}, props.extraDataAttrs), props.showDayNumber ? {\n        'aria-labelledby': state.dayNumberId\n      } : {}), {\n        role: 'gridcell'\n      }),\n      defaultGenerator: renderTopInner,\n      date: date,\n      dateProfile: dateProfile,\n      todayRange: props.todayRange,\n      showDayNumber: props.showDayNumber,\n      isMonthStart: isMonthStart,\n      extraRenderProps: props.extraRenderProps\n    }, (InnerContent, renderProps) => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      ref: props.innerElRef,\n      className: \"fc-daygrid-day-frame fc-scrollgrid-sync-inner\",\n      style: {\n        minHeight: props.minHeight\n      }\n    }, props.showWeekNumber && (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cn, {\n      elTag: \"a\",\n      elClasses: ['fc-daygrid-week-number'],\n      elAttrs: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.a_)(context, date, 'week'),\n      date: date,\n      defaultFormat: DEFAULT_WEEK_NUM_FORMAT\n    }), !renderProps.isDisabled && (props.showDayNumber || (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cj)(options) || props.forceDayTop) ? (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-daygrid-day-top\"\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(InnerContent, {\n      elTag: \"a\",\n      elClasses: ['fc-daygrid-day-number', isMonthStart && 'fc-daygrid-month-start'],\n      elAttrs: Object.assign(Object.assign({}, (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.a_)(context, date)), {\n        id: state.dayNumberId\n      })\n    })) : props.showDayNumber ?\n    // for creating correct amount of space (see issue #7162)\n    (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-daygrid-day-top\",\n      style: {\n        visibility: 'hidden'\n      }\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"a\", {\n      className: \"fc-daygrid-day-number\"\n    }, \"\\u00A0\")) : undefined, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-daygrid-day-events\",\n      ref: props.fgContentElRef\n    }, props.fgContent, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-daygrid-day-bottom\",\n      style: {\n        marginTop: props.moreMarginTop\n      }\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TableCellMoreLink, {\n      allDayDate: date,\n      singlePlacements: props.singlePlacements,\n      moreCnt: props.moreCnt,\n      alignmentElRef: rootElRef,\n      alignGridTop: !props.showDayNumber,\n      extraDateSpan: props.extraDateSpan,\n      dateProfile: props.dateProfile,\n      eventSelection: props.eventSelection,\n      eventDrag: props.eventDrag,\n      eventResize: props.eventResize,\n      todayRange: props.todayRange\n    }))), (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-daygrid-day-bg\"\n    }, props.bgContent)));\n  }\n}\nfunction renderTopInner(props) {\n  return props.dayNumberText || (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, \"\\u00A0\");\n}\nfunction shouldDisplayMonthStart(date, currentRange, dateEnv) {\n  const {\n    start: currentStart,\n    end: currentEnd\n  } = currentRange;\n  const currentEndIncl = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.be)(currentEnd, -1);\n  const currentFirstYear = dateEnv.getYear(currentStart);\n  const currentFirstMonth = dateEnv.getMonth(currentStart);\n  const currentLastYear = dateEnv.getYear(currentEndIncl);\n  const currentLastMonth = dateEnv.getMonth(currentEndIncl);\n  // spans more than one month?\n  return !(currentFirstYear === currentLastYear && currentFirstMonth === currentLastMonth) && Boolean(\n  // first date in current view?\n  date.valueOf() === currentStart.valueOf() ||\n  // a month-start that's within the current range?\n  dateEnv.getDay(date) === 1 && date.valueOf() < currentEnd.valueOf());\n}\nfunction generateSegKey(seg) {\n  return seg.eventRange.instance.instanceId + ':' + seg.firstCol;\n}\nfunction generateSegUid(seg) {\n  return generateSegKey(seg) + ':' + seg.lastCol;\n}\nfunction computeFgSegPlacement(segs,\n// assumed already sorted\ndayMaxEvents, dayMaxEventRows, strictOrder, segHeights, maxContentHeight, cells) {\n  let hierarchy = new DayGridSegHierarchy(segEntry => {\n    // TODO: more DRY with generateSegUid\n    let segUid = segs[segEntry.index].eventRange.instance.instanceId + ':' + segEntry.span.start + ':' + (segEntry.span.end - 1);\n    // if no thickness known, assume 1 (if 0, so small it always fits)\n    return segHeights[segUid] || 1;\n  });\n  hierarchy.allowReslicing = true;\n  hierarchy.strictOrder = strictOrder;\n  if (dayMaxEvents === true || dayMaxEventRows === true) {\n    hierarchy.maxCoord = maxContentHeight;\n    hierarchy.hiddenConsumes = true;\n  } else if (typeof dayMaxEvents === 'number') {\n    hierarchy.maxStackCnt = dayMaxEvents;\n  } else if (typeof dayMaxEventRows === 'number') {\n    hierarchy.maxStackCnt = dayMaxEventRows;\n    hierarchy.hiddenConsumes = true;\n  }\n  // create segInputs only for segs with known heights\n  let segInputs = [];\n  let unknownHeightSegs = [];\n  for (let i = 0; i < segs.length; i += 1) {\n    let seg = segs[i];\n    let segUid = generateSegUid(seg);\n    let eventHeight = segHeights[segUid];\n    if (eventHeight != null) {\n      segInputs.push({\n        index: i,\n        span: {\n          start: seg.firstCol,\n          end: seg.lastCol + 1\n        }\n      });\n    } else {\n      unknownHeightSegs.push(seg);\n    }\n  }\n  let hiddenEntries = hierarchy.addSegs(segInputs);\n  let segRects = hierarchy.toRects();\n  let {\n    singleColPlacements,\n    multiColPlacements,\n    leftoverMargins\n  } = placeRects(segRects, segs, cells);\n  let moreCnts = [];\n  let moreMarginTops = [];\n  // add segs with unknown heights\n  for (let seg of unknownHeightSegs) {\n    multiColPlacements[seg.firstCol].push({\n      seg,\n      isVisible: false,\n      isAbsolute: true,\n      absoluteTop: 0,\n      marginTop: 0\n    });\n    for (let col = seg.firstCol; col <= seg.lastCol; col += 1) {\n      singleColPlacements[col].push({\n        seg: resliceSeg(seg, col, col + 1, cells),\n        isVisible: false,\n        isAbsolute: false,\n        absoluteTop: 0,\n        marginTop: 0\n      });\n    }\n  }\n  // add the hidden entries\n  for (let col = 0; col < cells.length; col += 1) {\n    moreCnts.push(0);\n  }\n  for (let hiddenEntry of hiddenEntries) {\n    let seg = segs[hiddenEntry.index];\n    let hiddenSpan = hiddenEntry.span;\n    multiColPlacements[hiddenSpan.start].push({\n      seg: resliceSeg(seg, hiddenSpan.start, hiddenSpan.end, cells),\n      isVisible: false,\n      isAbsolute: true,\n      absoluteTop: 0,\n      marginTop: 0\n    });\n    for (let col = hiddenSpan.start; col < hiddenSpan.end; col += 1) {\n      moreCnts[col] += 1;\n      singleColPlacements[col].push({\n        seg: resliceSeg(seg, col, col + 1, cells),\n        isVisible: false,\n        isAbsolute: false,\n        absoluteTop: 0,\n        marginTop: 0\n      });\n    }\n  }\n  // deal with leftover margins\n  for (let col = 0; col < cells.length; col += 1) {\n    moreMarginTops.push(leftoverMargins[col]);\n  }\n  return {\n    singleColPlacements,\n    multiColPlacements,\n    moreCnts,\n    moreMarginTops\n  };\n}\n// rects ordered by top coord, then left\nfunction placeRects(allRects, segs, cells) {\n  let rectsByEachCol = groupRectsByEachCol(allRects, cells.length);\n  let singleColPlacements = [];\n  let multiColPlacements = [];\n  let leftoverMargins = [];\n  for (let col = 0; col < cells.length; col += 1) {\n    let rects = rectsByEachCol[col];\n    // compute all static segs in singlePlacements\n    let singlePlacements = [];\n    let currentHeight = 0;\n    let currentMarginTop = 0;\n    for (let rect of rects) {\n      let seg = segs[rect.index];\n      singlePlacements.push({\n        seg: resliceSeg(seg, col, col + 1, cells),\n        isVisible: true,\n        isAbsolute: false,\n        absoluteTop: rect.levelCoord,\n        marginTop: rect.levelCoord - currentHeight\n      });\n      currentHeight = rect.levelCoord + rect.thickness;\n    }\n    // compute mixed static/absolute segs in multiPlacements\n    let multiPlacements = [];\n    currentHeight = 0;\n    currentMarginTop = 0;\n    for (let rect of rects) {\n      let seg = segs[rect.index];\n      let isAbsolute = rect.span.end - rect.span.start > 1; // multi-column?\n      let isFirstCol = rect.span.start === col;\n      currentMarginTop += rect.levelCoord - currentHeight; // amount of space since bottom of previous seg\n      currentHeight = rect.levelCoord + rect.thickness; // height will now be bottom of current seg\n      if (isAbsolute) {\n        currentMarginTop += rect.thickness;\n        if (isFirstCol) {\n          multiPlacements.push({\n            seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),\n            isVisible: true,\n            isAbsolute: true,\n            absoluteTop: rect.levelCoord,\n            marginTop: 0\n          });\n        }\n      } else if (isFirstCol) {\n        multiPlacements.push({\n          seg: resliceSeg(seg, rect.span.start, rect.span.end, cells),\n          isVisible: true,\n          isAbsolute: false,\n          absoluteTop: rect.levelCoord,\n          marginTop: currentMarginTop // claim the margin\n        });\n        currentMarginTop = 0;\n      }\n    }\n    singleColPlacements.push(singlePlacements);\n    multiColPlacements.push(multiPlacements);\n    leftoverMargins.push(currentMarginTop);\n  }\n  return {\n    singleColPlacements,\n    multiColPlacements,\n    leftoverMargins\n  };\n}\nfunction groupRectsByEachCol(rects, colCnt) {\n  let rectsByEachCol = [];\n  for (let col = 0; col < colCnt; col += 1) {\n    rectsByEachCol.push([]);\n  }\n  for (let rect of rects) {\n    for (let col = rect.span.start; col < rect.span.end; col += 1) {\n      rectsByEachCol[col].push(rect);\n    }\n  }\n  return rectsByEachCol;\n}\nfunction resliceSeg(seg, spanStart, spanEnd, cells) {\n  if (seg.firstCol === spanStart && seg.lastCol === spanEnd - 1) {\n    return seg;\n  }\n  let eventRange = seg.eventRange;\n  let origRange = eventRange.range;\n  let slicedRange = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.o)(origRange, {\n    start: cells[spanStart].date,\n    end: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.t)(cells[spanEnd - 1].date, 1)\n  });\n  return Object.assign(Object.assign({}, seg), {\n    firstCol: spanStart,\n    lastCol: spanEnd - 1,\n    eventRange: {\n      def: eventRange.def,\n      ui: Object.assign(Object.assign({}, eventRange.ui), {\n        durationEditable: false\n      }),\n      instance: eventRange.instance,\n      range: slicedRange\n    },\n    isStart: seg.isStart && slicedRange.start.valueOf() === origRange.start.valueOf(),\n    isEnd: seg.isEnd && slicedRange.end.valueOf() === origRange.end.valueOf()\n  });\n}\nclass DayGridSegHierarchy extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.by {\n  constructor() {\n    super(...arguments);\n    // config\n    this.hiddenConsumes = false;\n    // allows us to keep hidden entries in the hierarchy so they take up space\n    this.forceHidden = {};\n  }\n  addSegs(segInputs) {\n    const hiddenSegs = super.addSegs(segInputs);\n    const {\n      entriesByLevel\n    } = this;\n    const excludeHidden = entry => !this.forceHidden[(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bz)(entry)];\n    // remove the forced-hidden segs\n    for (let level = 0; level < entriesByLevel.length; level += 1) {\n      entriesByLevel[level] = entriesByLevel[level].filter(excludeHidden);\n    }\n    return hiddenSegs;\n  }\n  handleInvalidInsertion(insertion, entry, hiddenEntries) {\n    const {\n      entriesByLevel,\n      forceHidden\n    } = this;\n    const {\n      touchingEntry,\n      touchingLevel,\n      touchingLateral\n    } = insertion;\n    // the entry that the new insertion is touching must be hidden\n    if (this.hiddenConsumes && touchingEntry) {\n      const touchingEntryId = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bz)(touchingEntry);\n      if (!forceHidden[touchingEntryId]) {\n        if (this.allowReslicing) {\n          // split up the touchingEntry, reinsert it\n          const hiddenEntry = Object.assign(Object.assign({}, touchingEntry), {\n            span: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bD)(touchingEntry.span, entry.span)\n          });\n          // reinsert the area that turned into a \"more\" link (so no other entries try to\n          // occupy the space) but mark it forced-hidden\n          const hiddenEntryId = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bz)(hiddenEntry);\n          forceHidden[hiddenEntryId] = true;\n          entriesByLevel[touchingLevel][touchingLateral] = hiddenEntry;\n          hiddenEntries.push(hiddenEntry);\n          this.splitEntry(touchingEntry, entry, hiddenEntries);\n        } else {\n          forceHidden[touchingEntryId] = true;\n          hiddenEntries.push(touchingEntry);\n        }\n      }\n    }\n    // will try to reslice...\n    super.handleInvalidInsertion(insertion, entry, hiddenEntries);\n  }\n}\nclass TableRow extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bc {\n  constructor() {\n    super(...arguments);\n    this.cellElRefs = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cd(); // the <td>\n    this.frameElRefs = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cd(); // the fc-daygrid-day-frame\n    this.fgElRefs = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cd(); // the fc-daygrid-day-events\n    this.segHarnessRefs = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cd(); // indexed by \"instanceId:firstCol\"\n    this.rootElRef = (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n    this.state = {\n      framePositions: null,\n      maxContentHeight: null,\n      segHeights: {}\n    };\n    this.handleResize = isForced => {\n      if (isForced) {\n        this.updateSizing(true); // isExternal=true\n      }\n    };\n  }\n  render() {\n    let {\n      props,\n      state,\n      context\n    } = this;\n    let {\n      options\n    } = context;\n    let colCnt = props.cells.length;\n    let businessHoursByCol = splitSegsByFirstCol(props.businessHourSegs, colCnt);\n    let bgEventSegsByCol = splitSegsByFirstCol(props.bgEventSegs, colCnt);\n    let highlightSegsByCol = splitSegsByFirstCol(this.getHighlightSegs(), colCnt);\n    let mirrorSegsByCol = splitSegsByFirstCol(this.getMirrorSegs(), colCnt);\n    let {\n      singleColPlacements,\n      multiColPlacements,\n      moreCnts,\n      moreMarginTops\n    } = computeFgSegPlacement((0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bP)(props.fgEventSegs, options.eventOrder), props.dayMaxEvents, props.dayMaxEventRows, options.eventOrderStrict, state.segHeights, state.maxContentHeight, props.cells);\n    let isForcedInvisible =\n    // TODO: messy way to compute this\n    props.eventDrag && props.eventDrag.affectedInstances || props.eventResize && props.eventResize.affectedInstances || {};\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"tr\", {\n      ref: this.rootElRef,\n      role: \"row\"\n    }, props.renderIntro && props.renderIntro(), props.cells.map((cell, col) => {\n      let normalFgNodes = this.renderFgSegs(col, props.forPrint ? singleColPlacements[col] : multiColPlacements[col], props.todayRange, isForcedInvisible);\n      let mirrorFgNodes = this.renderFgSegs(col, buildMirrorPlacements(mirrorSegsByCol[col], multiColPlacements), props.todayRange, {}, Boolean(props.eventDrag), Boolean(props.eventResize), false);\n      return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TableCell, {\n        key: cell.key,\n        elRef: this.cellElRefs.createRef(cell.key),\n        innerElRef: this.frameElRefs.createRef(cell.key) /* FF <td> problem, but okay to use for left/right. TODO: rename prop */,\n        dateProfile: props.dateProfile,\n        date: cell.date,\n        showDayNumber: props.showDayNumbers,\n        showWeekNumber: props.showWeekNumbers && col === 0,\n        forceDayTop: props.showWeekNumbers /* even displaying weeknum for row, not necessarily day */,\n        todayRange: props.todayRange,\n        eventSelection: props.eventSelection,\n        eventDrag: props.eventDrag,\n        eventResize: props.eventResize,\n        extraRenderProps: cell.extraRenderProps,\n        extraDataAttrs: cell.extraDataAttrs,\n        extraClassNames: cell.extraClassNames,\n        extraDateSpan: cell.extraDateSpan,\n        moreCnt: moreCnts[col],\n        moreMarginTop: moreMarginTops[col],\n        singlePlacements: singleColPlacements[col],\n        fgContentElRef: this.fgElRefs.createRef(cell.key),\n        fgContent:\n        // Fragment scopes the keys\n        (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, normalFgNodes), (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, mirrorFgNodes)),\n        bgContent:\n        // Fragment scopes the keys\n        (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, this.renderFillSegs(highlightSegsByCol[col], 'highlight'), this.renderFillSegs(businessHoursByCol[col], 'non-business'), this.renderFillSegs(bgEventSegsByCol[col], 'bg-event')),\n        minHeight: props.cellMinHeight\n      });\n    }));\n  }\n  componentDidMount() {\n    this.updateSizing(true);\n    this.context.addResizeHandler(this.handleResize);\n  }\n  componentDidUpdate(prevProps, prevState) {\n    let currentProps = this.props;\n    this.updateSizing(!(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.E)(prevProps, currentProps));\n  }\n  componentWillUnmount() {\n    this.context.removeResizeHandler(this.handleResize);\n  }\n  getHighlightSegs() {\n    let {\n      props\n    } = this;\n    if (props.eventDrag && props.eventDrag.segs.length) {\n      // messy check\n      return props.eventDrag.segs;\n    }\n    if (props.eventResize && props.eventResize.segs.length) {\n      // messy check\n      return props.eventResize.segs;\n    }\n    return props.dateSelectionSegs;\n  }\n  getMirrorSegs() {\n    let {\n      props\n    } = this;\n    if (props.eventResize && props.eventResize.segs.length) {\n      // messy check\n      return props.eventResize.segs;\n    }\n    return [];\n  }\n  renderFgSegs(col, segPlacements, todayRange, isForcedInvisible, isDragging, isResizing, isDateSelecting) {\n    let {\n      context\n    } = this;\n    let {\n      eventSelection\n    } = this.props;\n    let {\n      framePositions\n    } = this.state;\n    let defaultDisplayEventEnd = this.props.cells.length === 1; // colCnt === 1\n    let isMirror = isDragging || isResizing || isDateSelecting;\n    let nodes = [];\n    if (framePositions) {\n      for (let placement of segPlacements) {\n        let {\n          seg\n        } = placement;\n        let {\n          instanceId\n        } = seg.eventRange.instance;\n        let isVisible = placement.isVisible && !isForcedInvisible[instanceId];\n        let isAbsolute = placement.isAbsolute;\n        let left = '';\n        let right = '';\n        if (isAbsolute) {\n          if (context.isRtl) {\n            right = 0;\n            left = framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol];\n          } else {\n            left = 0;\n            right = framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol];\n          }\n        }\n        /*\n        known bug: events that are force to be list-item but span multiple days still take up space in later columns\n        todo: in print view, for multi-day events, don't display title within non-start/end segs\n        */\n        nodes.push((0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n          className: 'fc-daygrid-event-harness' + (isAbsolute ? ' fc-daygrid-event-harness-abs' : ''),\n          key: generateSegKey(seg),\n          ref: isMirror ? null : this.segHarnessRefs.createRef(generateSegUid(seg)),\n          style: {\n            visibility: isVisible ? '' : 'hidden',\n            marginTop: isAbsolute ? '' : placement.marginTop,\n            top: isAbsolute ? placement.absoluteTop : '',\n            left,\n            right\n          }\n        }, hasListItemDisplay(seg) ? (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TableListItemEvent, Object.assign({\n          seg: seg,\n          isDragging: isDragging,\n          isSelected: instanceId === eventSelection,\n          defaultDisplayEventEnd: defaultDisplayEventEnd\n        }, (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bQ)(seg, todayRange))) : (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TableBlockEvent, Object.assign({\n          seg: seg,\n          isDragging: isDragging,\n          isResizing: isResizing,\n          isDateSelecting: isDateSelecting,\n          isSelected: instanceId === eventSelection,\n          defaultDisplayEventEnd: defaultDisplayEventEnd\n        }, (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bQ)(seg, todayRange)))));\n      }\n    }\n    return nodes;\n  }\n  renderFillSegs(segs, fillType) {\n    let {\n      isRtl\n    } = this.context;\n    let {\n      todayRange\n    } = this.props;\n    let {\n      framePositions\n    } = this.state;\n    let nodes = [];\n    if (framePositions) {\n      for (let seg of segs) {\n        let leftRightCss = isRtl ? {\n          right: 0,\n          left: framePositions.lefts[seg.lastCol] - framePositions.lefts[seg.firstCol]\n        } : {\n          left: 0,\n          right: framePositions.rights[seg.firstCol] - framePositions.rights[seg.lastCol]\n        };\n        nodes.push((0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n          key: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bR)(seg.eventRange),\n          className: \"fc-daygrid-bg-harness\",\n          style: leftRightCss\n        }, fillType === 'bg-event' ? (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cm, Object.assign({\n          seg: seg\n        }, (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bQ)(seg, todayRange))) : (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cl)(fillType)));\n      }\n    }\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, {}, ...nodes);\n  }\n  updateSizing(isExternalSizingChange) {\n    let {\n      props,\n      state,\n      frameElRefs\n    } = this;\n    if (!props.forPrint && props.clientWidth !== null // positioning ready?\n    ) {\n      if (isExternalSizingChange) {\n        let frameEls = props.cells.map(cell => frameElRefs.currentMap[cell.key]);\n        if (frameEls.length) {\n          let originEl = this.rootElRef.current;\n          let newPositionCache = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.b8(originEl, frameEls, true,\n          // isHorizontal\n          false);\n          if (!state.framePositions || !state.framePositions.similarTo(newPositionCache)) {\n            this.setState({\n              framePositions: new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.b8(originEl, frameEls, true,\n              // isHorizontal\n              false)\n            });\n          }\n        }\n      }\n      const oldSegHeights = this.state.segHeights;\n      const newSegHeights = this.querySegHeights();\n      const limitByContentHeight = props.dayMaxEvents === true || props.dayMaxEventRows === true;\n      this.safeSetState({\n        // HACK to prevent oscillations of events being shown/hidden from max-event-rows\n        // Essentially, once you compute an element's height, never null-out.\n        // TODO: always display all events, as visibility:hidden?\n        segHeights: Object.assign(Object.assign({}, oldSegHeights), newSegHeights),\n        maxContentHeight: limitByContentHeight ? this.computeMaxContentHeight() : null\n      });\n    }\n  }\n  querySegHeights() {\n    let segElMap = this.segHarnessRefs.currentMap;\n    let segHeights = {};\n    // get the max height amongst instance segs\n    for (let segUid in segElMap) {\n      let height = Math.round(segElMap[segUid].getBoundingClientRect().height);\n      segHeights[segUid] = Math.max(segHeights[segUid] || 0, height);\n    }\n    return segHeights;\n  }\n  computeMaxContentHeight() {\n    let firstKey = this.props.cells[0].key;\n    let cellEl = this.cellElRefs.currentMap[firstKey];\n    let fcContainerEl = this.fgElRefs.currentMap[firstKey];\n    return cellEl.getBoundingClientRect().bottom - fcContainerEl.getBoundingClientRect().top;\n  }\n  getCellEls() {\n    let elMap = this.cellElRefs.currentMap;\n    return this.props.cells.map(cell => elMap[cell.key]);\n  }\n}\nTableRow.addStateEquality({\n  segHeights: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.E\n});\nfunction buildMirrorPlacements(mirrorSegs, colPlacements) {\n  if (!mirrorSegs.length) {\n    return [];\n  }\n  let topsByInstanceId = buildAbsoluteTopHash(colPlacements); // TODO: cache this at first render?\n  return mirrorSegs.map(seg => ({\n    seg,\n    isVisible: true,\n    isAbsolute: true,\n    absoluteTop: topsByInstanceId[seg.eventRange.instance.instanceId],\n    marginTop: 0\n  }));\n}\nfunction buildAbsoluteTopHash(colPlacements) {\n  let topsByInstanceId = {};\n  for (let placements of colPlacements) {\n    for (let placement of placements) {\n      topsByInstanceId[placement.seg.eventRange.instance.instanceId] = placement.absoluteTop;\n    }\n  }\n  return topsByInstanceId;\n}\nclass TableRows extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bc {\n  constructor() {\n    super(...arguments);\n    this.splitBusinessHourSegs = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(splitSegsByRow);\n    this.splitBgEventSegs = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(splitAllDaySegsByRow);\n    this.splitFgEventSegs = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(splitSegsByRow);\n    this.splitDateSelectionSegs = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(splitSegsByRow);\n    this.splitEventDrag = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(splitInteractionByRow);\n    this.splitEventResize = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(splitInteractionByRow);\n    this.rowRefs = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cd();\n  }\n  render() {\n    let {\n      props,\n      context\n    } = this;\n    let rowCnt = props.cells.length;\n    let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, rowCnt);\n    let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, rowCnt);\n    let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, rowCnt);\n    let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, rowCnt);\n    let eventDragByRow = this.splitEventDrag(props.eventDrag, rowCnt);\n    let eventResizeByRow = this.splitEventResize(props.eventResize, rowCnt);\n    // for DayGrid view with many rows, force a min-height on cells so doesn't appear squished\n    // choose 7 because a month view will have max 6 rows\n    let cellMinHeight = rowCnt >= 7 && props.clientWidth ? props.clientWidth / context.options.aspectRatio / 6 : null;\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.a6, {\n      unit: \"day\"\n    }, (nowDate, todayRange) => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, props.cells.map((cells, row) => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TableRow, {\n      ref: this.rowRefs.createRef(row),\n      key: cells.length ? cells[0].date.toISOString() /* best? or put key on cell? or use diff formatter? */ : row // in case there are no cells (like when resource view is loading)\n      ,\n      showDayNumbers: rowCnt > 1,\n      showWeekNumbers: props.showWeekNumbers,\n      todayRange: todayRange,\n      dateProfile: props.dateProfile,\n      cells: cells,\n      renderIntro: props.renderRowIntro,\n      businessHourSegs: businessHourSegsByRow[row],\n      eventSelection: props.eventSelection,\n      bgEventSegs: bgEventSegsByRow[row],\n      fgEventSegs: fgEventSegsByRow[row],\n      dateSelectionSegs: dateSelectionSegsByRow[row],\n      eventDrag: eventDragByRow[row],\n      eventResize: eventResizeByRow[row],\n      dayMaxEvents: props.dayMaxEvents,\n      dayMaxEventRows: props.dayMaxEventRows,\n      clientWidth: props.clientWidth,\n      clientHeight: props.clientHeight,\n      cellMinHeight: cellMinHeight,\n      forPrint: props.forPrint\n    }))));\n  }\n  componentDidMount() {\n    this.registerInteractiveComponent();\n  }\n  componentDidUpdate() {\n    // for if started with zero cells\n    this.registerInteractiveComponent();\n  }\n  registerInteractiveComponent() {\n    if (!this.rootEl) {\n      // HACK: need a daygrid wrapper parent to do positioning\n      // NOTE: a daygrid resource view w/o resources can have zero cells\n      const firstCellEl = this.rowRefs.currentMap[0].getCellEls()[0];\n      const rootEl = firstCellEl ? firstCellEl.closest('.fc-daygrid-body') : null;\n      if (rootEl) {\n        this.rootEl = rootEl;\n        this.context.registerInteractiveComponent(this, {\n          el: rootEl,\n          isHitComboAllowed: this.props.isHitComboAllowed\n        });\n      }\n    }\n  }\n  componentWillUnmount() {\n    if (this.rootEl) {\n      this.context.unregisterInteractiveComponent(this);\n      this.rootEl = null;\n    }\n  }\n  // Hit System\n  // ----------------------------------------------------------------------------------------------------\n  prepareHits() {\n    this.rowPositions = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.b8(this.rootEl, this.rowRefs.collect().map(rowObj => rowObj.getCellEls()[0]),\n    // first cell el in each row. TODO: not optimal\n    false, true);\n    this.colPositions = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.b8(this.rootEl, this.rowRefs.currentMap[0].getCellEls(),\n    // cell els in first row\n    true,\n    // horizontal\n    false);\n  }\n  queryHit(positionLeft, positionTop) {\n    let {\n      colPositions,\n      rowPositions\n    } = this;\n    let col = colPositions.leftToIndex(positionLeft);\n    let row = rowPositions.topToIndex(positionTop);\n    if (row != null && col != null) {\n      let cell = this.props.cells[row][col];\n      return {\n        dateProfile: this.props.dateProfile,\n        dateSpan: Object.assign({\n          range: this.getCellRange(row, col),\n          allDay: true\n        }, cell.extraDateSpan),\n        dayEl: this.getCellEl(row, col),\n        rect: {\n          left: colPositions.lefts[col],\n          right: colPositions.rights[col],\n          top: rowPositions.tops[row],\n          bottom: rowPositions.bottoms[row]\n        },\n        layer: 0\n      };\n    }\n    return null;\n  }\n  getCellEl(row, col) {\n    return this.rowRefs.currentMap[row].getCellEls()[col]; // TODO: not optimal\n  }\n  getCellRange(row, col) {\n    let start = this.props.cells[row][col].date;\n    let end = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.t)(start, 1);\n    return {\n      start,\n      end\n    };\n  }\n}\nfunction splitAllDaySegsByRow(segs, rowCnt) {\n  return splitSegsByRow(segs.filter(isSegAllDay), rowCnt);\n}\nfunction isSegAllDay(seg) {\n  return seg.eventRange.def.allDay;\n}\nclass Table extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bc {\n  constructor() {\n    super(...arguments);\n    this.elRef = (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n    this.needsScrollReset = false;\n  }\n  render() {\n    let {\n      props\n    } = this;\n    let {\n      dayMaxEventRows,\n      dayMaxEvents,\n      expandRows\n    } = props;\n    let limitViaBalanced = dayMaxEvents === true || dayMaxEventRows === true;\n    // if rows can't expand to fill fixed height, can't do balanced-height event limit\n    // TODO: best place to normalize these options?\n    if (limitViaBalanced && !expandRows) {\n      limitViaBalanced = false;\n      dayMaxEventRows = null;\n      dayMaxEvents = null;\n    }\n    let classNames = ['fc-daygrid-body', limitViaBalanced ? 'fc-daygrid-body-balanced' : 'fc-daygrid-body-unbalanced', expandRows ? '' : 'fc-daygrid-body-natural' // will height of one row depend on the others?\n    ];\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      ref: this.elRef,\n      className: classNames.join(' '),\n      style: {\n        // these props are important to give this wrapper correct dimensions for interactions\n        // TODO: if we set it here, can we avoid giving to inner tables?\n        width: props.clientWidth,\n        minWidth: props.tableMinWidth\n      }\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"table\", {\n      role: \"presentation\",\n      className: \"fc-scrollgrid-sync-table\",\n      style: {\n        width: props.clientWidth,\n        minWidth: props.tableMinWidth,\n        height: expandRows ? props.clientHeight : ''\n      }\n    }, props.colGroupNode, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"tbody\", {\n      role: \"presentation\"\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TableRows, {\n      dateProfile: props.dateProfile,\n      cells: props.cells,\n      renderRowIntro: props.renderRowIntro,\n      showWeekNumbers: props.showWeekNumbers,\n      clientWidth: props.clientWidth,\n      clientHeight: props.clientHeight,\n      businessHourSegs: props.businessHourSegs,\n      bgEventSegs: props.bgEventSegs,\n      fgEventSegs: props.fgEventSegs,\n      dateSelectionSegs: props.dateSelectionSegs,\n      eventSelection: props.eventSelection,\n      eventDrag: props.eventDrag,\n      eventResize: props.eventResize,\n      dayMaxEvents: dayMaxEvents,\n      dayMaxEventRows: dayMaxEventRows,\n      forPrint: props.forPrint,\n      isHitComboAllowed: props.isHitComboAllowed\n    }))));\n  }\n  componentDidMount() {\n    this.requestScrollReset();\n  }\n  componentDidUpdate(prevProps) {\n    if (prevProps.dateProfile !== this.props.dateProfile) {\n      this.requestScrollReset();\n    } else {\n      this.flushScrollReset();\n    }\n  }\n  requestScrollReset() {\n    this.needsScrollReset = true;\n    this.flushScrollReset();\n  }\n  flushScrollReset() {\n    if (this.needsScrollReset && this.props.clientWidth // sizes computed?\n    ) {\n      const subjectEl = getScrollSubjectEl(this.elRef.current, this.props.dateProfile);\n      if (subjectEl) {\n        const originEl = subjectEl.closest('.fc-daygrid-body');\n        const scrollEl = originEl.closest('.fc-scroller');\n        const scrollTop = subjectEl.getBoundingClientRect().top - originEl.getBoundingClientRect().top;\n        scrollEl.scrollTop = scrollTop ? scrollTop + 1 : 0; // overcome border\n      }\n      this.needsScrollReset = false;\n    }\n  }\n}\nfunction getScrollSubjectEl(containerEl, dateProfile) {\n  let el;\n  if (dateProfile.currentRangeUnit.match(/year|month/)) {\n    el = containerEl.querySelector(`[data-date=\"${(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bv)(dateProfile.currentDate)}-01\"]`);\n    // even if view is month-based, first-of-month might be hidden...\n  }\n  if (!el) {\n    el = containerEl.querySelector(`[data-date=\"${(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bt)(dateProfile.currentDate)}\"]`);\n    // could still be hidden if an interior-view hidden day\n  }\n  return el;\n}\nclass DayTableSlicer extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bU {\n  constructor() {\n    super(...arguments);\n    this.forceDayIfListItem = true;\n  }\n  sliceRange(dateRange, dayTableModel) {\n    return dayTableModel.sliceRange(dateRange);\n  }\n}\nclass DayTable extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bc {\n  constructor() {\n    super(...arguments);\n    this.slicer = new DayTableSlicer();\n    this.tableRef = (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n  }\n  render() {\n    let {\n      props,\n      context\n    } = this;\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(Table, Object.assign({\n      ref: this.tableRef\n    }, this.slicer.sliceProps(props, props.dateProfile, props.nextDayThreshold, context, props.dayTableModel), {\n      dateProfile: props.dateProfile,\n      cells: props.dayTableModel.cells,\n      colGroupNode: props.colGroupNode,\n      tableMinWidth: props.tableMinWidth,\n      renderRowIntro: props.renderRowIntro,\n      dayMaxEvents: props.dayMaxEvents,\n      dayMaxEventRows: props.dayMaxEventRows,\n      showWeekNumbers: props.showWeekNumbers,\n      expandRows: props.expandRows,\n      headerAlignElRef: props.headerAlignElRef,\n      clientWidth: props.clientWidth,\n      clientHeight: props.clientHeight,\n      forPrint: props.forPrint\n    }));\n  }\n}\nclass DayTableView extends TableView {\n  constructor() {\n    super(...arguments);\n    this.buildDayTableModel = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(buildDayTableModel);\n    this.headerRef = (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n    this.tableRef = (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n    // can't override any lifecycle methods from parent\n  }\n  render() {\n    let {\n      options,\n      dateProfileGenerator\n    } = this.context;\n    let {\n      props\n    } = this;\n    let dayTableModel = this.buildDayTableModel(props.dateProfile, dateProfileGenerator);\n    let headerContent = options.dayHeaders && (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bI, {\n      ref: this.headerRef,\n      dateProfile: props.dateProfile,\n      dates: dayTableModel.headerDates,\n      datesRepDistinctDays: dayTableModel.rowCnt === 1\n    });\n    let bodyContent = contentArg => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(DayTable, {\n      ref: this.tableRef,\n      dateProfile: props.dateProfile,\n      dayTableModel: dayTableModel,\n      businessHours: props.businessHours,\n      dateSelection: props.dateSelection,\n      eventStore: props.eventStore,\n      eventUiBases: props.eventUiBases,\n      eventSelection: props.eventSelection,\n      eventDrag: props.eventDrag,\n      eventResize: props.eventResize,\n      nextDayThreshold: options.nextDayThreshold,\n      colGroupNode: contentArg.tableColGroupNode,\n      tableMinWidth: contentArg.tableMinWidth,\n      dayMaxEvents: options.dayMaxEvents,\n      dayMaxEventRows: options.dayMaxEventRows,\n      showWeekNumbers: options.weekNumbers,\n      expandRows: !props.isHeightAuto,\n      headerAlignElRef: this.headerElRef,\n      clientWidth: contentArg.clientWidth,\n      clientHeight: contentArg.clientHeight,\n      forPrint: props.forPrint\n    });\n    return options.dayMinWidth ? this.renderHScrollLayout(headerContent, bodyContent, dayTableModel.colCnt, options.dayMinWidth) : this.renderSimpleLayout(headerContent, bodyContent);\n  }\n}\nfunction buildDayTableModel(dateProfile, dateProfileGenerator) {\n  let daySeries = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bM(dateProfile.renderRange, dateProfileGenerator);\n  return new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bT(daySeries, /year|month|week/.test(dateProfile.currentRangeUnit));\n}\nclass TableDateProfileGenerator extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.R {\n  // Computes the date range that will be rendered\n  buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay) {\n    let renderRange = super.buildRenderRange(currentRange, currentRangeUnit, isRangeAllDay);\n    let {\n      props\n    } = this;\n    return buildDayTableRenderRange({\n      currentRange: renderRange,\n      snapToWeek: /^(year|month)$/.test(currentRangeUnit),\n      fixedWeekCount: props.fixedWeekCount,\n      dateEnv: props.dateEnv\n    });\n  }\n}\nfunction buildDayTableRenderRange(props) {\n  let {\n    dateEnv,\n    currentRange\n  } = props;\n  let {\n    start,\n    end\n  } = currentRange;\n  let endOfWeek;\n  // year and month views should be aligned with weeks. this is already done for week\n  if (props.snapToWeek) {\n    start = dateEnv.startOfWeek(start);\n    // make end-of-week if not already\n    endOfWeek = dateEnv.startOfWeek(end);\n    if (endOfWeek.valueOf() !== end.valueOf()) {\n      end = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bf)(endOfWeek, 1);\n    }\n  }\n  // ensure 6 weeks\n  if (props.fixedWeekCount) {\n    // TODO: instead of these date-math gymnastics (for multimonth view),\n    // compute dateprofiles of all months, then use start of first and end of last.\n    let lastMonthRenderStart = dateEnv.startOfWeek(dateEnv.startOfMonth((0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.t)(currentRange.end, -1)));\n    let rowCnt = Math.ceil(\n    // could be partial weeks due to hiddenDays\n    (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bg)(lastMonthRenderStart, end));\n    end = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bf)(end, 6 - rowCnt);\n  }\n  return {\n    start,\n    end\n  };\n}\nvar css_248z = \":root{--fc-daygrid-event-dot-width:8px}.fc-daygrid-day-events:after,.fc-daygrid-day-events:before,.fc-daygrid-day-frame:after,.fc-daygrid-day-frame:before,.fc-daygrid-event-harness:after,.fc-daygrid-event-harness:before{clear:both;content:\\\"\\\";display:table}.fc .fc-daygrid-body{position:relative;z-index:1}.fc .fc-daygrid-day.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-daygrid-day-frame{min-height:100%;position:relative}.fc .fc-daygrid-day-top{display:flex;flex-direction:row-reverse}.fc .fc-day-other .fc-daygrid-day-top{opacity:.3}.fc .fc-daygrid-day-number{padding:4px;position:relative;z-index:4}.fc .fc-daygrid-month-start{font-size:1.1em;font-weight:700}.fc .fc-daygrid-day-events{margin-top:1px}.fc .fc-daygrid-body-balanced .fc-daygrid-day-events{left:0;position:absolute;right:0}.fc .fc-daygrid-body-unbalanced .fc-daygrid-day-events{min-height:2em;position:relative}.fc .fc-daygrid-body-natural .fc-daygrid-day-events{margin-bottom:1em}.fc .fc-daygrid-event-harness{position:relative}.fc .fc-daygrid-event-harness-abs{left:0;position:absolute;right:0;top:0}.fc .fc-daygrid-bg-harness{bottom:0;position:absolute;top:0}.fc .fc-daygrid-day-bg .fc-non-business{z-index:1}.fc .fc-daygrid-day-bg .fc-bg-event{z-index:2}.fc .fc-daygrid-day-bg .fc-highlight{z-index:3}.fc .fc-daygrid-event{margin-top:1px;z-index:6}.fc .fc-daygrid-event.fc-event-mirror{z-index:7}.fc .fc-daygrid-day-bottom{font-size:.85em;margin:0 2px}.fc .fc-daygrid-day-bottom:after,.fc .fc-daygrid-day-bottom:before{clear:both;content:\\\"\\\";display:table}.fc .fc-daygrid-more-link{border-radius:3px;cursor:pointer;line-height:1;margin-top:1px;max-width:100%;overflow:hidden;padding:2px;position:relative;white-space:nowrap;z-index:4}.fc .fc-daygrid-more-link:hover{background-color:rgba(0,0,0,.1)}.fc .fc-daygrid-week-number{background-color:var(--fc-neutral-bg-color);color:var(--fc-neutral-text-color);min-width:1.5em;padding:2px;position:absolute;text-align:center;top:0;z-index:5}.fc .fc-more-popover .fc-popover-body{min-width:220px;padding:10px}.fc-direction-ltr .fc-daygrid-event.fc-event-start,.fc-direction-rtl .fc-daygrid-event.fc-event-end{margin-left:2px}.fc-direction-ltr .fc-daygrid-event.fc-event-end,.fc-direction-rtl .fc-daygrid-event.fc-event-start{margin-right:2px}.fc-direction-ltr .fc-daygrid-more-link{float:left}.fc-direction-ltr .fc-daygrid-week-number{border-radius:0 0 3px 0;left:0}.fc-direction-rtl .fc-daygrid-more-link{float:right}.fc-direction-rtl .fc-daygrid-week-number{border-radius:0 0 0 3px;right:0}.fc-liquid-hack .fc-daygrid-day-frame{position:static}.fc-daygrid-event{border-radius:3px;font-size:var(--fc-small-font-size);position:relative;white-space:nowrap}.fc-daygrid-block-event .fc-event-time{font-weight:700}.fc-daygrid-block-event .fc-event-time,.fc-daygrid-block-event .fc-event-title{padding:1px}.fc-daygrid-dot-event{align-items:center;display:flex;padding:2px 0}.fc-daygrid-dot-event .fc-event-title{flex-grow:1;flex-shrink:1;font-weight:700;min-width:0;overflow:hidden}.fc-daygrid-dot-event.fc-event-mirror,.fc-daygrid-dot-event:hover{background:rgba(0,0,0,.1)}.fc-daygrid-dot-event.fc-event-selected:before{bottom:-10px;top:-10px}.fc-daygrid-event-dot{border:calc(var(--fc-daygrid-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-daygrid-event-dot-width)/2);box-sizing:content-box;height:0;margin:0 4px;width:0}.fc-direction-ltr .fc-daygrid-event .fc-event-time{margin-right:3px}.fc-direction-rtl .fc-daygrid-event .fc-event-time{margin-left:3px}\";\n(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ct)(css_248z);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/daygrid/internal.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/interaction/index.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/interaction/index.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Draggable: () => (/* binding */ ExternalDraggable),\n/* harmony export */   ThirdPartyDraggable: () => (/* binding */ ThirdPartyDraggable),\n/* harmony export */   \"default\": () => (/* binding */ index)\n/* harmony export */ });\n/* harmony import */ var _fullcalendar_core_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @fullcalendar/core/index.js */ \"../react-ui/node_modules/@fullcalendar/core/index.js\");\n/* harmony import */ var _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @fullcalendar/core/internal.js */ \"../react-ui/node_modules/@fullcalendar/core/internal-common.js\");\n\n\n_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bG.touchMouseIgnoreWait = 500;\nlet ignoreMouseDepth = 0;\nlet listenerCnt = 0;\nlet isWindowTouchMoveCancelled = false;\n/*\nUses a \"pointer\" abstraction, which monitors UI events for both mouse and touch.\nTracks when the pointer \"drags\" on a certain element, meaning down+move+up.\n\nAlso, tracks if there was touch-scrolling.\nAlso, can prevent touch-scrolling from happening.\nAlso, can fire pointermove events when scrolling happens underneath, even when no real pointer movement.\n\nemits:\n- pointerdown\n- pointermove\n- pointerup\n*/\nclass PointerDragging {\n  constructor(containerEl) {\n    this.subjectEl = null;\n    // options that can be directly assigned by caller\n    this.selector = ''; // will cause subjectEl in all emitted events to be this element\n    this.handleSelector = '';\n    this.shouldIgnoreMove = false;\n    this.shouldWatchScroll = true; // for simulating pointermove on scroll\n    // internal states\n    this.isDragging = false;\n    this.isTouchDragging = false;\n    this.wasTouchScroll = false;\n    // Mouse\n    // ----------------------------------------------------------------------------------------------------\n    this.handleMouseDown = ev => {\n      if (!this.shouldIgnoreMouse() && isPrimaryMouseButton(ev) && this.tryStart(ev)) {\n        let pev = this.createEventFromMouse(ev, true);\n        this.emitter.trigger('pointerdown', pev);\n        this.initScrollWatch(pev);\n        if (!this.shouldIgnoreMove) {\n          document.addEventListener('mousemove', this.handleMouseMove);\n        }\n        document.addEventListener('mouseup', this.handleMouseUp);\n      }\n    };\n    this.handleMouseMove = ev => {\n      let pev = this.createEventFromMouse(ev);\n      this.recordCoords(pev);\n      this.emitter.trigger('pointermove', pev);\n    };\n    this.handleMouseUp = ev => {\n      document.removeEventListener('mousemove', this.handleMouseMove);\n      document.removeEventListener('mouseup', this.handleMouseUp);\n      this.emitter.trigger('pointerup', this.createEventFromMouse(ev));\n      this.cleanup(); // call last so that pointerup has access to props\n    };\n    // Touch\n    // ----------------------------------------------------------------------------------------------------\n    this.handleTouchStart = ev => {\n      if (this.tryStart(ev)) {\n        this.isTouchDragging = true;\n        let pev = this.createEventFromTouch(ev, true);\n        this.emitter.trigger('pointerdown', pev);\n        this.initScrollWatch(pev);\n        // unlike mouse, need to attach to target, not document\n        // https://stackoverflow.com/a/45760014\n        let targetEl = ev.target;\n        if (!this.shouldIgnoreMove) {\n          targetEl.addEventListener('touchmove', this.handleTouchMove);\n        }\n        targetEl.addEventListener('touchend', this.handleTouchEnd);\n        targetEl.addEventListener('touchcancel', this.handleTouchEnd); // treat it as a touch end\n        // attach a handler to get called when ANY scroll action happens on the page.\n        // this was impossible to do with normal on/off because 'scroll' doesn't bubble.\n        // http://stackoverflow.com/a/32954565/96342\n        window.addEventListener('scroll', this.handleTouchScroll, true);\n      }\n    };\n    this.handleTouchMove = ev => {\n      let pev = this.createEventFromTouch(ev);\n      this.recordCoords(pev);\n      this.emitter.trigger('pointermove', pev);\n    };\n    this.handleTouchEnd = ev => {\n      if (this.isDragging) {\n        // done to guard against touchend followed by touchcancel\n        let targetEl = ev.target;\n        targetEl.removeEventListener('touchmove', this.handleTouchMove);\n        targetEl.removeEventListener('touchend', this.handleTouchEnd);\n        targetEl.removeEventListener('touchcancel', this.handleTouchEnd);\n        window.removeEventListener('scroll', this.handleTouchScroll, true); // useCaptured=true\n        this.emitter.trigger('pointerup', this.createEventFromTouch(ev));\n        this.cleanup(); // call last so that pointerup has access to props\n        this.isTouchDragging = false;\n        startIgnoringMouse();\n      }\n    };\n    this.handleTouchScroll = () => {\n      this.wasTouchScroll = true;\n    };\n    this.handleScroll = ev => {\n      if (!this.shouldIgnoreMove) {\n        let pageX = window.scrollX - this.prevScrollX + this.prevPageX;\n        let pageY = window.scrollY - this.prevScrollY + this.prevPageY;\n        this.emitter.trigger('pointermove', {\n          origEvent: ev,\n          isTouch: this.isTouchDragging,\n          subjectEl: this.subjectEl,\n          pageX,\n          pageY,\n          deltaX: pageX - this.origPageX,\n          deltaY: pageY - this.origPageY\n        });\n      }\n    };\n    this.containerEl = containerEl;\n    this.emitter = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.F();\n    containerEl.addEventListener('mousedown', this.handleMouseDown);\n    containerEl.addEventListener('touchstart', this.handleTouchStart, {\n      passive: true\n    });\n    listenerCreated();\n  }\n  destroy() {\n    this.containerEl.removeEventListener('mousedown', this.handleMouseDown);\n    this.containerEl.removeEventListener('touchstart', this.handleTouchStart, {\n      passive: true\n    });\n    listenerDestroyed();\n  }\n  tryStart(ev) {\n    let subjectEl = this.querySubjectEl(ev);\n    let downEl = ev.target;\n    if (subjectEl && (!this.handleSelector || (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.Z)(downEl, this.handleSelector))) {\n      this.subjectEl = subjectEl;\n      this.isDragging = true; // do this first so cancelTouchScroll will work\n      this.wasTouchScroll = false;\n      return true;\n    }\n    return false;\n  }\n  cleanup() {\n    isWindowTouchMoveCancelled = false;\n    this.isDragging = false;\n    this.subjectEl = null;\n    // keep wasTouchScroll around for later access\n    this.destroyScrollWatch();\n  }\n  querySubjectEl(ev) {\n    if (this.selector) {\n      return (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.Z)(ev.target, this.selector);\n    }\n    return this.containerEl;\n  }\n  shouldIgnoreMouse() {\n    return ignoreMouseDepth || this.isTouchDragging;\n  }\n  // can be called by user of this class, to cancel touch-based scrolling for the current drag\n  cancelTouchScroll() {\n    if (this.isDragging) {\n      isWindowTouchMoveCancelled = true;\n    }\n  }\n  // Scrolling that simulates pointermoves\n  // ----------------------------------------------------------------------------------------------------\n  initScrollWatch(ev) {\n    if (this.shouldWatchScroll) {\n      this.recordCoords(ev);\n      window.addEventListener('scroll', this.handleScroll, true); // useCapture=true\n    }\n  }\n  recordCoords(ev) {\n    if (this.shouldWatchScroll) {\n      this.prevPageX = ev.pageX;\n      this.prevPageY = ev.pageY;\n      this.prevScrollX = window.scrollX;\n      this.prevScrollY = window.scrollY;\n    }\n  }\n  destroyScrollWatch() {\n    if (this.shouldWatchScroll) {\n      window.removeEventListener('scroll', this.handleScroll, true); // useCaptured=true\n    }\n  }\n  // Event Normalization\n  // ----------------------------------------------------------------------------------------------------\n  createEventFromMouse(ev, isFirst) {\n    let deltaX = 0;\n    let deltaY = 0;\n    // TODO: repeat code\n    if (isFirst) {\n      this.origPageX = ev.pageX;\n      this.origPageY = ev.pageY;\n    } else {\n      deltaX = ev.pageX - this.origPageX;\n      deltaY = ev.pageY - this.origPageY;\n    }\n    return {\n      origEvent: ev,\n      isTouch: false,\n      subjectEl: this.subjectEl,\n      pageX: ev.pageX,\n      pageY: ev.pageY,\n      deltaX,\n      deltaY\n    };\n  }\n  createEventFromTouch(ev, isFirst) {\n    let touches = ev.touches;\n    let pageX;\n    let pageY;\n    let deltaX = 0;\n    let deltaY = 0;\n    // if touch coords available, prefer,\n    // because FF would give bad ev.pageX ev.pageY\n    if (touches && touches.length) {\n      pageX = touches[0].pageX;\n      pageY = touches[0].pageY;\n    } else {\n      pageX = ev.pageX;\n      pageY = ev.pageY;\n    }\n    // TODO: repeat code\n    if (isFirst) {\n      this.origPageX = pageX;\n      this.origPageY = pageY;\n    } else {\n      deltaX = pageX - this.origPageX;\n      deltaY = pageY - this.origPageY;\n    }\n    return {\n      origEvent: ev,\n      isTouch: true,\n      subjectEl: this.subjectEl,\n      pageX,\n      pageY,\n      deltaX,\n      deltaY\n    };\n  }\n}\n// Returns a boolean whether this was a left mouse click and no ctrl key (which means right click on Mac)\nfunction isPrimaryMouseButton(ev) {\n  return ev.button === 0 && !ev.ctrlKey;\n}\n// Ignoring fake mouse events generated by touch\n// ----------------------------------------------------------------------------------------------------\nfunction startIgnoringMouse() {\n  ignoreMouseDepth += 1;\n  setTimeout(() => {\n    ignoreMouseDepth -= 1;\n  }, _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bG.touchMouseIgnoreWait);\n}\n// We want to attach touchmove as early as possible for Safari\n// ----------------------------------------------------------------------------------------------------\nfunction listenerCreated() {\n  listenerCnt += 1;\n  if (listenerCnt === 1) {\n    window.addEventListener('touchmove', onWindowTouchMove, {\n      passive: false\n    });\n  }\n}\nfunction listenerDestroyed() {\n  listenerCnt -= 1;\n  if (!listenerCnt) {\n    window.removeEventListener('touchmove', onWindowTouchMove, {\n      passive: false\n    });\n  }\n}\nfunction onWindowTouchMove(ev) {\n  if (isWindowTouchMoveCancelled) {\n    ev.preventDefault();\n  }\n}\n\n/*\nAn effect in which an element follows the movement of a pointer across the screen.\nThe moving element is a clone of some other element.\nMust call start + handleMove + stop.\n*/\nclass ElementMirror {\n  constructor() {\n    this.isVisible = false; // must be explicitly enabled\n    this.sourceEl = null;\n    this.mirrorEl = null;\n    this.sourceElRect = null; // screen coords relative to viewport\n    // options that can be set directly by caller\n    this.parentNode = document.body; // HIGHLY SUGGESTED to set this to sidestep ShadowDOM issues\n    this.zIndex = 9999;\n    this.revertDuration = 0;\n  }\n  start(sourceEl, pageX, pageY) {\n    this.sourceEl = sourceEl;\n    this.sourceElRect = this.sourceEl.getBoundingClientRect();\n    this.origScreenX = pageX - window.scrollX;\n    this.origScreenY = pageY - window.scrollY;\n    this.deltaX = 0;\n    this.deltaY = 0;\n    this.updateElPosition();\n  }\n  handleMove(pageX, pageY) {\n    this.deltaX = pageX - window.scrollX - this.origScreenX;\n    this.deltaY = pageY - window.scrollY - this.origScreenY;\n    this.updateElPosition();\n  }\n  // can be called before start\n  setIsVisible(bool) {\n    if (bool) {\n      if (!this.isVisible) {\n        if (this.mirrorEl) {\n          this.mirrorEl.style.display = '';\n        }\n        this.isVisible = bool; // needs to happen before updateElPosition\n        this.updateElPosition(); // because was not updating the position while invisible\n      }\n    } else if (this.isVisible) {\n      if (this.mirrorEl) {\n        this.mirrorEl.style.display = 'none';\n      }\n      this.isVisible = bool;\n    }\n  }\n  // always async\n  stop(needsRevertAnimation, callback) {\n    let done = () => {\n      this.cleanup();\n      callback();\n    };\n    if (needsRevertAnimation && this.mirrorEl && this.isVisible && this.revertDuration && (\n    // if 0, transition won't work\n    this.deltaX || this.deltaY) // if same coords, transition won't work\n    ) {\n      this.doRevertAnimation(done, this.revertDuration);\n    } else {\n      setTimeout(done, 0);\n    }\n  }\n  doRevertAnimation(callback, revertDuration) {\n    let mirrorEl = this.mirrorEl;\n    let finalSourceElRect = this.sourceEl.getBoundingClientRect(); // because autoscrolling might have happened\n    mirrorEl.style.transition = 'top ' + revertDuration + 'ms,' + 'left ' + revertDuration + 'ms';\n    (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aN)(mirrorEl, {\n      left: finalSourceElRect.left,\n      top: finalSourceElRect.top\n    });\n    (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.b0)(mirrorEl, () => {\n      mirrorEl.style.transition = '';\n      callback();\n    });\n  }\n  cleanup() {\n    if (this.mirrorEl) {\n      (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aM)(this.mirrorEl);\n      this.mirrorEl = null;\n    }\n    this.sourceEl = null;\n  }\n  updateElPosition() {\n    if (this.sourceEl && this.isVisible) {\n      (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aN)(this.getMirrorEl(), {\n        left: this.sourceElRect.left + this.deltaX,\n        top: this.sourceElRect.top + this.deltaY\n      });\n    }\n  }\n  getMirrorEl() {\n    let sourceElRect = this.sourceElRect;\n    let mirrorEl = this.mirrorEl;\n    if (!mirrorEl) {\n      mirrorEl = this.mirrorEl = this.sourceEl.cloneNode(true); // cloneChildren=true\n      // we don't want long taps or any mouse interaction causing selection/menus.\n      // would use preventSelection(), but that prevents selectstart, causing problems.\n      mirrorEl.style.userSelect = 'none';\n      mirrorEl.style.webkitUserSelect = 'none';\n      mirrorEl.style.pointerEvents = 'none';\n      mirrorEl.classList.add('fc-event-dragging');\n      (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aN)(mirrorEl, {\n        position: 'fixed',\n        zIndex: this.zIndex,\n        visibility: '',\n        boxSizing: 'border-box',\n        width: sourceElRect.right - sourceElRect.left,\n        height: sourceElRect.bottom - sourceElRect.top,\n        right: 'auto',\n        bottom: 'auto',\n        margin: 0\n      });\n      this.parentNode.appendChild(mirrorEl);\n    }\n    return mirrorEl;\n  }\n}\n\n/*\nIs a cache for a given element's scroll information (all the info that ScrollController stores)\nin addition the \"client rectangle\" of the element.. the area within the scrollbars.\n\nThe cache can be in one of two modes:\n- doesListening:false - ignores when the container is scrolled by someone else\n- doesListening:true - watch for scrolling and update the cache\n*/\nclass ScrollGeomCache extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.b9 {\n  constructor(scrollController, doesListening) {\n    super();\n    this.handleScroll = () => {\n      this.scrollTop = this.scrollController.getScrollTop();\n      this.scrollLeft = this.scrollController.getScrollLeft();\n      this.handleScrollChange();\n    };\n    this.scrollController = scrollController;\n    this.doesListening = doesListening;\n    this.scrollTop = this.origScrollTop = scrollController.getScrollTop();\n    this.scrollLeft = this.origScrollLeft = scrollController.getScrollLeft();\n    this.scrollWidth = scrollController.getScrollWidth();\n    this.scrollHeight = scrollController.getScrollHeight();\n    this.clientWidth = scrollController.getClientWidth();\n    this.clientHeight = scrollController.getClientHeight();\n    this.clientRect = this.computeClientRect(); // do last in case it needs cached values\n    if (this.doesListening) {\n      this.getEventTarget().addEventListener('scroll', this.handleScroll);\n    }\n  }\n  destroy() {\n    if (this.doesListening) {\n      this.getEventTarget().removeEventListener('scroll', this.handleScroll);\n    }\n  }\n  getScrollTop() {\n    return this.scrollTop;\n  }\n  getScrollLeft() {\n    return this.scrollLeft;\n  }\n  setScrollTop(top) {\n    this.scrollController.setScrollTop(top);\n    if (!this.doesListening) {\n      // we are not relying on the element to normalize out-of-bounds scroll values\n      // so we need to sanitize ourselves\n      this.scrollTop = Math.max(Math.min(top, this.getMaxScrollTop()), 0);\n      this.handleScrollChange();\n    }\n  }\n  setScrollLeft(top) {\n    this.scrollController.setScrollLeft(top);\n    if (!this.doesListening) {\n      // we are not relying on the element to normalize out-of-bounds scroll values\n      // so we need to sanitize ourselves\n      this.scrollLeft = Math.max(Math.min(top, this.getMaxScrollLeft()), 0);\n      this.handleScrollChange();\n    }\n  }\n  getClientWidth() {\n    return this.clientWidth;\n  }\n  getClientHeight() {\n    return this.clientHeight;\n  }\n  getScrollWidth() {\n    return this.scrollWidth;\n  }\n  getScrollHeight() {\n    return this.scrollHeight;\n  }\n  handleScrollChange() {}\n}\nclass ElementScrollGeomCache extends ScrollGeomCache {\n  constructor(el, doesListening) {\n    super(new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.ba(el), doesListening);\n  }\n  getEventTarget() {\n    return this.scrollController.el;\n  }\n  computeClientRect() {\n    return (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.b1)(this.scrollController.el);\n  }\n}\nclass WindowScrollGeomCache extends ScrollGeomCache {\n  constructor(doesListening) {\n    super(new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bb(), doesListening);\n  }\n  getEventTarget() {\n    return window;\n  }\n  computeClientRect() {\n    return {\n      left: this.scrollLeft,\n      right: this.scrollLeft + this.clientWidth,\n      top: this.scrollTop,\n      bottom: this.scrollTop + this.clientHeight\n    };\n  }\n  // the window is the only scroll object that changes it's rectangle relative\n  // to the document's topleft as it scrolls\n  handleScrollChange() {\n    this.clientRect = this.computeClientRect();\n  }\n}\n\n// If available we are using native \"performance\" API instead of \"Date\"\n// Read more about it on MDN:\n// https://developer.mozilla.org/en-US/docs/Web/API/Performance\nconst getTime = typeof performance === 'function' ? performance.now : Date.now;\n/*\nFor a pointer interaction, automatically scrolls certain scroll containers when the pointer\napproaches the edge.\n\nThe caller must call start + handleMove + stop.\n*/\nclass AutoScroller {\n  constructor() {\n    // options that can be set by caller\n    this.isEnabled = true;\n    this.scrollQuery = [window, '.fc-scroller'];\n    this.edgeThreshold = 50; // pixels\n    this.maxVelocity = 300; // pixels per second\n    // internal state\n    this.pointerScreenX = null;\n    this.pointerScreenY = null;\n    this.isAnimating = false;\n    this.scrollCaches = null;\n    // protect against the initial pointerdown being too close to an edge and starting the scroll\n    this.everMovedUp = false;\n    this.everMovedDown = false;\n    this.everMovedLeft = false;\n    this.everMovedRight = false;\n    this.animate = () => {\n      if (this.isAnimating) {\n        // wasn't cancelled between animation calls\n        let edge = this.computeBestEdge(this.pointerScreenX + window.scrollX, this.pointerScreenY + window.scrollY);\n        if (edge) {\n          let now = getTime();\n          this.handleSide(edge, (now - this.msSinceRequest) / 1000);\n          this.requestAnimation(now);\n        } else {\n          this.isAnimating = false; // will stop animation\n        }\n      }\n    };\n  }\n  start(pageX, pageY, scrollStartEl) {\n    if (this.isEnabled) {\n      this.scrollCaches = this.buildCaches(scrollStartEl);\n      this.pointerScreenX = null;\n      this.pointerScreenY = null;\n      this.everMovedUp = false;\n      this.everMovedDown = false;\n      this.everMovedLeft = false;\n      this.everMovedRight = false;\n      this.handleMove(pageX, pageY);\n    }\n  }\n  handleMove(pageX, pageY) {\n    if (this.isEnabled) {\n      let pointerScreenX = pageX - window.scrollX;\n      let pointerScreenY = pageY - window.scrollY;\n      let yDelta = this.pointerScreenY === null ? 0 : pointerScreenY - this.pointerScreenY;\n      let xDelta = this.pointerScreenX === null ? 0 : pointerScreenX - this.pointerScreenX;\n      if (yDelta < 0) {\n        this.everMovedUp = true;\n      } else if (yDelta > 0) {\n        this.everMovedDown = true;\n      }\n      if (xDelta < 0) {\n        this.everMovedLeft = true;\n      } else if (xDelta > 0) {\n        this.everMovedRight = true;\n      }\n      this.pointerScreenX = pointerScreenX;\n      this.pointerScreenY = pointerScreenY;\n      if (!this.isAnimating) {\n        this.isAnimating = true;\n        this.requestAnimation(getTime());\n      }\n    }\n  }\n  stop() {\n    if (this.isEnabled) {\n      this.isAnimating = false; // will stop animation\n      for (let scrollCache of this.scrollCaches) {\n        scrollCache.destroy();\n      }\n      this.scrollCaches = null;\n    }\n  }\n  requestAnimation(now) {\n    this.msSinceRequest = now;\n    requestAnimationFrame(this.animate);\n  }\n  handleSide(edge, seconds) {\n    let {\n      scrollCache\n    } = edge;\n    let {\n      edgeThreshold\n    } = this;\n    let invDistance = edgeThreshold - edge.distance;\n    let velocity =\n    // the closer to the edge, the faster we scroll\n    invDistance * invDistance / (edgeThreshold * edgeThreshold) *\n    // quadratic\n    this.maxVelocity * seconds;\n    let sign = 1;\n    switch (edge.name) {\n      case 'left':\n        sign = -1;\n      // falls through\n      case 'right':\n        scrollCache.setScrollLeft(scrollCache.getScrollLeft() + velocity * sign);\n        break;\n      case 'top':\n        sign = -1;\n      // falls through\n      case 'bottom':\n        scrollCache.setScrollTop(scrollCache.getScrollTop() + velocity * sign);\n        break;\n    }\n  }\n  // left/top are relative to document topleft\n  computeBestEdge(left, top) {\n    let {\n      edgeThreshold\n    } = this;\n    let bestSide = null;\n    let scrollCaches = this.scrollCaches || [];\n    for (let scrollCache of scrollCaches) {\n      let rect = scrollCache.clientRect;\n      let leftDist = left - rect.left;\n      let rightDist = rect.right - left;\n      let topDist = top - rect.top;\n      let bottomDist = rect.bottom - top;\n      // completely within the rect?\n      if (leftDist >= 0 && rightDist >= 0 && topDist >= 0 && bottomDist >= 0) {\n        if (topDist <= edgeThreshold && this.everMovedUp && scrollCache.canScrollUp() && (!bestSide || bestSide.distance > topDist)) {\n          bestSide = {\n            scrollCache,\n            name: 'top',\n            distance: topDist\n          };\n        }\n        if (bottomDist <= edgeThreshold && this.everMovedDown && scrollCache.canScrollDown() && (!bestSide || bestSide.distance > bottomDist)) {\n          bestSide = {\n            scrollCache,\n            name: 'bottom',\n            distance: bottomDist\n          };\n        }\n        /*\n        TODO: fix broken RTL scrolling. canScrollLeft always returning false\n        https://github.com/fullcalendar/fullcalendar/issues/4837\n        */\n        if (leftDist <= edgeThreshold && this.everMovedLeft && scrollCache.canScrollLeft() && (!bestSide || bestSide.distance > leftDist)) {\n          bestSide = {\n            scrollCache,\n            name: 'left',\n            distance: leftDist\n          };\n        }\n        if (rightDist <= edgeThreshold && this.everMovedRight && scrollCache.canScrollRight() && (!bestSide || bestSide.distance > rightDist)) {\n          bestSide = {\n            scrollCache,\n            name: 'right',\n            distance: rightDist\n          };\n        }\n      }\n    }\n    return bestSide;\n  }\n  buildCaches(scrollStartEl) {\n    return this.queryScrollEls(scrollStartEl).map(el => {\n      if (el === window) {\n        return new WindowScrollGeomCache(false); // false = don't listen to user-generated scrolls\n      }\n      return new ElementScrollGeomCache(el, false); // false = don't listen to user-generated scrolls\n    });\n  }\n  queryScrollEls(scrollStartEl) {\n    let els = [];\n    for (let query of this.scrollQuery) {\n      if (typeof query === 'object') {\n        els.push(query);\n      } else {\n        /*\n        TODO: in the future, always have auto-scroll happen on element where current Hit came from\n        Ticket: https://github.com/fullcalendar/fullcalendar/issues/4593\n        */\n        els.push(...Array.prototype.slice.call(scrollStartEl.getRootNode().querySelectorAll(query)));\n      }\n    }\n    return els;\n  }\n}\n\n/*\nMonitors dragging on an element. Has a number of high-level features:\n- minimum distance required before dragging\n- minimum wait time (\"delay\") before dragging\n- a mirror element that follows the pointer\n*/\nclass FeaturefulElementDragging extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bF {\n  constructor(containerEl, selector) {\n    super(containerEl);\n    this.containerEl = containerEl;\n    // options that can be directly set by caller\n    // the caller can also set the PointerDragging's options as well\n    this.delay = null;\n    this.minDistance = 0;\n    this.touchScrollAllowed = true; // prevents drag from starting and blocks scrolling during drag\n    this.mirrorNeedsRevert = false;\n    this.isInteracting = false; // is the user validly moving the pointer? lasts until pointerup\n    this.isDragging = false; // is it INTENTFULLY dragging? lasts until after revert animation\n    this.isDelayEnded = false;\n    this.isDistanceSurpassed = false;\n    this.delayTimeoutId = null;\n    this.onPointerDown = ev => {\n      if (!this.isDragging) {\n        // so new drag doesn't happen while revert animation is going\n        this.isInteracting = true;\n        this.isDelayEnded = false;\n        this.isDistanceSurpassed = false;\n        (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.ap)(document.body);\n        (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.ar)(document.body);\n        // prevent links from being visited if there's an eventual drag.\n        // also prevents selection in older browsers (maybe?).\n        // not necessary for touch, besides, browser would complain about passiveness.\n        if (!ev.isTouch) {\n          ev.origEvent.preventDefault();\n        }\n        this.emitter.trigger('pointerdown', ev);\n        if (this.isInteracting &&\n        // not destroyed via pointerdown handler\n        !this.pointer.shouldIgnoreMove) {\n          // actions related to initiating dragstart+dragmove+dragend...\n          this.mirror.setIsVisible(false); // reset. caller must set-visible\n          this.mirror.start(ev.subjectEl, ev.pageX, ev.pageY); // must happen on first pointer down\n          this.startDelay(ev);\n          if (!this.minDistance) {\n            this.handleDistanceSurpassed(ev);\n          }\n        }\n      }\n    };\n    this.onPointerMove = ev => {\n      if (this.isInteracting) {\n        this.emitter.trigger('pointermove', ev);\n        if (!this.isDistanceSurpassed) {\n          let minDistance = this.minDistance;\n          let distanceSq; // current distance from the origin, squared\n          let {\n            deltaX,\n            deltaY\n          } = ev;\n          distanceSq = deltaX * deltaX + deltaY * deltaY;\n          if (distanceSq >= minDistance * minDistance) {\n            // use pythagorean theorem\n            this.handleDistanceSurpassed(ev);\n          }\n        }\n        if (this.isDragging) {\n          // a real pointer move? (not one simulated by scrolling)\n          if (ev.origEvent.type !== 'scroll') {\n            this.mirror.handleMove(ev.pageX, ev.pageY);\n            this.autoScroller.handleMove(ev.pageX, ev.pageY);\n          }\n          this.emitter.trigger('dragmove', ev);\n        }\n      }\n    };\n    this.onPointerUp = ev => {\n      if (this.isInteracting) {\n        this.isInteracting = false;\n        (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aq)(document.body);\n        (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.as)(document.body);\n        this.emitter.trigger('pointerup', ev); // can potentially set mirrorNeedsRevert\n        if (this.isDragging) {\n          this.autoScroller.stop();\n          this.tryStopDrag(ev); // which will stop the mirror\n        }\n        if (this.delayTimeoutId) {\n          clearTimeout(this.delayTimeoutId);\n          this.delayTimeoutId = null;\n        }\n      }\n    };\n    let pointer = this.pointer = new PointerDragging(containerEl);\n    pointer.emitter.on('pointerdown', this.onPointerDown);\n    pointer.emitter.on('pointermove', this.onPointerMove);\n    pointer.emitter.on('pointerup', this.onPointerUp);\n    if (selector) {\n      pointer.selector = selector;\n    }\n    this.mirror = new ElementMirror();\n    this.autoScroller = new AutoScroller();\n  }\n  destroy() {\n    this.pointer.destroy();\n    // HACK: simulate a pointer-up to end the current drag\n    // TODO: fire 'dragend' directly and stop interaction. discourage use of pointerup event (b/c might not fire)\n    this.onPointerUp({});\n  }\n  startDelay(ev) {\n    if (typeof this.delay === 'number') {\n      this.delayTimeoutId = setTimeout(() => {\n        this.delayTimeoutId = null;\n        this.handleDelayEnd(ev);\n      }, this.delay); // not assignable to number!\n    } else {\n      this.handleDelayEnd(ev);\n    }\n  }\n  handleDelayEnd(ev) {\n    this.isDelayEnded = true;\n    this.tryStartDrag(ev);\n  }\n  handleDistanceSurpassed(ev) {\n    this.isDistanceSurpassed = true;\n    this.tryStartDrag(ev);\n  }\n  tryStartDrag(ev) {\n    if (this.isDelayEnded && this.isDistanceSurpassed) {\n      if (!this.pointer.wasTouchScroll || this.touchScrollAllowed) {\n        this.isDragging = true;\n        this.mirrorNeedsRevert = false;\n        this.autoScroller.start(ev.pageX, ev.pageY, this.containerEl);\n        this.emitter.trigger('dragstart', ev);\n        if (this.touchScrollAllowed === false) {\n          this.pointer.cancelTouchScroll();\n        }\n      }\n    }\n  }\n  tryStopDrag(ev) {\n    // .stop() is ALWAYS asynchronous, which we NEED because we want all pointerup events\n    // that come from the document to fire beforehand. much more convenient this way.\n    this.mirror.stop(this.mirrorNeedsRevert, this.stopDrag.bind(this, ev));\n  }\n  stopDrag(ev) {\n    this.isDragging = false;\n    this.emitter.trigger('dragend', ev);\n  }\n  // fill in the implementations...\n  setIgnoreMove(bool) {\n    this.pointer.shouldIgnoreMove = bool;\n  }\n  setMirrorIsVisible(bool) {\n    this.mirror.setIsVisible(bool);\n  }\n  setMirrorNeedsRevert(bool) {\n    this.mirrorNeedsRevert = bool;\n  }\n  setAutoScrollEnabled(bool) {\n    this.autoScroller.isEnabled = bool;\n  }\n}\n\n/*\nWhen this class is instantiated, it records the offset of an element (relative to the document topleft),\nand continues to monitor scrolling, updating the cached coordinates if it needs to.\nDoes not access the DOM after instantiation, so highly performant.\n\nAlso keeps track of all scrolling/overflow:hidden containers that are parents of the given element\nand an determine if a given point is inside the combined clipping rectangle.\n*/\nclass OffsetTracker {\n  constructor(el) {\n    this.el = el;\n    this.origRect = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.b4)(el);\n    // will work fine for divs that have overflow:hidden\n    this.scrollCaches = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.b3)(el).map(scrollEl => new ElementScrollGeomCache(scrollEl, true));\n  }\n  destroy() {\n    for (let scrollCache of this.scrollCaches) {\n      scrollCache.destroy();\n    }\n  }\n  computeLeft() {\n    let left = this.origRect.left;\n    for (let scrollCache of this.scrollCaches) {\n      left += scrollCache.origScrollLeft - scrollCache.getScrollLeft();\n    }\n    return left;\n  }\n  computeTop() {\n    let top = this.origRect.top;\n    for (let scrollCache of this.scrollCaches) {\n      top += scrollCache.origScrollTop - scrollCache.getScrollTop();\n    }\n    return top;\n  }\n  isWithinClipping(pageX, pageY) {\n    let point = {\n      left: pageX,\n      top: pageY\n    };\n    for (let scrollCache of this.scrollCaches) {\n      if (!isIgnoredClipping(scrollCache.getEventTarget()) && !(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aD)(point, scrollCache.clientRect)) {\n        return false;\n      }\n    }\n    return true;\n  }\n}\n// certain clipping containers should never constrain interactions, like <html> and <body>\n// https://github.com/fullcalendar/fullcalendar/issues/3615\nfunction isIgnoredClipping(node) {\n  let tagName = node.tagName;\n  return tagName === 'HTML' || tagName === 'BODY';\n}\n\n/*\nTracks movement over multiple droppable areas (aka \"hits\")\nthat exist in one or more DateComponents.\nRelies on an existing draggable.\n\nemits:\n- pointerdown\n- dragstart\n- hitchange - fires initially, even if not over a hit\n- pointerup\n- (hitchange - again, to null, if ended over a hit)\n- dragend\n*/\nclass HitDragging {\n  constructor(dragging, droppableStore) {\n    // options that can be set by caller\n    this.useSubjectCenter = false;\n    this.requireInitial = true; // if doesn't start out on a hit, won't emit any events\n    this.disablePointCheck = false;\n    this.initialHit = null;\n    this.movingHit = null;\n    this.finalHit = null; // won't ever be populated if shouldIgnoreMove\n    this.handlePointerDown = ev => {\n      let {\n        dragging\n      } = this;\n      this.initialHit = null;\n      this.movingHit = null;\n      this.finalHit = null;\n      this.prepareHits();\n      this.processFirstCoord(ev);\n      if (this.initialHit || !this.requireInitial) {\n        dragging.setIgnoreMove(false);\n        // TODO: fire this before computing processFirstCoord, so listeners can cancel. this gets fired by almost every handler :(\n        this.emitter.trigger('pointerdown', ev);\n      } else {\n        dragging.setIgnoreMove(true);\n      }\n    };\n    this.handleDragStart = ev => {\n      this.emitter.trigger('dragstart', ev);\n      this.handleMove(ev, true); // force = fire even if initially null\n    };\n    this.handleDragMove = ev => {\n      this.emitter.trigger('dragmove', ev);\n      this.handleMove(ev);\n    };\n    this.handlePointerUp = ev => {\n      this.releaseHits();\n      this.emitter.trigger('pointerup', ev);\n    };\n    this.handleDragEnd = ev => {\n      if (this.movingHit) {\n        this.emitter.trigger('hitupdate', null, true, ev);\n      }\n      this.finalHit = this.movingHit;\n      this.movingHit = null;\n      this.emitter.trigger('dragend', ev);\n    };\n    this.droppableStore = droppableStore;\n    dragging.emitter.on('pointerdown', this.handlePointerDown);\n    dragging.emitter.on('dragstart', this.handleDragStart);\n    dragging.emitter.on('dragmove', this.handleDragMove);\n    dragging.emitter.on('pointerup', this.handlePointerUp);\n    dragging.emitter.on('dragend', this.handleDragEnd);\n    this.dragging = dragging;\n    this.emitter = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.F();\n  }\n  // sets initialHit\n  // sets coordAdjust\n  processFirstCoord(ev) {\n    let origPoint = {\n      left: ev.pageX,\n      top: ev.pageY\n    };\n    let adjustedPoint = origPoint;\n    let subjectEl = ev.subjectEl;\n    let subjectRect;\n    if (subjectEl instanceof HTMLElement) {\n      // i.e. not a Document/ShadowRoot\n      subjectRect = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.b4)(subjectEl);\n      adjustedPoint = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aE)(adjustedPoint, subjectRect);\n    }\n    let initialHit = this.initialHit = this.queryHitForOffset(adjustedPoint.left, adjustedPoint.top);\n    if (initialHit) {\n      if (this.useSubjectCenter && subjectRect) {\n        let slicedSubjectRect = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aC)(subjectRect, initialHit.rect);\n        if (slicedSubjectRect) {\n          adjustedPoint = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aF)(slicedSubjectRect);\n        }\n      }\n      this.coordAdjust = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aG)(adjustedPoint, origPoint);\n    } else {\n      this.coordAdjust = {\n        left: 0,\n        top: 0\n      };\n    }\n  }\n  handleMove(ev, forceHandle) {\n    let hit = this.queryHitForOffset(ev.pageX + this.coordAdjust.left, ev.pageY + this.coordAdjust.top);\n    if (forceHandle || !isHitsEqual(this.movingHit, hit)) {\n      this.movingHit = hit;\n      this.emitter.trigger('hitupdate', hit, false, ev);\n    }\n  }\n  prepareHits() {\n    this.offsetTrackers = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.a)(this.droppableStore, interactionSettings => {\n      interactionSettings.component.prepareHits();\n      return new OffsetTracker(interactionSettings.el);\n    });\n  }\n  releaseHits() {\n    let {\n      offsetTrackers\n    } = this;\n    for (let id in offsetTrackers) {\n      offsetTrackers[id].destroy();\n    }\n    this.offsetTrackers = {};\n  }\n  queryHitForOffset(offsetLeft, offsetTop) {\n    let {\n      droppableStore,\n      offsetTrackers\n    } = this;\n    let bestHit = null;\n    for (let id in droppableStore) {\n      let component = droppableStore[id].component;\n      let offsetTracker = offsetTrackers[id];\n      if (offsetTracker &&\n      // wasn't destroyed mid-drag\n      offsetTracker.isWithinClipping(offsetLeft, offsetTop)) {\n        let originLeft = offsetTracker.computeLeft();\n        let originTop = offsetTracker.computeTop();\n        let positionLeft = offsetLeft - originLeft;\n        let positionTop = offsetTop - originTop;\n        let {\n          origRect\n        } = offsetTracker;\n        let width = origRect.right - origRect.left;\n        let height = origRect.bottom - origRect.top;\n        if (\n        // must be within the element's bounds\n        positionLeft >= 0 && positionLeft < width && positionTop >= 0 && positionTop < height) {\n          let hit = component.queryHit(positionLeft, positionTop, width, height);\n          if (hit &&\n          // make sure the hit is within activeRange, meaning it's not a dead cell\n          (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.b7)(hit.dateProfile.activeRange, hit.dateSpan.range) && (\n          // Ensure the component we are querying for the hit is accessibly my the pointer\n          // Prevents obscured calendars (ex: under a modal dialog) from accepting hit\n          // https://github.com/fullcalendar/fullcalendar/issues/5026\n          this.disablePointCheck || offsetTracker.el.contains(offsetTracker.el.getRootNode().elementFromPoint(\n          // add-back origins to get coordinate relative to top-left of window viewport\n          positionLeft + originLeft - window.scrollX, positionTop + originTop - window.scrollY))) && (!bestHit || hit.layer > bestHit.layer)) {\n            hit.componentId = id;\n            hit.context = component.context;\n            // TODO: better way to re-orient rectangle\n            hit.rect.left += originLeft;\n            hit.rect.right += originLeft;\n            hit.rect.top += originTop;\n            hit.rect.bottom += originTop;\n            bestHit = hit;\n          }\n        }\n      }\n    }\n    return bestHit;\n  }\n}\nfunction isHitsEqual(hit0, hit1) {\n  if (!hit0 && !hit1) {\n    return true;\n  }\n  if (Boolean(hit0) !== Boolean(hit1)) {\n    return false;\n  }\n  return (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bd)(hit0.dateSpan, hit1.dateSpan);\n}\nfunction buildDatePointApiWithContext(dateSpan, context) {\n  let props = {};\n  for (let transform of context.pluginHooks.datePointTransforms) {\n    Object.assign(props, transform(dateSpan, context));\n  }\n  Object.assign(props, buildDatePointApi(dateSpan, context.dateEnv));\n  return props;\n}\nfunction buildDatePointApi(span, dateEnv) {\n  return {\n    date: dateEnv.toDate(span.range.start),\n    dateStr: dateEnv.formatIso(span.range.start, {\n      omitTime: span.allDay\n    }),\n    allDay: span.allDay\n  };\n}\n\n/*\nMonitors when the user clicks on a specific date/time of a component.\nA pointerdown+pointerup on the same \"hit\" constitutes a click.\n*/\nclass DateClicking extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.X {\n  constructor(settings) {\n    super(settings);\n    this.handlePointerDown = pev => {\n      let {\n        dragging\n      } = this;\n      let downEl = pev.origEvent.target;\n      // do this in pointerdown (not dragend) because DOM might be mutated by the time dragend is fired\n      dragging.setIgnoreMove(!this.component.isValidDateDownEl(downEl));\n    };\n    // won't even fire if moving was ignored\n    this.handleDragEnd = ev => {\n      let {\n        component\n      } = this;\n      let {\n        pointer\n      } = this.dragging;\n      if (!pointer.wasTouchScroll) {\n        let {\n          initialHit,\n          finalHit\n        } = this.hitDragging;\n        if (initialHit && finalHit && isHitsEqual(initialHit, finalHit)) {\n          let {\n            context\n          } = component;\n          let arg = Object.assign(Object.assign({}, buildDatePointApiWithContext(initialHit.dateSpan, context)), {\n            dayEl: initialHit.dayEl,\n            jsEvent: ev.origEvent,\n            view: context.viewApi || context.calendarApi.view\n          });\n          context.emitter.trigger('dateClick', arg);\n        }\n      }\n    };\n    // we DO want to watch pointer moves because otherwise finalHit won't get populated\n    this.dragging = new FeaturefulElementDragging(settings.el);\n    this.dragging.autoScroller.isEnabled = false;\n    let hitDragging = this.hitDragging = new HitDragging(this.dragging, (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bE)(settings));\n    hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n    hitDragging.emitter.on('dragend', this.handleDragEnd);\n  }\n  destroy() {\n    this.dragging.destroy();\n  }\n}\n\n/*\nTracks when the user selects a portion of time of a component,\nconstituted by a drag over date cells, with a possible delay at the beginning of the drag.\n*/\nclass DateSelecting extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.X {\n  constructor(settings) {\n    super(settings);\n    this.dragSelection = null;\n    this.handlePointerDown = ev => {\n      let {\n        component,\n        dragging\n      } = this;\n      let {\n        options\n      } = component.context;\n      let canSelect = options.selectable && component.isValidDateDownEl(ev.origEvent.target);\n      // don't bother to watch expensive moves if component won't do selection\n      dragging.setIgnoreMove(!canSelect);\n      // if touch, require user to hold down\n      dragging.delay = ev.isTouch ? getComponentTouchDelay$1(component) : null;\n    };\n    this.handleDragStart = ev => {\n      this.component.context.calendarApi.unselect(ev); // unselect previous selections\n    };\n    this.handleHitUpdate = (hit, isFinal) => {\n      let {\n        context\n      } = this.component;\n      let dragSelection = null;\n      let isInvalid = false;\n      if (hit) {\n        let initialHit = this.hitDragging.initialHit;\n        let disallowed = hit.componentId === initialHit.componentId && this.isHitComboAllowed && !this.isHitComboAllowed(initialHit, hit);\n        if (!disallowed) {\n          dragSelection = joinHitsIntoSelection(initialHit, hit, context.pluginHooks.dateSelectionTransformers);\n        }\n        if (!dragSelection || !(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bY)(dragSelection, hit.dateProfile, context)) {\n          isInvalid = true;\n          dragSelection = null;\n        }\n      }\n      if (dragSelection) {\n        context.dispatch({\n          type: 'SELECT_DATES',\n          selection: dragSelection\n        });\n      } else if (!isFinal) {\n        // only unselect if moved away while dragging\n        context.dispatch({\n          type: 'UNSELECT_DATES'\n        });\n      }\n      if (!isInvalid) {\n        (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.au)();\n      } else {\n        (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.av)();\n      }\n      if (!isFinal) {\n        this.dragSelection = dragSelection; // only clear if moved away from all hits while dragging\n      }\n    };\n    this.handlePointerUp = pev => {\n      if (this.dragSelection) {\n        // selection is already rendered, so just need to report selection\n        (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.cr)(this.dragSelection, pev, this.component.context);\n        this.dragSelection = null;\n      }\n    };\n    let {\n      component\n    } = settings;\n    let {\n      options\n    } = component.context;\n    let dragging = this.dragging = new FeaturefulElementDragging(settings.el);\n    dragging.touchScrollAllowed = false;\n    dragging.minDistance = options.selectMinDistance || 0;\n    dragging.autoScroller.isEnabled = options.dragScroll;\n    let hitDragging = this.hitDragging = new HitDragging(this.dragging, (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bE)(settings));\n    hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n    hitDragging.emitter.on('dragstart', this.handleDragStart);\n    hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n    hitDragging.emitter.on('pointerup', this.handlePointerUp);\n  }\n  destroy() {\n    this.dragging.destroy();\n  }\n}\nfunction getComponentTouchDelay$1(component) {\n  let {\n    options\n  } = component.context;\n  let delay = options.selectLongPressDelay;\n  if (delay == null) {\n    delay = options.longPressDelay;\n  }\n  return delay;\n}\nfunction joinHitsIntoSelection(hit0, hit1, dateSelectionTransformers) {\n  let dateSpan0 = hit0.dateSpan;\n  let dateSpan1 = hit1.dateSpan;\n  let ms = [dateSpan0.range.start, dateSpan0.range.end, dateSpan1.range.start, dateSpan1.range.end];\n  ms.sort(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.at);\n  let props = {};\n  for (let transformer of dateSelectionTransformers) {\n    let res = transformer(hit0, hit1);\n    if (res === false) {\n      return null;\n    }\n    if (res) {\n      Object.assign(props, res);\n    }\n  }\n  props.range = {\n    start: ms[0],\n    end: ms[3]\n  };\n  props.allDay = dateSpan0.allDay;\n  return props;\n}\nclass EventDragging extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.X {\n  constructor(settings) {\n    super(settings);\n    // internal state\n    this.subjectEl = null;\n    this.subjectSeg = null; // the seg being selected/dragged\n    this.isDragging = false;\n    this.eventRange = null;\n    this.relevantEvents = null; // the events being dragged\n    this.receivingContext = null;\n    this.validMutation = null;\n    this.mutatedRelevantEvents = null;\n    this.handlePointerDown = ev => {\n      let origTarget = ev.origEvent.target;\n      let {\n        component,\n        dragging\n      } = this;\n      let {\n        mirror\n      } = dragging;\n      let {\n        options\n      } = component.context;\n      let initialContext = component.context;\n      this.subjectEl = ev.subjectEl;\n      let subjectSeg = this.subjectSeg = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.Y)(ev.subjectEl);\n      let eventRange = this.eventRange = subjectSeg.eventRange;\n      let eventInstanceId = eventRange.instance.instanceId;\n      this.relevantEvents = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aT)(initialContext.getCurrentData().eventStore, eventInstanceId);\n      dragging.minDistance = ev.isTouch ? 0 : options.eventDragMinDistance;\n      dragging.delay =\n      // only do a touch delay if touch and this event hasn't been selected yet\n      ev.isTouch && eventInstanceId !== component.props.eventSelection ? getComponentTouchDelay(component) : null;\n      if (options.fixedMirrorParent) {\n        mirror.parentNode = options.fixedMirrorParent;\n      } else {\n        mirror.parentNode = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.Z)(origTarget, '.fc');\n      }\n      mirror.revertDuration = options.dragRevertDuration;\n      let isValid = component.isValidSegDownEl(origTarget) && !(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.Z)(origTarget, '.fc-event-resizer'); // NOT on a resizer\n      dragging.setIgnoreMove(!isValid);\n      // disable dragging for elements that are resizable (ie, selectable)\n      // but are not draggable\n      this.isDragging = isValid && ev.subjectEl.classList.contains('fc-event-draggable');\n    };\n    this.handleDragStart = ev => {\n      let initialContext = this.component.context;\n      let eventRange = this.eventRange;\n      let eventInstanceId = eventRange.instance.instanceId;\n      if (ev.isTouch) {\n        // need to select a different event?\n        if (eventInstanceId !== this.component.props.eventSelection) {\n          initialContext.dispatch({\n            type: 'SELECT_EVENT',\n            eventInstanceId\n          });\n        }\n      } else {\n        // if now using mouse, but was previous touch interaction, clear selected event\n        initialContext.dispatch({\n          type: 'UNSELECT_EVENT'\n        });\n      }\n      if (this.isDragging) {\n        initialContext.calendarApi.unselect(ev); // unselect *date* selection\n        initialContext.emitter.trigger('eventDragStart', {\n          el: this.subjectEl,\n          event: new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__._(initialContext, eventRange.def, eventRange.instance),\n          jsEvent: ev.origEvent,\n          view: initialContext.viewApi\n        });\n      }\n    };\n    this.handleHitUpdate = (hit, isFinal) => {\n      if (!this.isDragging) {\n        return;\n      }\n      let relevantEvents = this.relevantEvents;\n      let initialHit = this.hitDragging.initialHit;\n      let initialContext = this.component.context;\n      // states based on new hit\n      let receivingContext = null;\n      let mutation = null;\n      let mutatedRelevantEvents = null;\n      let isInvalid = false;\n      let interaction = {\n        affectedEvents: relevantEvents,\n        mutatedEvents: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.H)(),\n        isEvent: true\n      };\n      if (hit) {\n        receivingContext = hit.context;\n        let receivingOptions = receivingContext.options;\n        if (initialContext === receivingContext || receivingOptions.editable && receivingOptions.droppable) {\n          mutation = computeEventMutation(initialHit, hit, this.eventRange.instance.range.start, receivingContext.getCurrentData().pluginHooks.eventDragMutationMassagers);\n          if (mutation) {\n            mutatedRelevantEvents = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bV)(relevantEvents, receivingContext.getCurrentData().eventUiBases, mutation, receivingContext);\n            interaction.mutatedEvents = mutatedRelevantEvents;\n            if (!(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bX)(interaction, hit.dateProfile, receivingContext)) {\n              isInvalid = true;\n              mutation = null;\n              mutatedRelevantEvents = null;\n              interaction.mutatedEvents = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.H)();\n            }\n          }\n        } else {\n          receivingContext = null;\n        }\n      }\n      this.displayDrag(receivingContext, interaction);\n      if (!isInvalid) {\n        (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.au)();\n      } else {\n        (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.av)();\n      }\n      if (!isFinal) {\n        if (initialContext === receivingContext &&\n        // TODO: write test for this\n        isHitsEqual(initialHit, hit)) {\n          mutation = null;\n        }\n        this.dragging.setMirrorNeedsRevert(!mutation);\n        // render the mirror if no already-rendered mirror\n        // TODO: wish we could somehow wait for dispatch to guarantee render\n        this.dragging.setMirrorIsVisible(!hit || !this.subjectEl.getRootNode().querySelector('.fc-event-mirror'));\n        // assign states based on new hit\n        this.receivingContext = receivingContext;\n        this.validMutation = mutation;\n        this.mutatedRelevantEvents = mutatedRelevantEvents;\n      }\n    };\n    this.handlePointerUp = () => {\n      if (!this.isDragging) {\n        this.cleanup(); // because handleDragEnd won't fire\n      }\n    };\n    this.handleDragEnd = ev => {\n      if (this.isDragging) {\n        let initialContext = this.component.context;\n        let initialView = initialContext.viewApi;\n        let {\n          receivingContext,\n          validMutation\n        } = this;\n        let eventDef = this.eventRange.def;\n        let eventInstance = this.eventRange.instance;\n        let eventApi = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__._(initialContext, eventDef, eventInstance);\n        let relevantEvents = this.relevantEvents;\n        let mutatedRelevantEvents = this.mutatedRelevantEvents;\n        let {\n          finalHit\n        } = this.hitDragging;\n        this.clearDrag(); // must happen after revert animation\n        initialContext.emitter.trigger('eventDragStop', {\n          el: this.subjectEl,\n          event: eventApi,\n          jsEvent: ev.origEvent,\n          view: initialView\n        });\n        if (validMutation) {\n          // dropped within same calendar\n          if (receivingContext === initialContext) {\n            let updatedEventApi = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__._(initialContext, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null);\n            initialContext.dispatch({\n              type: 'MERGE_EVENTS',\n              eventStore: mutatedRelevantEvents\n            });\n            let eventChangeArg = {\n              oldEvent: eventApi,\n              event: updatedEventApi,\n              relatedEvents: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.w)(mutatedRelevantEvents, initialContext, eventInstance),\n              revert() {\n                initialContext.dispatch({\n                  type: 'MERGE_EVENTS',\n                  eventStore: relevantEvents // the pre-change data\n                });\n              }\n            };\n            let transformed = {};\n            for (let transformer of initialContext.getCurrentData().pluginHooks.eventDropTransformers) {\n              Object.assign(transformed, transformer(validMutation, initialContext));\n            }\n            initialContext.emitter.trigger('eventDrop', Object.assign(Object.assign(Object.assign({}, eventChangeArg), transformed), {\n              el: ev.subjectEl,\n              delta: validMutation.datesDelta,\n              jsEvent: ev.origEvent,\n              view: initialView\n            }));\n            initialContext.emitter.trigger('eventChange', eventChangeArg);\n            // dropped in different calendar\n          } else if (receivingContext) {\n            let eventRemoveArg = {\n              event: eventApi,\n              relatedEvents: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.w)(relevantEvents, initialContext, eventInstance),\n              revert() {\n                initialContext.dispatch({\n                  type: 'MERGE_EVENTS',\n                  eventStore: relevantEvents\n                });\n              }\n            };\n            initialContext.emitter.trigger('eventLeave', Object.assign(Object.assign({}, eventRemoveArg), {\n              draggedEl: ev.subjectEl,\n              view: initialView\n            }));\n            initialContext.dispatch({\n              type: 'REMOVE_EVENTS',\n              eventStore: relevantEvents\n            });\n            initialContext.emitter.trigger('eventRemove', eventRemoveArg);\n            let addedEventDef = mutatedRelevantEvents.defs[eventDef.defId];\n            let addedEventInstance = mutatedRelevantEvents.instances[eventInstance.instanceId];\n            let addedEventApi = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__._(receivingContext, addedEventDef, addedEventInstance);\n            receivingContext.dispatch({\n              type: 'MERGE_EVENTS',\n              eventStore: mutatedRelevantEvents\n            });\n            let eventAddArg = {\n              event: addedEventApi,\n              relatedEvents: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.w)(mutatedRelevantEvents, receivingContext, addedEventInstance),\n              revert() {\n                receivingContext.dispatch({\n                  type: 'REMOVE_EVENTS',\n                  eventStore: mutatedRelevantEvents\n                });\n              }\n            };\n            receivingContext.emitter.trigger('eventAdd', eventAddArg);\n            if (ev.isTouch) {\n              receivingContext.dispatch({\n                type: 'SELECT_EVENT',\n                eventInstanceId: eventInstance.instanceId\n              });\n            }\n            receivingContext.emitter.trigger('drop', Object.assign(Object.assign({}, buildDatePointApiWithContext(finalHit.dateSpan, receivingContext)), {\n              draggedEl: ev.subjectEl,\n              jsEvent: ev.origEvent,\n              view: finalHit.context.viewApi\n            }));\n            receivingContext.emitter.trigger('eventReceive', Object.assign(Object.assign({}, eventAddArg), {\n              draggedEl: ev.subjectEl,\n              view: finalHit.context.viewApi\n            }));\n          }\n        } else {\n          initialContext.emitter.trigger('_noEventDrop');\n        }\n      }\n      this.cleanup();\n    };\n    let {\n      component\n    } = this;\n    let {\n      options\n    } = component.context;\n    let dragging = this.dragging = new FeaturefulElementDragging(settings.el);\n    dragging.pointer.selector = EventDragging.SELECTOR;\n    dragging.touchScrollAllowed = false;\n    dragging.autoScroller.isEnabled = options.dragScroll;\n    let hitDragging = this.hitDragging = new HitDragging(this.dragging, _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.a5);\n    hitDragging.useSubjectCenter = settings.useEventCenter;\n    hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n    hitDragging.emitter.on('dragstart', this.handleDragStart);\n    hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n    hitDragging.emitter.on('pointerup', this.handlePointerUp);\n    hitDragging.emitter.on('dragend', this.handleDragEnd);\n  }\n  destroy() {\n    this.dragging.destroy();\n  }\n  // render a drag state on the next receivingCalendar\n  displayDrag(nextContext, state) {\n    let initialContext = this.component.context;\n    let prevContext = this.receivingContext;\n    // does the previous calendar need to be cleared?\n    if (prevContext && prevContext !== nextContext) {\n      // does the initial calendar need to be cleared?\n      // if so, don't clear all the way. we still need to to hide the affectedEvents\n      if (prevContext === initialContext) {\n        prevContext.dispatch({\n          type: 'SET_EVENT_DRAG',\n          state: {\n            affectedEvents: state.affectedEvents,\n            mutatedEvents: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.H)(),\n            isEvent: true\n          }\n        });\n        // completely clear the old calendar if it wasn't the initial\n      } else {\n        prevContext.dispatch({\n          type: 'UNSET_EVENT_DRAG'\n        });\n      }\n    }\n    if (nextContext) {\n      nextContext.dispatch({\n        type: 'SET_EVENT_DRAG',\n        state\n      });\n    }\n  }\n  clearDrag() {\n    let initialCalendar = this.component.context;\n    let {\n      receivingContext\n    } = this;\n    if (receivingContext) {\n      receivingContext.dispatch({\n        type: 'UNSET_EVENT_DRAG'\n      });\n    }\n    // the initial calendar might have an dummy drag state from displayDrag\n    if (initialCalendar !== receivingContext) {\n      initialCalendar.dispatch({\n        type: 'UNSET_EVENT_DRAG'\n      });\n    }\n  }\n  cleanup() {\n    this.subjectSeg = null;\n    this.isDragging = false;\n    this.eventRange = null;\n    this.relevantEvents = null;\n    this.receivingContext = null;\n    this.validMutation = null;\n    this.mutatedRelevantEvents = null;\n  }\n}\n// TODO: test this in IE11\n// QUESTION: why do we need it on the resizable???\nEventDragging.SELECTOR = '.fc-event-draggable, .fc-event-resizable';\nfunction computeEventMutation(hit0, hit1, eventInstanceStart, massagers) {\n  let dateSpan0 = hit0.dateSpan;\n  let dateSpan1 = hit1.dateSpan;\n  let date0 = dateSpan0.range.start;\n  let date1 = dateSpan1.range.start;\n  let standardProps = {};\n  if (dateSpan0.allDay !== dateSpan1.allDay) {\n    standardProps.allDay = dateSpan1.allDay;\n    standardProps.hasEnd = hit1.context.options.allDayMaintainDuration;\n    if (dateSpan1.allDay) {\n      // means date1 is already start-of-day,\n      // but date0 needs to be converted\n      date0 = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.q)(eventInstanceStart);\n    } else {\n      // Moving from allDate->timed\n      // Doesn't matter where on the event the drag began, mutate the event's start-date to date1\n      date0 = eventInstanceStart;\n    }\n  }\n  let delta = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.ay)(date0, date1, hit0.context.dateEnv, hit0.componentId === hit1.componentId ? hit0.largeUnit : null);\n  if (delta.milliseconds) {\n    // has hours/minutes/seconds\n    standardProps.allDay = false;\n  }\n  let mutation = {\n    datesDelta: delta,\n    standardProps\n  };\n  for (let massager of massagers) {\n    massager(mutation, hit0, hit1);\n  }\n  return mutation;\n}\nfunction getComponentTouchDelay(component) {\n  let {\n    options\n  } = component.context;\n  let delay = options.eventLongPressDelay;\n  if (delay == null) {\n    delay = options.longPressDelay;\n  }\n  return delay;\n}\nclass EventResizing extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.X {\n  constructor(settings) {\n    super(settings);\n    // internal state\n    this.draggingSegEl = null;\n    this.draggingSeg = null; // TODO: rename to resizingSeg? subjectSeg?\n    this.eventRange = null;\n    this.relevantEvents = null;\n    this.validMutation = null;\n    this.mutatedRelevantEvents = null;\n    this.handlePointerDown = ev => {\n      let {\n        component\n      } = this;\n      let segEl = this.querySegEl(ev);\n      let seg = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.Y)(segEl);\n      let eventRange = this.eventRange = seg.eventRange;\n      this.dragging.minDistance = component.context.options.eventDragMinDistance;\n      // if touch, need to be working with a selected event\n      this.dragging.setIgnoreMove(!this.component.isValidSegDownEl(ev.origEvent.target) || ev.isTouch && this.component.props.eventSelection !== eventRange.instance.instanceId);\n    };\n    this.handleDragStart = ev => {\n      let {\n        context\n      } = this.component;\n      let eventRange = this.eventRange;\n      this.relevantEvents = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aT)(context.getCurrentData().eventStore, this.eventRange.instance.instanceId);\n      let segEl = this.querySegEl(ev);\n      this.draggingSegEl = segEl;\n      this.draggingSeg = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.Y)(segEl);\n      context.calendarApi.unselect();\n      context.emitter.trigger('eventResizeStart', {\n        el: segEl,\n        event: new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__._(context, eventRange.def, eventRange.instance),\n        jsEvent: ev.origEvent,\n        view: context.viewApi\n      });\n    };\n    this.handleHitUpdate = (hit, isFinal, ev) => {\n      let {\n        context\n      } = this.component;\n      let relevantEvents = this.relevantEvents;\n      let initialHit = this.hitDragging.initialHit;\n      let eventInstance = this.eventRange.instance;\n      let mutation = null;\n      let mutatedRelevantEvents = null;\n      let isInvalid = false;\n      let interaction = {\n        affectedEvents: relevantEvents,\n        mutatedEvents: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.H)(),\n        isEvent: true\n      };\n      if (hit) {\n        let disallowed = hit.componentId === initialHit.componentId && this.isHitComboAllowed && !this.isHitComboAllowed(initialHit, hit);\n        if (!disallowed) {\n          mutation = computeMutation(initialHit, hit, ev.subjectEl.classList.contains('fc-event-resizer-start'), eventInstance.range);\n        }\n      }\n      if (mutation) {\n        mutatedRelevantEvents = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bV)(relevantEvents, context.getCurrentData().eventUiBases, mutation, context);\n        interaction.mutatedEvents = mutatedRelevantEvents;\n        if (!(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bX)(interaction, hit.dateProfile, context)) {\n          isInvalid = true;\n          mutation = null;\n          mutatedRelevantEvents = null;\n          interaction.mutatedEvents = null;\n        }\n      }\n      if (mutatedRelevantEvents) {\n        context.dispatch({\n          type: 'SET_EVENT_RESIZE',\n          state: interaction\n        });\n      } else {\n        context.dispatch({\n          type: 'UNSET_EVENT_RESIZE'\n        });\n      }\n      if (!isInvalid) {\n        (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.au)();\n      } else {\n        (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.av)();\n      }\n      if (!isFinal) {\n        if (mutation && isHitsEqual(initialHit, hit)) {\n          mutation = null;\n        }\n        this.validMutation = mutation;\n        this.mutatedRelevantEvents = mutatedRelevantEvents;\n      }\n    };\n    this.handleDragEnd = ev => {\n      let {\n        context\n      } = this.component;\n      let eventDef = this.eventRange.def;\n      let eventInstance = this.eventRange.instance;\n      let eventApi = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__._(context, eventDef, eventInstance);\n      let relevantEvents = this.relevantEvents;\n      let mutatedRelevantEvents = this.mutatedRelevantEvents;\n      context.emitter.trigger('eventResizeStop', {\n        el: this.draggingSegEl,\n        event: eventApi,\n        jsEvent: ev.origEvent,\n        view: context.viewApi\n      });\n      if (this.validMutation) {\n        let updatedEventApi = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__._(context, mutatedRelevantEvents.defs[eventDef.defId], eventInstance ? mutatedRelevantEvents.instances[eventInstance.instanceId] : null);\n        context.dispatch({\n          type: 'MERGE_EVENTS',\n          eventStore: mutatedRelevantEvents\n        });\n        let eventChangeArg = {\n          oldEvent: eventApi,\n          event: updatedEventApi,\n          relatedEvents: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.w)(mutatedRelevantEvents, context, eventInstance),\n          revert() {\n            context.dispatch({\n              type: 'MERGE_EVENTS',\n              eventStore: relevantEvents // the pre-change events\n            });\n          }\n        };\n        context.emitter.trigger('eventResize', Object.assign(Object.assign({}, eventChangeArg), {\n          el: this.draggingSegEl,\n          startDelta: this.validMutation.startDelta || (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.d)(0),\n          endDelta: this.validMutation.endDelta || (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.d)(0),\n          jsEvent: ev.origEvent,\n          view: context.viewApi\n        }));\n        context.emitter.trigger('eventChange', eventChangeArg);\n      } else {\n        context.emitter.trigger('_noEventResize');\n      }\n      // reset all internal state\n      this.draggingSeg = null;\n      this.relevantEvents = null;\n      this.validMutation = null;\n      // okay to keep eventInstance around. useful to set it in handlePointerDown\n    };\n    let {\n      component\n    } = settings;\n    let dragging = this.dragging = new FeaturefulElementDragging(settings.el);\n    dragging.pointer.selector = '.fc-event-resizer';\n    dragging.touchScrollAllowed = false;\n    dragging.autoScroller.isEnabled = component.context.options.dragScroll;\n    let hitDragging = this.hitDragging = new HitDragging(this.dragging, (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bE)(settings));\n    hitDragging.emitter.on('pointerdown', this.handlePointerDown);\n    hitDragging.emitter.on('dragstart', this.handleDragStart);\n    hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n    hitDragging.emitter.on('dragend', this.handleDragEnd);\n  }\n  destroy() {\n    this.dragging.destroy();\n  }\n  querySegEl(ev) {\n    return (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.Z)(ev.subjectEl, '.fc-event');\n  }\n}\nfunction computeMutation(hit0, hit1, isFromStart, instanceRange) {\n  let dateEnv = hit0.context.dateEnv;\n  let date0 = hit0.dateSpan.range.start;\n  let date1 = hit1.dateSpan.range.start;\n  let delta = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.ay)(date0, date1, dateEnv, hit0.largeUnit);\n  if (isFromStart) {\n    if (dateEnv.add(instanceRange.start, delta) < instanceRange.end) {\n      return {\n        startDelta: delta\n      };\n    }\n  } else if (dateEnv.add(instanceRange.end, delta) > instanceRange.start) {\n    return {\n      endDelta: delta\n    };\n  }\n  return null;\n}\nclass UnselectAuto {\n  constructor(context) {\n    this.context = context;\n    this.isRecentPointerDateSelect = false; // wish we could use a selector to detect date selection, but uses hit system\n    this.matchesCancel = false;\n    this.matchesEvent = false;\n    this.onSelect = selectInfo => {\n      if (selectInfo.jsEvent) {\n        this.isRecentPointerDateSelect = true;\n      }\n    };\n    this.onDocumentPointerDown = pev => {\n      let unselectCancel = this.context.options.unselectCancel;\n      let downEl = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aP)(pev.origEvent);\n      this.matchesCancel = !!(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.Z)(downEl, unselectCancel);\n      this.matchesEvent = !!(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.Z)(downEl, EventDragging.SELECTOR); // interaction started on an event?\n    };\n    this.onDocumentPointerUp = pev => {\n      let {\n        context\n      } = this;\n      let {\n        documentPointer\n      } = this;\n      let calendarState = context.getCurrentData();\n      // touch-scrolling should never unfocus any type of selection\n      if (!documentPointer.wasTouchScroll) {\n        if (calendarState.dateSelection &&\n        // an existing date selection?\n        !this.isRecentPointerDateSelect // a new pointer-initiated date selection since last onDocumentPointerUp?\n        ) {\n          let unselectAuto = context.options.unselectAuto;\n          if (unselectAuto && (!unselectAuto || !this.matchesCancel)) {\n            context.calendarApi.unselect(pev);\n          }\n        }\n        if (calendarState.eventSelection &&\n        // an existing event selected?\n        !this.matchesEvent // interaction DIDN'T start on an event\n        ) {\n          context.dispatch({\n            type: 'UNSELECT_EVENT'\n          });\n        }\n      }\n      this.isRecentPointerDateSelect = false;\n    };\n    let documentPointer = this.documentPointer = new PointerDragging(document);\n    documentPointer.shouldIgnoreMove = true;\n    documentPointer.shouldWatchScroll = false;\n    documentPointer.emitter.on('pointerdown', this.onDocumentPointerDown);\n    documentPointer.emitter.on('pointerup', this.onDocumentPointerUp);\n    /*\n    TODO: better way to know about whether there was a selection with the pointer\n    */\n    context.emitter.on('select', this.onSelect);\n  }\n  destroy() {\n    this.context.emitter.off('select', this.onSelect);\n    this.documentPointer.destroy();\n  }\n}\nconst OPTION_REFINERS = {\n  fixedMirrorParent: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.n\n};\nconst LISTENER_REFINERS = {\n  dateClick: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.n,\n  eventDragStart: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.n,\n  eventDragStop: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.n,\n  eventDrop: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.n,\n  eventResizeStart: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.n,\n  eventResizeStop: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.n,\n  eventResize: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.n,\n  drop: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.n,\n  eventReceive: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.n,\n  eventLeave: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.n\n};\n\n/*\nGiven an already instantiated draggable object for one-or-more elements,\nInterprets any dragging as an attempt to drag an events that lives outside\nof a calendar onto a calendar.\n*/\nclass ExternalElementDragging {\n  constructor(dragging, suppliedDragMeta) {\n    this.receivingContext = null;\n    this.droppableEvent = null; // will exist for all drags, even if create:false\n    this.suppliedDragMeta = null;\n    this.dragMeta = null;\n    this.handleDragStart = ev => {\n      this.dragMeta = this.buildDragMeta(ev.subjectEl);\n    };\n    this.handleHitUpdate = (hit, isFinal, ev) => {\n      let {\n        dragging\n      } = this.hitDragging;\n      let receivingContext = null;\n      let droppableEvent = null;\n      let isInvalid = false;\n      let interaction = {\n        affectedEvents: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.H)(),\n        mutatedEvents: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.H)(),\n        isEvent: this.dragMeta.create\n      };\n      if (hit) {\n        receivingContext = hit.context;\n        if (this.canDropElOnCalendar(ev.subjectEl, receivingContext)) {\n          droppableEvent = computeEventForDateSpan(hit.dateSpan, this.dragMeta, receivingContext);\n          interaction.mutatedEvents = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aU)(droppableEvent);\n          isInvalid = !(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bX)(interaction, hit.dateProfile, receivingContext);\n          if (isInvalid) {\n            interaction.mutatedEvents = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.H)();\n            droppableEvent = null;\n          }\n        }\n      }\n      this.displayDrag(receivingContext, interaction);\n      // show mirror if no already-rendered mirror element OR if we are shutting down the mirror (?)\n      // TODO: wish we could somehow wait for dispatch to guarantee render\n      dragging.setMirrorIsVisible(isFinal || !droppableEvent || !document.querySelector('.fc-event-mirror'));\n      if (!isInvalid) {\n        (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.au)();\n      } else {\n        (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.av)();\n      }\n      if (!isFinal) {\n        dragging.setMirrorNeedsRevert(!droppableEvent);\n        this.receivingContext = receivingContext;\n        this.droppableEvent = droppableEvent;\n      }\n    };\n    this.handleDragEnd = pev => {\n      let {\n        receivingContext,\n        droppableEvent\n      } = this;\n      this.clearDrag();\n      if (receivingContext && droppableEvent) {\n        let finalHit = this.hitDragging.finalHit;\n        let finalView = finalHit.context.viewApi;\n        let dragMeta = this.dragMeta;\n        receivingContext.emitter.trigger('drop', Object.assign(Object.assign({}, buildDatePointApiWithContext(finalHit.dateSpan, receivingContext)), {\n          draggedEl: pev.subjectEl,\n          jsEvent: pev.origEvent,\n          view: finalView\n        }));\n        if (dragMeta.create) {\n          let addingEvents = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aU)(droppableEvent);\n          receivingContext.dispatch({\n            type: 'MERGE_EVENTS',\n            eventStore: addingEvents\n          });\n          if (pev.isTouch) {\n            receivingContext.dispatch({\n              type: 'SELECT_EVENT',\n              eventInstanceId: droppableEvent.instance.instanceId\n            });\n          }\n          // signal that an external event landed\n          receivingContext.emitter.trigger('eventReceive', {\n            event: new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__._(receivingContext, droppableEvent.def, droppableEvent.instance),\n            relatedEvents: [],\n            revert() {\n              receivingContext.dispatch({\n                type: 'REMOVE_EVENTS',\n                eventStore: addingEvents\n              });\n            },\n            draggedEl: pev.subjectEl,\n            view: finalView\n          });\n        }\n      }\n      this.receivingContext = null;\n      this.droppableEvent = null;\n    };\n    let hitDragging = this.hitDragging = new HitDragging(dragging, _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.a5);\n    hitDragging.requireInitial = false; // will start outside of a component\n    hitDragging.emitter.on('dragstart', this.handleDragStart);\n    hitDragging.emitter.on('hitupdate', this.handleHitUpdate);\n    hitDragging.emitter.on('dragend', this.handleDragEnd);\n    this.suppliedDragMeta = suppliedDragMeta;\n  }\n  buildDragMeta(subjectEl) {\n    if (typeof this.suppliedDragMeta === 'object') {\n      return (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bH)(this.suppliedDragMeta);\n    }\n    if (typeof this.suppliedDragMeta === 'function') {\n      return (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bH)(this.suppliedDragMeta(subjectEl));\n    }\n    return getDragMetaFromEl(subjectEl);\n  }\n  displayDrag(nextContext, state) {\n    let prevContext = this.receivingContext;\n    if (prevContext && prevContext !== nextContext) {\n      prevContext.dispatch({\n        type: 'UNSET_EVENT_DRAG'\n      });\n    }\n    if (nextContext) {\n      nextContext.dispatch({\n        type: 'SET_EVENT_DRAG',\n        state\n      });\n    }\n  }\n  clearDrag() {\n    if (this.receivingContext) {\n      this.receivingContext.dispatch({\n        type: 'UNSET_EVENT_DRAG'\n      });\n    }\n  }\n  canDropElOnCalendar(el, receivingContext) {\n    let dropAccept = receivingContext.options.dropAccept;\n    if (typeof dropAccept === 'function') {\n      return dropAccept.call(receivingContext.calendarApi, el);\n    }\n    if (typeof dropAccept === 'string' && dropAccept) {\n      return Boolean((0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aO)(el, dropAccept));\n    }\n    return true;\n  }\n}\n// Utils for computing event store from the DragMeta\n// ----------------------------------------------------------------------------------------------------\nfunction computeEventForDateSpan(dateSpan, dragMeta, context) {\n  let defProps = Object.assign({}, dragMeta.leftoverProps);\n  for (let transform of context.pluginHooks.externalDefTransforms) {\n    Object.assign(defProps, transform(dateSpan, dragMeta));\n  }\n  let {\n    refined,\n    extra\n  } = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.aj)(defProps, context);\n  let def = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.ai)(refined, extra, dragMeta.sourceId, dateSpan.allDay, context.options.forceEventDuration || Boolean(dragMeta.duration),\n  // hasEnd\n  context);\n  let start = dateSpan.range.start;\n  // only rely on time info if drop zone is all-day,\n  // otherwise, we already know the time\n  if (dateSpan.allDay && dragMeta.startTime) {\n    start = context.dateEnv.add(start, dragMeta.startTime);\n  }\n  let end = dragMeta.duration ? context.dateEnv.add(start, dragMeta.duration) : (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.cs)(dateSpan.allDay, start, context);\n  let instance = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.ah)(def.defId, {\n    start,\n    end\n  });\n  return {\n    def,\n    instance\n  };\n}\n// Utils for extracting data from element\n// ----------------------------------------------------------------------------------------------------\nfunction getDragMetaFromEl(el) {\n  let str = getEmbeddedElData(el, 'event');\n  let obj = str ? JSON.parse(str) : {\n    create: false\n  }; // if no embedded data, assume no event creation\n  return (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bH)(obj);\n}\n_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bG.dataAttrPrefix = '';\nfunction getEmbeddedElData(el, name) {\n  let prefix = _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bG.dataAttrPrefix;\n  let prefixedName = (prefix ? prefix + '-' : '') + name;\n  return el.getAttribute('data-' + prefixedName) || '';\n}\n\n/*\nMakes an element (that is *external* to any calendar) draggable.\nCan pass in data that determines how an event will be created when dropped onto a calendar.\nLeverages FullCalendar's internal drag-n-drop functionality WITHOUT a third-party drag system.\n*/\nclass ExternalDraggable {\n  constructor(el, settings = {}) {\n    this.handlePointerDown = ev => {\n      let {\n        dragging\n      } = this;\n      let {\n        minDistance,\n        longPressDelay\n      } = this.settings;\n      dragging.minDistance = minDistance != null ? minDistance : ev.isTouch ? 0 : _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.e.eventDragMinDistance;\n      dragging.delay = ev.isTouch ?\n      // TODO: eventually read eventLongPressDelay instead vvv\n      longPressDelay != null ? longPressDelay : _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.e.longPressDelay : 0;\n    };\n    this.handleDragStart = ev => {\n      if (ev.isTouch && this.dragging.delay && ev.subjectEl.classList.contains('fc-event')) {\n        this.dragging.mirror.getMirrorEl().classList.add('fc-event-selected');\n      }\n    };\n    this.settings = settings;\n    let dragging = this.dragging = new FeaturefulElementDragging(el);\n    dragging.touchScrollAllowed = false;\n    if (settings.itemSelector != null) {\n      dragging.pointer.selector = settings.itemSelector;\n    }\n    if (settings.appendTo != null) {\n      dragging.mirror.parentNode = settings.appendTo; // TODO: write tests\n    }\n    dragging.emitter.on('pointerdown', this.handlePointerDown);\n    dragging.emitter.on('dragstart', this.handleDragStart);\n    new ExternalElementDragging(dragging, settings.eventData); // eslint-disable-line no-new\n  }\n  destroy() {\n    this.dragging.destroy();\n  }\n}\n\n/*\nDetects when a *THIRD-PARTY* drag-n-drop system interacts with elements.\nThe third-party system is responsible for drawing the visuals effects of the drag.\nThis class simply monitors for pointer movements and fires events.\nIt also has the ability to hide the moving element (the \"mirror\") during the drag.\n*/\nclass InferredElementDragging extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_1__.bF {\n  constructor(containerEl) {\n    super(containerEl);\n    this.shouldIgnoreMove = false;\n    this.mirrorSelector = '';\n    this.currentMirrorEl = null;\n    this.handlePointerDown = ev => {\n      this.emitter.trigger('pointerdown', ev);\n      if (!this.shouldIgnoreMove) {\n        // fire dragstart right away. does not support delay or min-distance\n        this.emitter.trigger('dragstart', ev);\n      }\n    };\n    this.handlePointerMove = ev => {\n      if (!this.shouldIgnoreMove) {\n        this.emitter.trigger('dragmove', ev);\n      }\n    };\n    this.handlePointerUp = ev => {\n      this.emitter.trigger('pointerup', ev);\n      if (!this.shouldIgnoreMove) {\n        // fire dragend right away. does not support a revert animation\n        this.emitter.trigger('dragend', ev);\n      }\n    };\n    let pointer = this.pointer = new PointerDragging(containerEl);\n    pointer.emitter.on('pointerdown', this.handlePointerDown);\n    pointer.emitter.on('pointermove', this.handlePointerMove);\n    pointer.emitter.on('pointerup', this.handlePointerUp);\n  }\n  destroy() {\n    this.pointer.destroy();\n  }\n  setIgnoreMove(bool) {\n    this.shouldIgnoreMove = bool;\n  }\n  setMirrorIsVisible(bool) {\n    if (bool) {\n      // restore a previously hidden element.\n      // use the reference in case the selector class has already been removed.\n      if (this.currentMirrorEl) {\n        this.currentMirrorEl.style.visibility = '';\n        this.currentMirrorEl = null;\n      }\n    } else {\n      let mirrorEl = this.mirrorSelector\n      // TODO: somehow query FullCalendars WITHIN shadow-roots\n      ? document.querySelector(this.mirrorSelector) : null;\n      if (mirrorEl) {\n        this.currentMirrorEl = mirrorEl;\n        mirrorEl.style.visibility = 'hidden';\n      }\n    }\n  }\n}\n\n/*\nBridges third-party drag-n-drop systems with FullCalendar.\nMust be instantiated and destroyed by caller.\n*/\nclass ThirdPartyDraggable {\n  constructor(containerOrSettings, settings) {\n    let containerEl = document;\n    if (\n    // wish we could just test instanceof EventTarget, but doesn't work in IE11\n    containerOrSettings === document || containerOrSettings instanceof Element) {\n      containerEl = containerOrSettings;\n      settings = settings || {};\n    } else {\n      settings = containerOrSettings || {};\n    }\n    let dragging = this.dragging = new InferredElementDragging(containerEl);\n    if (typeof settings.itemSelector === 'string') {\n      dragging.pointer.selector = settings.itemSelector;\n    } else if (containerEl === document) {\n      dragging.pointer.selector = '[data-event]';\n    }\n    if (typeof settings.mirrorSelector === 'string') {\n      dragging.mirrorSelector = settings.mirrorSelector;\n    }\n    let externalDragging = new ExternalElementDragging(dragging, settings.eventData);\n    // The hit-detection system requires that the dnd-mirror-element be pointer-events:none,\n    // but this can't be guaranteed for third-party draggables, so disable\n    externalDragging.hitDragging.disablePointCheck = true;\n  }\n  destroy() {\n    this.dragging.destroy();\n  }\n}\nvar index = (0,_fullcalendar_core_index_js__WEBPACK_IMPORTED_MODULE_0__.createPlugin)({\n  name: '@fullcalendar/interaction',\n  componentInteractions: [DateClicking, DateSelecting, EventDragging, EventResizing],\n  calendarInteractions: [UnselectAuto],\n  elementDraggingImpl: FeaturefulElementDragging,\n  optionRefiners: OPTION_REFINERS,\n  listenerRefiners: LISTENER_REFINERS\n});\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/interaction/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/list/index.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/list/index.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ index)\n/* harmony export */ });\n/* harmony import */ var _fullcalendar_core_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @fullcalendar/core/index.js */ \"../react-ui/node_modules/@fullcalendar/core/index.js\");\n/* harmony import */ var _internal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal.js */ \"../react-ui/node_modules/@fullcalendar/list/internal.js\");\n/* harmony import */ var _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @fullcalendar/core/internal.js */ \"../react-ui/node_modules/@fullcalendar/core/internal-common.js\");\n\n\n\n\nconst OPTION_REFINERS = {\n  listDayFormat: createFalsableFormatter,\n  listDaySideFormat: createFalsableFormatter,\n  noEventsClassNames: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_2__.n,\n  noEventsContent: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_2__.n,\n  noEventsDidMount: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_2__.n,\n  noEventsWillUnmount: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_2__.n\n  // noEventsText is defined in base options\n};\nfunction createFalsableFormatter(input) {\n  return input === false ? null : (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_2__.x)(input);\n}\nvar index = (0,_fullcalendar_core_index_js__WEBPACK_IMPORTED_MODULE_0__.createPlugin)({\n  name: '@fullcalendar/list',\n  optionRefiners: OPTION_REFINERS,\n  views: {\n    list: {\n      component: _internal_js__WEBPACK_IMPORTED_MODULE_1__.ListView,\n      buttonTextKey: 'list',\n      listDayFormat: {\n        month: 'long',\n        day: 'numeric',\n        year: 'numeric'\n      } // like \"January 1, 2016\"\n    },\n    listDay: {\n      type: 'list',\n      duration: {\n        days: 1\n      },\n      listDayFormat: {\n        weekday: 'long'\n      } // day-of-week is all we need. full date is probably in headerToolbar\n    },\n    listWeek: {\n      type: 'list',\n      duration: {\n        weeks: 1\n      },\n      listDayFormat: {\n        weekday: 'long'\n      },\n      listDaySideFormat: {\n        month: 'long',\n        day: 'numeric',\n        year: 'numeric'\n      }\n    },\n    listMonth: {\n      type: 'list',\n      duration: {\n        month: 1\n      },\n      listDaySideFormat: {\n        weekday: 'long'\n      } // day-of-week is nice-to-have\n    },\n    listYear: {\n      type: 'list',\n      duration: {\n        year: 1\n      },\n      listDaySideFormat: {\n        weekday: 'long'\n      } // day-of-week is nice-to-have\n    }\n  }\n});\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/list/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/list/internal.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/list/internal.js ***!
  \***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ListView: () => (/* binding */ ListView)\n/* harmony export */ });\n/* harmony import */ var _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @fullcalendar/core/internal.js */ \"../react-ui/node_modules/@fullcalendar/core/internal-common.js\");\n/* harmony import */ var _fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @fullcalendar/core/preact.js */ \"../react-ui/node_modules/preact/dist/preact.module.js\");\n\n\nclass ListViewHeaderRow extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  constructor() {\n    super(...arguments);\n    this.state = {\n      textId: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.a3)()\n    };\n  }\n  render() {\n    let {\n      theme,\n      dateEnv,\n      options,\n      viewApi\n    } = this.context;\n    let {\n      cellId,\n      dayDate,\n      todayRange\n    } = this.props;\n    let {\n      textId\n    } = this.state;\n    let dayMeta = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.aY)(dayDate, todayRange);\n    // will ever be falsy?\n    let text = options.listDayFormat ? dateEnv.format(dayDate, options.listDayFormat) : '';\n    // will ever be falsy? also, BAD NAME \"alt\"\n    let sideText = options.listDaySideFormat ? dateEnv.format(dayDate, options.listDaySideFormat) : '';\n    let renderProps = Object.assign({\n      date: dateEnv.toDate(dayDate),\n      view: viewApi,\n      textId,\n      text,\n      sideText,\n      navLinkAttrs: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.a_)(this.context, dayDate),\n      sideNavLinkAttrs: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.a_)(this.context, dayDate, 'day', false)\n    }, dayMeta);\n    // TODO: make a reusable HOC for dayHeader (used in daygrid/timegrid too)\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.C, {\n      elTag: \"tr\",\n      elClasses: ['fc-list-day', ...(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.aX)(dayMeta, theme)],\n      elAttrs: {\n        'data-date': (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bt)(dayDate)\n      },\n      renderProps: renderProps,\n      generatorName: \"dayHeaderContent\",\n      customGenerator: options.dayHeaderContent,\n      defaultGenerator: renderInnerContent,\n      classNameGenerator: options.dayHeaderClassNames,\n      didMount: options.dayHeaderDidMount,\n      willUnmount: options.dayHeaderWillUnmount\n    }, InnerContent =>\n    // TODO: force-hide top border based on :first-child\n    (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"th\", {\n      scope: \"colgroup\",\n      colSpan: 3,\n      id: cellId,\n      \"aria-labelledby\": textId\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(InnerContent, {\n      elTag: \"div\",\n      elClasses: ['fc-list-day-cushion', theme.getClass('tableCellShaded')]\n    })));\n  }\n}\nfunction renderInnerContent(props) {\n  return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, props.text && (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"a\", Object.assign({\n    id: props.textId,\n    className: \"fc-list-day-text\"\n  }, props.navLinkAttrs), props.text), props.sideText && (/* not keyboard tabbable */(0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"a\", Object.assign({\n    \"aria-hidden\": true,\n    className: \"fc-list-day-side-text\"\n  }, props.sideNavLinkAttrs), props.sideText)));\n}\nconst DEFAULT_TIME_FORMAT = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.x)({\n  hour: 'numeric',\n  minute: '2-digit',\n  meridiem: 'short'\n});\nclass ListViewEventRow extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  render() {\n    let {\n      props,\n      context\n    } = this;\n    let {\n      options\n    } = context;\n    let {\n      seg,\n      timeHeaderId,\n      eventHeaderId,\n      dateHeaderId\n    } = props;\n    let timeFormat = options.eventTimeFormat || DEFAULT_TIME_FORMAT;\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ck, Object.assign({}, props, {\n      elTag: \"tr\",\n      elClasses: ['fc-list-event', seg.eventRange.def.url && 'fc-event-forced-url'],\n      defaultGenerator: () => renderEventInnerContent(seg, context) /* weird */,\n      seg: seg,\n      timeText: \"\",\n      disableDragging: true,\n      disableResizing: true\n    }), (InnerContent, eventContentArg) => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId), (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"td\", {\n      \"aria-hidden\": true,\n      className: \"fc-list-event-graphic\"\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"span\", {\n      className: \"fc-list-event-dot\",\n      style: {\n        borderColor: eventContentArg.borderColor || eventContentArg.backgroundColor\n      }\n    })), (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(InnerContent, {\n      elTag: \"td\",\n      elClasses: ['fc-list-event-title'],\n      elAttrs: {\n        headers: `${eventHeaderId} ${dateHeaderId}`\n      }\n    })));\n  }\n}\nfunction renderEventInnerContent(seg, context) {\n  let interactiveAttrs = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bS)(seg, context);\n  return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"a\", Object.assign({}, interactiveAttrs), seg.eventRange.def.title);\n}\nfunction buildTimeContent(seg, timeFormat, context, timeHeaderId, dateHeaderId) {\n  let {\n    options\n  } = context;\n  if (options.displayEventTime !== false) {\n    let eventDef = seg.eventRange.def;\n    let eventInstance = seg.eventRange.instance;\n    let doAllDay = false;\n    let timeText;\n    if (eventDef.allDay) {\n      doAllDay = true;\n    } else if ((0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ax)(seg.eventRange.range)) {\n      // TODO: use (!isStart || !isEnd) instead?\n      if (seg.isStart) {\n        timeText = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bO)(seg, timeFormat, context, null, null, eventInstance.range.start, seg.end);\n      } else if (seg.isEnd) {\n        timeText = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bO)(seg, timeFormat, context, null, null, seg.start, eventInstance.range.end);\n      } else {\n        doAllDay = true;\n      }\n    } else {\n      timeText = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bO)(seg, timeFormat, context);\n    }\n    if (doAllDay) {\n      let renderProps = {\n        text: context.options.allDayText,\n        view: context.viewApi\n      };\n      return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.C, {\n        elTag: \"td\",\n        elClasses: ['fc-list-event-time'],\n        elAttrs: {\n          headers: `${timeHeaderId} ${dateHeaderId}`\n        },\n        renderProps: renderProps,\n        generatorName: \"allDayContent\",\n        customGenerator: options.allDayContent,\n        defaultGenerator: renderAllDayInner,\n        classNameGenerator: options.allDayClassNames,\n        didMount: options.allDayDidMount,\n        willUnmount: options.allDayWillUnmount\n      });\n    }\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"td\", {\n      className: \"fc-list-event-time\"\n    }, timeText);\n  }\n  return null;\n}\nfunction renderAllDayInner(renderProps) {\n  return renderProps.text;\n}\n\n/*\nResponsible for the scroller, and forwarding event-related actions into the \"grid\".\n*/\nclass ListView extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bc {\n  constructor() {\n    super(...arguments);\n    this.computeDateVars = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(computeDateVars);\n    this.eventStoreToSegs = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(this._eventStoreToSegs);\n    this.state = {\n      timeHeaderId: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.a3)(),\n      eventHeaderId: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.a3)(),\n      dateHeaderIdRoot: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.a3)()\n    };\n    this.setRootEl = rootEl => {\n      if (rootEl) {\n        this.context.registerInteractiveComponent(this, {\n          el: rootEl\n        });\n      } else {\n        this.context.unregisterInteractiveComponent(this);\n      }\n    };\n  }\n  render() {\n    let {\n      props,\n      context\n    } = this;\n    let {\n      dayDates,\n      dayRanges\n    } = this.computeDateVars(props.dateProfile);\n    let eventSegs = this.eventStoreToSegs(props.eventStore, props.eventUiBases, dayRanges);\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cq, {\n      elRef: this.setRootEl,\n      elClasses: ['fc-list', context.theme.getClass('table'), context.options.stickyHeaderDates !== false ? 'fc-list-sticky' : ''],\n      viewSpec: context.viewSpec\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cb, {\n      liquid: !props.isHeightAuto,\n      overflowX: props.isHeightAuto ? 'visible' : 'hidden',\n      overflowY: props.isHeightAuto ? 'visible' : 'auto'\n    }, eventSegs.length > 0 ? this.renderSegList(eventSegs, dayDates) : this.renderEmptyMessage()));\n  }\n  renderEmptyMessage() {\n    let {\n      options,\n      viewApi\n    } = this.context;\n    let renderProps = {\n      text: options.noEventsText,\n      view: viewApi\n    };\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.C, {\n      elTag: \"div\",\n      elClasses: ['fc-list-empty'],\n      renderProps: renderProps,\n      generatorName: \"noEventsContent\",\n      customGenerator: options.noEventsContent,\n      defaultGenerator: renderNoEventsInner,\n      classNameGenerator: options.noEventsClassNames,\n      didMount: options.noEventsDidMount,\n      willUnmount: options.noEventsWillUnmount\n    }, InnerContent => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(InnerContent, {\n      elTag: \"div\",\n      elClasses: ['fc-list-empty-cushion']\n    }));\n  }\n  renderSegList(allSegs, dayDates) {\n    let {\n      theme,\n      options\n    } = this.context;\n    let {\n      timeHeaderId,\n      eventHeaderId,\n      dateHeaderIdRoot\n    } = this.state;\n    let segsByDay = groupSegsByDay(allSegs); // sparse array\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.a6, {\n      unit: \"day\"\n    }, (nowDate, todayRange) => {\n      let innerNodes = [];\n      for (let dayIndex = 0; dayIndex < segsByDay.length; dayIndex += 1) {\n        let daySegs = segsByDay[dayIndex];\n        if (daySegs) {\n          // sparse array, so might be undefined\n          let dayStr = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bt)(dayDates[dayIndex]);\n          let dateHeaderId = dateHeaderIdRoot + '-' + dayStr;\n          // append a day header\n          innerNodes.push((0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(ListViewHeaderRow, {\n            key: dayStr,\n            cellId: dateHeaderId,\n            dayDate: dayDates[dayIndex],\n            todayRange: todayRange\n          }));\n          daySegs = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bP)(daySegs, options.eventOrder);\n          for (let seg of daySegs) {\n            innerNodes.push((0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(ListViewEventRow, Object.assign({\n              key: dayStr + ':' + seg.eventRange.instance.instanceId /* are multiple segs for an instanceId */,\n              seg: seg,\n              isDragging: false,\n              isResizing: false,\n              isDateSelecting: false,\n              isSelected: false,\n              timeHeaderId: timeHeaderId,\n              eventHeaderId: eventHeaderId,\n              dateHeaderId: dateHeaderId\n            }, (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bQ)(seg, todayRange, nowDate))));\n          }\n        }\n      }\n      return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"table\", {\n        className: 'fc-list-table ' + theme.getClass('table')\n      }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"thead\", null, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"tr\", null, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"th\", {\n        scope: \"col\",\n        id: timeHeaderId\n      }, options.timeHint), (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"th\", {\n        scope: \"col\",\n        \"aria-hidden\": true\n      }), (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"th\", {\n        scope: \"col\",\n        id: eventHeaderId\n      }, options.eventHint))), (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"tbody\", null, innerNodes));\n    });\n  }\n  _eventStoreToSegs(eventStore, eventUiBases, dayRanges) {\n    return this.eventRangesToSegs((0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ad)(eventStore, eventUiBases, this.props.dateProfile.activeRange, this.context.options.nextDayThreshold).fg, dayRanges);\n  }\n  eventRangesToSegs(eventRanges, dayRanges) {\n    let segs = [];\n    for (let eventRange of eventRanges) {\n      segs.push(...this.eventRangeToSegs(eventRange, dayRanges));\n    }\n    return segs;\n  }\n  eventRangeToSegs(eventRange, dayRanges) {\n    let {\n      dateEnv\n    } = this.context;\n    let {\n      nextDayThreshold\n    } = this.context.options;\n    let range = eventRange.range;\n    let allDay = eventRange.def.allDay;\n    let dayIndex;\n    let segRange;\n    let seg;\n    let segs = [];\n    for (dayIndex = 0; dayIndex < dayRanges.length; dayIndex += 1) {\n      segRange = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.o)(range, dayRanges[dayIndex]);\n      if (segRange) {\n        seg = {\n          component: this,\n          eventRange,\n          start: segRange.start,\n          end: segRange.end,\n          isStart: eventRange.isStart && segRange.start.valueOf() === range.start.valueOf(),\n          isEnd: eventRange.isEnd && segRange.end.valueOf() === range.end.valueOf(),\n          dayIndex\n        };\n        segs.push(seg);\n        // detect when range won't go fully into the next day,\n        // and mutate the latest seg to the be the end.\n        if (!seg.isEnd && !allDay && dayIndex + 1 < dayRanges.length && range.end < dateEnv.add(dayRanges[dayIndex + 1].start, nextDayThreshold)) {\n          seg.end = range.end;\n          seg.isEnd = true;\n          break;\n        }\n      }\n    }\n    return segs;\n  }\n}\nfunction renderNoEventsInner(renderProps) {\n  return renderProps.text;\n}\nfunction computeDateVars(dateProfile) {\n  let dayStart = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.q)(dateProfile.renderRange.start);\n  let viewEnd = dateProfile.renderRange.end;\n  let dayDates = [];\n  let dayRanges = [];\n  while (dayStart < viewEnd) {\n    dayDates.push(dayStart);\n    dayRanges.push({\n      start: dayStart,\n      end: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.t)(dayStart, 1)\n    });\n    dayStart = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.t)(dayStart, 1);\n  }\n  return {\n    dayDates,\n    dayRanges\n  };\n}\n// Returns a sparse array of arrays, segs grouped by their dayIndex\nfunction groupSegsByDay(segs) {\n  let segsByDay = []; // sparse array\n  let i;\n  let seg;\n  for (i = 0; i < segs.length; i += 1) {\n    seg = segs[i];\n    (segsByDay[seg.dayIndex] || (segsByDay[seg.dayIndex] = [])).push(seg);\n  }\n  return segsByDay;\n}\nvar css_248z = \":root{--fc-list-event-dot-width:10px;--fc-list-event-hover-bg-color:#f5f5f5}.fc-theme-standard .fc-list{border:1px solid var(--fc-border-color)}.fc .fc-list-empty{align-items:center;background-color:var(--fc-neutral-bg-color);display:flex;height:100%;justify-content:center}.fc .fc-list-empty-cushion{margin:5em 0}.fc .fc-list-table{border-style:hidden;width:100%}.fc .fc-list-table tr>*{border-left:0;border-right:0}.fc .fc-list-sticky .fc-list-day>*{background:var(--fc-page-bg-color);position:sticky;top:0}.fc .fc-list-table thead{left:-10000px;position:absolute}.fc .fc-list-table tbody>tr:first-child th{border-top:0}.fc .fc-list-table th{padding:0}.fc .fc-list-day-cushion,.fc .fc-list-table td{padding:8px 14px}.fc .fc-list-day-cushion:after{clear:both;content:\\\"\\\";display:table}.fc-theme-standard .fc-list-day-cushion{background-color:var(--fc-neutral-bg-color)}.fc-direction-ltr .fc-list-day-text,.fc-direction-rtl .fc-list-day-side-text{float:left}.fc-direction-ltr .fc-list-day-side-text,.fc-direction-rtl .fc-list-day-text{float:right}.fc-direction-ltr .fc-list-table .fc-list-event-graphic{padding-right:0}.fc-direction-rtl .fc-list-table .fc-list-event-graphic{padding-left:0}.fc .fc-list-event.fc-event-forced-url{cursor:pointer}.fc .fc-list-event:hover td{background-color:var(--fc-list-event-hover-bg-color)}.fc .fc-list-event-graphic,.fc .fc-list-event-time{white-space:nowrap;width:1px}.fc .fc-list-event-dot{border:calc(var(--fc-list-event-dot-width)/2) solid var(--fc-event-border-color);border-radius:calc(var(--fc-list-event-dot-width)/2);box-sizing:content-box;display:inline-block;height:0;width:0}.fc .fc-list-event-title a{color:inherit;text-decoration:none}.fc .fc-list-event.fc-event-forced-url:hover a{text-decoration:underline}\";\n(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ct)(css_248z);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/list/internal.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/react/dist/index.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/react/dist/index.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ FullCalendar)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"../react-ui/node_modules/react-dom/index.js\");\n/* harmony import */ var _fullcalendar_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @fullcalendar/core */ \"../react-ui/node_modules/@fullcalendar/core/index.js\");\n/* harmony import */ var _fullcalendar_core_internal__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @fullcalendar/core/internal */ \"../react-ui/node_modules/@fullcalendar/core/internal-common.js\");\n\n\n\n\nconst reactMajorVersion = parseInt(String(react__WEBPACK_IMPORTED_MODULE_0__.version).split('.')[0]);\nconst syncRenderingByDefault = reactMajorVersion < 18;\nclass FullCalendar extends react__WEBPACK_IMPORTED_MODULE_0__.Component {\n  constructor() {\n    super(...arguments);\n    this.elRef = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createRef)();\n    this.isUpdating = false;\n    this.isUnmounting = false;\n    this.state = {\n      customRenderingMap: new Map()\n    };\n    this.requestResize = () => {\n      if (!this.isUnmounting) {\n        this.cancelResize();\n        this.resizeId = requestAnimationFrame(() => {\n          this.doResize();\n        });\n      }\n    };\n  }\n  render() {\n    const customRenderingNodes = [];\n    for (const customRendering of this.state.customRenderingMap.values()) {\n      customRenderingNodes.push(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(CustomRenderingComponent, {\n        key: customRendering.id,\n        customRendering: customRendering\n      }));\n    }\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n      ref: this.elRef\n    }, customRenderingNodes);\n  }\n  componentDidMount() {\n    // reset b/c react strict-mode calls componentWillUnmount/componentDidMount\n    this.isUnmounting = false;\n    const customRenderingStore = new _fullcalendar_core_internal__WEBPACK_IMPORTED_MODULE_3__.cv();\n    this.handleCustomRendering = customRenderingStore.handle.bind(customRenderingStore);\n    this.calendar = new _fullcalendar_core__WEBPACK_IMPORTED_MODULE_2__.Calendar(this.elRef.current, Object.assign(Object.assign({}, this.props), {\n      handleCustomRendering: this.handleCustomRendering\n    }));\n    this.calendar.render();\n    // attaching with .on() will cause this to fire AFTER internal preact rendering did flushSync\n    this.calendar.on('_beforeprint', () => {\n      (0,react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync)(() => {\n        // our `customRenderingMap` state will be flushed at this point\n      });\n    });\n    let lastRequestTimestamp;\n    customRenderingStore.subscribe(customRenderingMap => {\n      const requestTimestamp = Date.now();\n      const isMounting = !lastRequestTimestamp;\n      const runFunc =\n      // don't call flushSync if React version already does sync rendering by default\n      // guards against fatal errors:\n      // https://github.com/fullcalendar/fullcalendar/issues/7448\n      syncRenderingByDefault ||\n      //\n      isMounting || this.isUpdating || this.isUnmounting || requestTimestamp - lastRequestTimestamp < 100 // rerendering frequently\n      ? runNow // either sync rendering (first-time or React 16/17) or async (React 18)\n      : react_dom__WEBPACK_IMPORTED_MODULE_1__.flushSync; // guaranteed sync rendering\n      runFunc(() => {\n        this.setState({\n          customRenderingMap\n        }, () => {\n          lastRequestTimestamp = requestTimestamp;\n          if (isMounting) {\n            this.doResize();\n          } else {\n            this.requestResize();\n          }\n        });\n      });\n    });\n  }\n  componentDidUpdate() {\n    this.isUpdating = true;\n    this.calendar.resetOptions(Object.assign(Object.assign({}, this.props), {\n      handleCustomRendering: this.handleCustomRendering\n    }));\n    this.isUpdating = false;\n  }\n  componentWillUnmount() {\n    this.isUnmounting = true;\n    this.cancelResize();\n    this.calendar.destroy();\n  }\n  doResize() {\n    this.calendar.updateSize();\n  }\n  cancelResize() {\n    if (this.resizeId !== undefined) {\n      cancelAnimationFrame(this.resizeId);\n      this.resizeId = undefined;\n    }\n  }\n  getApi() {\n    return this.calendar;\n  }\n}\nFullCalendar.act = runNow; // DEPRECATED. Not leveraged anymore\nclass CustomRenderingComponent extends react__WEBPACK_IMPORTED_MODULE_0__.PureComponent {\n  render() {\n    const {\n      customRendering\n    } = this.props;\n    const {\n      generatorMeta\n    } = customRendering;\n    const vnode = typeof generatorMeta === 'function' ? generatorMeta(customRendering.renderProps) : generatorMeta;\n    return /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal)(vnode, customRendering.containerEl);\n  }\n}\n// Util\n// -------------------------------------------------------------------------------------------------\nfunction runNow(f) {\n  f();\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/react/dist/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/timegrid/index.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/timegrid/index.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ index)\n/* harmony export */ });\n/* harmony import */ var _fullcalendar_core_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @fullcalendar/core/index.js */ \"../react-ui/node_modules/@fullcalendar/core/index.js\");\n/* harmony import */ var _internal_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./internal.js */ \"../react-ui/node_modules/@fullcalendar/timegrid/internal.js\");\n\n\n\n\n\nconst OPTION_REFINERS = {\n  allDaySlot: Boolean\n};\nvar index = (0,_fullcalendar_core_index_js__WEBPACK_IMPORTED_MODULE_0__.createPlugin)({\n  name: '@fullcalendar/timegrid',\n  initialView: 'timeGridWeek',\n  optionRefiners: OPTION_REFINERS,\n  views: {\n    timeGrid: {\n      component: _internal_js__WEBPACK_IMPORTED_MODULE_1__.DayTimeColsView,\n      usesMinMaxTime: true,\n      allDaySlot: true,\n      slotDuration: '00:30:00',\n      slotEventOverlap: true // a bad name. confused with overlap/constraint system\n    },\n    timeGridDay: {\n      type: 'timeGrid',\n      duration: {\n        days: 1\n      }\n    },\n    timeGridWeek: {\n      type: 'timeGrid',\n      duration: {\n        weeks: 1\n      }\n    }\n  }\n});\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/timegrid/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@fullcalendar/timegrid/internal.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/@fullcalendar/timegrid/internal.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DayTimeCols: () => (/* binding */ DayTimeCols),\n/* harmony export */   DayTimeColsSlicer: () => (/* binding */ DayTimeColsSlicer),\n/* harmony export */   DayTimeColsView: () => (/* binding */ DayTimeColsView),\n/* harmony export */   TimeCols: () => (/* binding */ TimeCols),\n/* harmony export */   TimeColsSlatsCoords: () => (/* binding */ TimeColsSlatsCoords),\n/* harmony export */   TimeColsView: () => (/* binding */ TimeColsView),\n/* harmony export */   buildDayRanges: () => (/* binding */ buildDayRanges),\n/* harmony export */   buildSlatMetas: () => (/* binding */ buildSlatMetas),\n/* harmony export */   buildTimeColsModel: () => (/* binding */ buildTimeColsModel)\n/* harmony export */ });\n/* harmony import */ var _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @fullcalendar/core/internal.js */ \"../react-ui/node_modules/@fullcalendar/core/internal-common.js\");\n/* harmony import */ var _fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @fullcalendar/core/preact.js */ \"../react-ui/node_modules/preact/dist/preact.module.js\");\n/* harmony import */ var _fullcalendar_daygrid_internal_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @fullcalendar/daygrid/internal.js */ \"../react-ui/node_modules/@fullcalendar/daygrid/internal.js\");\n\n\n\nclass AllDaySplitter extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.aW {\n  getKeyInfo() {\n    return {\n      allDay: {},\n      timed: {}\n    };\n  }\n  getKeysForDateSpan(dateSpan) {\n    if (dateSpan.allDay) {\n      return ['allDay'];\n    }\n    return ['timed'];\n  }\n  getKeysForEventDef(eventDef) {\n    if (!eventDef.allDay) {\n      return ['timed'];\n    }\n    if ((0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bN)(eventDef)) {\n      return ['timed', 'allDay'];\n    }\n    return ['allDay'];\n  }\n}\nconst DEFAULT_SLAT_LABEL_FORMAT = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.x)({\n  hour: 'numeric',\n  minute: '2-digit',\n  omitZeroMinute: true,\n  meridiem: 'short'\n});\nfunction TimeColsAxisCell(props) {\n  let classNames = ['fc-timegrid-slot', 'fc-timegrid-slot-label', props.isLabeled ? 'fc-scrollgrid-shrink' : 'fc-timegrid-slot-minor'];\n  return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.V.Consumer, null, context => {\n    if (!props.isLabeled) {\n      return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"td\", {\n        className: classNames.join(' '),\n        \"data-time\": props.isoTimeStr\n      });\n    }\n    let {\n      dateEnv,\n      options,\n      viewApi\n    } = context;\n    let labelFormat =\n    // TODO: fully pre-parse\n    options.slotLabelFormat == null ? DEFAULT_SLAT_LABEL_FORMAT : Array.isArray(options.slotLabelFormat) ? (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.x)(options.slotLabelFormat[0]) : (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.x)(options.slotLabelFormat);\n    let renderProps = {\n      level: 0,\n      time: props.time,\n      date: dateEnv.toDate(props.date),\n      view: viewApi,\n      text: dateEnv.format(props.date, labelFormat)\n    };\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.C, {\n      elTag: \"td\",\n      elClasses: classNames,\n      elAttrs: {\n        'data-time': props.isoTimeStr\n      },\n      renderProps: renderProps,\n      generatorName: \"slotLabelContent\",\n      customGenerator: options.slotLabelContent,\n      defaultGenerator: renderInnerContent,\n      classNameGenerator: options.slotLabelClassNames,\n      didMount: options.slotLabelDidMount,\n      willUnmount: options.slotLabelWillUnmount\n    }, InnerContent => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame\"\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(InnerContent, {\n      elTag: \"div\",\n      elClasses: ['fc-timegrid-slot-label-cushion', 'fc-scrollgrid-shrink-cushion']\n    })));\n  });\n}\nfunction renderInnerContent(props) {\n  return props.text;\n}\nclass TimeBodyAxis extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  render() {\n    return this.props.slatMetas.map(slatMeta => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"tr\", {\n      key: slatMeta.key\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TimeColsAxisCell, Object.assign({}, slatMeta))));\n  }\n}\nconst DEFAULT_WEEK_NUM_FORMAT = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.x)({\n  week: 'short'\n});\nconst AUTO_ALL_DAY_MAX_EVENT_ROWS = 5;\nclass TimeColsView extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bc {\n  constructor() {\n    super(...arguments);\n    this.allDaySplitter = new AllDaySplitter(); // for use by subclasses\n    this.headerElRef = (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n    this.rootElRef = (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n    this.scrollerElRef = (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n    this.state = {\n      slatCoords: null\n    };\n    this.handleScrollTopRequest = scrollTop => {\n      let scrollerEl = this.scrollerElRef.current;\n      if (scrollerEl) {\n        // TODO: not sure how this could ever be null. weirdness with the reducer\n        scrollerEl.scrollTop = scrollTop;\n      }\n    };\n    /* Header Render Methods\n    ------------------------------------------------------------------------------------------------------------------*/\n    this.renderHeadAxis = (rowKey, frameHeight = '') => {\n      let {\n        options\n      } = this.context;\n      let {\n        dateProfile\n      } = this.props;\n      let range = dateProfile.renderRange;\n      let dayCnt = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bj)(range.start, range.end);\n      // only do in day views (to avoid doing in week views that dont need it)\n      let navLinkAttrs = dayCnt === 1 ? (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.a_)(this.context, range.start, 'week') : {};\n      if (options.weekNumbers && rowKey === 'day') {\n        return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cn, {\n          elTag: \"th\",\n          elClasses: ['fc-timegrid-axis', 'fc-scrollgrid-shrink'],\n          elAttrs: {\n            'aria-hidden': true\n          },\n          date: range.start,\n          defaultFormat: DEFAULT_WEEK_NUM_FORMAT\n        }, InnerContent => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n          className: ['fc-timegrid-axis-frame', 'fc-scrollgrid-shrink-frame', 'fc-timegrid-axis-frame-liquid'].join(' '),\n          style: {\n            height: frameHeight\n          }\n        }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(InnerContent, {\n          elTag: \"a\",\n          elClasses: ['fc-timegrid-axis-cushion', 'fc-scrollgrid-shrink-cushion', 'fc-scrollgrid-sync-inner'],\n          elAttrs: navLinkAttrs\n        })));\n      }\n      return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"th\", {\n        \"aria-hidden\": true,\n        className: \"fc-timegrid-axis\"\n      }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n        className: \"fc-timegrid-axis-frame\",\n        style: {\n          height: frameHeight\n        }\n      }));\n    };\n    /* Table Component Render Methods\n    ------------------------------------------------------------------------------------------------------------------*/\n    // only a one-way height sync. we don't send the axis inner-content height to the DayGrid,\n    // but DayGrid still needs to have classNames on inner elements in order to measure.\n    this.renderTableRowAxis = rowHeight => {\n      let {\n        options,\n        viewApi\n      } = this.context;\n      let renderProps = {\n        text: options.allDayText,\n        view: viewApi\n      };\n      return (\n        // TODO: make reusable hook. used in list view too\n        (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.C, {\n          elTag: \"td\",\n          elClasses: ['fc-timegrid-axis', 'fc-scrollgrid-shrink'],\n          elAttrs: {\n            'aria-hidden': true\n          },\n          renderProps: renderProps,\n          generatorName: \"allDayContent\",\n          customGenerator: options.allDayContent,\n          defaultGenerator: renderAllDayInner,\n          classNameGenerator: options.allDayClassNames,\n          didMount: options.allDayDidMount,\n          willUnmount: options.allDayWillUnmount\n        }, InnerContent => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n          className: ['fc-timegrid-axis-frame', 'fc-scrollgrid-shrink-frame', rowHeight == null ? ' fc-timegrid-axis-frame-liquid' : ''].join(' '),\n          style: {\n            height: rowHeight\n          }\n        }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(InnerContent, {\n          elTag: \"span\",\n          elClasses: ['fc-timegrid-axis-cushion', 'fc-scrollgrid-shrink-cushion', 'fc-scrollgrid-sync-inner']\n        })))\n      );\n    };\n    this.handleSlatCoords = slatCoords => {\n      this.setState({\n        slatCoords\n      });\n    };\n  }\n  // rendering\n  // ----------------------------------------------------------------------------------------------------\n  renderSimpleLayout(headerRowContent, allDayContent, timeContent) {\n    let {\n      context,\n      props\n    } = this;\n    let sections = [];\n    let stickyHeaderDates = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ca)(context.options);\n    if (headerRowContent) {\n      sections.push({\n        type: 'header',\n        key: 'header',\n        isSticky: stickyHeaderDates,\n        chunk: {\n          elRef: this.headerElRef,\n          tableClassName: 'fc-col-header',\n          rowContent: headerRowContent\n        }\n      });\n    }\n    if (allDayContent) {\n      sections.push({\n        type: 'body',\n        key: 'all-day',\n        chunk: {\n          content: allDayContent\n        }\n      });\n      sections.push({\n        type: 'body',\n        key: 'all-day-divider',\n        outerContent:\n        // TODO: rename to cellContent so don't need to define <tr>?\n        (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"tr\", {\n          role: \"presentation\",\n          className: \"fc-scrollgrid-section\"\n        }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"td\", {\n          className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded')\n        }))\n      });\n    }\n    sections.push({\n      type: 'body',\n      key: 'body',\n      liquid: true,\n      expandRows: Boolean(context.options.expandRows),\n      chunk: {\n        scrollerElRef: this.scrollerElRef,\n        content: timeContent\n      }\n    });\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cq, {\n      elRef: this.rootElRef,\n      elClasses: ['fc-timegrid'],\n      viewSpec: context.viewSpec\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bZ, {\n      liquid: !props.isHeightAuto && !props.forPrint,\n      collapsibleWidth: props.forPrint,\n      cols: [{\n        width: 'shrink'\n      }],\n      sections: sections\n    }));\n  }\n  renderHScrollLayout(headerRowContent, allDayContent, timeContent, colCnt, dayMinWidth, slatMetas, slatCoords) {\n    let ScrollGrid = this.context.pluginHooks.scrollGridImpl;\n    if (!ScrollGrid) {\n      throw new Error('No ScrollGrid implementation');\n    }\n    let {\n      context,\n      props\n    } = this;\n    let stickyHeaderDates = !props.forPrint && (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ca)(context.options);\n    let stickyFooterScrollbar = !props.forPrint && (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.c9)(context.options);\n    let sections = [];\n    if (headerRowContent) {\n      sections.push({\n        type: 'header',\n        key: 'header',\n        isSticky: stickyHeaderDates,\n        syncRowHeights: true,\n        chunks: [{\n          key: 'axis',\n          rowContent: arg => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"tr\", {\n            role: \"presentation\"\n          }, this.renderHeadAxis('day', arg.rowSyncHeights[0]))\n        }, {\n          key: 'cols',\n          elRef: this.headerElRef,\n          tableClassName: 'fc-col-header',\n          rowContent: headerRowContent\n        }]\n      });\n    }\n    if (allDayContent) {\n      sections.push({\n        type: 'body',\n        key: 'all-day',\n        syncRowHeights: true,\n        chunks: [{\n          key: 'axis',\n          rowContent: contentArg => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"tr\", {\n            role: \"presentation\"\n          }, this.renderTableRowAxis(contentArg.rowSyncHeights[0]))\n        }, {\n          key: 'cols',\n          content: allDayContent\n        }]\n      });\n      sections.push({\n        key: 'all-day-divider',\n        type: 'body',\n        outerContent:\n        // TODO: rename to cellContent so don't need to define <tr>?\n        (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"tr\", {\n          role: \"presentation\",\n          className: \"fc-scrollgrid-section\"\n        }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"td\", {\n          colSpan: 2,\n          className: 'fc-timegrid-divider ' + context.theme.getClass('tableCellShaded')\n        }))\n      });\n    }\n    let isNowIndicator = context.options.nowIndicator;\n    sections.push({\n      type: 'body',\n      key: 'body',\n      liquid: true,\n      expandRows: Boolean(context.options.expandRows),\n      chunks: [{\n        key: 'axis',\n        content: arg =>\n        // TODO: make this now-indicator arrow more DRY with TimeColsContent\n        (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n          className: \"fc-timegrid-axis-chunk\"\n        }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"table\", {\n          \"aria-hidden\": true,\n          style: {\n            height: arg.expandRows ? arg.clientHeight : ''\n          }\n        }, arg.tableColGroupNode, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"tbody\", null, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TimeBodyAxis, {\n          slatMetas: slatMetas\n        }))), (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n          className: \"fc-timegrid-now-indicator-container\"\n        }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.a6, {\n          unit: isNowIndicator ? 'minute' : 'day' /* hacky */\n        }, nowDate => {\n          let nowIndicatorTop = isNowIndicator && slatCoords && slatCoords.safeComputeTop(nowDate); // might return void\n          if (typeof nowIndicatorTop === 'number') {\n            return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ch, {\n              elClasses: ['fc-timegrid-now-indicator-arrow'],\n              elStyle: {\n                top: nowIndicatorTop\n              },\n              isAxis: true,\n              date: nowDate\n            });\n          }\n          return null;\n        })))\n      }, {\n        key: 'cols',\n        scrollerElRef: this.scrollerElRef,\n        content: timeContent\n      }]\n    });\n    if (stickyFooterScrollbar) {\n      sections.push({\n        key: 'footer',\n        type: 'footer',\n        isSticky: true,\n        chunks: [{\n          key: 'axis',\n          content: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.c8\n        }, {\n          key: 'cols',\n          content: _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.c8\n        }]\n      });\n    }\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cq, {\n      elRef: this.rootElRef,\n      elClasses: ['fc-timegrid'],\n      viewSpec: context.viewSpec\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(ScrollGrid, {\n      liquid: !props.isHeightAuto && !props.forPrint,\n      forPrint: props.forPrint,\n      collapsibleWidth: false,\n      colGroups: [{\n        width: 'shrink',\n        cols: [{\n          width: 'shrink'\n        }]\n      }, {\n        cols: [{\n          span: colCnt,\n          minWidth: dayMinWidth\n        }]\n      }],\n      sections: sections\n    }));\n  }\n  /* Dimensions\n  ------------------------------------------------------------------------------------------------------------------*/\n  getAllDayMaxEventProps() {\n    let {\n      dayMaxEvents,\n      dayMaxEventRows\n    } = this.context.options;\n    if (dayMaxEvents === true || dayMaxEventRows === true) {\n      // is auto?\n      dayMaxEvents = undefined;\n      dayMaxEventRows = AUTO_ALL_DAY_MAX_EVENT_ROWS; // make sure \"auto\" goes to a real number\n    }\n    return {\n      dayMaxEvents,\n      dayMaxEventRows\n    };\n  }\n}\nfunction renderAllDayInner(renderProps) {\n  return renderProps.text;\n}\nclass TimeColsSlatsCoords {\n  constructor(positions, dateProfile, slotDuration) {\n    this.positions = positions;\n    this.dateProfile = dateProfile;\n    this.slotDuration = slotDuration;\n  }\n  safeComputeTop(date) {\n    let {\n      dateProfile\n    } = this;\n    if ((0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.G)(dateProfile.currentRange, date)) {\n      let startOfDayDate = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.q)(date);\n      let timeMs = date.valueOf() - startOfDayDate.valueOf();\n      if (timeMs >= (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bq)(dateProfile.slotMinTime) && timeMs < (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bq)(dateProfile.slotMaxTime)) {\n        return this.computeTimeTop((0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.d)(timeMs));\n      }\n    }\n    return null;\n  }\n  // Computes the top coordinate, relative to the bounds of the grid, of the given date.\n  // A `startOfDayDate` must be given for avoiding ambiguity over how to treat midnight.\n  computeDateTop(when, startOfDayDate) {\n    if (!startOfDayDate) {\n      startOfDayDate = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.q)(when);\n    }\n    return this.computeTimeTop((0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.d)(when.valueOf() - startOfDayDate.valueOf()));\n  }\n  // Computes the top coordinate, relative to the bounds of the grid, of the given time (a Duration).\n  // This is a makeshify way to compute the time-top. Assumes all slatMetas dates are uniform.\n  // Eventually allow computation with arbirary slat dates.\n  computeTimeTop(duration) {\n    let {\n      positions,\n      dateProfile\n    } = this;\n    let len = positions.els.length;\n    // floating-point value of # of slots covered\n    let slatCoverage = (duration.milliseconds - (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bq)(dateProfile.slotMinTime)) / (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bq)(this.slotDuration);\n    let slatIndex;\n    let slatRemainder;\n    // compute a floating-point number for how many slats should be progressed through.\n    // from 0 to number of slats (inclusive)\n    // constrained because slotMinTime/slotMaxTime might be customized.\n    slatCoverage = Math.max(0, slatCoverage);\n    slatCoverage = Math.min(len, slatCoverage);\n    // an integer index of the furthest whole slat\n    // from 0 to number slats (*exclusive*, so len-1)\n    slatIndex = Math.floor(slatCoverage);\n    slatIndex = Math.min(slatIndex, len - 1);\n    // how much further through the slatIndex slat (from 0.0-1.0) must be covered in addition.\n    // could be 1.0 if slatCoverage is covering *all* the slots\n    slatRemainder = slatCoverage - slatIndex;\n    return positions.tops[slatIndex] + positions.getHeight(slatIndex) * slatRemainder;\n  }\n}\nclass TimeColsSlatsBody extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  render() {\n    let {\n      props,\n      context\n    } = this;\n    let {\n      options\n    } = context;\n    let {\n      slatElRefs\n    } = props;\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"tbody\", null, props.slatMetas.map((slatMeta, i) => {\n      let renderProps = {\n        time: slatMeta.time,\n        date: context.dateEnv.toDate(slatMeta.date),\n        view: context.viewApi\n      };\n      return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"tr\", {\n        key: slatMeta.key,\n        ref: slatElRefs.createRef(slatMeta.key)\n      }, props.axis && (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TimeColsAxisCell, Object.assign({}, slatMeta)), (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.C, {\n        elTag: \"td\",\n        elClasses: ['fc-timegrid-slot', 'fc-timegrid-slot-lane', !slatMeta.isLabeled && 'fc-timegrid-slot-minor'],\n        elAttrs: {\n          'data-time': slatMeta.isoTimeStr\n        },\n        renderProps: renderProps,\n        generatorName: \"slotLaneContent\",\n        customGenerator: options.slotLaneContent,\n        classNameGenerator: options.slotLaneClassNames,\n        didMount: options.slotLaneDidMount,\n        willUnmount: options.slotLaneWillUnmount\n      }));\n    }));\n  }\n}\n\n/*\nfor the horizontal \"slats\" that run width-wise. Has a time axis on a side. Depends on RTL.\n*/\nclass TimeColsSlats extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  constructor() {\n    super(...arguments);\n    this.rootElRef = (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n    this.slatElRefs = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cd();\n  }\n  render() {\n    let {\n      props,\n      context\n    } = this;\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      ref: this.rootElRef,\n      className: \"fc-timegrid-slots\"\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"table\", {\n      \"aria-hidden\": true,\n      className: context.theme.getClass('table'),\n      style: {\n        minWidth: props.tableMinWidth,\n        width: props.clientWidth,\n        height: props.minHeight\n      }\n    }, props.tableColGroupNode /* relies on there only being a single <col> for the axis */, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TimeColsSlatsBody, {\n      slatElRefs: this.slatElRefs,\n      axis: props.axis,\n      slatMetas: props.slatMetas\n    })));\n  }\n  componentDidMount() {\n    this.updateSizing();\n  }\n  componentDidUpdate() {\n    this.updateSizing();\n  }\n  componentWillUnmount() {\n    if (this.props.onCoords) {\n      this.props.onCoords(null);\n    }\n  }\n  updateSizing() {\n    let {\n      context,\n      props\n    } = this;\n    if (props.onCoords && props.clientWidth !== null // means sizing has stabilized\n    ) {\n      let rootEl = this.rootElRef.current;\n      if (rootEl.offsetHeight) {\n        // not hidden by css\n        props.onCoords(new TimeColsSlatsCoords(new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.b8(this.rootElRef.current, collectSlatEls(this.slatElRefs.currentMap, props.slatMetas), false, true), this.props.dateProfile, context.options.slotDuration));\n      }\n    }\n  }\n}\nfunction collectSlatEls(elMap, slatMetas) {\n  return slatMetas.map(slatMeta => elMap[slatMeta.key]);\n}\nfunction splitSegsByCol(segs, colCnt) {\n  let segsByCol = [];\n  let i;\n  for (i = 0; i < colCnt; i += 1) {\n    segsByCol.push([]);\n  }\n  if (segs) {\n    for (i = 0; i < segs.length; i += 1) {\n      segsByCol[segs[i].col].push(segs[i]);\n    }\n  }\n  return segsByCol;\n}\nfunction splitInteractionByCol(ui, colCnt) {\n  let byRow = [];\n  if (!ui) {\n    for (let i = 0; i < colCnt; i += 1) {\n      byRow[i] = null;\n    }\n  } else {\n    for (let i = 0; i < colCnt; i += 1) {\n      byRow[i] = {\n        affectedInstances: ui.affectedInstances,\n        isEvent: ui.isEvent,\n        segs: []\n      };\n    }\n    for (let seg of ui.segs) {\n      byRow[seg.col].segs.push(seg);\n    }\n  }\n  return byRow;\n}\nclass TimeColMoreLink extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  render() {\n    let {\n      props\n    } = this;\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.co, {\n      elClasses: ['fc-timegrid-more-link'],\n      elStyle: {\n        top: props.top,\n        bottom: props.bottom\n      },\n      allDayDate: null,\n      moreCnt: props.hiddenSegs.length,\n      allSegs: props.hiddenSegs,\n      hiddenSegs: props.hiddenSegs,\n      extraDateSpan: props.extraDateSpan,\n      dateProfile: props.dateProfile,\n      todayRange: props.todayRange,\n      popoverContent: () => renderPlainFgSegs(props.hiddenSegs, props),\n      defaultGenerator: renderMoreLinkInner,\n      forceTimed: true\n    }, InnerContent => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(InnerContent, {\n      elTag: \"div\",\n      elClasses: ['fc-timegrid-more-link-inner', 'fc-sticky']\n    }));\n  }\n}\nfunction renderMoreLinkInner(props) {\n  return props.shortText;\n}\n\n// segInputs assumed sorted\nfunction buildPositioning(segInputs, strictOrder, maxStackCnt) {\n  let hierarchy = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.by();\n  if (strictOrder != null) {\n    hierarchy.strictOrder = strictOrder;\n  }\n  if (maxStackCnt != null) {\n    hierarchy.maxStackCnt = maxStackCnt;\n  }\n  let hiddenEntries = hierarchy.addSegs(segInputs);\n  let hiddenGroups = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bC)(hiddenEntries);\n  let web = buildWeb(hierarchy);\n  web = stretchWeb(web, 1); // all levelCoords/thickness will have 0.0-1.0\n  let segRects = webToRects(web);\n  return {\n    segRects,\n    hiddenGroups\n  };\n}\nfunction buildWeb(hierarchy) {\n  const {\n    entriesByLevel\n  } = hierarchy;\n  const buildNode = cacheable((level, lateral) => level + ':' + lateral, (level, lateral) => {\n    let siblingRange = findNextLevelSegs(hierarchy, level, lateral);\n    let nextLevelRes = buildNodes(siblingRange, buildNode);\n    let entry = entriesByLevel[level][lateral];\n    return [Object.assign(Object.assign({}, entry), {\n      nextLevelNodes: nextLevelRes[0]\n    }), entry.thickness + nextLevelRes[1] // the pressure builds\n    ];\n  });\n  return buildNodes(entriesByLevel.length ? {\n    level: 0,\n    lateralStart: 0,\n    lateralEnd: entriesByLevel[0].length\n  } : null, buildNode)[0];\n}\nfunction buildNodes(siblingRange, buildNode) {\n  if (!siblingRange) {\n    return [[], 0];\n  }\n  let {\n    level,\n    lateralStart,\n    lateralEnd\n  } = siblingRange;\n  let lateral = lateralStart;\n  let pairs = [];\n  while (lateral < lateralEnd) {\n    pairs.push(buildNode(level, lateral));\n    lateral += 1;\n  }\n  pairs.sort(cmpDescPressures);\n  return [pairs.map(extractNode), pairs[0][1] // first item's pressure\n  ];\n}\nfunction cmpDescPressures(a, b) {\n  return b[1] - a[1];\n}\nfunction extractNode(a) {\n  return a[0];\n}\nfunction findNextLevelSegs(hierarchy, subjectLevel, subjectLateral) {\n  let {\n    levelCoords,\n    entriesByLevel\n  } = hierarchy;\n  let subjectEntry = entriesByLevel[subjectLevel][subjectLateral];\n  let afterSubject = levelCoords[subjectLevel] + subjectEntry.thickness;\n  let levelCnt = levelCoords.length;\n  let level = subjectLevel;\n  // skip past levels that are too high up\n  for (; level < levelCnt && levelCoords[level] < afterSubject; level += 1); // do nothing\n  for (; level < levelCnt; level += 1) {\n    let entries = entriesByLevel[level];\n    let entry;\n    let searchIndex = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bB)(entries, subjectEntry.span.start, _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bA);\n    let lateralStart = searchIndex[0] + searchIndex[1]; // if exact match (which doesn't collide), go to next one\n    let lateralEnd = lateralStart;\n    while (\n    // loop through entries that horizontally intersect\n    (entry = entries[lateralEnd]) &&\n    // but not past the whole seg list\n    entry.span.start < subjectEntry.span.end) {\n      lateralEnd += 1;\n    }\n    if (lateralStart < lateralEnd) {\n      return {\n        level,\n        lateralStart,\n        lateralEnd\n      };\n    }\n  }\n  return null;\n}\nfunction stretchWeb(topLevelNodes, totalThickness) {\n  const stretchNode = cacheable((node, startCoord, prevThickness) => (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bz)(node), (node, startCoord, prevThickness) => {\n    let {\n      nextLevelNodes,\n      thickness\n    } = node;\n    let allThickness = thickness + prevThickness;\n    let thicknessFraction = thickness / allThickness;\n    let endCoord;\n    let newChildren = [];\n    if (!nextLevelNodes.length) {\n      endCoord = totalThickness;\n    } else {\n      for (let childNode of nextLevelNodes) {\n        if (endCoord === undefined) {\n          let res = stretchNode(childNode, startCoord, allThickness);\n          endCoord = res[0];\n          newChildren.push(res[1]);\n        } else {\n          let res = stretchNode(childNode, endCoord, 0);\n          newChildren.push(res[1]);\n        }\n      }\n    }\n    let newThickness = (endCoord - startCoord) * thicknessFraction;\n    return [endCoord - newThickness, Object.assign(Object.assign({}, node), {\n      thickness: newThickness,\n      nextLevelNodes: newChildren\n    })];\n  });\n  return topLevelNodes.map(node => stretchNode(node, 0, 0)[1]);\n}\n// not sorted in any particular order\nfunction webToRects(topLevelNodes) {\n  let rects = [];\n  const processNode = cacheable((node, levelCoord, stackDepth) => (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bz)(node), (node, levelCoord, stackDepth) => {\n    let rect = Object.assign(Object.assign({}, node), {\n      levelCoord,\n      stackDepth,\n      stackForward: 0\n    });\n    rects.push(rect);\n    return rect.stackForward = processNodes(node.nextLevelNodes, levelCoord + node.thickness, stackDepth + 1) + 1;\n  });\n  function processNodes(nodes, levelCoord, stackDepth) {\n    let stackForward = 0;\n    for (let node of nodes) {\n      stackForward = Math.max(processNode(node, levelCoord, stackDepth), stackForward);\n    }\n    return stackForward;\n  }\n  processNodes(topLevelNodes, 0, 0);\n  return rects; // TODO: sort rects by levelCoord to be consistent with toRects?\n}\n// TODO: move to general util\nfunction cacheable(keyFunc, workFunc) {\n  const cache = {};\n  return (...args) => {\n    let key = keyFunc(...args);\n    return key in cache ? cache[key] : cache[key] = workFunc(...args);\n  };\n}\nfunction computeSegVCoords(segs, colDate, slatCoords = null, eventMinHeight = 0) {\n  let vcoords = [];\n  if (slatCoords) {\n    for (let i = 0; i < segs.length; i += 1) {\n      let seg = segs[i];\n      let spanStart = slatCoords.computeDateTop(seg.start, colDate);\n      let spanEnd = Math.max(spanStart + (eventMinHeight || 0),\n      // :(\n      slatCoords.computeDateTop(seg.end, colDate));\n      vcoords.push({\n        start: Math.round(spanStart),\n        end: Math.round(spanEnd) //\n      });\n    }\n  }\n  return vcoords;\n}\nfunction computeFgSegPlacements(segs, segVCoords,\n// might not have for every seg\neventOrderStrict, eventMaxStack) {\n  let segInputs = [];\n  let dumbSegs = []; // segs without coords\n  for (let i = 0; i < segs.length; i += 1) {\n    let vcoords = segVCoords[i];\n    if (vcoords) {\n      segInputs.push({\n        index: i,\n        thickness: 1,\n        span: vcoords\n      });\n    } else {\n      dumbSegs.push(segs[i]);\n    }\n  }\n  let {\n    segRects,\n    hiddenGroups\n  } = buildPositioning(segInputs, eventOrderStrict, eventMaxStack);\n  let segPlacements = [];\n  for (let segRect of segRects) {\n    segPlacements.push({\n      seg: segs[segRect.index],\n      rect: segRect\n    });\n  }\n  for (let dumbSeg of dumbSegs) {\n    segPlacements.push({\n      seg: dumbSeg,\n      rect: null\n    });\n  }\n  return {\n    segPlacements,\n    hiddenGroups\n  };\n}\nconst DEFAULT_TIME_FORMAT = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.x)({\n  hour: 'numeric',\n  minute: '2-digit',\n  meridiem: false\n});\nclass TimeColEvent extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  render() {\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cg, Object.assign({}, this.props, {\n      elClasses: ['fc-timegrid-event', 'fc-v-event', this.props.isShort && 'fc-timegrid-event-short'],\n      defaultTimeFormat: DEFAULT_TIME_FORMAT\n    }));\n  }\n}\nclass TimeCol extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  constructor() {\n    super(...arguments);\n    this.sortEventSegs = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bP);\n  }\n  // TODO: memoize event-placement?\n  render() {\n    let {\n      props,\n      context\n    } = this;\n    let {\n      options\n    } = context;\n    let isSelectMirror = options.selectMirror;\n    let mirrorSegs =\n    // yuck\n    props.eventDrag && props.eventDrag.segs || props.eventResize && props.eventResize.segs || isSelectMirror && props.dateSelectionSegs || [];\n    let interactionAffectedInstances =\n    // TODO: messy way to compute this\n    props.eventDrag && props.eventDrag.affectedInstances || props.eventResize && props.eventResize.affectedInstances || {};\n    let sortedFgSegs = this.sortEventSegs(props.fgEventSegs, options.eventOrder);\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ci, {\n      elTag: \"td\",\n      elRef: props.elRef,\n      elClasses: ['fc-timegrid-col', ...(props.extraClassNames || [])],\n      elAttrs: Object.assign({\n        role: 'gridcell'\n      }, props.extraDataAttrs),\n      date: props.date,\n      dateProfile: props.dateProfile,\n      todayRange: props.todayRange,\n      extraRenderProps: props.extraRenderProps\n    }, InnerContent => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-timegrid-col-frame\"\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-timegrid-col-bg\"\n    }, this.renderFillSegs(props.businessHourSegs, 'non-business'), this.renderFillSegs(props.bgEventSegs, 'bg-event'), this.renderFillSegs(props.dateSelectionSegs, 'highlight')), (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-timegrid-col-events\"\n    }, this.renderFgSegs(sortedFgSegs, interactionAffectedInstances, false, false, false)), (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-timegrid-col-events\"\n    }, this.renderFgSegs(mirrorSegs, {}, Boolean(props.eventDrag), Boolean(props.eventResize), Boolean(isSelectMirror), 'mirror')), (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-timegrid-now-indicator-container\"\n    }, this.renderNowIndicator(props.nowIndicatorSegs)), (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cj)(options) && (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(InnerContent, {\n      elTag: \"div\",\n      elClasses: ['fc-timegrid-col-misc']\n    })));\n  }\n  renderFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey) {\n    let {\n      props\n    } = this;\n    if (props.forPrint) {\n      return renderPlainFgSegs(sortedFgSegs, props);\n    }\n    return this.renderPositionedFgSegs(sortedFgSegs, segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey);\n  }\n  renderPositionedFgSegs(segs,\n  // if not mirror, needs to be sorted\n  segIsInvisible, isDragging, isResizing, isDateSelecting, forcedKey) {\n    let {\n      eventMaxStack,\n      eventShortHeight,\n      eventOrderStrict,\n      eventMinHeight\n    } = this.context.options;\n    let {\n      date,\n      slatCoords,\n      eventSelection,\n      todayRange,\n      nowDate\n    } = this.props;\n    let isMirror = isDragging || isResizing || isDateSelecting;\n    let segVCoords = computeSegVCoords(segs, date, slatCoords, eventMinHeight);\n    let {\n      segPlacements,\n      hiddenGroups\n    } = computeFgSegPlacements(segs, segVCoords, eventOrderStrict, eventMaxStack);\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, this.renderHiddenGroups(hiddenGroups, segs), segPlacements.map(segPlacement => {\n      let {\n        seg,\n        rect\n      } = segPlacement;\n      let instanceId = seg.eventRange.instance.instanceId;\n      let isVisible = isMirror || Boolean(!segIsInvisible[instanceId] && rect);\n      let vStyle = computeSegVStyle(rect && rect.span);\n      let hStyle = !isMirror && rect ? this.computeSegHStyle(rect) : {\n        left: 0,\n        right: 0\n      };\n      let isInset = Boolean(rect) && rect.stackForward > 0;\n      let isShort = Boolean(rect) && rect.span.end - rect.span.start < eventShortHeight; // look at other places for this problem\n      return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n        className: 'fc-timegrid-event-harness' + (isInset ? ' fc-timegrid-event-harness-inset' : ''),\n        key: forcedKey || instanceId,\n        style: Object.assign(Object.assign({\n          visibility: isVisible ? '' : 'hidden'\n        }, vStyle), hStyle)\n      }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TimeColEvent, Object.assign({\n        seg: seg,\n        isDragging: isDragging,\n        isResizing: isResizing,\n        isDateSelecting: isDateSelecting,\n        isSelected: instanceId === eventSelection,\n        isShort: isShort\n      }, (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bQ)(seg, todayRange, nowDate))));\n    }));\n  }\n  // will already have eventMinHeight applied because segInputs already had it\n  renderHiddenGroups(hiddenGroups, segs) {\n    let {\n      extraDateSpan,\n      dateProfile,\n      todayRange,\n      nowDate,\n      eventSelection,\n      eventDrag,\n      eventResize\n    } = this.props;\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, hiddenGroups.map(hiddenGroup => {\n      let positionCss = computeSegVStyle(hiddenGroup.span);\n      let hiddenSegs = compileSegsFromEntries(hiddenGroup.entries, segs);\n      return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TimeColMoreLink, {\n        key: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bu)((0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cp)(hiddenSegs)),\n        hiddenSegs: hiddenSegs,\n        top: positionCss.top,\n        bottom: positionCss.bottom,\n        extraDateSpan: extraDateSpan,\n        dateProfile: dateProfile,\n        todayRange: todayRange,\n        nowDate: nowDate,\n        eventSelection: eventSelection,\n        eventDrag: eventDrag,\n        eventResize: eventResize\n      });\n    }));\n  }\n  renderFillSegs(segs, fillType) {\n    let {\n      props,\n      context\n    } = this;\n    let segVCoords = computeSegVCoords(segs, props.date, props.slatCoords, context.options.eventMinHeight); // don't assume all populated\n    let children = segVCoords.map((vcoords, i) => {\n      let seg = segs[i];\n      return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n        key: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bR)(seg.eventRange),\n        className: \"fc-timegrid-bg-harness\",\n        style: computeSegVStyle(vcoords)\n      }, fillType === 'bg-event' ? (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cm, Object.assign({\n        seg: seg\n      }, (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bQ)(seg, props.todayRange, props.nowDate))) : (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cl)(fillType));\n    });\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, children);\n  }\n  renderNowIndicator(segs) {\n    let {\n      slatCoords,\n      date\n    } = this.props;\n    if (!slatCoords) {\n      return null;\n    }\n    return segs.map((seg, i) => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ch\n    // key doesn't matter. will only ever be one\n    , {\n      // key doesn't matter. will only ever be one\n      key: i,\n      elClasses: ['fc-timegrid-now-indicator-line'],\n      elStyle: {\n        top: slatCoords.computeDateTop(seg.start, date)\n      },\n      isAxis: false,\n      date: date\n    }));\n  }\n  computeSegHStyle(segHCoords) {\n    let {\n      isRtl,\n      options\n    } = this.context;\n    let shouldOverlap = options.slotEventOverlap;\n    let nearCoord = segHCoords.levelCoord; // the left side if LTR. the right side if RTL. floating-point\n    let farCoord = segHCoords.levelCoord + segHCoords.thickness; // the right side if LTR. the left side if RTL. floating-point\n    let left; // amount of space from left edge, a fraction of the total width\n    let right; // amount of space from right edge, a fraction of the total width\n    if (shouldOverlap) {\n      // double the width, but don't go beyond the maximum forward coordinate (1.0)\n      farCoord = Math.min(1, nearCoord + (farCoord - nearCoord) * 2);\n    }\n    if (isRtl) {\n      left = 1 - farCoord;\n      right = nearCoord;\n    } else {\n      left = nearCoord;\n      right = 1 - farCoord;\n    }\n    let props = {\n      zIndex: segHCoords.stackDepth + 1,\n      left: left * 100 + '%',\n      right: right * 100 + '%'\n    };\n    if (shouldOverlap && !segHCoords.stackForward) {\n      // add padding to the edge so that forward stacked events don't cover the resizer's icon\n      props[isRtl ? 'marginLeft' : 'marginRight'] = 10 * 2; // 10 is a guesstimate of the icon's width\n    }\n    return props;\n  }\n}\nfunction renderPlainFgSegs(sortedFgSegs, {\n  todayRange,\n  nowDate,\n  eventSelection,\n  eventDrag,\n  eventResize\n}) {\n  let hiddenInstances = (eventDrag ? eventDrag.affectedInstances : null) || (eventResize ? eventResize.affectedInstances : null) || {};\n  return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.Fragment, null, sortedFgSegs.map(seg => {\n    let instanceId = seg.eventRange.instance.instanceId;\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      key: instanceId,\n      style: {\n        visibility: hiddenInstances[instanceId] ? 'hidden' : ''\n      }\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TimeColEvent, Object.assign({\n      seg: seg,\n      isDragging: false,\n      isResizing: false,\n      isDateSelecting: false,\n      isSelected: instanceId === eventSelection,\n      isShort: false\n    }, (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bQ)(seg, todayRange, nowDate))));\n  }));\n}\nfunction computeSegVStyle(segVCoords) {\n  if (!segVCoords) {\n    return {\n      top: '',\n      bottom: ''\n    };\n  }\n  return {\n    top: segVCoords.start,\n    bottom: -segVCoords.end\n  };\n}\nfunction compileSegsFromEntries(segEntries, allSegs) {\n  return segEntries.map(segEntry => allSegs[segEntry.index]);\n}\nclass TimeColsContent extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.B {\n  constructor() {\n    super(...arguments);\n    this.splitFgEventSegs = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(splitSegsByCol);\n    this.splitBgEventSegs = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(splitSegsByCol);\n    this.splitBusinessHourSegs = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(splitSegsByCol);\n    this.splitNowIndicatorSegs = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(splitSegsByCol);\n    this.splitDateSelectionSegs = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(splitSegsByCol);\n    this.splitEventDrag = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(splitInteractionByCol);\n    this.splitEventResize = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(splitInteractionByCol);\n    this.rootElRef = (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n    this.cellElRefs = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.cd();\n  }\n  render() {\n    let {\n      props,\n      context\n    } = this;\n    let nowIndicatorTop = context.options.nowIndicator && props.slatCoords && props.slatCoords.safeComputeTop(props.nowDate); // might return void\n    let colCnt = props.cells.length;\n    let fgEventSegsByRow = this.splitFgEventSegs(props.fgEventSegs, colCnt);\n    let bgEventSegsByRow = this.splitBgEventSegs(props.bgEventSegs, colCnt);\n    let businessHourSegsByRow = this.splitBusinessHourSegs(props.businessHourSegs, colCnt);\n    let nowIndicatorSegsByRow = this.splitNowIndicatorSegs(props.nowIndicatorSegs, colCnt);\n    let dateSelectionSegsByRow = this.splitDateSelectionSegs(props.dateSelectionSegs, colCnt);\n    let eventDragByRow = this.splitEventDrag(props.eventDrag, colCnt);\n    let eventResizeByRow = this.splitEventResize(props.eventResize, colCnt);\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-timegrid-cols\",\n      ref: this.rootElRef\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"table\", {\n      role: \"presentation\",\n      style: {\n        minWidth: props.tableMinWidth,\n        width: props.clientWidth\n      }\n    }, props.tableColGroupNode, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"tbody\", {\n      role: \"presentation\"\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"tr\", {\n      role: \"row\"\n    }, props.axis && (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"td\", {\n      \"aria-hidden\": true,\n      className: \"fc-timegrid-col fc-timegrid-axis\"\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-timegrid-col-frame\"\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-timegrid-now-indicator-container\"\n    }, typeof nowIndicatorTop === 'number' && (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ch, {\n      elClasses: ['fc-timegrid-now-indicator-arrow'],\n      elStyle: {\n        top: nowIndicatorTop\n      },\n      isAxis: true,\n      date: props.nowDate\n    })))), props.cells.map((cell, i) => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TimeCol, {\n      key: cell.key,\n      elRef: this.cellElRefs.createRef(cell.key),\n      dateProfile: props.dateProfile,\n      date: cell.date,\n      nowDate: props.nowDate,\n      todayRange: props.todayRange,\n      extraRenderProps: cell.extraRenderProps,\n      extraDataAttrs: cell.extraDataAttrs,\n      extraClassNames: cell.extraClassNames,\n      extraDateSpan: cell.extraDateSpan,\n      fgEventSegs: fgEventSegsByRow[i],\n      bgEventSegs: bgEventSegsByRow[i],\n      businessHourSegs: businessHourSegsByRow[i],\n      nowIndicatorSegs: nowIndicatorSegsByRow[i],\n      dateSelectionSegs: dateSelectionSegsByRow[i],\n      eventDrag: eventDragByRow[i],\n      eventResize: eventResizeByRow[i],\n      slatCoords: props.slatCoords,\n      eventSelection: props.eventSelection,\n      forPrint: props.forPrint\n    }))))));\n  }\n  componentDidMount() {\n    this.updateCoords();\n  }\n  componentDidUpdate() {\n    this.updateCoords();\n  }\n  updateCoords() {\n    let {\n      props\n    } = this;\n    if (props.onColCoords && props.clientWidth !== null // means sizing has stabilized\n    ) {\n      props.onColCoords(new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.b8(this.rootElRef.current, collectCellEls(this.cellElRefs.currentMap, props.cells), true,\n      // horizontal\n      false));\n    }\n  }\n}\nfunction collectCellEls(elMap, cells) {\n  return cells.map(cell => elMap[cell.key]);\n}\n\n/* A component that renders one or more columns of vertical time slots\n----------------------------------------------------------------------------------------------------------------------*/\nclass TimeCols extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bc {\n  constructor() {\n    super(...arguments);\n    this.processSlotOptions = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(processSlotOptions);\n    this.state = {\n      slatCoords: null\n    };\n    this.handleRootEl = el => {\n      if (el) {\n        this.context.registerInteractiveComponent(this, {\n          el,\n          isHitComboAllowed: this.props.isHitComboAllowed\n        });\n      } else {\n        this.context.unregisterInteractiveComponent(this);\n      }\n    };\n    this.handleScrollRequest = request => {\n      let {\n        onScrollTopRequest\n      } = this.props;\n      let {\n        slatCoords\n      } = this.state;\n      if (onScrollTopRequest && slatCoords) {\n        if (request.time) {\n          let top = slatCoords.computeTimeTop(request.time);\n          top = Math.ceil(top); // zoom can give weird floating-point values. rather scroll a little bit further\n          if (top) {\n            top += 1; // to overcome top border that slots beyond the first have. looks better\n          }\n          onScrollTopRequest(top);\n        }\n        return true;\n      }\n      return false;\n    };\n    this.handleColCoords = colCoords => {\n      this.colCoords = colCoords;\n    };\n    this.handleSlatCoords = slatCoords => {\n      this.setState({\n        slatCoords\n      });\n      if (this.props.onSlatCoords) {\n        this.props.onSlatCoords(slatCoords);\n      }\n    };\n  }\n  render() {\n    let {\n      props,\n      state\n    } = this;\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(\"div\", {\n      className: \"fc-timegrid-body\",\n      ref: this.handleRootEl,\n      style: {\n        // these props are important to give this wrapper correct dimensions for interactions\n        // TODO: if we set it here, can we avoid giving to inner tables?\n        width: props.clientWidth,\n        minWidth: props.tableMinWidth\n      }\n    }, (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TimeColsSlats, {\n      axis: props.axis,\n      dateProfile: props.dateProfile,\n      slatMetas: props.slatMetas,\n      clientWidth: props.clientWidth,\n      minHeight: props.expandRows ? props.clientHeight : '',\n      tableMinWidth: props.tableMinWidth,\n      tableColGroupNode: props.axis ? props.tableColGroupNode : null /* axis depends on the colgroup's shrinking */,\n      onCoords: this.handleSlatCoords\n    }), (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TimeColsContent, {\n      cells: props.cells,\n      axis: props.axis,\n      dateProfile: props.dateProfile,\n      businessHourSegs: props.businessHourSegs,\n      bgEventSegs: props.bgEventSegs,\n      fgEventSegs: props.fgEventSegs,\n      dateSelectionSegs: props.dateSelectionSegs,\n      eventSelection: props.eventSelection,\n      eventDrag: props.eventDrag,\n      eventResize: props.eventResize,\n      todayRange: props.todayRange,\n      nowDate: props.nowDate,\n      nowIndicatorSegs: props.nowIndicatorSegs,\n      clientWidth: props.clientWidth,\n      tableMinWidth: props.tableMinWidth,\n      tableColGroupNode: props.tableColGroupNode,\n      slatCoords: state.slatCoords,\n      onColCoords: this.handleColCoords,\n      forPrint: props.forPrint\n    }));\n  }\n  componentDidMount() {\n    this.scrollResponder = this.context.createScrollResponder(this.handleScrollRequest);\n  }\n  componentDidUpdate(prevProps) {\n    this.scrollResponder.update(prevProps.dateProfile !== this.props.dateProfile);\n  }\n  componentWillUnmount() {\n    this.scrollResponder.detach();\n  }\n  queryHit(positionLeft, positionTop) {\n    let {\n      dateEnv,\n      options\n    } = this.context;\n    let {\n      colCoords\n    } = this;\n    let {\n      dateProfile\n    } = this.props;\n    let {\n      slatCoords\n    } = this.state;\n    let {\n      snapDuration,\n      snapsPerSlot\n    } = this.processSlotOptions(this.props.slotDuration, options.snapDuration);\n    let colIndex = colCoords.leftToIndex(positionLeft);\n    let slatIndex = slatCoords.positions.topToIndex(positionTop);\n    if (colIndex != null && slatIndex != null) {\n      let cell = this.props.cells[colIndex];\n      let slatTop = slatCoords.positions.tops[slatIndex];\n      let slatHeight = slatCoords.positions.getHeight(slatIndex);\n      let partial = (positionTop - slatTop) / slatHeight; // floating point number between 0 and 1\n      let localSnapIndex = Math.floor(partial * snapsPerSlot); // the snap # relative to start of slat\n      let snapIndex = slatIndex * snapsPerSlot + localSnapIndex;\n      let dayDate = this.props.cells[colIndex].date;\n      let time = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bn)(dateProfile.slotMinTime, (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bm)(snapDuration, snapIndex));\n      let start = dateEnv.add(dayDate, time);\n      let end = dateEnv.add(start, snapDuration);\n      return {\n        dateProfile,\n        dateSpan: Object.assign({\n          range: {\n            start,\n            end\n          },\n          allDay: false\n        }, cell.extraDateSpan),\n        dayEl: colCoords.els[colIndex],\n        rect: {\n          left: colCoords.lefts[colIndex],\n          right: colCoords.rights[colIndex],\n          top: slatTop,\n          bottom: slatTop + slatHeight\n        },\n        layer: 0\n      };\n    }\n    return null;\n  }\n}\nfunction processSlotOptions(slotDuration, snapDurationOverride) {\n  let snapDuration = snapDurationOverride || slotDuration;\n  let snapsPerSlot = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.br)(slotDuration, snapDuration);\n  if (snapsPerSlot === null) {\n    snapDuration = slotDuration;\n    snapsPerSlot = 1;\n    // TODO: say warning?\n  }\n  return {\n    snapDuration,\n    snapsPerSlot\n  };\n}\nclass DayTimeColsSlicer extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bU {\n  sliceRange(range, dayRanges) {\n    let segs = [];\n    for (let col = 0; col < dayRanges.length; col += 1) {\n      let segRange = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.o)(range, dayRanges[col]);\n      if (segRange) {\n        segs.push({\n          start: segRange.start,\n          end: segRange.end,\n          isStart: segRange.start.valueOf() === range.start.valueOf(),\n          isEnd: segRange.end.valueOf() === range.end.valueOf(),\n          col\n        });\n      }\n    }\n    return segs;\n  }\n}\nclass DayTimeCols extends _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bc {\n  constructor() {\n    super(...arguments);\n    this.buildDayRanges = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(buildDayRanges);\n    this.slicer = new DayTimeColsSlicer();\n    this.timeColsRef = (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createRef)();\n  }\n  render() {\n    let {\n      props,\n      context\n    } = this;\n    let {\n      dateProfile,\n      dayTableModel\n    } = props;\n    let {\n      nowIndicator,\n      nextDayThreshold\n    } = context.options;\n    let dayRanges = this.buildDayRanges(dayTableModel, dateProfile, context.dateEnv);\n    // give it the first row of cells\n    // TODO: would move this further down hierarchy, but sliceNowDate needs it\n    return (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.a6, {\n      unit: nowIndicator ? 'minute' : 'day'\n    }, (nowDate, todayRange) => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(TimeCols, Object.assign({\n      ref: this.timeColsRef\n    }, this.slicer.sliceProps(props, dateProfile, null, context, dayRanges), {\n      forPrint: props.forPrint,\n      axis: props.axis,\n      dateProfile: dateProfile,\n      slatMetas: props.slatMetas,\n      slotDuration: props.slotDuration,\n      cells: dayTableModel.cells[0],\n      tableColGroupNode: props.tableColGroupNode,\n      tableMinWidth: props.tableMinWidth,\n      clientWidth: props.clientWidth,\n      clientHeight: props.clientHeight,\n      expandRows: props.expandRows,\n      nowDate: nowDate,\n      nowIndicatorSegs: nowIndicator && this.slicer.sliceNowDate(nowDate, dateProfile, nextDayThreshold, context, dayRanges),\n      todayRange: todayRange,\n      onScrollTopRequest: props.onScrollTopRequest,\n      onSlatCoords: props.onSlatCoords\n    })));\n  }\n}\nfunction buildDayRanges(dayTableModel, dateProfile, dateEnv) {\n  let ranges = [];\n  for (let date of dayTableModel.headerDates) {\n    ranges.push({\n      start: dateEnv.add(date, dateProfile.slotMinTime),\n      end: dateEnv.add(date, dateProfile.slotMaxTime)\n    });\n  }\n  return ranges;\n}\n\n// potential nice values for the slot-duration and interval-duration\n// from largest to smallest\nconst STOCK_SUB_DURATIONS = [{\n  hours: 1\n}, {\n  minutes: 30\n}, {\n  minutes: 15\n}, {\n  seconds: 30\n}, {\n  seconds: 15\n}];\nfunction buildSlatMetas(slotMinTime, slotMaxTime, explicitLabelInterval, slotDuration, dateEnv) {\n  let dayStart = new Date(0);\n  let slatTime = slotMinTime;\n  let slatIterator = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.d)(0);\n  let labelInterval = explicitLabelInterval || computeLabelInterval(slotDuration);\n  let metas = [];\n  while ((0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bq)(slatTime) < (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bq)(slotMaxTime)) {\n    let date = dateEnv.add(dayStart, slatTime);\n    let isLabeled = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.br)(slatIterator, labelInterval) !== null;\n    metas.push({\n      date,\n      time: slatTime,\n      key: date.toISOString(),\n      isoTimeStr: (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bs)(date),\n      isLabeled\n    });\n    slatTime = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bn)(slatTime, slotDuration);\n    slatIterator = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bn)(slatIterator, slotDuration);\n  }\n  return metas;\n}\n// Computes an automatic value for slotLabelInterval\nfunction computeLabelInterval(slotDuration) {\n  let i;\n  let labelInterval;\n  let slotsPerLabel;\n  // find the smallest stock label interval that results in more than one slots-per-label\n  for (i = STOCK_SUB_DURATIONS.length - 1; i >= 0; i -= 1) {\n    labelInterval = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.d)(STOCK_SUB_DURATIONS[i]);\n    slotsPerLabel = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.br)(labelInterval, slotDuration);\n    if (slotsPerLabel !== null && slotsPerLabel > 1) {\n      return labelInterval;\n    }\n  }\n  return slotDuration; // fall back\n}\nclass DayTimeColsView extends TimeColsView {\n  constructor() {\n    super(...arguments);\n    this.buildTimeColsModel = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(buildTimeColsModel);\n    this.buildSlatMetas = (0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.z)(buildSlatMetas);\n  }\n  render() {\n    let {\n      options,\n      dateEnv,\n      dateProfileGenerator\n    } = this.context;\n    let {\n      props\n    } = this;\n    let {\n      dateProfile\n    } = props;\n    let dayTableModel = this.buildTimeColsModel(dateProfile, dateProfileGenerator);\n    let splitProps = this.allDaySplitter.splitProps(props);\n    let slatMetas = this.buildSlatMetas(dateProfile.slotMinTime, dateProfile.slotMaxTime, options.slotLabelInterval, options.slotDuration, dateEnv);\n    let {\n      dayMinWidth\n    } = options;\n    let hasAttachedAxis = !dayMinWidth;\n    let hasDetachedAxis = dayMinWidth;\n    let headerContent = options.dayHeaders && (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bI, {\n      dates: dayTableModel.headerDates,\n      dateProfile: dateProfile,\n      datesRepDistinctDays: true,\n      renderIntro: hasAttachedAxis ? this.renderHeadAxis : null\n    });\n    let allDayContent = options.allDaySlot !== false && (contentArg => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(_fullcalendar_daygrid_internal_js__WEBPACK_IMPORTED_MODULE_2__.DayTable, Object.assign({}, splitProps.allDay, {\n      dateProfile: dateProfile,\n      dayTableModel: dayTableModel,\n      nextDayThreshold: options.nextDayThreshold,\n      tableMinWidth: contentArg.tableMinWidth,\n      colGroupNode: contentArg.tableColGroupNode,\n      renderRowIntro: hasAttachedAxis ? this.renderTableRowAxis : null,\n      showWeekNumbers: false,\n      expandRows: false,\n      headerAlignElRef: this.headerElRef,\n      clientWidth: contentArg.clientWidth,\n      clientHeight: contentArg.clientHeight,\n      forPrint: props.forPrint\n    }, this.getAllDayMaxEventProps())));\n    let timeGridContent = contentArg => (0,_fullcalendar_core_preact_js__WEBPACK_IMPORTED_MODULE_1__.createElement)(DayTimeCols, Object.assign({}, splitProps.timed, {\n      dayTableModel: dayTableModel,\n      dateProfile: dateProfile,\n      axis: hasAttachedAxis,\n      slotDuration: options.slotDuration,\n      slatMetas: slatMetas,\n      forPrint: props.forPrint,\n      tableColGroupNode: contentArg.tableColGroupNode,\n      tableMinWidth: contentArg.tableMinWidth,\n      clientWidth: contentArg.clientWidth,\n      clientHeight: contentArg.clientHeight,\n      onSlatCoords: this.handleSlatCoords,\n      expandRows: contentArg.expandRows,\n      onScrollTopRequest: this.handleScrollTopRequest\n    }));\n    return hasDetachedAxis ? this.renderHScrollLayout(headerContent, allDayContent, timeGridContent, dayTableModel.colCnt, dayMinWidth, slatMetas, this.state.slatCoords) : this.renderSimpleLayout(headerContent, allDayContent, timeGridContent);\n  }\n}\nfunction buildTimeColsModel(dateProfile, dateProfileGenerator) {\n  let daySeries = new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bM(dateProfile.renderRange, dateProfileGenerator);\n  return new _fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.bT(daySeries, false);\n}\nvar css_248z = \".fc-v-event{background-color:var(--fc-event-bg-color);border:1px solid var(--fc-event-border-color);display:block}.fc-v-event .fc-event-main{color:var(--fc-event-text-color);height:100%}.fc-v-event .fc-event-main-frame{display:flex;flex-direction:column;height:100%}.fc-v-event .fc-event-time{flex-grow:0;flex-shrink:0;max-height:100%;overflow:hidden}.fc-v-event .fc-event-title-container{flex-grow:1;flex-shrink:1;min-height:0}.fc-v-event .fc-event-title{bottom:0;max-height:100%;overflow:hidden;top:0}.fc-v-event:not(.fc-event-start){border-top-left-radius:0;border-top-right-radius:0;border-top-width:0}.fc-v-event:not(.fc-event-end){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-width:0}.fc-v-event.fc-event-selected:before{left:-10px;right:-10px}.fc-v-event .fc-event-resizer-start{cursor:n-resize}.fc-v-event .fc-event-resizer-end{cursor:s-resize}.fc-v-event:not(.fc-event-selected) .fc-event-resizer{height:var(--fc-event-resizer-thickness);left:0;right:0}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-start{top:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event:not(.fc-event-selected) .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-thickness)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer{left:50%;margin-left:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-start{top:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc-v-event.fc-event-selected .fc-event-resizer-end{bottom:calc(var(--fc-event-resizer-dot-total-width)/-2)}.fc .fc-timegrid .fc-daygrid-body{z-index:2}.fc .fc-timegrid-divider{padding:0 0 2px}.fc .fc-timegrid-body{min-height:100%;position:relative;z-index:1}.fc .fc-timegrid-axis-chunk{position:relative}.fc .fc-timegrid-axis-chunk>table,.fc .fc-timegrid-slots{position:relative;z-index:1}.fc .fc-timegrid-slot{border-bottom:0;height:1.5em}.fc .fc-timegrid-slot:empty:before{content:\\\"\\\\00a0\\\"}.fc .fc-timegrid-slot-minor{border-top-style:dotted}.fc .fc-timegrid-slot-label-cushion{display:inline-block;white-space:nowrap}.fc .fc-timegrid-slot-label{vertical-align:middle}.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 4px}.fc .fc-timegrid-axis-frame-liquid{height:100%}.fc .fc-timegrid-axis-frame{align-items:center;display:flex;justify-content:flex-end;overflow:hidden}.fc .fc-timegrid-axis-cushion{flex-shrink:0;max-width:60px}.fc-direction-ltr .fc-timegrid-slot-label-frame{text-align:right}.fc-direction-rtl .fc-timegrid-slot-label-frame{text-align:left}.fc-liquid-hack .fc-timegrid-axis-frame-liquid{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col.fc-day-today{background-color:var(--fc-today-bg-color)}.fc .fc-timegrid-col-frame{min-height:100%;position:relative}.fc-media-screen.fc-liquid-hack .fc-timegrid-col-frame{bottom:0;height:auto;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols{bottom:0;left:0;position:absolute;right:0;top:0}.fc-media-screen .fc-timegrid-cols>table{height:100%}.fc-media-screen .fc-timegrid-col-bg,.fc-media-screen .fc-timegrid-col-events,.fc-media-screen .fc-timegrid-now-indicator-container{left:0;position:absolute;right:0;top:0}.fc .fc-timegrid-col-bg{z-index:2}.fc .fc-timegrid-col-bg .fc-non-business{z-index:1}.fc .fc-timegrid-col-bg .fc-bg-event{z-index:2}.fc .fc-timegrid-col-bg .fc-highlight{z-index:3}.fc .fc-timegrid-bg-harness{left:0;position:absolute;right:0}.fc .fc-timegrid-col-events{z-index:3}.fc .fc-timegrid-now-indicator-container{bottom:0;overflow:hidden}.fc-direction-ltr .fc-timegrid-col-events{margin:0 2.5% 0 2px}.fc-direction-rtl .fc-timegrid-col-events{margin:0 2px 0 2.5%}.fc-timegrid-event-harness{position:absolute}.fc-timegrid-event-harness>.fc-timegrid-event{bottom:0;left:0;position:absolute;right:0;top:0}.fc-timegrid-event-harness-inset .fc-timegrid-event,.fc-timegrid-event.fc-event-mirror,.fc-timegrid-more-link{box-shadow:0 0 0 1px var(--fc-page-bg-color)}.fc-timegrid-event,.fc-timegrid-more-link{border-radius:3px;font-size:var(--fc-small-font-size)}.fc-timegrid-event{margin-bottom:1px}.fc-timegrid-event .fc-event-main{padding:1px 1px 0}.fc-timegrid-event .fc-event-time{font-size:var(--fc-small-font-size);margin-bottom:1px;white-space:nowrap}.fc-timegrid-event-short .fc-event-main-frame{flex-direction:row;overflow:hidden}.fc-timegrid-event-short .fc-event-time:after{content:\\\"\\\\00a0-\\\\00a0\\\"}.fc-timegrid-event-short .fc-event-title{font-size:var(--fc-small-font-size)}.fc-timegrid-more-link{background:var(--fc-more-link-bg-color);color:var(--fc-more-link-text-color);cursor:pointer;margin-bottom:1px;position:absolute;z-index:9999}.fc-timegrid-more-link-inner{padding:3px 2px;top:0}.fc-direction-ltr .fc-timegrid-more-link{right:0}.fc-direction-rtl .fc-timegrid-more-link{left:0}.fc .fc-timegrid-now-indicator-arrow,.fc .fc-timegrid-now-indicator-line{pointer-events:none}.fc .fc-timegrid-now-indicator-line{border-color:var(--fc-now-indicator-color);border-style:solid;border-width:1px 0 0;left:0;position:absolute;right:0;z-index:4}.fc .fc-timegrid-now-indicator-arrow{border-color:var(--fc-now-indicator-color);border-style:solid;margin-top:-5px;position:absolute;z-index:4}.fc-direction-ltr .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 0 5px 6px;left:0}.fc-direction-rtl .fc-timegrid-now-indicator-arrow{border-bottom-color:transparent;border-top-color:transparent;border-width:5px 6px 5px 0;right:0}\";\n(0,_fullcalendar_core_internal_js__WEBPACK_IMPORTED_MODULE_0__.ct)(css_248z);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@fullcalendar/timegrid/internal.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@kurkle/color/dist/color.esm.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/@kurkle/color/dist/color.esm.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Color: () => (/* binding */ Color),\n/* harmony export */   b2n: () => (/* binding */ b2n),\n/* harmony export */   b2p: () => (/* binding */ b2p),\n/* harmony export */   \"default\": () => (/* binding */ index_esm),\n/* harmony export */   hexParse: () => (/* binding */ hexParse),\n/* harmony export */   hexString: () => (/* binding */ hexString),\n/* harmony export */   hsl2rgb: () => (/* binding */ hsl2rgb),\n/* harmony export */   hslString: () => (/* binding */ hslString),\n/* harmony export */   hsv2rgb: () => (/* binding */ hsv2rgb),\n/* harmony export */   hueParse: () => (/* binding */ hueParse),\n/* harmony export */   hwb2rgb: () => (/* binding */ hwb2rgb),\n/* harmony export */   lim: () => (/* binding */ lim),\n/* harmony export */   n2b: () => (/* binding */ n2b),\n/* harmony export */   n2p: () => (/* binding */ n2p),\n/* harmony export */   nameParse: () => (/* binding */ nameParse),\n/* harmony export */   p2b: () => (/* binding */ p2b),\n/* harmony export */   rgb2hsl: () => (/* binding */ rgb2hsl),\n/* harmony export */   rgbParse: () => (/* binding */ rgbParse),\n/* harmony export */   rgbString: () => (/* binding */ rgbString),\n/* harmony export */   rotate: () => (/* binding */ rotate),\n/* harmony export */   round: () => (/* binding */ round)\n/* harmony export */ });\n/*!\n * @kurkle/color v0.3.4\n * https://github.com/kurkle/color#readme\n * (c) 2024 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n  return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n  return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n  return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n  return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n  return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n  return lim(round(v * 100), 0, 100);\n}\nconst map$1 = {\n  0: 0,\n  1: 1,\n  2: 2,\n  3: 3,\n  4: 4,\n  5: 5,\n  6: 6,\n  7: 7,\n  8: 8,\n  9: 9,\n  A: 10,\n  B: 11,\n  C: 12,\n  D: 13,\n  E: 14,\n  F: 15,\n  a: 10,\n  b: 11,\n  c: 12,\n  d: 13,\n  e: 14,\n  f: 15\n};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => (b & 0xF0) >> 4 === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n  var len = str.length;\n  var ret;\n  if (str[0] === '#') {\n    if (len === 4 || len === 5) {\n      ret = {\n        r: 255 & map$1[str[1]] * 17,\n        g: 255 & map$1[str[2]] * 17,\n        b: 255 & map$1[str[3]] * 17,\n        a: len === 5 ? map$1[str[4]] * 17 : 255\n      };\n    } else if (len === 7 || len === 9) {\n      ret = {\n        r: map$1[str[1]] << 4 | map$1[str[2]],\n        g: map$1[str[3]] << 4 | map$1[str[4]],\n        b: map$1[str[5]] << 4 | map$1[str[6]],\n        a: len === 9 ? map$1[str[7]] << 4 | map$1[str[8]] : 255\n      };\n    }\n  }\n  return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n  var f = isShort(v) ? h1 : h2;\n  return v ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f) : undefined;\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n  const a = s * Math.min(l, 1 - l);\n  const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n  return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n  const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n  return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n  const rgb = hsl2rgbn(h, 1, 0.5);\n  let i;\n  if (w + b > 1) {\n    i = 1 / (w + b);\n    w *= i;\n    b *= i;\n  }\n  for (i = 0; i < 3; i++) {\n    rgb[i] *= 1 - w - b;\n    rgb[i] += w;\n  }\n  return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n  if (r === max) {\n    return (g - b) / d + (g < b ? 6 : 0);\n  }\n  if (g === max) {\n    return (b - r) / d + 2;\n  }\n  return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n  const range = 255;\n  const r = v.r / range;\n  const g = v.g / range;\n  const b = v.b / range;\n  const max = Math.max(r, g, b);\n  const min = Math.min(r, g, b);\n  const l = (max + min) / 2;\n  let h, s, d;\n  if (max !== min) {\n    d = max - min;\n    s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n    h = hueValue(r, g, b, d, max);\n    h = h * 60 + 0.5;\n  }\n  return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n  return (Array.isArray(a) ? f(a[0], a[1], a[2]) : f(a, b, c)).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n  return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n  return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n  return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n  return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n  const m = HUE_RE.exec(str);\n  let a = 255;\n  let v;\n  if (!m) {\n    return;\n  }\n  if (m[5] !== v) {\n    a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n  }\n  const h = hue(+m[2]);\n  const p1 = +m[3] / 100;\n  const p2 = +m[4] / 100;\n  if (m[1] === 'hwb') {\n    v = hwb2rgb(h, p1, p2);\n  } else if (m[1] === 'hsv') {\n    v = hsv2rgb(h, p1, p2);\n  } else {\n    v = hsl2rgb(h, p1, p2);\n  }\n  return {\n    r: v[0],\n    g: v[1],\n    b: v[2],\n    a: a\n  };\n}\nfunction rotate(v, deg) {\n  var h = rgb2hsl(v);\n  h[0] = hue(h[0] + deg);\n  h = hsl2rgb(h);\n  v.r = h[0];\n  v.g = h[1];\n  v.b = h[2];\n}\nfunction hslString(v) {\n  if (!v) {\n    return;\n  }\n  const a = rgb2hsl(v);\n  const h = a[0];\n  const s = n2p(a[1]);\n  const l = n2p(a[2]);\n  return v.a < 255 ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})` : `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map = {\n  x: 'dark',\n  Z: 'light',\n  Y: 're',\n  X: 'blu',\n  W: 'gr',\n  V: 'medium',\n  U: 'slate',\n  A: 'ee',\n  T: 'ol',\n  S: 'or',\n  B: 'ra',\n  C: 'lateg',\n  D: 'ights',\n  R: 'in',\n  Q: 'turquois',\n  E: 'hi',\n  P: 'ro',\n  O: 'al',\n  N: 'le',\n  M: 'de',\n  L: 'yello',\n  F: 'en',\n  K: 'ch',\n  G: 'arks',\n  H: 'ea',\n  I: 'ightg',\n  J: 'wh'\n};\nconst names$1 = {\n  OiceXe: 'f0f8ff',\n  antiquewEte: 'faebd7',\n  aqua: 'ffff',\n  aquamarRe: '7fffd4',\n  azuY: 'f0ffff',\n  beige: 'f5f5dc',\n  bisque: 'ffe4c4',\n  black: '0',\n  blanKedOmond: 'ffebcd',\n  Xe: 'ff',\n  XeviTet: '8a2be2',\n  bPwn: 'a52a2a',\n  burlywood: 'deb887',\n  caMtXe: '5f9ea0',\n  KartYuse: '7fff00',\n  KocTate: 'd2691e',\n  cSO: 'ff7f50',\n  cSnflowerXe: '6495ed',\n  cSnsilk: 'fff8dc',\n  crimson: 'dc143c',\n  cyan: 'ffff',\n  xXe: '8b',\n  xcyan: '8b8b',\n  xgTMnPd: 'b8860b',\n  xWay: 'a9a9a9',\n  xgYF: '6400',\n  xgYy: 'a9a9a9',\n  xkhaki: 'bdb76b',\n  xmagFta: '8b008b',\n  xTivegYF: '556b2f',\n  xSange: 'ff8c00',\n  xScEd: '9932cc',\n  xYd: '8b0000',\n  xsOmon: 'e9967a',\n  xsHgYF: '8fbc8f',\n  xUXe: '483d8b',\n  xUWay: '2f4f4f',\n  xUgYy: '2f4f4f',\n  xQe: 'ced1',\n  xviTet: '9400d3',\n  dAppRk: 'ff1493',\n  dApskyXe: 'bfff',\n  dimWay: '696969',\n  dimgYy: '696969',\n  dodgerXe: '1e90ff',\n  fiYbrick: 'b22222',\n  flSOwEte: 'fffaf0',\n  foYstWAn: '228b22',\n  fuKsia: 'ff00ff',\n  gaRsbSo: 'dcdcdc',\n  ghostwEte: 'f8f8ff',\n  gTd: 'ffd700',\n  gTMnPd: 'daa520',\n  Way: '808080',\n  gYF: '8000',\n  gYFLw: 'adff2f',\n  gYy: '808080',\n  honeyMw: 'f0fff0',\n  hotpRk: 'ff69b4',\n  RdianYd: 'cd5c5c',\n  Rdigo: '4b0082',\n  ivSy: 'fffff0',\n  khaki: 'f0e68c',\n  lavFMr: 'e6e6fa',\n  lavFMrXsh: 'fff0f5',\n  lawngYF: '7cfc00',\n  NmoncEffon: 'fffacd',\n  ZXe: 'add8e6',\n  ZcSO: 'f08080',\n  Zcyan: 'e0ffff',\n  ZgTMnPdLw: 'fafad2',\n  ZWay: 'd3d3d3',\n  ZgYF: '90ee90',\n  ZgYy: 'd3d3d3',\n  ZpRk: 'ffb6c1',\n  ZsOmon: 'ffa07a',\n  ZsHgYF: '20b2aa',\n  ZskyXe: '87cefa',\n  ZUWay: '778899',\n  ZUgYy: '778899',\n  ZstAlXe: 'b0c4de',\n  ZLw: 'ffffe0',\n  lime: 'ff00',\n  limegYF: '32cd32',\n  lRF: 'faf0e6',\n  magFta: 'ff00ff',\n  maPon: '800000',\n  VaquamarRe: '66cdaa',\n  VXe: 'cd',\n  VScEd: 'ba55d3',\n  VpurpN: '9370db',\n  VsHgYF: '3cb371',\n  VUXe: '7b68ee',\n  VsprRggYF: 'fa9a',\n  VQe: '48d1cc',\n  VviTetYd: 'c71585',\n  midnightXe: '191970',\n  mRtcYam: 'f5fffa',\n  mistyPse: 'ffe4e1',\n  moccasR: 'ffe4b5',\n  navajowEte: 'ffdead',\n  navy: '80',\n  Tdlace: 'fdf5e6',\n  Tive: '808000',\n  TivedBb: '6b8e23',\n  Sange: 'ffa500',\n  SangeYd: 'ff4500',\n  ScEd: 'da70d6',\n  pOegTMnPd: 'eee8aa',\n  pOegYF: '98fb98',\n  pOeQe: 'afeeee',\n  pOeviTetYd: 'db7093',\n  papayawEp: 'ffefd5',\n  pHKpuff: 'ffdab9',\n  peru: 'cd853f',\n  pRk: 'ffc0cb',\n  plum: 'dda0dd',\n  powMrXe: 'b0e0e6',\n  purpN: '800080',\n  YbeccapurpN: '663399',\n  Yd: 'ff0000',\n  Psybrown: 'bc8f8f',\n  PyOXe: '4169e1',\n  saddNbPwn: '8b4513',\n  sOmon: 'fa8072',\n  sandybPwn: 'f4a460',\n  sHgYF: '2e8b57',\n  sHshell: 'fff5ee',\n  siFna: 'a0522d',\n  silver: 'c0c0c0',\n  skyXe: '87ceeb',\n  UXe: '6a5acd',\n  UWay: '708090',\n  UgYy: '708090',\n  snow: 'fffafa',\n  sprRggYF: 'ff7f',\n  stAlXe: '4682b4',\n  tan: 'd2b48c',\n  teO: '8080',\n  tEstN: 'd8bfd8',\n  tomato: 'ff6347',\n  Qe: '40e0d0',\n  viTet: 'ee82ee',\n  JHt: 'f5deb3',\n  wEte: 'ffffff',\n  wEtesmoke: 'f5f5f5',\n  Lw: 'ffff00',\n  LwgYF: '9acd32'\n};\nfunction unpack() {\n  const unpacked = {};\n  const keys = Object.keys(names$1);\n  const tkeys = Object.keys(map);\n  let i, j, k, ok, nk;\n  for (i = 0; i < keys.length; i++) {\n    ok = nk = keys[i];\n    for (j = 0; j < tkeys.length; j++) {\n      k = tkeys[j];\n      nk = nk.replace(k, map[k]);\n    }\n    k = parseInt(names$1[ok], 16);\n    unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n  }\n  return unpacked;\n}\nlet names;\nfunction nameParse(str) {\n  if (!names) {\n    names = unpack();\n    names.transparent = [0, 0, 0, 0];\n  }\n  const a = names[str.toLowerCase()];\n  return a && {\n    r: a[0],\n    g: a[1],\n    b: a[2],\n    a: a.length === 4 ? a[3] : 255\n  };\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n  const m = RGB_RE.exec(str);\n  let a = 255;\n  let r, g, b;\n  if (!m) {\n    return;\n  }\n  if (m[7] !== r) {\n    const v = +m[7];\n    a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n  }\n  r = +m[1];\n  g = +m[3];\n  b = +m[5];\n  r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n  g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n  b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n  return {\n    r: r,\n    g: g,\n    b: b,\n    a: a\n  };\n}\nfunction rgbString(v) {\n  return v && (v.a < 255 ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})` : `rgb(${v.r}, ${v.g}, ${v.b})`);\n}\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n  const r = from(b2n(rgb1.r));\n  const g = from(b2n(rgb1.g));\n  const b = from(b2n(rgb1.b));\n  return {\n    r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n    g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n    b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n    a: rgb1.a + t * (rgb2.a - rgb1.a)\n  };\n}\nfunction modHSL(v, i, ratio) {\n  if (v) {\n    let tmp = rgb2hsl(v);\n    tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n    tmp = hsl2rgb(tmp);\n    v.r = tmp[0];\n    v.g = tmp[1];\n    v.b = tmp[2];\n  }\n}\nfunction clone(v, proto) {\n  return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n  var v = {\n    r: 0,\n    g: 0,\n    b: 0,\n    a: 255\n  };\n  if (Array.isArray(input)) {\n    if (input.length >= 3) {\n      v = {\n        r: input[0],\n        g: input[1],\n        b: input[2],\n        a: 255\n      };\n      if (input.length > 3) {\n        v.a = n2b(input[3]);\n      }\n    }\n  } else {\n    v = clone(input, {\n      r: 0,\n      g: 0,\n      b: 0,\n      a: 1\n    });\n    v.a = n2b(v.a);\n  }\n  return v;\n}\nfunction functionParse(str) {\n  if (str.charAt(0) === 'r') {\n    return rgbParse(str);\n  }\n  return hueParse(str);\n}\nclass Color {\n  constructor(input) {\n    if (input instanceof Color) {\n      return input;\n    }\n    const type = typeof input;\n    let v;\n    if (type === 'object') {\n      v = fromObject(input);\n    } else if (type === 'string') {\n      v = hexParse(input) || nameParse(input) || functionParse(input);\n    }\n    this._rgb = v;\n    this._valid = !!v;\n  }\n  get valid() {\n    return this._valid;\n  }\n  get rgb() {\n    var v = clone(this._rgb);\n    if (v) {\n      v.a = b2n(v.a);\n    }\n    return v;\n  }\n  set rgb(obj) {\n    this._rgb = fromObject(obj);\n  }\n  rgbString() {\n    return this._valid ? rgbString(this._rgb) : undefined;\n  }\n  hexString() {\n    return this._valid ? hexString(this._rgb) : undefined;\n  }\n  hslString() {\n    return this._valid ? hslString(this._rgb) : undefined;\n  }\n  mix(color, weight) {\n    if (color) {\n      const c1 = this.rgb;\n      const c2 = color.rgb;\n      let w2;\n      const p = weight === w2 ? 0.5 : weight;\n      const w = 2 * p - 1;\n      const a = c1.a - c2.a;\n      const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n      w2 = 1 - w1;\n      c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n      c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n      c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n      c1.a = p * c1.a + (1 - p) * c2.a;\n      this.rgb = c1;\n    }\n    return this;\n  }\n  interpolate(color, t) {\n    if (color) {\n      this._rgb = interpolate(this._rgb, color._rgb, t);\n    }\n    return this;\n  }\n  clone() {\n    return new Color(this.rgb);\n  }\n  alpha(a) {\n    this._rgb.a = n2b(a);\n    return this;\n  }\n  clearer(ratio) {\n    const rgb = this._rgb;\n    rgb.a *= 1 - ratio;\n    return this;\n  }\n  greyscale() {\n    const rgb = this._rgb;\n    const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n    rgb.r = rgb.g = rgb.b = val;\n    return this;\n  }\n  opaquer(ratio) {\n    const rgb = this._rgb;\n    rgb.a *= 1 + ratio;\n    return this;\n  }\n  negate() {\n    const v = this._rgb;\n    v.r = 255 - v.r;\n    v.g = 255 - v.g;\n    v.b = 255 - v.b;\n    return this;\n  }\n  lighten(ratio) {\n    modHSL(this._rgb, 2, ratio);\n    return this;\n  }\n  darken(ratio) {\n    modHSL(this._rgb, 2, -ratio);\n    return this;\n  }\n  saturate(ratio) {\n    modHSL(this._rgb, 1, ratio);\n    return this;\n  }\n  desaturate(ratio) {\n    modHSL(this._rgb, 1, -ratio);\n    return this;\n  }\n  rotate(deg) {\n    rotate(this._rgb, deg);\n    return this;\n  }\n}\nfunction index_esm(input) {\n  return new Color(input);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@kurkle/color/dist/color.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@react-dnd/asap/dist/AsapQueue.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/@react-dnd/asap/dist/AsapQueue.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   AsapQueue: () => (/* binding */ AsapQueue)\n/* harmony export */ });\n/* harmony import */ var _makeRequestCall_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./makeRequestCall.js */ \"../react-ui/node_modules/@react-dnd/asap/dist/makeRequestCall.js\");\n/* eslint-disable no-restricted-globals, @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unused-vars, @typescript-eslint/no-non-null-assertion */\nclass AsapQueue {\n  // Use the fastest means possible to execute a task in its own turn, with\n  // priority over other events including IO, animation, reflow, and redraw\n  // events in browsers.\n  //\n  // An exception thrown by a task will permanently interrupt the processing of\n  // subsequent tasks. The higher level `asap` function ensures that if an\n  // exception is thrown by a task, that the task queue will continue flushing as\n  // soon as possible, but if you use `rawAsap` directly, you are responsible to\n  // either ensure that no exceptions are thrown from your task, or to manually\n  // call `rawAsap.requestFlush` if an exception is thrown.\n  enqueueTask(task) {\n    const {\n      queue: q,\n      requestFlush\n    } = this;\n    if (!q.length) {\n      requestFlush();\n      this.flushing = true;\n    }\n    // Equivalent to push, but avoids a function call.\n    q[q.length] = task;\n  }\n  constructor() {\n    this.queue = [];\n    // We queue errors to ensure they are thrown in right order (FIFO).\n    // Array-as-queue is good enough here, since we are just dealing with exceptions.\n    this.pendingErrors = [];\n    // Once a flush has been requested, no further calls to `requestFlush` are\n    // necessary until the next `flush` completes.\n    // @ts-ignore\n    this.flushing = false;\n    // The position of the next task to execute in the task queue. This is\n    // preserved between calls to `flush` so that it can be resumed if\n    // a task throws an exception.\n    this.index = 0;\n    // If a task schedules additional tasks recursively, the task queue can grow\n    // unbounded. To prevent memory exhaustion, the task queue will periodically\n    // truncate already-completed tasks.\n    this.capacity = 1024;\n    // The flush function processes all tasks that have been scheduled with\n    // `rawAsap` unless and until one of those tasks throws an exception.\n    // If a task throws an exception, `flush` ensures that its state will remain\n    // consistent and will resume where it left off when called again.\n    // However, `flush` does not make any arrangements to be called again if an\n    // exception is thrown.\n    this.flush = () => {\n      const {\n        queue: q\n      } = this;\n      while (this.index < q.length) {\n        const currentIndex = this.index;\n        // Advance the index before calling the task. This ensures that we will\n        // begin flushing on the next task the task throws an error.\n        this.index++;\n        q[currentIndex].call();\n        // Prevent leaking memory for long chains of recursive calls to `asap`.\n        // If we call `asap` within tasks scheduled by `asap`, the queue will\n        // grow, but to avoid an O(n) walk for every task we execute, we don't\n        // shift tasks off the queue after they have been executed.\n        // Instead, we periodically shift 1024 tasks off the queue.\n        if (this.index > this.capacity) {\n          // Manually shift all values starting at the index back to the\n          // beginning of the queue.\n          for (let scan = 0, newLength = q.length - this.index; scan < newLength; scan++) {\n            q[scan] = q[scan + this.index];\n          }\n          q.length -= this.index;\n          this.index = 0;\n        }\n      }\n      q.length = 0;\n      this.index = 0;\n      this.flushing = false;\n    };\n    // In a web browser, exceptions are not fatal. However, to avoid\n    // slowing down the queue of pending tasks, we rethrow the error in a\n    // lower priority turn.\n    this.registerPendingError = err => {\n      this.pendingErrors.push(err);\n      this.requestErrorThrow();\n    };\n    // `requestFlush` requests that the high priority event queue be flushed as\n    // soon as possible.\n    // This is useful to prevent an error thrown in a task from stalling the event\n    // queue if the exception handled by Node.js’s\n    // `process.on(\"uncaughtException\")` or by a domain.\n    // `requestFlush` is implemented using a strategy based on data collected from\n    // every available SauceLabs Selenium web driver worker at time of writing.\n    // https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n    this.requestFlush = (0,_makeRequestCall_js__WEBPACK_IMPORTED_MODULE_0__.makeRequestCall)(this.flush);\n    this.requestErrorThrow = (0,_makeRequestCall_js__WEBPACK_IMPORTED_MODULE_0__.makeRequestCallFromTimer)(() => {\n      // Throw first error\n      if (this.pendingErrors.length) {\n        throw this.pendingErrors.shift();\n      }\n    });\n  }\n} // The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n// function makeRequestCallFromMessageChannel(callback) {\n//     var channel = new MessageChannel();\n//     channel.port1.onmessage = callback;\n//     return function requestCall() {\n//         channel.port2.postMessage(0);\n//     };\n// }\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n// function makeRequestCallFromSetImmediate(callback) {\n//     return function requestCall() {\n//         setImmediate(callback);\n//     };\n// }\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// // its existence.\n// rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n//# sourceURL=webpack:///../react-ui/node_modules/@react-dnd/asap/dist/AsapQueue.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@react-dnd/asap/dist/RawTask.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/@react-dnd/asap/dist/RawTask.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   RawTask: () => (/* binding */ RawTask)\n/* harmony export */ });\n// `call`, just like a function.\nclass RawTask {\n  call() {\n    try {\n      this.task && this.task();\n    } catch (error) {\n      this.onError(error);\n    } finally {\n      this.task = null;\n      this.release(this);\n    }\n  }\n  constructor(onError, release) {\n    this.onError = onError;\n    this.release = release;\n    this.task = null;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/@react-dnd/asap/dist/RawTask.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@react-dnd/asap/dist/TaskFactory.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/@react-dnd/asap/dist/TaskFactory.js ***!
  \********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   TaskFactory: () => (/* binding */ TaskFactory)\n/* harmony export */ });\n/* harmony import */ var _RawTask_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RawTask.js */ \"../react-ui/node_modules/@react-dnd/asap/dist/RawTask.js\");\n\nclass TaskFactory {\n  create(task) {\n    const tasks = this.freeTasks;\n    const t1 = tasks.length ? tasks.pop() : new _RawTask_js__WEBPACK_IMPORTED_MODULE_0__.RawTask(this.onError, t => tasks[tasks.length] = t);\n    t1.task = task;\n    return t1;\n  }\n  constructor(onError) {\n    this.onError = onError;\n    this.freeTasks = [];\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/@react-dnd/asap/dist/TaskFactory.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@react-dnd/asap/dist/asap.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/@react-dnd/asap/dist/asap.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   asap: () => (/* binding */ asap)\n/* harmony export */ });\n/* harmony import */ var _AsapQueue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AsapQueue.js */ \"../react-ui/node_modules/@react-dnd/asap/dist/AsapQueue.js\");\n/* harmony import */ var _TaskFactory_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TaskFactory.js */ \"../react-ui/node_modules/@react-dnd/asap/dist/TaskFactory.js\");\n\n\nconst asapQueue = new _AsapQueue_js__WEBPACK_IMPORTED_MODULE_0__.AsapQueue();\nconst taskFactory = new _TaskFactory_js__WEBPACK_IMPORTED_MODULE_1__.TaskFactory(asapQueue.registerPendingError);\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\nfunction asap(task) {\n  asapQueue.enqueueTask(taskFactory.create(task));\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/@react-dnd/asap/dist/asap.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@react-dnd/asap/dist/index.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/@react-dnd/asap/dist/index.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   AsapQueue: () => (/* reexport safe */ _AsapQueue_js__WEBPACK_IMPORTED_MODULE_1__.AsapQueue),\n/* harmony export */   TaskFactory: () => (/* reexport safe */ _TaskFactory_js__WEBPACK_IMPORTED_MODULE_2__.TaskFactory),\n/* harmony export */   asap: () => (/* reexport safe */ _asap_js__WEBPACK_IMPORTED_MODULE_0__.asap)\n/* harmony export */ });\n/* harmony import */ var _asap_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./asap.js */ \"../react-ui/node_modules/@react-dnd/asap/dist/asap.js\");\n/* harmony import */ var _AsapQueue_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AsapQueue.js */ \"../react-ui/node_modules/@react-dnd/asap/dist/AsapQueue.js\");\n/* harmony import */ var _TaskFactory_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TaskFactory.js */ \"../react-ui/node_modules/@react-dnd/asap/dist/TaskFactory.js\");\n/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./types.js */ \"../react-ui/node_modules/@react-dnd/asap/dist/types.js\");\n\n\n\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@react-dnd/asap/dist/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@react-dnd/asap/dist/makeRequestCall.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/@react-dnd/asap/dist/makeRequestCall.js ***!
  \************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   makeRequestCall: () => (/* binding */ makeRequestCall),\n/* harmony export */   makeRequestCallFromMutationObserver: () => (/* binding */ makeRequestCallFromMutationObserver),\n/* harmony export */   makeRequestCallFromTimer: () => (/* binding */ makeRequestCallFromTimer)\n/* harmony export */ });\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n/* globals self */const scope = typeof global !== 'undefined' ? global : self;\nconst BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\nfunction makeRequestCallFromTimer(callback) {\n  return function requestCall() {\n    // We dispatch a timeout with a specified delay of 0 for engines that\n    // can reliably accommodate that request. This will usually be snapped\n    // to a 4 milisecond delay, but once we're flushing, there's no delay\n    // between events.\n    const timeoutHandle = setTimeout(handleTimer, 0);\n    // However, since this timer gets frequently dropped in Firefox\n    // workers, we enlist an interval handle that will try to fire\n    // an event 20 times per second until it succeeds.\n    const intervalHandle = setInterval(handleTimer, 50);\n    function handleTimer() {\n      // Whichever timer succeeds will cancel both timers and\n      // execute the callback.\n      clearTimeout(timeoutHandle);\n      clearInterval(intervalHandle);\n      callback();\n    }\n  };\n}\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n  let toggle = 1;\n  const observer = new BrowserMutationObserver(callback);\n  const node = document.createTextNode('');\n  observer.observe(node, {\n    characterData: true\n  });\n  return function requestCall() {\n    toggle = -toggle;\n    node.data = toggle;\n  };\n}\nconst makeRequestCall = typeof BrowserMutationObserver === 'function' ?\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nmakeRequestCallFromMutationObserver :\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\nmakeRequestCallFromTimer;\n\n//# sourceURL=webpack:///../react-ui/node_modules/@react-dnd/asap/dist/makeRequestCall.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@react-dnd/asap/dist/types.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/@react-dnd/asap/dist/types.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/@react-dnd/asap/dist/types.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@react-dnd/invariant/dist/index.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/@react-dnd/invariant/dist/index.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   invariant: () => (/* binding */ invariant)\n/* harmony export */ });\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */function invariant(condition, format, ...args) {\n  if (isProduction()) {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n  if (!condition) {\n    let error;\n    if (format === undefined) {\n      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n    } else {\n      let argIndex = 0;\n      error = new Error(format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n      error.name = 'Invariant Violation';\n    }\n    error.framesToPop = 1 // we don't care about invariant's own frame\n    ;\n    throw error;\n  }\n}\nfunction isProduction() {\n  return typeof process !== 'undefined' && \"development\" === 'production';\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/@react-dnd/invariant/dist/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@react-dnd/shallowequal/dist/index.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/@react-dnd/shallowequal/dist/index.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   shallowEqual: () => (/* binding */ shallowEqual)\n/* harmony export */ });\nfunction shallowEqual(objA, objB, compare, compareContext) {\n  let compareResult = compare ? compare.call(compareContext, objA, objB) : void 0;\n  if (compareResult !== void 0) {\n    return !!compareResult;\n  }\n  if (objA === objB) {\n    return true;\n  }\n  if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n    return false;\n  }\n  const keysA = Object.keys(objA);\n  const keysB = Object.keys(objB);\n  if (keysA.length !== keysB.length) {\n    return false;\n  }\n  const bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n  // Test for A's keys different from B.\n  for (let idx = 0; idx < keysA.length; idx++) {\n    const key = keysA[idx];\n    if (!bHasOwnProperty(key)) {\n      return false;\n    }\n    const valueA = objA[key];\n    const valueB = objB[key];\n    compareResult = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n    if (compareResult === false || compareResult === void 0 && valueA !== valueB) {\n      return false;\n    }\n  }\n  return true;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/@react-dnd/shallowequal/dist/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@uiw/color-convert/esm/index.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/@uiw/color-convert/esm/index.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   color: () => (/* binding */ color),\n/* harmony export */   equalColorObjects: () => (/* binding */ equalColorObjects),\n/* harmony export */   equalColorString: () => (/* binding */ equalColorString),\n/* harmony export */   equalHex: () => (/* binding */ equalHex),\n/* harmony export */   getContrastingColor: () => (/* binding */ getContrastingColor),\n/* harmony export */   hexToHsva: () => (/* binding */ hexToHsva),\n/* harmony export */   hexToRgba: () => (/* binding */ hexToRgba),\n/* harmony export */   hexToXY: () => (/* binding */ hexToXY),\n/* harmony export */   hslStringToHsla: () => (/* binding */ hslStringToHsla),\n/* harmony export */   hslStringToHsva: () => (/* binding */ hslStringToHsva),\n/* harmony export */   hslaStringToHsva: () => (/* binding */ hslaStringToHsva),\n/* harmony export */   hslaToHsl: () => (/* binding */ hslaToHsl),\n/* harmony export */   hslaToHsva: () => (/* binding */ hslaToHsva),\n/* harmony export */   hsvStringToHsva: () => (/* binding */ hsvStringToHsva),\n/* harmony export */   hsvaStringToHsva: () => (/* binding */ hsvaStringToHsva),\n/* harmony export */   hsvaToHex: () => (/* binding */ hsvaToHex),\n/* harmony export */   hsvaToHexa: () => (/* binding */ hsvaToHexa),\n/* harmony export */   hsvaToHslString: () => (/* binding */ hsvaToHslString),\n/* harmony export */   hsvaToHsla: () => (/* binding */ hsvaToHsla),\n/* harmony export */   hsvaToHslaString: () => (/* binding */ hsvaToHslaString),\n/* harmony export */   hsvaToHsv: () => (/* binding */ hsvaToHsv),\n/* harmony export */   hsvaToHsvString: () => (/* binding */ hsvaToHsvString),\n/* harmony export */   hsvaToHsvaString: () => (/* binding */ hsvaToHsvaString),\n/* harmony export */   hsvaToRgbString: () => (/* binding */ hsvaToRgbString),\n/* harmony export */   hsvaToRgba: () => (/* binding */ hsvaToRgba),\n/* harmony export */   hsvaToRgbaString: () => (/* binding */ hsvaToRgbaString),\n/* harmony export */   parseHue: () => (/* binding */ parseHue),\n/* harmony export */   rgbStringToHsva: () => (/* binding */ rgbStringToHsva),\n/* harmony export */   rgbToHex: () => (/* binding */ rgbToHex),\n/* harmony export */   rgbToXY: () => (/* binding */ rgbToXY),\n/* harmony export */   rgbaStringToHsva: () => (/* binding */ rgbaStringToHsva),\n/* harmony export */   rgbaToHex: () => (/* binding */ rgbaToHex),\n/* harmony export */   rgbaToHexa: () => (/* binding */ rgbaToHexa),\n/* harmony export */   rgbaToHsva: () => (/* binding */ rgbaToHsva),\n/* harmony export */   rgbaToRgb: () => (/* binding */ rgbaToRgb),\n/* harmony export */   validHex: () => (/* binding */ validHex),\n/* harmony export */   xyToHex: () => (/* binding */ xyToHex),\n/* harmony export */   xyToRgb: () => (/* binding */ xyToRgb)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js\");\n\nvar RGB_MAX = 255;\nvar HUE_MAX = 360;\nvar SV_MAX = 100;\n/**\n * ```js\n * rgbaToHsva({ r: 255, g: 255, b: 255, a: 1 }) //=> { h: 0, s: 0, v: 100, a: 1 }\n * ```\n */\nvar rgbaToHsva = _ref => {\n  var {\n    r,\n    g,\n    b,\n    a\n  } = _ref;\n  var max = Math.max(r, g, b);\n  var delta = max - Math.min(r, g, b);\n\n  // prettier-ignore\n  var hh = delta ? max === r ? (g - b) / delta : max === g ? 2 + (b - r) / delta : 4 + (r - g) / delta : 0;\n  return {\n    h: 60 * (hh < 0 ? hh + 6 : hh),\n    s: max ? delta / max * SV_MAX : 0,\n    v: max / RGB_MAX * SV_MAX,\n    a\n  };\n};\nvar hsvaToHslString = hsva => {\n  var {\n    h,\n    s,\n    l\n  } = hsvaToHsla(hsva);\n  // return `hsl(${h}, ${s}%, ${l}%)`;\n  return \"hsl(\" + h + \", \" + Math.round(s) + \"%, \" + Math.round(l) + \"%)\";\n};\nvar hsvaToHsvString = _ref2 => {\n  var {\n    h,\n    s,\n    v\n  } = _ref2;\n  return \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\";\n};\nvar hsvaToHsvaString = _ref3 => {\n  var {\n    h,\n    s,\n    v,\n    a\n  } = _ref3;\n  return \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + a + \")\";\n};\nvar hsvaToHslaString = hsva => {\n  var {\n    h,\n    s,\n    l,\n    a\n  } = hsvaToHsla(hsva);\n  return \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + a + \")\";\n};\nvar hslStringToHsla = str => {\n  var [h, s, l, a] = (str.match(/\\d+/g) || []).map(Number);\n  return {\n    h,\n    s,\n    l,\n    a\n  };\n};\nvar hslaStringToHsva = hslString => {\n  var matcher = /hsla?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i;\n  var match = matcher.exec(hslString);\n  if (!match) return {\n    h: 0,\n    s: 0,\n    v: 0,\n    a: 1\n  };\n  return hslaToHsva({\n    h: parseHue(match[1], match[2]),\n    s: Number(match[3]),\n    l: Number(match[4]),\n    a: match[5] === undefined ? 1 : Number(match[5]) / (match[6] ? 100 : 1)\n  });\n};\nvar hslStringToHsva = hslaStringToHsva;\nvar hslaToHsva = _ref4 => {\n  var {\n    h,\n    s,\n    l,\n    a\n  } = _ref4;\n  s *= (l < 50 ? l : SV_MAX - l) / SV_MAX;\n  return {\n    h: h,\n    s: s > 0 ? 2 * s / (l + s) * SV_MAX : 0,\n    v: l + s,\n    a\n  };\n};\nvar hsvaToHsla = _ref5 => {\n  var {\n    h,\n    s,\n    v,\n    a\n  } = _ref5;\n  var hh = (200 - s) * v / SV_MAX;\n  return {\n    h,\n    s: hh > 0 && hh < 200 ? s * v / SV_MAX / (hh <= SV_MAX ? hh : 200 - hh) * SV_MAX : 0,\n    l: hh / 2,\n    a\n  };\n};\nvar hsvaStringToHsva = hsvString => {\n  var matcher = /hsva?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i;\n  var match = matcher.exec(hsvString);\n  if (!match) return {\n    h: 0,\n    s: 0,\n    v: 0,\n    a: 1\n  };\n  return {\n    h: parseHue(match[1], match[2]),\n    s: Number(match[3]),\n    v: Number(match[4]),\n    a: match[5] === undefined ? 1 : Number(match[5]) / (match[6] ? SV_MAX : 1)\n  };\n};\n\n/**\n * Valid CSS <angle> units.\n * https://developer.mozilla.org/en-US/docs/Web/CSS/angle\n */\nvar angleUnits = {\n  grad: HUE_MAX / 400,\n  turn: HUE_MAX,\n  rad: HUE_MAX / (Math.PI * 2)\n};\nvar parseHue = function parseHue(value, unit) {\n  if (unit === void 0) {\n    unit = 'deg';\n  }\n  return Number(value) * (angleUnits[unit] || 1);\n};\nvar hsvStringToHsva = hsvaStringToHsva;\nvar rgbaStringToHsva = rgbaString => {\n  var matcher = /rgba?\\(?\\s*(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i;\n  var match = matcher.exec(rgbaString);\n  if (!match) return {\n    h: 0,\n    s: 0,\n    v: 0,\n    a: 1\n  };\n  return rgbaToHsva({\n    r: Number(match[1]) / (match[2] ? SV_MAX / RGB_MAX : 1),\n    g: Number(match[3]) / (match[4] ? SV_MAX / RGB_MAX : 1),\n    b: Number(match[5]) / (match[6] ? SV_MAX / RGB_MAX : 1),\n    a: match[7] === undefined ? 1 : Number(match[7]) / (match[8] ? SV_MAX : 1)\n  });\n};\nvar rgbStringToHsva = rgbaStringToHsva;\n\n/** Converts an RGBA color plus alpha transparency to hex */\nvar rgbaToHex = _ref6 => {\n  var {\n    r,\n    g,\n    b\n  } = _ref6;\n  return rgbToHex({\n    r,\n    g,\n    b\n  });\n};\nvar rgbToHex = _ref7 => {\n  var {\n    r,\n    g,\n    b\n  } = _ref7;\n  var bin = r << 16 | g << 8 | b;\n  return \"#\" + (h => new Array(7 - h.length).join('0') + h)(bin.toString(16));\n};\nvar rgbaToHexa = _ref8 => {\n  var {\n    r,\n    g,\n    b,\n    a\n  } = _ref8;\n  var alpha = typeof a === 'number' && (a * 255 | 1 << 8).toString(16).slice(1);\n  return \"\" + rgbToHex({\n    r,\n    g,\n    b\n  }) + (alpha ? alpha : '');\n};\nvar hexToHsva = hex => rgbaToHsva(hexToRgba(hex));\nvar hexToRgba = hex => {\n  var htemp = hex.replace('#', '');\n  if (/^#?/.test(hex) && htemp.length === 3) {\n    hex = \"#\" + htemp.charAt(0) + htemp.charAt(0) + htemp.charAt(1) + htemp.charAt(1) + htemp.charAt(2) + htemp.charAt(2);\n  }\n  var reg = new RegExp(\"[A-Za-z0-9]{2}\", 'g');\n  var [r, g, b = 0, a] = hex.match(reg).map(v => parseInt(v, 16));\n  return {\n    r,\n    g,\n    b,\n    a: (a != null ? a : 255) / RGB_MAX\n  };\n};\n\n/**\n * Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n * @param color HSVA color as an array [0-360, 0-1, 0-1, 0-1]\n */\nvar hsvaToRgba = _ref9 => {\n  var {\n    h,\n    s,\n    v,\n    a\n  } = _ref9;\n  var _h = h / 60,\n    _s = s / SV_MAX,\n    _v = v / SV_MAX,\n    hi = Math.floor(_h) % 6;\n  var f = _h - Math.floor(_h),\n    _p = RGB_MAX * _v * (1 - _s),\n    _q = RGB_MAX * _v * (1 - _s * f),\n    _t = RGB_MAX * _v * (1 - _s * (1 - f));\n  _v *= RGB_MAX;\n  var rgba = {};\n  switch (hi) {\n    case 0:\n      rgba.r = _v;\n      rgba.g = _t;\n      rgba.b = _p;\n      break;\n    case 1:\n      rgba.r = _q;\n      rgba.g = _v;\n      rgba.b = _p;\n      break;\n    case 2:\n      rgba.r = _p;\n      rgba.g = _v;\n      rgba.b = _t;\n      break;\n    case 3:\n      rgba.r = _p;\n      rgba.g = _q;\n      rgba.b = _v;\n      break;\n    case 4:\n      rgba.r = _t;\n      rgba.g = _p;\n      rgba.b = _v;\n      break;\n    case 5:\n      rgba.r = _v;\n      rgba.g = _p;\n      rgba.b = _q;\n      break;\n  }\n  rgba.r = Math.round(rgba.r);\n  rgba.g = Math.round(rgba.g);\n  rgba.b = Math.round(rgba.b);\n  return (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, rgba, {\n    a\n  });\n};\nvar hsvaToRgbString = hsva => {\n  var {\n    r,\n    g,\n    b\n  } = hsvaToRgba(hsva);\n  return \"rgb(\" + r + \", \" + g + \", \" + b + \")\";\n};\nvar hsvaToRgbaString = hsva => {\n  var {\n    r,\n    g,\n    b,\n    a\n  } = hsvaToRgba(hsva);\n  return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\n};\nvar rgbaToRgb = _ref0 => {\n  var {\n    r,\n    g,\n    b\n  } = _ref0;\n  return {\n    r,\n    g,\n    b\n  };\n};\nvar hslaToHsl = _ref1 => {\n  var {\n    h,\n    s,\n    l\n  } = _ref1;\n  return {\n    h,\n    s,\n    l\n  };\n};\nvar hsvaToHex = hsva => rgbToHex(hsvaToRgba(hsva));\nvar hsvaToHexa = hsva => rgbaToHexa(hsvaToRgba(hsva));\nvar hsvaToHsv = _ref10 => {\n  var {\n    h,\n    s,\n    v\n  } = _ref10;\n  return {\n    h,\n    s,\n    v\n  };\n};\nvar hexToXY = hex => rgbToXY(rgbaToRgb(hexToRgba(hex)));\nvar xyToHex = xy => rgbToHex((0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, xyToRgb(xy)));\n\n/**\n * Converts XY to RGB. Based on formula from https://developers.meethue.com/develop/application-design-guidance/color-conversion-formulas-rgb-to-xy-and-back/\n * @param color XY color and brightness as an array [0-1, 0-1, 0-1]\n */\nvar xyToRgb = _ref11 => {\n  var {\n    x,\n    y,\n    bri = 255\n  } = _ref11;\n  var red = x * 3.2406255 + y * -1.537208 + bri * -0.4986286;\n  var green = x * -0.9689307 + y * 1.8757561 + bri * 0.0415175;\n  var blue = x * 0.0557101 + y * -0.2040211 + bri * 1.0569959;\n  var translate = function translate(color) {\n    return color <= 0.0031308 ? 12.92 * color : 1.055 * Math.pow(color, 1 / 2.4) - 0.055;\n  };\n  return {\n    r: Math.round(255 * translate(red)),\n    g: Math.round(255 * translate(green)),\n    b: Math.round(255 * translate(blue))\n  };\n};\n\n/**\n * Converts RGB to XY. Based on formula from https://developers.meethue.com/develop/application-design-guidance/color-conversion-formulas-rgb-to-xy-and-back/\n * @param color RGB color as an array [0-255, 0-255, 0-255]\n */\nvar rgbToXY = _ref12 => {\n  var {\n    r,\n    g,\n    b\n  } = _ref12;\n  var translateColor = function translateColor(color) {\n    return color <= 0.04045 ? color / 12.92 : Math.pow((color + 0.055) / 1.055, 2.4);\n  };\n  var red = translateColor(r / 255);\n  var green = translateColor(g / 255);\n  var blue = translateColor(b / 255);\n  var xyz = {};\n  xyz.x = red * 0.4124 + green * 0.3576 + blue * 0.1805;\n  xyz.y = red * 0.2126 + green * 0.7152 + blue * 0.0722;\n  xyz.bri = red * 0.0193 + green * 0.1192 + blue * 0.9505;\n  return xyz;\n};\nvar color = str => {\n  var rgb;\n  var hsl;\n  var hsv;\n  var rgba;\n  var hsla;\n  var hsva;\n  var xy;\n  var hex;\n  var hexa;\n  if (typeof str === 'string' && validHex(str)) {\n    hsva = hexToHsva(str);\n    hex = str;\n  } else if (typeof str !== 'string') {\n    hsva = str;\n  }\n  if (hsva) {\n    hsv = hsvaToHsv(hsva);\n    hsla = hsvaToHsla(hsva);\n    rgba = hsvaToRgba(hsva);\n    hexa = rgbaToHexa(rgba);\n    hex = hsvaToHex(hsva);\n    hsl = hslaToHsl(hsla);\n    rgb = rgbaToRgb(rgba);\n    xy = rgbToXY(rgb);\n  }\n  return {\n    rgb,\n    hsl,\n    hsv,\n    rgba,\n    hsla,\n    hsva,\n    hex,\n    hexa,\n    xy\n  };\n};\nvar getContrastingColor = str => {\n  if (!str) {\n    return '#ffffff';\n  }\n  var col = color(str);\n  var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n  return yiq >= 128 ? '#000000' : '#ffffff';\n};\nvar equalColorObjects = (first, second) => {\n  if (first === second) return true;\n  for (var prop in first) {\n    // The following allows for a type-safe calling of this function (first & second have to be HSL, HSV, or RGB)\n    // with type-unsafe iterating over object keys. TS does not allow this without an index (`[key: string]: number`)\n    // on an object to define how iteration is normally done. To ensure extra keys are not allowed on our types,\n    // we must cast our object to unknown (as RGB demands `r` be a key, while `Record<string, x>` does not care if\n    // there is or not), and then as a type TS can iterate over.\n    if (first[prop] !== second[prop]) return false;\n  }\n  return true;\n};\nvar equalColorString = (first, second) => {\n  return first.replace(/\\s/g, '') === second.replace(/\\s/g, '');\n};\nvar equalHex = (first, second) => {\n  if (first.toLowerCase() === second.toLowerCase()) return true;\n\n  // To compare colors like `#FFF` and `ffffff` we convert them into RGB objects\n  return equalColorObjects(hexToRgba(first), hexToRgba(second));\n};\nvar validHex = hex => /^#?([A-Fa-f0-9]{3,4}){1,2}$/.test(hex);\n\n//# sourceURL=webpack:///../react-ui/node_modules/@uiw/color-convert/esm/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@uiw/react-color-compact/esm/index.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/@uiw/react-color-compact/esm/index.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _uiw_color_convert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @uiw/color-convert */ \"../react-ui/node_modules/@uiw/color-convert/esm/index.js\");\n/* harmony import */ var _uiw_react_color_editable_input__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @uiw/react-color-editable-input */ \"../react-ui/node_modules/@uiw/react-color-editable-input/esm/index.js\");\n/* harmony import */ var _uiw_react_color_editable_input_rgba__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @uiw/react-color-editable-input-rgba */ \"../react-ui/node_modules/@uiw/react-color-editable-input-rgba/esm/index.js\");\n/* harmony import */ var _uiw_react_color_swatch__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @uiw/react-color-swatch */ \"../react-ui/node_modules/@uiw/react-color-swatch/esm/index.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ \"../react-ui/node_modules/react/jsx-runtime.js\");\n\n\nvar _excluded = [\"prefixCls\", \"className\", \"style\", \"onChange\", \"color\", \"colors\", \"rectProps\", \"rectRender\", \"addonBefore\", \"addonAfter\"];\n\n\n\n\n\n\nvar COLORS = ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'];\nfunction Point(props) {\n  if (!props.checked) return null;\n  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(\"div\", {\n    style: {\n      height: 5,\n      width: 5,\n      borderRadius: '50%',\n      backgroundColor: (0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_3__.getContrastingColor)(props.color)\n    }\n  });\n}\nvar Compact = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().forwardRef((props, ref) => {\n  var {\n      prefixCls = 'w-color-compact',\n      className,\n      style,\n      onChange,\n      color,\n      colors = COLORS,\n      rectProps,\n      rectRender,\n      addonBefore,\n      addonAfter\n    } = props,\n    other = (0,_babel_runtime_helpers_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, _excluded);\n  var hsva = typeof color === 'string' && (0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_3__.validHex)(color) ? (0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_3__.hexToHsva)(color) : color;\n  var hex = color ? (0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_3__.hsvaToHex)(hsva).replace(/^#/, '') : '';\n  var handleChangeCallback = (0,react__WEBPACK_IMPORTED_MODULE_2__.useCallback)(hsv => onChange && onChange((0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_3__.color)(hsv)), []);\n  var handleHex = (value, evn) => {\n    if (typeof value === 'string' && (0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_3__.validHex)(value) && /(3|6)/.test(String(value.length))) {\n      handleChangeCallback((0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_3__.hexToHsva)(value));\n    }\n  };\n  var rgbProps = {\n    style: {\n      alignItems: 'baseline'\n    },\n    inputStyle: {\n      boxShadow: 'none',\n      backgroundColor: 'transparent',\n      outline: 0\n    }\n  };\n  var wrapperStyle = (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    '--compact-background-color': '#f6f6f6',\n    background: 'var(--compact-background-color)',\n    borderRadius: 3,\n    display: 'flex',\n    width: 240,\n    flexWrap: 'wrap',\n    paddingTop: 5,\n    paddingLeft: 5\n  }, style);\n  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(\"div\", (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: ref,\n    style: wrapperStyle,\n    className: [prefixCls, className || ''].filter(Boolean).join(' ')\n  }, other, {\n    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_uiw_react_color_swatch__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n      colors: colors,\n      color: color ? (0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_3__.hsvaToHex)(hsva) : undefined,\n      rectRender: rectRender,\n      rectProps: (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(Point, {})\n      }, rectProps, {\n        style: (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n          display: 'flex',\n          alignItems: 'center',\n          justifyContent: 'center'\n        }, rectProps == null ? void 0 : rectProps.style)\n      }),\n      onChange: hsvColor => handleChangeCallback(hsvColor),\n      addonBefore: addonBefore,\n      addonAfter: addonAfter\n    }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(\"div\", {\n      className: [prefixCls + \"-input-wrapper\", className || ''].filter(Boolean).join(' '),\n      style: {\n        display: 'flex',\n        margin: '0 4px 3px 0'\n      },\n      children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_uiw_react_color_editable_input__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n        onChange: (evn, val) => handleHex(val, evn),\n        labelStyle: {\n          paddingRight: 5,\n          marginTop: -1\n        },\n        value: hex.toLocaleUpperCase(),\n        label: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(\"div\", {\n          style: {\n            width: 8,\n            height: 8,\n            backgroundColor: \"#\" + hex\n          }\n        }),\n        inputStyle: {\n          outline: 'none',\n          boxShadow: 'initial',\n          background: 'transparent'\n        },\n        style: {\n          flexDirection: 'row-reverse',\n          flex: '1 1 0%',\n          minWidth: 80\n        }\n      }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_uiw_react_color_editable_input_rgba__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n        hsva: hsva,\n        placement: \"left\",\n        onChange: result => handleChangeCallback(result.hsva),\n        aProps: false,\n        rProps: rgbProps,\n        gProps: rgbProps,\n        bProps: rgbProps\n      })]\n    })]\n  }));\n});\nCompact.displayName = 'Compact';\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Compact);\n\n//# sourceURL=webpack:///../react-ui/node_modules/@uiw/react-color-compact/esm/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@uiw/react-color-editable-input-rgba/esm/index.js":
/*!**********************************************************************************!*\
  !*** ../react-ui/node_modules/@uiw/react-color-editable-input-rgba/esm/index.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _uiw_react_color_editable_input__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @uiw/react-color-editable-input */ \"../react-ui/node_modules/@uiw/react-color-editable-input/esm/index.js\");\n/* harmony import */ var _uiw_color_convert__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @uiw/color-convert */ \"../react-ui/node_modules/@uiw/color-convert/esm/index.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ \"../react-ui/node_modules/react/jsx-runtime.js\");\n\n\nvar _excluded = [\"prefixCls\", \"hsva\", \"placement\", \"rProps\", \"gProps\", \"bProps\", \"aProps\", \"className\", \"style\", \"onChange\"];\n\n\n\n\nvar EditableInputRGBA = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().forwardRef((props, ref) => {\n  var {\n      prefixCls = 'w-color-editable-input-rgba',\n      hsva,\n      placement = 'bottom',\n      rProps = {},\n      gProps = {},\n      bProps = {},\n      aProps = {},\n      className,\n      style,\n      onChange\n    } = props,\n    other = (0,_babel_runtime_helpers_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, _excluded);\n  var rgba = hsva ? (0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_4__.hsvaToRgba)(hsva) : {};\n  function handleBlur(evn) {\n    var value = Number(evn.target.value);\n    if (value && value > 255) {\n      evn.target.value = '255';\n    }\n    if (value && value < 0) {\n      evn.target.value = '0';\n    }\n  }\n  var handleChange = (value, type, evn) => {\n    if (typeof value === 'number') {\n      if (type === 'a') {\n        if (value < 0) value = 0;\n        if (value > 100) value = 100;\n        onChange && onChange((0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_4__.color)((0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_4__.rgbaToHsva)((0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, rgba, {\n          a: value / 100\n        }))));\n      }\n      if (value > 255) {\n        value = 255;\n        evn.target.value = '255';\n      }\n      if (value < 0) {\n        value = 0;\n        evn.target.value = '0';\n      }\n      if (type === 'r') {\n        onChange && onChange((0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_4__.color)((0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_4__.rgbaToHsva)((0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, rgba, {\n          r: value\n        }))));\n      }\n      if (type === 'g') {\n        onChange && onChange((0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_4__.color)((0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_4__.rgbaToHsva)((0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, rgba, {\n          g: value\n        }))));\n      }\n      if (type === 'b') {\n        onChange && onChange((0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_4__.color)((0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_4__.rgbaToHsva)((0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, rgba, {\n          b: value\n        }))));\n      }\n    }\n  };\n  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(\"div\", (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: ref,\n    className: [prefixCls, className || ''].filter(Boolean).join(' ')\n  }, other, {\n    style: (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      fontSize: 11,\n      display: 'flex'\n    }, style),\n    children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_uiw_react_color_editable_input__WEBPACK_IMPORTED_MODULE_3__[\"default\"], (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      label: \"R\",\n      value: rgba.r || 0,\n      onBlur: handleBlur,\n      placement: placement,\n      onChange: (evn, val) => handleChange(val, 'r', evn)\n    }, rProps, {\n      style: (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, rProps.style)\n    })), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_uiw_react_color_editable_input__WEBPACK_IMPORTED_MODULE_3__[\"default\"], (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      label: \"G\",\n      value: rgba.g || 0,\n      onBlur: handleBlur,\n      placement: placement,\n      onChange: (evn, val) => handleChange(val, 'g', evn)\n    }, gProps, {\n      style: (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        marginLeft: 5\n      }, rProps.style)\n    })), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_uiw_react_color_editable_input__WEBPACK_IMPORTED_MODULE_3__[\"default\"], (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      label: \"B\",\n      value: rgba.b || 0,\n      onBlur: handleBlur,\n      placement: placement,\n      onChange: (evn, val) => handleChange(val, 'b', evn)\n    }, bProps, {\n      style: (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        marginLeft: 5\n      }, bProps.style)\n    })), aProps && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_uiw_react_color_editable_input__WEBPACK_IMPORTED_MODULE_3__[\"default\"], (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      label: \"A\",\n      value: rgba.a ? parseInt(String(rgba.a * 100), 10) : 0,\n      onBlur: handleBlur,\n      placement: placement,\n      onChange: (evn, val) => handleChange(val, 'a', evn)\n    }, aProps, {\n      style: (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        marginLeft: 5\n      }, aProps.style)\n    }))]\n  }));\n});\nEditableInputRGBA.displayName = 'EditableInputRGBA';\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (EditableInputRGBA);\n\n//# sourceURL=webpack:///../react-ui/node_modules/@uiw/react-color-editable-input-rgba/esm/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@uiw/react-color-editable-input/esm/index.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/@uiw/react-color-editable-input/esm/index.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-runtime */ \"../react-ui/node_modules/react/jsx-runtime.js\");\n\n\nvar _excluded = [\"prefixCls\", \"placement\", \"label\", \"value\", \"className\", \"style\", \"labelStyle\", \"inputStyle\", \"onChange\", \"onBlur\", \"renderInput\"];\n\n\n\nvar validHex = hex => /^#?([A-Fa-f0-9]{3,4}){1,2}$/.test(hex);\nvar getNumberValue = value => Number(String(value).replace(/%/g, ''));\nvar EditableInput = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().forwardRef((props, ref) => {\n  var {\n      prefixCls = 'w-color-editable-input',\n      placement = 'bottom',\n      label,\n      value: initValue,\n      className,\n      style,\n      labelStyle,\n      inputStyle,\n      onChange,\n      onBlur,\n      renderInput\n    } = props,\n    other = (0,_babel_runtime_helpers_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, _excluded);\n  var [value, setValue] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(initValue);\n  var isFocus = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(false);\n  (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {\n    if (props.value !== value) {\n      if (!isFocus.current) {\n        setValue(props.value);\n      }\n    }\n  }, [props.value]);\n  function handleChange(evn, valInit) {\n    var value = (valInit || evn.target.value).trim().replace(/^#/, '');\n    if (validHex(value)) {\n      onChange && onChange(evn, value);\n    }\n    var val = getNumberValue(value);\n    if (!isNaN(val)) {\n      onChange && onChange(evn, val);\n    }\n    setValue(value);\n  }\n  function handleBlur(evn) {\n    isFocus.current = false;\n    setValue(props.value);\n    onBlur && onBlur(evn);\n  }\n  var placementStyle = {};\n  if (placement === 'bottom') {\n    placementStyle['flexDirection'] = 'column';\n  }\n  if (placement === 'top') {\n    placementStyle['flexDirection'] = 'column-reverse';\n  }\n  if (placement === 'left') {\n    placementStyle['flexDirection'] = 'row-reverse';\n  }\n  var wrapperStyle = (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    '--editable-input-label-color': 'rgb(153, 153, 153)',\n    '--editable-input-box-shadow': 'rgb(204 204 204) 0px 0px 0px 1px inset',\n    '--editable-input-color': '#666',\n    position: 'relative',\n    alignItems: 'center',\n    display: 'flex',\n    fontSize: 11\n  }, placementStyle, style);\n  var editableStyle = (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    width: '100%',\n    paddingTop: 2,\n    paddingBottom: 2,\n    paddingLeft: 3,\n    paddingRight: 3,\n    fontSize: 11,\n    background: 'transparent',\n    boxSizing: 'border-box',\n    border: 'none',\n    color: 'var(--editable-input-color)',\n    boxShadow: 'var(--editable-input-box-shadow)'\n  }, inputStyle);\n  var inputProps = (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    value,\n    onChange: handleChange,\n    onBlur: handleBlur,\n    autoComplete: 'off',\n    onFocus: () => isFocus.current = true\n  }, other, {\n    style: editableStyle\n  });\n  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxs)(\"div\", {\n    className: [prefixCls, className || ''].filter(Boolean).join(' '),\n    style: wrapperStyle,\n    children: [renderInput ? renderInput(inputProps, ref) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"input\", (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      ref: ref\n    }, inputProps)), label && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_3__.jsx)(\"span\", {\n      style: (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        color: 'var(--editable-input-label-color)',\n        textTransform: 'capitalize'\n      }, labelStyle),\n      children: label\n    })]\n  });\n});\nEditableInput.displayName = 'EditableInput';\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (EditableInput);\n\n//# sourceURL=webpack:///../react-ui/node_modules/@uiw/react-color-editable-input/esm/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/@uiw/react-color-swatch/esm/index.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/@uiw/react-color-swatch/esm/index.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/extends */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutPropertiesLoose */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _uiw_color_convert__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @uiw/color-convert */ \"../react-ui/node_modules/@uiw/color-convert/esm/index.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ \"../react-ui/node_modules/react/jsx-runtime.js\");\n\n\nvar _excluded = [\"prefixCls\", \"className\", \"color\", \"colors\", \"style\", \"rectProps\", \"onChange\", \"addonAfter\", \"addonBefore\", \"rectRender\"];\n\n\n\nvar Swatch = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().forwardRef((props, ref) => {\n  var {\n      prefixCls = 'w-color-swatch',\n      className,\n      color,\n      colors = [],\n      style,\n      rectProps = {},\n      onChange,\n      addonAfter,\n      addonBefore,\n      rectRender\n    } = props,\n    other = (0,_babel_runtime_helpers_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props, _excluded);\n  var rectStyle = (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    '--swatch-background-color': 'rgb(144, 19, 254)',\n    background: 'var(--swatch-background-color)',\n    height: 15,\n    width: 15,\n    marginRight: 5,\n    marginBottom: 5,\n    cursor: 'pointer',\n    position: 'relative',\n    outline: 'none',\n    borderRadius: 2\n  }, rectProps.style);\n  var handleClick = (hex, evn) => {\n    onChange && onChange((0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_3__.hexToHsva)(hex), (0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_3__.color)((0,_uiw_color_convert__WEBPACK_IMPORTED_MODULE_3__.hexToHsva)(hex)), evn);\n  };\n  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxs)(\"div\", (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: ref\n  }, other, {\n    className: [prefixCls, className || ''].filter(Boolean).join(' '),\n    style: (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n      display: 'flex',\n      flexWrap: 'wrap',\n      position: 'relative'\n    }, style),\n    children: [addonBefore && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().isValidElement(addonBefore) && addonBefore, colors && Array.isArray(colors) && colors.map((item, idx) => {\n      var title = '';\n      var background = '';\n      if (typeof item === 'string') {\n        title = item;\n        background = item;\n      }\n      if (typeof item === 'object' && item.color) {\n        title = item.title || item.color;\n        background = item.color;\n      }\n      var checked = color && color.toLocaleLowerCase() === background.toLocaleLowerCase();\n      var render = rectRender && rectRender({\n        title,\n        color: background,\n        checked: !!checked,\n        style: (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, rectStyle, {\n          background\n        }),\n        onClick: evn => handleClick(background, evn)\n      });\n      if (render) {\n        return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n          children: render\n        }, idx);\n      }\n      var child = rectProps.children && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().isValidElement(rectProps.children) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().cloneElement(rectProps.children, {\n        color: background,\n        checked\n      }) : null;\n      return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(\"div\", (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n        tabIndex: 0,\n        title: title,\n        onClick: evn => handleClick(background, evn)\n      }, rectProps, {\n        children: child,\n        style: (0,_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, rectStyle, {\n          background\n        })\n      }), idx);\n    }), addonAfter && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2___default().isValidElement(addonAfter) && addonAfter]\n  }));\n});\nSwatch.displayName = 'Swatch';\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Swatch);\n\n//# sourceURL=webpack:///../react-ui/node_modules/@uiw/react-color-swatch/esm/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/adapters/adapters.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/adapters/adapters.js ***!
  \***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n/* harmony import */ var _http_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./http.js */ \"../react-ui/node_modules/axios/lib/helpers/null.js\");\n/* harmony import */ var _xhr_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./xhr.js */ \"../react-ui/node_modules/axios/lib/adapters/xhr.js\");\n/* harmony import */ var _fetch_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./fetch.js */ \"../react-ui/node_modules/axios/lib/adapters/fetch.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/AxiosError.js */ \"../react-ui/node_modules/axios/lib/core/AxiosError.js\");\n\n\n\n\n\nconst knownAdapters = {\n  http: _http_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  xhr: _xhr_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  fetch: _fetch_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]\n};\n_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(knownAdapters, (fn, value) => {\n  if (fn) {\n    try {\n      Object.defineProperty(fn, 'name', {\n        value\n      });\n    } catch (e) {\n      // eslint-disable-next-line no-empty\n    }\n    Object.defineProperty(fn, 'adapterName', {\n      value\n    });\n  }\n});\nconst renderReason = reason => `- ${reason}`;\nconst isResolvedHandle = adapter => _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFunction(adapter) || adapter === null || adapter === false;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  getAdapter: adapters => {\n    adapters = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(adapters) ? adapters : [adapters];\n    const {\n      length\n    } = adapters;\n    let nameOrAdapter;\n    let adapter;\n    const rejectedReasons = {};\n    for (let i = 0; i < length; i++) {\n      nameOrAdapter = adapters[i];\n      let id;\n      adapter = nameOrAdapter;\n      if (!isResolvedHandle(nameOrAdapter)) {\n        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n        if (adapter === undefined) {\n          throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"](`Unknown adapter '${id}'`);\n        }\n      }\n      if (adapter) {\n        break;\n      }\n      rejectedReasons[id || '#' + i] = adapter;\n    }\n    if (!adapter) {\n      const reasons = Object.entries(rejectedReasons).map(([id, state]) => `adapter ${id} ` + (state === false ? 'is not supported by the environment' : 'is not available in the build'));\n      let s = length ? reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0]) : 'as no adapter specified';\n      throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"](`There is no suitable adapter to dispatch the request ` + s, 'ERR_NOT_SUPPORT');\n    }\n    return adapter;\n  },\n  adapters: knownAdapters\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/adapters/adapters.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/adapters/fetch.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/adapters/fetch.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ \"../react-ui/node_modules/axios/lib/platform/index.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosError.js */ \"../react-ui/node_modules/axios/lib/core/AxiosError.js\");\n/* harmony import */ var _helpers_composeSignals_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/composeSignals.js */ \"../react-ui/node_modules/axios/lib/helpers/composeSignals.js\");\n/* harmony import */ var _helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/trackStream.js */ \"../react-ui/node_modules/axios/lib/helpers/trackStream.js\");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ \"../react-ui/node_modules/axios/lib/core/AxiosHeaders.js\");\n/* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/progressEventReducer.js */ \"../react-ui/node_modules/axios/lib/helpers/progressEventReducer.js\");\n/* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../helpers/resolveConfig.js */ \"../react-ui/node_modules/axios/lib/helpers/resolveConfig.js\");\n/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../core/settle.js */ \"../react-ui/node_modules/axios/lib/core/settle.js\");\n\n\n\n\n\n\n\n\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ? (encoder => str => encoder.encode(str))(new TextEncoder()) : async str => new Uint8Array(await new Response(str).arrayBuffer()));\nconst test = (fn, ...args) => {\n  try {\n    return !!fn(...args);\n  } catch (e) {\n    return false;\n  }\n};\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n  let duplexAccessed = false;\n  const hasContentType = new Request(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].origin, {\n    body: new ReadableStream(),\n    method: 'POST',\n    get duplex() {\n      duplexAccessed = true;\n      return 'half';\n    }\n  }).headers.has('Content-Type');\n  return duplexAccessed && !hasContentType;\n});\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\nconst supportsResponseStream = isReadableStreamSupported && test(() => _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isReadableStream(new Response('').body));\nconst resolvers = {\n  stream: supportsResponseStream && (res => res.body)\n};\nisFetchSupported && (res => {\n  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n    !resolvers[type] && (resolvers[type] = _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isFunction(res[type]) ? res => res[type]() : (_, config) => {\n      throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"](`Response type '${type}' is not supported`, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].ERR_NOT_SUPPORT, config);\n    });\n  });\n})(new Response());\nconst getBodyLength = async body => {\n  if (body == null) {\n    return 0;\n  }\n  if (_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isBlob(body)) {\n    return body.size;\n  }\n  if (_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isSpecCompliantForm(body)) {\n    const _request = new Request(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].origin, {\n      method: 'POST',\n      body\n    });\n    return (await _request.arrayBuffer()).byteLength;\n  }\n  if (_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isArrayBufferView(body) || _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isArrayBuffer(body)) {\n    return body.byteLength;\n  }\n  if (_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isURLSearchParams(body)) {\n    body = body + '';\n  }\n  if (_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isString(body)) {\n    return (await encodeText(body)).byteLength;\n  }\n};\nconst resolveBodyLength = async (headers, body) => {\n  const length = _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].toFiniteNumber(headers.getContentLength());\n  return length == null ? getBodyLength(body) : length;\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isFetchSupported && (async config => {\n  let {\n    url,\n    method,\n    data,\n    signal,\n    cancelToken,\n    timeout,\n    onDownloadProgress,\n    onUploadProgress,\n    responseType,\n    headers,\n    withCredentials = 'same-origin',\n    fetchOptions\n  } = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(config);\n  responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n  let composedSignal = (0,_helpers_composeSignals_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n  let request;\n  const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n    composedSignal.unsubscribe();\n  });\n  let requestContentLength;\n  try {\n    if (onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' && (requestContentLength = await resolveBodyLength(headers, data)) !== 0) {\n      let _request = new Request(url, {\n        method: 'POST',\n        body: data,\n        duplex: \"half\"\n      });\n      let contentTypeHeader;\n      if (_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n        headers.setContentType(contentTypeHeader);\n      }\n      if (_request.body) {\n        const [onProgress, flush] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__.progressEventDecorator)(requestContentLength, (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__.progressEventReducer)((0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__.asyncDecorator)(onUploadProgress)));\n        data = (0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_4__.trackStream)(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n      }\n    }\n    if (!_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isString(withCredentials)) {\n      withCredentials = withCredentials ? 'include' : 'omit';\n    }\n\n    // Cloudflare Workers throws when credentials are defined\n    // see https://github.com/cloudflare/workerd/issues/902\n    const isCredentialsSupported = \"credentials\" in Request.prototype;\n    request = new Request(url, {\n      ...fetchOptions,\n      signal: composedSignal,\n      method: method.toUpperCase(),\n      headers: headers.normalize().toJSON(),\n      body: data,\n      duplex: \"half\",\n      credentials: isCredentialsSupported ? withCredentials : undefined\n    });\n    let response = await fetch(request, fetchOptions);\n    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n    if (supportsResponseStream && (onDownloadProgress || isStreamResponse && unsubscribe)) {\n      const options = {};\n      ['status', 'statusText', 'headers'].forEach(prop => {\n        options[prop] = response[prop];\n      });\n      const responseContentLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].toFiniteNumber(response.headers.get('content-length'));\n      const [onProgress, flush] = onDownloadProgress && (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__.progressEventDecorator)(responseContentLength, (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__.progressEventReducer)((0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_6__.asyncDecorator)(onDownloadProgress), true)) || [];\n      response = new Response((0,_helpers_trackStream_js__WEBPACK_IMPORTED_MODULE_4__.trackStream)(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n        flush && flush();\n        unsubscribe && unsubscribe();\n      }), options);\n    }\n    responseType = responseType || 'text';\n    let responseData = await resolvers[_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].findKey(resolvers, responseType) || 'text'](response, config);\n    !isStreamResponse && unsubscribe && unsubscribe();\n    return await new Promise((resolve, reject) => {\n      (0,_core_settle_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(resolve, reject, {\n        data: responseData,\n        headers: _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].from(response.headers),\n        status: response.status,\n        statusText: response.statusText,\n        config,\n        request\n      });\n    });\n  } catch (err) {\n    unsubscribe && unsubscribe();\n    if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n      throw Object.assign(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]('Network Error', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].ERR_NETWORK, config, request), {\n        cause: err.cause || err\n      });\n    }\n    throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].from(err, err && err.code, config, request);\n  }\n}));\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/adapters/fetch.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/adapters/xhr.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/adapters/xhr.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n/* harmony import */ var _core_settle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../core/settle.js */ \"../react-ui/node_modules/axios/lib/core/settle.js\");\n/* harmony import */ var _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../defaults/transitional.js */ \"../react-ui/node_modules/axios/lib/defaults/transitional.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/AxiosError.js */ \"../react-ui/node_modules/axios/lib/core/AxiosError.js\");\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../cancel/CanceledError.js */ \"../react-ui/node_modules/axios/lib/cancel/CanceledError.js\");\n/* harmony import */ var _helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helpers/parseProtocol.js */ \"../react-ui/node_modules/axios/lib/helpers/parseProtocol.js\");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../platform/index.js */ \"../react-ui/node_modules/axios/lib/platform/index.js\");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ \"../react-ui/node_modules/axios/lib/core/AxiosHeaders.js\");\n/* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../helpers/progressEventReducer.js */ \"../react-ui/node_modules/axios/lib/helpers/progressEventReducer.js\");\n/* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../helpers/resolveConfig.js */ \"../react-ui/node_modules/axios/lib/helpers/resolveConfig.js\");\n\n\n\n\n\n\n\n\n\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isXHRAdapterSupported && function (config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    const _config = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(config);\n    let requestData = _config.data;\n    const requestHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].from(_config.headers).normalize();\n    let {\n      responseType,\n      onUploadProgress,\n      onDownloadProgress\n    } = _config;\n    let onCanceled;\n    let uploadThrottled, downloadThrottled;\n    let flushUpload, flushDownload;\n    function done() {\n      flushUpload && flushUpload(); // flush events\n      flushDownload && flushDownload(); // flush events\n\n      _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n      _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n    }\n    let request = new XMLHttpRequest();\n    request.open(_config.method.toUpperCase(), _config.url, true);\n\n    // Set the request timeout in MS\n    request.timeout = _config.timeout;\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      const responseHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].from('getAllResponseHeaders' in request && request.getAllResponseHeaders());\n      const responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response;\n      const response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config,\n        request\n      };\n      (0,_core_settle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response);\n\n      // Clean up request\n      request = null;\n    }\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        }\n\n        // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        }\n        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\n    }\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n      reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]('Request aborted', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ECONNABORTED, config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]('Network Error', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ERR_NETWORK, config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n      const transitional = _config.transitional || _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n      if (_config.timeoutErrorMessage) {\n        timeoutErrorMessage = _config.timeoutErrorMessage;\n      }\n      reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"](timeoutErrorMessage, transitional.clarifyTimeoutError ? _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ETIMEDOUT : _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ECONNABORTED, config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Remove Content-Type if data is undefined\n    requestData === undefined && requestHeaders.setContentType(null);\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n        request.setRequestHeader(key, val);\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(_config.withCredentials)) {\n      request.withCredentials = !!_config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (responseType && responseType !== 'json') {\n      request.responseType = _config.responseType;\n    }\n\n    // Handle progress if needed\n    if (onDownloadProgress) {\n      [downloadThrottled, flushDownload] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_8__.progressEventReducer)(onDownloadProgress, true);\n      request.addEventListener('progress', downloadThrottled);\n    }\n\n    // Not all browsers support upload events\n    if (onUploadProgress && request.upload) {\n      [uploadThrottled, flushUpload] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_8__.progressEventReducer)(onUploadProgress);\n      request.upload.addEventListener('progress', uploadThrottled);\n      request.upload.addEventListener('loadend', flushUpload);\n    }\n    if (_config.cancelToken || _config.signal) {\n      // Handle cancellation\n      // eslint-disable-next-line func-names\n      onCanceled = cancel => {\n        if (!request) {\n          return;\n        }\n        reject(!cancel || cancel.type ? new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"](null, config, request) : cancel);\n        request.abort();\n        request = null;\n      };\n      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n      if (_config.signal) {\n        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n    const protocol = (0,_helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_config.url);\n    if (protocol && _platform_index_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].protocols.indexOf(protocol) === -1) {\n      reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]('Unsupported protocol ' + protocol + ':', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].ERR_BAD_REQUEST, config));\n      return;\n    }\n\n    // Send the request\n    request.send(requestData || null);\n  });\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/adapters/xhr.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/axios.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/axios.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./helpers/bind.js */ \"../react-ui/node_modules/axios/lib/helpers/bind.js\");\n/* harmony import */ var _core_Axios_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./core/Axios.js */ \"../react-ui/node_modules/axios/lib/core/Axios.js\");\n/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./core/mergeConfig.js */ \"../react-ui/node_modules/axios/lib/core/mergeConfig.js\");\n/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./defaults/index.js */ \"../react-ui/node_modules/axios/lib/defaults/index.js\");\n/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./helpers/formDataToJSON.js */ \"../react-ui/node_modules/axios/lib/helpers/formDataToJSON.js\");\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./cancel/CanceledError.js */ \"../react-ui/node_modules/axios/lib/cancel/CanceledError.js\");\n/* harmony import */ var _cancel_CancelToken_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./cancel/CancelToken.js */ \"../react-ui/node_modules/axios/lib/cancel/CancelToken.js\");\n/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./cancel/isCancel.js */ \"../react-ui/node_modules/axios/lib/cancel/isCancel.js\");\n/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./env/data.js */ \"../react-ui/node_modules/axios/lib/env/data.js\");\n/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./helpers/toFormData.js */ \"../react-ui/node_modules/axios/lib/helpers/toFormData.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./core/AxiosError.js */ \"../react-ui/node_modules/axios/lib/core/AxiosError.js\");\n/* harmony import */ var _helpers_spread_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./helpers/spread.js */ \"../react-ui/node_modules/axios/lib/helpers/spread.js\");\n/* harmony import */ var _helpers_isAxiosError_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./helpers/isAxiosError.js */ \"../react-ui/node_modules/axios/lib/helpers/isAxiosError.js\");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./core/AxiosHeaders.js */ \"../react-ui/node_modules/axios/lib/core/AxiosHeaders.js\");\n/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./adapters/adapters.js */ \"../react-ui/node_modules/axios/lib/adapters/adapters.js\");\n/* harmony import */ var _helpers_HttpStatusCode_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./helpers/HttpStatusCode.js */ \"../react-ui/node_modules/axios/lib/helpers/HttpStatusCode.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  const context = new _core_Axios_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"](defaultConfig);\n  const instance = (0,_helpers_bind_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_core_Axios_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].prototype.request, context);\n\n  // Copy axios.prototype to instance\n  _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].extend(instance, _core_Axios_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].prototype, context, {\n    allOwnKeys: true\n  });\n\n  // Copy context to instance\n  _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].extend(instance, context, null, {\n    allOwnKeys: true\n  });\n\n  // Factory for creating new instances\n  instance.create = function create(instanceConfig) {\n    return createInstance((0,_core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(defaultConfig, instanceConfig));\n  };\n  return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(_defaults_index_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = _core_Axios_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n\n// Expose Cancel & CancelToken\naxios.CanceledError = _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\naxios.CancelToken = _cancel_CancelToken_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\naxios.isCancel = _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"];\naxios.VERSION = _env_data_js__WEBPACK_IMPORTED_MODULE_9__.VERSION;\naxios.toFormData = _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"];\n\n// Expose AxiosError class\naxios.AxiosError = _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"];\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\naxios.spread = _helpers_spread_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"];\n\n// Expose isAxiosError\naxios.isAxiosError = _helpers_isAxiosError_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"];\n\n// Expose mergeConfig\naxios.mergeConfig = _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\naxios.AxiosHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"];\naxios.formToJSON = thing => (0,_helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isHTMLForm(thing) ? new FormData(thing) : thing);\naxios.getAdapter = _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"].getAdapter;\naxios.HttpStatusCode = _helpers_HttpStatusCode_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"];\naxios.default = axios;\n\n// this module should only have a default export\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (axios);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/axios.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/cancel/CancelToken.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/cancel/CancelToken.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CanceledError.js */ \"../react-ui/node_modules/axios/lib/cancel/CanceledError.js\");\n\n\n\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n  constructor(executor) {\n    if (typeof executor !== 'function') {\n      throw new TypeError('executor must be a function.');\n    }\n    let resolvePromise;\n    this.promise = new Promise(function promiseExecutor(resolve) {\n      resolvePromise = resolve;\n    });\n    const token = this;\n\n    // eslint-disable-next-line func-names\n    this.promise.then(cancel => {\n      if (!token._listeners) return;\n      let i = token._listeners.length;\n      while (i-- > 0) {\n        token._listeners[i](cancel);\n      }\n      token._listeners = null;\n    });\n\n    // eslint-disable-next-line func-names\n    this.promise.then = onfulfilled => {\n      let _resolve;\n      // eslint-disable-next-line func-names\n      const promise = new Promise(resolve => {\n        token.subscribe(resolve);\n        _resolve = resolve;\n      }).then(onfulfilled);\n      promise.cancel = function reject() {\n        token.unsubscribe(_resolve);\n      };\n      return promise;\n    };\n    executor(function cancel(message, config, request) {\n      if (token.reason) {\n        // Cancellation has already been requested\n        return;\n      }\n      token.reason = new _CanceledError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](message, config, request);\n      resolvePromise(token.reason);\n    });\n  }\n\n  /**\n   * Throws a `CanceledError` if cancellation has been requested.\n   */\n  throwIfRequested() {\n    if (this.reason) {\n      throw this.reason;\n    }\n  }\n\n  /**\n   * Subscribe to the cancel signal\n   */\n\n  subscribe(listener) {\n    if (this.reason) {\n      listener(this.reason);\n      return;\n    }\n    if (this._listeners) {\n      this._listeners.push(listener);\n    } else {\n      this._listeners = [listener];\n    }\n  }\n\n  /**\n   * Unsubscribe from the cancel signal\n   */\n\n  unsubscribe(listener) {\n    if (!this._listeners) {\n      return;\n    }\n    const index = this._listeners.indexOf(listener);\n    if (index !== -1) {\n      this._listeners.splice(index, 1);\n    }\n  }\n  toAbortSignal() {\n    const controller = new AbortController();\n    const abort = err => {\n      controller.abort(err);\n    };\n    this.subscribe(abort);\n    controller.signal.unsubscribe = () => this.unsubscribe(abort);\n    return controller.signal;\n  }\n\n  /**\n   * Returns an object that contains a new `CancelToken` and a function that, when called,\n   * cancels the `CancelToken`.\n   */\n  static source() {\n    let cancel;\n    const token = new CancelToken(function executor(c) {\n      cancel = c;\n    });\n    return {\n      token,\n      cancel\n    };\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CancelToken);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/cancel/CancelToken.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/cancel/CanceledError.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/cancel/CanceledError.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../core/AxiosError.js */ \"../react-ui/node_modules/axios/lib/core/AxiosError.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n\n\n\n\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].call(this, message == null ? 'canceled' : message, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].ERR_CANCELED, config, request);\n  this.name = 'CanceledError';\n}\n_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].inherits(CanceledError, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n  __CANCEL__: true\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CanceledError);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/cancel/CanceledError.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/cancel/isCancel.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/cancel/isCancel.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ isCancel)\n/* harmony export */ });\n\n\nfunction isCancel(value) {\n  return !!(value && value.__CANCEL__);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/cancel/isCancel.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/core/Axios.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/core/Axios.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n/* harmony import */ var _helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/buildURL.js */ \"../react-ui/node_modules/axios/lib/helpers/buildURL.js\");\n/* harmony import */ var _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./InterceptorManager.js */ \"../react-ui/node_modules/axios/lib/core/InterceptorManager.js\");\n/* harmony import */ var _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dispatchRequest.js */ \"../react-ui/node_modules/axios/lib/core/dispatchRequest.js\");\n/* harmony import */ var _mergeConfig_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mergeConfig.js */ \"../react-ui/node_modules/axios/lib/core/mergeConfig.js\");\n/* harmony import */ var _buildFullPath_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./buildFullPath.js */ \"../react-ui/node_modules/axios/lib/core/buildFullPath.js\");\n/* harmony import */ var _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/validator.js */ \"../react-ui/node_modules/axios/lib/helpers/validator.js\");\n/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./AxiosHeaders.js */ \"../react-ui/node_modules/axios/lib/core/AxiosHeaders.js\");\n\n\n\n\n\n\n\n\n\n\nconst validators = _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n  constructor(instanceConfig) {\n    this.defaults = instanceConfig || {};\n    this.interceptors = {\n      request: new _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"](),\n      response: new _InterceptorManager_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]()\n    };\n  }\n\n  /**\n   * Dispatch a request\n   *\n   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n   * @param {?Object} config\n   *\n   * @returns {Promise} The Promise to be fulfilled\n   */\n  async request(configOrUrl, config) {\n    try {\n      return await this._request(configOrUrl, config);\n    } catch (err) {\n      if (err instanceof Error) {\n        let dummy = {};\n        Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error();\n\n        // slice off the Error: ... line\n        const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n        try {\n          if (!err.stack) {\n            err.stack = stack;\n            // match without the 2 top stack lines\n          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n            err.stack += '\\n' + stack;\n          }\n        } catch (e) {\n          // ignore the case where \"stack\" is an un-writable property\n        }\n      }\n      throw err;\n    }\n  }\n  _request(configOrUrl, config) {\n    /*eslint no-param-reassign:0*/\n    // Allow for axios('example/url'[, config]) a la fetch API\n    if (typeof configOrUrl === 'string') {\n      config = config || {};\n      config.url = configOrUrl;\n    } else {\n      config = configOrUrl || {};\n    }\n    config = (0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(this.defaults, config);\n    const {\n      transitional,\n      paramsSerializer,\n      headers\n    } = config;\n    if (transitional !== undefined) {\n      _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].assertOptions(transitional, {\n        silentJSONParsing: validators.transitional(validators.boolean),\n        forcedJSONParsing: validators.transitional(validators.boolean),\n        clarifyTimeoutError: validators.transitional(validators.boolean)\n      }, false);\n    }\n    if (paramsSerializer != null) {\n      if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFunction(paramsSerializer)) {\n        config.paramsSerializer = {\n          serialize: paramsSerializer\n        };\n      } else {\n        _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].assertOptions(paramsSerializer, {\n          encode: validators.function,\n          serialize: validators.function\n        }, true);\n      }\n    }\n\n    // Set config.allowAbsoluteUrls\n    if (config.allowAbsoluteUrls !== undefined) {\n      // do nothing\n    } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n      config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n    } else {\n      config.allowAbsoluteUrls = true;\n    }\n    _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].assertOptions(config, {\n      baseUrl: validators.spelling('baseURL'),\n      withXsrfToken: validators.spelling('withXSRFToken')\n    }, true);\n\n    // Set config.method\n    config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n    // Flatten headers\n    let contextHeaders = headers && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].merge(headers.common, headers[config.method]);\n    headers && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], method => {\n      delete headers[method];\n    });\n    config.headers = _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].concat(contextHeaders, headers);\n\n    // filter out skipped interceptors\n    const requestInterceptorChain = [];\n    let synchronousRequestInterceptors = true;\n    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n        return;\n      }\n      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n    });\n    const responseInterceptorChain = [];\n    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n    });\n    let promise;\n    let i = 0;\n    let len;\n    if (!synchronousRequestInterceptors) {\n      const chain = [_dispatchRequest_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].bind(this), undefined];\n      chain.unshift(...requestInterceptorChain);\n      chain.push(...responseInterceptorChain);\n      len = chain.length;\n      promise = Promise.resolve(config);\n      while (i < len) {\n        promise = promise.then(chain[i++], chain[i++]);\n      }\n      return promise;\n    }\n    len = requestInterceptorChain.length;\n    let newConfig = config;\n    i = 0;\n    while (i < len) {\n      const onFulfilled = requestInterceptorChain[i++];\n      const onRejected = requestInterceptorChain[i++];\n      try {\n        newConfig = onFulfilled(newConfig);\n      } catch (error) {\n        onRejected.call(this, error);\n        break;\n      }\n    }\n    try {\n      promise = _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].call(this, newConfig);\n    } catch (error) {\n      return Promise.reject(error);\n    }\n    i = 0;\n    len = responseInterceptorChain.length;\n    while (i < len) {\n      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n    }\n    return promise;\n  }\n  getUri(config) {\n    config = (0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(this.defaults, config);\n    const fullPath = (0,_buildFullPath_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(config.baseURL, config.url, config.allowAbsoluteUrls);\n    return (0,_helpers_buildURL_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(fullPath, config.params, config.paramsSerializer);\n  }\n}\n\n// Provide aliases for supported request methods\n_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function (url, config) {\n    return this.request((0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(config || {}, {\n      method,\n      url,\n      data: (config || {}).data\n    }));\n  };\n});\n_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n\n  function generateHTTPMethod(isForm) {\n    return function httpMethod(url, data, config) {\n      return this.request((0,_mergeConfig_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(config || {}, {\n        method,\n        headers: isForm ? {\n          'Content-Type': 'multipart/form-data'\n        } : {},\n        url,\n        data\n      }));\n    };\n  }\n  Axios.prototype[method] = generateHTTPMethod();\n  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Axios);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/core/Axios.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/core/AxiosError.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/core/AxiosError.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n\n\n\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n  Error.call(this);\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, this.constructor);\n  } else {\n    this.stack = new Error().stack;\n  }\n  this.message = message;\n  this.name = 'AxiosError';\n  code && (this.code = code);\n  config && (this.config = config);\n  request && (this.request = request);\n  if (response) {\n    this.response = response;\n    this.status = response.status ? response.status : null;\n  }\n}\n_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].inherits(AxiosError, Error, {\n  toJSON: function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toJSONObject(this.config),\n      code: this.code,\n      status: this.status\n    };\n  }\n});\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n['ERR_BAD_OPTION_VALUE', 'ERR_BAD_OPTION', 'ECONNABORTED', 'ETIMEDOUT', 'ERR_NETWORK', 'ERR_FR_TOO_MANY_REDIRECTS', 'ERR_DEPRECATED', 'ERR_BAD_RESPONSE', 'ERR_BAD_REQUEST', 'ERR_CANCELED', 'ERR_NOT_SUPPORT', 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n  descriptors[code] = {\n    value: code\n  };\n});\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {\n  value: true\n});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n  const axiosError = Object.create(prototype);\n  _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toFlatObject(error, axiosError, function filter(obj) {\n    return obj !== Error.prototype;\n  }, prop => {\n    return prop !== 'isAxiosError';\n  });\n  AxiosError.call(axiosError, error.message, code, config, request, response);\n  axiosError.cause = error;\n  axiosError.name = error.name;\n  customProps && Object.assign(axiosError, customProps);\n  return axiosError;\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosError);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/core/AxiosError.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/core/AxiosHeaders.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/core/AxiosHeaders.js ***!
  \***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n/* harmony import */ var _helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/parseHeaders.js */ \"../react-ui/node_modules/axios/lib/helpers/parseHeaders.js\");\n\n\n\n\nconst $internals = Symbol('internals');\nfunction normalizeHeader(header) {\n  return header && String(header).trim().toLowerCase();\n}\nfunction normalizeValue(value) {\n  if (value === false || value == null) {\n    return value;\n  }\n  return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(value) ? value.map(normalizeValue) : String(value);\n}\nfunction parseTokens(str) {\n  const tokens = Object.create(null);\n  const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n  let match;\n  while (match = tokensRE.exec(str)) {\n    tokens[match[1]] = match[2];\n  }\n  return tokens;\n}\nconst isValidHeaderName = str => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFunction(filter)) {\n    return filter.call(this, value, header);\n  }\n  if (isHeaderNameFilter) {\n    value = header;\n  }\n  if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isString(value)) return;\n  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isString(filter)) {\n    return value.indexOf(filter) !== -1;\n  }\n  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isRegExp(filter)) {\n    return filter.test(value);\n  }\n}\nfunction formatHeader(header) {\n  return header.trim().toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n    return char.toUpperCase() + str;\n  });\n}\nfunction buildAccessors(obj, header) {\n  const accessorName = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toCamelCase(' ' + header);\n  ['get', 'set', 'has'].forEach(methodName => {\n    Object.defineProperty(obj, methodName + accessorName, {\n      value: function (arg1, arg2, arg3) {\n        return this[methodName].call(this, header, arg1, arg2, arg3);\n      },\n      configurable: true\n    });\n  });\n}\nclass AxiosHeaders {\n  constructor(headers) {\n    headers && this.set(headers);\n  }\n  set(header, valueOrRewrite, rewrite) {\n    const self = this;\n    function setHeader(_value, _header, _rewrite) {\n      const lHeader = normalizeHeader(_header);\n      if (!lHeader) {\n        throw new Error('header name must be a non-empty string');\n      }\n      const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].findKey(self, lHeader);\n      if (!key || self[key] === undefined || _rewrite === true || _rewrite === undefined && self[key] !== false) {\n        self[key || _header] = normalizeValue(_value);\n      }\n    }\n    const setHeaders = (headers, _rewrite) => _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isPlainObject(header) || header instanceof this.constructor) {\n      setHeaders(header, valueOrRewrite);\n    } else if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n      setHeaders((0,_helpers_parseHeaders_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(header), valueOrRewrite);\n    } else if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isObject(header) && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isIterable(header)) {\n      let obj = {},\n        dest,\n        key;\n      for (const entry of header) {\n        if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(entry)) {\n          throw TypeError('Object iterator must return a key-value pair');\n        }\n        obj[key = entry[0]] = (dest = obj[key]) ? _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]] : entry[1];\n      }\n      setHeaders(obj, valueOrRewrite);\n    } else {\n      header != null && setHeader(valueOrRewrite, header, rewrite);\n    }\n    return this;\n  }\n  get(header, parser) {\n    header = normalizeHeader(header);\n    if (header) {\n      const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].findKey(this, header);\n      if (key) {\n        const value = this[key];\n        if (!parser) {\n          return value;\n        }\n        if (parser === true) {\n          return parseTokens(value);\n        }\n        if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFunction(parser)) {\n          return parser.call(this, value, key);\n        }\n        if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isRegExp(parser)) {\n          return parser.exec(value);\n        }\n        throw new TypeError('parser must be boolean|regexp|function');\n      }\n    }\n  }\n  has(header, matcher) {\n    header = normalizeHeader(header);\n    if (header) {\n      const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].findKey(this, header);\n      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n    }\n    return false;\n  }\n  delete(header, matcher) {\n    const self = this;\n    let deleted = false;\n    function deleteHeader(_header) {\n      _header = normalizeHeader(_header);\n      if (_header) {\n        const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].findKey(self, _header);\n        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n          delete self[key];\n          deleted = true;\n        }\n      }\n    }\n    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(header)) {\n      header.forEach(deleteHeader);\n    } else {\n      deleteHeader(header);\n    }\n    return deleted;\n  }\n  clear(matcher) {\n    const keys = Object.keys(this);\n    let i = keys.length;\n    let deleted = false;\n    while (i--) {\n      const key = keys[i];\n      if (!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n        delete this[key];\n        deleted = true;\n      }\n    }\n    return deleted;\n  }\n  normalize(format) {\n    const self = this;\n    const headers = {};\n    _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(this, (value, header) => {\n      const key = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].findKey(headers, header);\n      if (key) {\n        self[key] = normalizeValue(value);\n        delete self[header];\n        return;\n      }\n      const normalized = format ? formatHeader(header) : String(header).trim();\n      if (normalized !== header) {\n        delete self[header];\n      }\n      self[normalized] = normalizeValue(value);\n      headers[normalized] = true;\n    });\n    return this;\n  }\n  concat(...targets) {\n    return this.constructor.concat(this, ...targets);\n  }\n  toJSON(asStrings) {\n    const obj = Object.create(null);\n    _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(this, (value, header) => {\n      value != null && value !== false && (obj[header] = asStrings && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(value) ? value.join(', ') : value);\n    });\n    return obj;\n  }\n  [Symbol.iterator]() {\n    return Object.entries(this.toJSON())[Symbol.iterator]();\n  }\n  toString() {\n    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n  }\n  getSetCookie() {\n    return this.get(\"set-cookie\") || [];\n  }\n  get [Symbol.toStringTag]() {\n    return 'AxiosHeaders';\n  }\n  static from(thing) {\n    return thing instanceof this ? thing : new this(thing);\n  }\n  static concat(first, ...targets) {\n    const computed = new this(first);\n    targets.forEach(target => computed.set(target));\n    return computed;\n  }\n  static accessor(header) {\n    const internals = this[$internals] = this[$internals] = {\n      accessors: {}\n    };\n    const accessors = internals.accessors;\n    const prototype = this.prototype;\n    function defineAccessor(_header) {\n      const lHeader = normalizeHeader(_header);\n      if (!accessors[lHeader]) {\n        buildAccessors(prototype, _header);\n        accessors[lHeader] = true;\n      }\n    }\n    _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n    return this;\n  }\n}\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\n_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].reduceDescriptors(AxiosHeaders.prototype, ({\n  value\n}, key) => {\n  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n  return {\n    get: () => value,\n    set(headerValue) {\n      this[mapped] = headerValue;\n    }\n  };\n});\n_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].freezeMethods(AxiosHeaders);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosHeaders);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/core/AxiosHeaders.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/core/InterceptorManager.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/core/InterceptorManager.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n\n\n\nclass InterceptorManager {\n  constructor() {\n    this.handlers = [];\n  }\n\n  /**\n   * Add a new interceptor to the stack\n   *\n   * @param {Function} fulfilled The function to handle `then` for a `Promise`\n   * @param {Function} rejected The function to handle `reject` for a `Promise`\n   *\n   * @return {Number} An ID used to remove interceptor later\n   */\n  use(fulfilled, rejected, options) {\n    this.handlers.push({\n      fulfilled,\n      rejected,\n      synchronous: options ? options.synchronous : false,\n      runWhen: options ? options.runWhen : null\n    });\n    return this.handlers.length - 1;\n  }\n\n  /**\n   * Remove an interceptor from the stack\n   *\n   * @param {Number} id The ID that was returned by `use`\n   *\n   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n   */\n  eject(id) {\n    if (this.handlers[id]) {\n      this.handlers[id] = null;\n    }\n  }\n\n  /**\n   * Clear all interceptors from the stack\n   *\n   * @returns {void}\n   */\n  clear() {\n    if (this.handlers) {\n      this.handlers = [];\n    }\n  }\n\n  /**\n   * Iterate over all the registered interceptors\n   *\n   * This method is particularly useful for skipping over any\n   * interceptors that may have become `null` calling `eject`.\n   *\n   * @param {Function} fn The function to call for each interceptor\n   *\n   * @returns {void}\n   */\n  forEach(fn) {\n    _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(this.handlers, function forEachHandler(h) {\n      if (h !== null) {\n        fn(h);\n      }\n    });\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (InterceptorManager);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/core/InterceptorManager.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/core/buildFullPath.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/core/buildFullPath.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ buildFullPath)\n/* harmony export */ });\n/* harmony import */ var _helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../helpers/isAbsoluteURL.js */ \"../react-ui/node_modules/axios/lib/helpers/isAbsoluteURL.js\");\n/* harmony import */ var _helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/combineURLs.js */ \"../react-ui/node_modules/axios/lib/helpers/combineURLs.js\");\n\n\n\n\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n  let isRelativeUrl = !(0,_helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(requestedURL);\n  if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n    return (0,_helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(baseURL, requestedURL);\n  }\n  return requestedURL;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/core/buildFullPath.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/core/dispatchRequest.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/core/dispatchRequest.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ dispatchRequest)\n/* harmony export */ });\n/* harmony import */ var _transformData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transformData.js */ \"../react-ui/node_modules/axios/lib/core/transformData.js\");\n/* harmony import */ var _cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../cancel/isCancel.js */ \"../react-ui/node_modules/axios/lib/cancel/isCancel.js\");\n/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../defaults/index.js */ \"../react-ui/node_modules/axios/lib/defaults/index.js\");\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../cancel/CanceledError.js */ \"../react-ui/node_modules/axios/lib/cancel/CanceledError.js\");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ \"../react-ui/node_modules/axios/lib/core/AxiosHeaders.js\");\n/* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../adapters/adapters.js */ \"../react-ui/node_modules/axios/lib/adapters/adapters.js\");\n\n\n\n\n\n\n\n\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n  if (config.signal && config.signal.aborted) {\n    throw new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"](null, config);\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n  config.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].from(config.headers);\n\n  // Transform request data\n  config.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].call(config, config.transformRequest);\n  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n    config.headers.setContentType('application/x-www-form-urlencoded', false);\n  }\n  const adapter = _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].getAdapter(config.adapter || _defaults_index_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].adapter);\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].call(config, config.transformResponse, response);\n    response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].from(response.headers);\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!(0,_cancel_isCancel_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].call(config, config.transformResponse, reason.response);\n        reason.response.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].from(reason.response.headers);\n      }\n    }\n    return Promise.reject(reason);\n  });\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/core/dispatchRequest.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/core/mergeConfig.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/core/mergeConfig.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ mergeConfig)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n/* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AxiosHeaders.js */ \"../react-ui/node_modules/axios/lib/core/AxiosHeaders.js\");\n\n\n\n\nconst headersToObject = thing => thing instanceof _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] ? {\n  ...thing\n} : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  const config = {};\n  function getMergedValue(target, source, prop, caseless) {\n    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isPlainObject(target) && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isPlainObject(source)) {\n      return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].merge.call({\n        caseless\n      }, target, source);\n    } else if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isPlainObject(source)) {\n      return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].merge({}, source);\n    } else if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDeepProperties(a, b, prop, caseless) {\n    if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(b)) {\n      return getMergedValue(a, b, prop, caseless);\n    } else if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(a)) {\n      return getMergedValue(undefined, a, prop, caseless);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function valueFromConfig2(a, b) {\n    if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function defaultToConfig2(a, b) {\n    if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    } else if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(a)) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(a, b, prop) {\n    if (prop in config2) {\n      return getMergedValue(a, b);\n    } else if (prop in config1) {\n      return getMergedValue(undefined, a);\n    }\n  }\n  const mergeMap = {\n    url: valueFromConfig2,\n    method: valueFromConfig2,\n    data: valueFromConfig2,\n    baseURL: defaultToConfig2,\n    transformRequest: defaultToConfig2,\n    transformResponse: defaultToConfig2,\n    paramsSerializer: defaultToConfig2,\n    timeout: defaultToConfig2,\n    timeoutMessage: defaultToConfig2,\n    withCredentials: defaultToConfig2,\n    withXSRFToken: defaultToConfig2,\n    adapter: defaultToConfig2,\n    responseType: defaultToConfig2,\n    xsrfCookieName: defaultToConfig2,\n    xsrfHeaderName: defaultToConfig2,\n    onUploadProgress: defaultToConfig2,\n    onDownloadProgress: defaultToConfig2,\n    decompress: defaultToConfig2,\n    maxContentLength: defaultToConfig2,\n    maxBodyLength: defaultToConfig2,\n    beforeRedirect: defaultToConfig2,\n    transport: defaultToConfig2,\n    httpAgent: defaultToConfig2,\n    httpsAgent: defaultToConfig2,\n    cancelToken: defaultToConfig2,\n    socketPath: defaultToConfig2,\n    responseEncoding: defaultToConfig2,\n    validateStatus: mergeDirectKeys,\n    headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)\n  };\n  _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(Object.keys({\n    ...config1,\n    ...config2\n  }), function computeConfigValue(prop) {\n    const merge = mergeMap[prop] || mergeDeepProperties;\n    const configValue = merge(config1[prop], config2[prop], prop);\n    _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue);\n  });\n  return config;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/core/mergeConfig.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/core/settle.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/core/settle.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ settle)\n/* harmony export */ });\n/* harmony import */ var _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AxiosError.js */ \"../react-ui/node_modules/axios/lib/core/AxiosError.js\");\n\n\n\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n  const validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(new _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]('Request failed with status code ' + response.status, [_AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].ERR_BAD_REQUEST, _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], response.config, response.request, response));\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/core/settle.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/core/transformData.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/core/transformData.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ transformData)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n/* harmony import */ var _defaults_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../defaults/index.js */ \"../react-ui/node_modules/axios/lib/defaults/index.js\");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ \"../react-ui/node_modules/axios/lib/core/AxiosHeaders.js\");\n\n\n\n\n\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n  const config = this || _defaults_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n  const context = response || config;\n  const headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].from(context.headers);\n  let data = context.data;\n  _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(fns, function transform(fn) {\n    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n  });\n  headers.normalize();\n  return data;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/core/transformData.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/defaults/index.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/defaults/index.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ \"../react-ui/node_modules/axios/lib/core/AxiosError.js\");\n/* harmony import */ var _transitional_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transitional.js */ \"../react-ui/node_modules/axios/lib/defaults/transitional.js\");\n/* harmony import */ var _helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../helpers/toFormData.js */ \"../react-ui/node_modules/axios/lib/helpers/toFormData.js\");\n/* harmony import */ var _helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../helpers/toURLEncodedForm.js */ \"../react-ui/node_modules/axios/lib/helpers/toURLEncodedForm.js\");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../platform/index.js */ \"../react-ui/node_modules/axios/lib/platform/index.js\");\n/* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helpers/formDataToJSON.js */ \"../react-ui/node_modules/axios/lib/helpers/formDataToJSON.js\");\n\n\n\n\n\n\n\n\n\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n  return (encoder || JSON.stringify)(rawValue);\n}\nconst defaults = {\n  transitional: _transitional_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  adapter: ['xhr', 'http', 'fetch'],\n  transformRequest: [function transformRequest(data, headers) {\n    const contentType = headers.getContentType() || '';\n    const hasJSONContentType = contentType.indexOf('application/json') > -1;\n    const isObjectPayload = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isObject(data);\n    if (isObjectPayload && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isHTMLForm(data)) {\n      data = new FormData(data);\n    }\n    const isFormData = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFormData(data);\n    if (isFormData) {\n      return hasJSONContentType ? JSON.stringify((0,_helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(data)) : data;\n    }\n    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArrayBuffer(data) || _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isBuffer(data) || _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isStream(data) || _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFile(data) || _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isBlob(data) || _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isReadableStream(data)) {\n      return data;\n    }\n    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isURLSearchParams(data)) {\n      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n      return data.toString();\n    }\n    let isFileList;\n    if (isObjectPayload) {\n      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n        return (0,_helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(data, this.formSerializer).toString();\n      }\n      if ((isFileList = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n        const _FormData = this.env && this.env.FormData;\n        return (0,_helpers_toFormData_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(isFileList ? {\n          'files[]': data\n        } : data, _FormData && new _FormData(), this.formSerializer);\n      }\n    }\n    if (isObjectPayload || hasJSONContentType) {\n      headers.setContentType('application/json', false);\n      return stringifySafely(data);\n    }\n    return data;\n  }],\n  transformResponse: [function transformResponse(data) {\n    const transitional = this.transitional || defaults.transitional;\n    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    const JSONRequested = this.responseType === 'json';\n    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isResponse(data) || _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isReadableStream(data)) {\n      return data;\n    }\n    if (data && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isString(data) && (forcedJSONParsing && !this.responseType || JSONRequested)) {\n      const silentJSONParsing = transitional && transitional.silentJSONParsing;\n      const strictJSONParsing = !silentJSONParsing && JSONRequested;\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].from(e, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_BAD_RESPONSE, this, null, this.response);\n          }\n          throw e;\n        }\n      }\n    }\n    return data;\n  }],\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n  maxContentLength: -1,\n  maxBodyLength: -1,\n  env: {\n    FormData: _platform_index_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].classes.FormData,\n    Blob: _platform_index_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].classes.Blob\n  },\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n  headers: {\n    common: {\n      'Accept': 'application/json, text/plain, */*',\n      'Content-Type': undefined\n    }\n  }\n};\n_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], method => {\n  defaults.headers[method] = {};\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (defaults);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/defaults/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/defaults/transitional.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/defaults/transitional.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  silentJSONParsing: true,\n  forcedJSONParsing: true,\n  clarifyTimeoutError: false\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/defaults/transitional.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/env/data.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/env/data.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   VERSION: () => (/* binding */ VERSION)\n/* harmony export */ });\nconst VERSION = \"1.11.0\";\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/env/data.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/AxiosURLSearchParams.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/AxiosURLSearchParams.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toFormData.js */ \"../react-ui/node_modules/axios/lib/helpers/toFormData.js\");\n\n\n\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n  const charMap = {\n    '!': '%21',\n    \"'\": '%27',\n    '(': '%28',\n    ')': '%29',\n    '~': '%7E',\n    '%20': '+',\n    '%00': '\\x00'\n  };\n  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n    return charMap[match];\n  });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n  this._pairs = [];\n  params && (0,_toFormData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(params, this, options);\n}\nconst prototype = AxiosURLSearchParams.prototype;\nprototype.append = function append(name, value) {\n  this._pairs.push([name, value]);\n};\nprototype.toString = function toString(encoder) {\n  const _encode = encoder ? function (value) {\n    return encoder.call(this, value, encode);\n  } : encode;\n  return this._pairs.map(function each(pair) {\n    return _encode(pair[0]) + '=' + _encode(pair[1]);\n  }, '').join('&');\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (AxiosURLSearchParams);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/AxiosURLSearchParams.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/HttpStatusCode.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/HttpStatusCode.js ***!
  \********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst HttpStatusCode = {\n  Continue: 100,\n  SwitchingProtocols: 101,\n  Processing: 102,\n  EarlyHints: 103,\n  Ok: 200,\n  Created: 201,\n  Accepted: 202,\n  NonAuthoritativeInformation: 203,\n  NoContent: 204,\n  ResetContent: 205,\n  PartialContent: 206,\n  MultiStatus: 207,\n  AlreadyReported: 208,\n  ImUsed: 226,\n  MultipleChoices: 300,\n  MovedPermanently: 301,\n  Found: 302,\n  SeeOther: 303,\n  NotModified: 304,\n  UseProxy: 305,\n  Unused: 306,\n  TemporaryRedirect: 307,\n  PermanentRedirect: 308,\n  BadRequest: 400,\n  Unauthorized: 401,\n  PaymentRequired: 402,\n  Forbidden: 403,\n  NotFound: 404,\n  MethodNotAllowed: 405,\n  NotAcceptable: 406,\n  ProxyAuthenticationRequired: 407,\n  RequestTimeout: 408,\n  Conflict: 409,\n  Gone: 410,\n  LengthRequired: 411,\n  PreconditionFailed: 412,\n  PayloadTooLarge: 413,\n  UriTooLong: 414,\n  UnsupportedMediaType: 415,\n  RangeNotSatisfiable: 416,\n  ExpectationFailed: 417,\n  ImATeapot: 418,\n  MisdirectedRequest: 421,\n  UnprocessableEntity: 422,\n  Locked: 423,\n  FailedDependency: 424,\n  TooEarly: 425,\n  UpgradeRequired: 426,\n  PreconditionRequired: 428,\n  TooManyRequests: 429,\n  RequestHeaderFieldsTooLarge: 431,\n  UnavailableForLegalReasons: 451,\n  InternalServerError: 500,\n  NotImplemented: 501,\n  BadGateway: 502,\n  ServiceUnavailable: 503,\n  GatewayTimeout: 504,\n  HttpVersionNotSupported: 505,\n  VariantAlsoNegotiates: 506,\n  InsufficientStorage: 507,\n  LoopDetected: 508,\n  NotExtended: 510,\n  NetworkAuthenticationRequired: 511\n};\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n  HttpStatusCode[value] = key;\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (HttpStatusCode);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/HttpStatusCode.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/bind.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/bind.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ bind)\n/* harmony export */ });\n\n\nfunction bind(fn, thisArg) {\n  return function wrap() {\n    return fn.apply(thisArg, arguments);\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/bind.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/buildURL.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/buildURL.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ buildURL)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../helpers/AxiosURLSearchParams.js */ \"../react-ui/node_modules/axios/lib/helpers/AxiosURLSearchParams.js\");\n\n\n\n\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n  return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n  const _encode = options && options.encode || encode;\n  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFunction(options)) {\n    options = {\n      serialize: options\n    };\n  }\n  const serializeFn = options && options.serialize;\n  let serializedParams;\n  if (serializeFn) {\n    serializedParams = serializeFn(params, options);\n  } else {\n    serializedParams = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isURLSearchParams(params) ? params.toString() : new _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](params, options).toString(_encode);\n  }\n  if (serializedParams) {\n    const hashmarkIndex = url.indexOf(\"#\");\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n  return url;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/buildURL.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/combineURLs.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/combineURLs.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ combineURLs)\n/* harmony export */ });\n\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n  return relativeURL ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/combineURLs.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/composeSignals.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/composeSignals.js ***!
  \********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../cancel/CanceledError.js */ \"../react-ui/node_modules/axios/lib/cancel/CanceledError.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ \"../react-ui/node_modules/axios/lib/core/AxiosError.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n\n\n\nconst composeSignals = (signals, timeout) => {\n  const {\n    length\n  } = signals = signals ? signals.filter(Boolean) : [];\n  if (timeout || length) {\n    let controller = new AbortController();\n    let aborted;\n    const onabort = function (reason) {\n      if (!aborted) {\n        aborted = true;\n        unsubscribe();\n        const err = reason instanceof Error ? reason : this.reason;\n        controller.abort(err instanceof _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] ? err : new _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](err instanceof Error ? err.message : err));\n      }\n    };\n    let timer = timeout && setTimeout(() => {\n      timer = null;\n      onabort(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](`timeout ${timeout} of ms exceeded`, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ETIMEDOUT));\n    }, timeout);\n    const unsubscribe = () => {\n      if (signals) {\n        timer && clearTimeout(timer);\n        timer = null;\n        signals.forEach(signal => {\n          signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n        });\n        signals = null;\n      }\n    };\n    signals.forEach(signal => signal.addEventListener('abort', onabort));\n    const {\n      signal\n    } = controller;\n    signal.unsubscribe = () => _utils_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].asap(unsubscribe);\n    return signal;\n  }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (composeSignals);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/composeSignals.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/cookies.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/cookies.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../platform/index.js */ \"../react-ui/node_modules/axios/lib/platform/index.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_platform_index_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].hasStandardBrowserEnv ?\n// Standard browser envs support document.cookie\n{\n  write(name, value, expires, path, domain, secure) {\n    const cookie = [name + '=' + encodeURIComponent(value)];\n    _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n    _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isString(path) && cookie.push('path=' + path);\n    _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isString(domain) && cookie.push('domain=' + domain);\n    secure === true && cookie.push('secure');\n    document.cookie = cookie.join('; ');\n  },\n  read(name) {\n    const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n    return match ? decodeURIComponent(match[3]) : null;\n  },\n  remove(name) {\n    this.write(name, '', Date.now() - 86400000);\n  }\n} :\n// Non-standard browser env (web workers, react-native) lack needed support.\n{\n  write() {},\n  read() {\n    return null;\n  },\n  remove() {}\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/cookies.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/formDataToJSON.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/formDataToJSON.js ***!
  \********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n\n\n\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n  // foo[x][y][z]\n  // foo.x.y.z\n  // foo-x-y-z\n  // foo x y z\n  return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n    return match[0] === '[]' ? '' : match[1] || match[0];\n  });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n  const obj = {};\n  const keys = Object.keys(arr);\n  let i;\n  const len = keys.length;\n  let key;\n  for (i = 0; i < len; i++) {\n    key = keys[i];\n    obj[key] = arr[key];\n  }\n  return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n  function buildPath(path, value, target, index) {\n    let name = path[index++];\n    if (name === '__proto__') return true;\n    const isNumericKey = Number.isFinite(+name);\n    const isLast = index >= path.length;\n    name = !name && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(target) ? target.length : name;\n    if (isLast) {\n      if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasOwnProp(target, name)) {\n        target[name] = [target[name], value];\n      } else {\n        target[name] = value;\n      }\n      return !isNumericKey;\n    }\n    if (!target[name] || !_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isObject(target[name])) {\n      target[name] = [];\n    }\n    const result = buildPath(path, value, target[name], index);\n    if (result && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(target[name])) {\n      target[name] = arrayToObject(target[name]);\n    }\n    return !isNumericKey;\n  }\n  if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFormData(formData) && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFunction(formData.entries)) {\n    const obj = {};\n    _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEachEntry(formData, (name, value) => {\n      buildPath(parsePropPath(name), value, obj, 0);\n    });\n    return obj;\n  }\n  return null;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (formDataToJSON);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/formDataToJSON.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/isAbsoluteURL.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/isAbsoluteURL.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ isAbsoluteURL)\n/* harmony export */ });\n\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/isAbsoluteURL.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/isAxiosError.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/isAxiosError.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ isAxiosError)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n\n\n\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n  return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isObject(payload) && payload.isAxiosError === true;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/isAxiosError.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/isURLSameOrigin.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/isURLSameOrigin.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ \"../react-ui/node_modules/axios/lib/platform/index.js\");\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasStandardBrowserEnv ? ((origin, isMSIE) => url => {\n  url = new URL(url, _platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].origin);\n  return origin.protocol === url.protocol && origin.host === url.host && (isMSIE || origin.port === url.port);\n})(new URL(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].origin), _platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].navigator && /(msie|trident)/i.test(_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].navigator.userAgent)) : () => true);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/isURLSameOrigin.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/null.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/null.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n// eslint-disable-next-line strict\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (null);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/null.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/parseHeaders.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/parseHeaders.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n\n\n\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toObjectSet(['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent']);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (rawHeaders => {\n  const parsed = {};\n  let key;\n  let val;\n  let i;\n  rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n    i = line.indexOf(':');\n    key = line.substring(0, i).trim().toLowerCase();\n    val = line.substring(i + 1).trim();\n    if (!key || parsed[key] && ignoreDuplicateOf[key]) {\n      return;\n    }\n    if (key === 'set-cookie') {\n      if (parsed[key]) {\n        parsed[key].push(val);\n      } else {\n        parsed[key] = [val];\n      }\n    } else {\n      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n    }\n  });\n  return parsed;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/parseHeaders.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/parseProtocol.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/parseProtocol.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ parseProtocol)\n/* harmony export */ });\n\n\nfunction parseProtocol(url) {\n  const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n  return match && match[1] || '';\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/parseProtocol.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/progressEventReducer.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/progressEventReducer.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   asyncDecorator: () => (/* binding */ asyncDecorator),\n/* harmony export */   progressEventDecorator: () => (/* binding */ progressEventDecorator),\n/* harmony export */   progressEventReducer: () => (/* binding */ progressEventReducer)\n/* harmony export */ });\n/* harmony import */ var _speedometer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./speedometer.js */ \"../react-ui/node_modules/axios/lib/helpers/speedometer.js\");\n/* harmony import */ var _throttle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./throttle.js */ \"../react-ui/node_modules/axios/lib/helpers/throttle.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n\n\n\nconst progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n  let bytesNotified = 0;\n  const _speedometer = (0,_speedometer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(50, 250);\n  return (0,_throttle_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(e => {\n    const loaded = e.loaded;\n    const total = e.lengthComputable ? e.total : undefined;\n    const progressBytes = loaded - bytesNotified;\n    const rate = _speedometer(progressBytes);\n    const inRange = loaded <= total;\n    bytesNotified = loaded;\n    const data = {\n      loaded,\n      total,\n      progress: total ? loaded / total : undefined,\n      bytes: progressBytes,\n      rate: rate ? rate : undefined,\n      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n      event: e,\n      lengthComputable: total != null,\n      [isDownloadStream ? 'download' : 'upload']: true\n    };\n    listener(data);\n  }, freq);\n};\nconst progressEventDecorator = (total, throttled) => {\n  const lengthComputable = total != null;\n  return [loaded => throttled[0]({\n    lengthComputable,\n    total,\n    loaded\n  }), throttled[1]];\n};\nconst asyncDecorator = fn => (...args) => _utils_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].asap(() => fn(...args));\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/progressEventReducer.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/resolveConfig.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/resolveConfig.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../platform/index.js */ \"../react-ui/node_modules/axios/lib/platform/index.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n/* harmony import */ var _isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isURLSameOrigin.js */ \"../react-ui/node_modules/axios/lib/helpers/isURLSameOrigin.js\");\n/* harmony import */ var _cookies_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./cookies.js */ \"../react-ui/node_modules/axios/lib/helpers/cookies.js\");\n/* harmony import */ var _core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/buildFullPath.js */ \"../react-ui/node_modules/axios/lib/core/buildFullPath.js\");\n/* harmony import */ var _core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/mergeConfig.js */ \"../react-ui/node_modules/axios/lib/core/mergeConfig.js\");\n/* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/AxiosHeaders.js */ \"../react-ui/node_modules/axios/lib/core/AxiosHeaders.js\");\n/* harmony import */ var _buildURL_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./buildURL.js */ \"../react-ui/node_modules/axios/lib/helpers/buildURL.js\");\n\n\n\n\n\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (config => {\n  const newConfig = (0,_core_mergeConfig_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])({}, config);\n  let {\n    data,\n    withXSRFToken,\n    xsrfHeaderName,\n    xsrfCookieName,\n    headers,\n    auth\n  } = newConfig;\n  newConfig.headers = headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].from(headers);\n  newConfig.url = (0,_buildURL_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])((0,_core_buildFullPath_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n  // HTTP basic authentication\n  if (auth) {\n    headers.set('Authorization', 'Basic ' + btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : '')));\n  }\n  let contentType;\n  if (_utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isFormData(data)) {\n    if (_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasStandardBrowserEnv || _platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasStandardBrowserWebWorkerEnv) {\n      headers.setContentType(undefined); // Let the browser set it\n    } else if ((contentType = headers.getContentType()) !== false) {\n      // fix semicolon duplication issue for ReactNative FormData implementation\n      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n    }\n  }\n\n  // Add xsrf header\n  // This is only done if running in a standard browser environment.\n  // Specifically not if we're in a web worker, or react-native.\n\n  if (_platform_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasStandardBrowserEnv) {\n    withXSRFToken && _utils_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n    if (withXSRFToken || withXSRFToken !== false && (0,_isURLSameOrigin_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(newConfig.url)) {\n      // Add xsrf header\n      const xsrfValue = xsrfHeaderName && xsrfCookieName && _cookies_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].read(xsrfCookieName);\n      if (xsrfValue) {\n        headers.set(xsrfHeaderName, xsrfValue);\n      }\n    }\n  }\n  return newConfig;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/resolveConfig.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/speedometer.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/speedometer.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n  samplesCount = samplesCount || 10;\n  const bytes = new Array(samplesCount);\n  const timestamps = new Array(samplesCount);\n  let head = 0;\n  let tail = 0;\n  let firstSampleTS;\n  min = min !== undefined ? min : 1000;\n  return function push(chunkLength) {\n    const now = Date.now();\n    const startedAt = timestamps[tail];\n    if (!firstSampleTS) {\n      firstSampleTS = now;\n    }\n    bytes[head] = chunkLength;\n    timestamps[head] = now;\n    let i = tail;\n    let bytesCount = 0;\n    while (i !== head) {\n      bytesCount += bytes[i++];\n      i = i % samplesCount;\n    }\n    head = (head + 1) % samplesCount;\n    if (head === tail) {\n      tail = (tail + 1) % samplesCount;\n    }\n    if (now - firstSampleTS < min) {\n      return;\n    }\n    const passed = startedAt && now - startedAt;\n    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n  };\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (speedometer);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/speedometer.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/spread.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/spread.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ spread)\n/* harmony export */ });\n\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/spread.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/throttle.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/throttle.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n  let timestamp = 0;\n  let threshold = 1000 / freq;\n  let lastArgs;\n  let timer;\n  const invoke = (args, now = Date.now()) => {\n    timestamp = now;\n    lastArgs = null;\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n    fn(...args);\n  };\n  const throttled = (...args) => {\n    const now = Date.now();\n    const passed = now - timestamp;\n    if (passed >= threshold) {\n      invoke(args, now);\n    } else {\n      lastArgs = args;\n      if (!timer) {\n        timer = setTimeout(() => {\n          timer = null;\n          invoke(lastArgs);\n        }, threshold - passed);\n      }\n    }\n  };\n  const flush = () => lastArgs && invoke(lastArgs);\n  return [throttled, flush];\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (throttle);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/throttle.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/toFormData.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/toFormData.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ \"../react-ui/node_modules/axios/lib/core/AxiosError.js\");\n/* harmony import */ var _platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../platform/node/classes/FormData.js */ \"../react-ui/node_modules/axios/lib/helpers/null.js\");\n\n\n\n\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\n\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n  return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isPlainObject(thing) || _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n  return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n  if (!path) return key;\n  return path.concat(key).map(function each(token, i) {\n    // eslint-disable-next-line no-param-reassign\n    token = removeBrackets(token);\n    return !dots && i ? '[' + token + ']' : token;\n  }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n  return _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(arr) && !arr.some(isVisitable);\n}\nconst predicates = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toFlatObject(_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {}, null, function filter(prop) {\n  return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n  if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isObject(obj)) {\n    throw new TypeError('target must be an object');\n  }\n\n  // eslint-disable-next-line no-param-reassign\n  formData = formData || new (_platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] || FormData)();\n\n  // eslint-disable-next-line no-param-reassign\n  options = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toFlatObject(options, {\n    metaTokens: true,\n    dots: false,\n    indexes: false\n  }, false, function defined(option, source) {\n    // eslint-disable-next-line no-eq-null,eqeqeq\n    return !_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(source[option]);\n  });\n  const metaTokens = options.metaTokens;\n  // eslint-disable-next-line no-use-before-define\n  const visitor = options.visitor || defaultVisitor;\n  const dots = options.dots;\n  const indexes = options.indexes;\n  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n  const useBlob = _Blob && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isSpecCompliantForm(formData);\n  if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFunction(visitor)) {\n    throw new TypeError('visitor must be a function');\n  }\n  function convertValue(value) {\n    if (value === null) return '';\n    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isDate(value)) {\n      return value.toISOString();\n    }\n    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isBoolean(value)) {\n      return value.toString();\n    }\n    if (!useBlob && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isBlob(value)) {\n      throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('Blob is not supported. Use a Buffer instead.');\n    }\n    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArrayBuffer(value) || _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isTypedArray(value)) {\n      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n    }\n    return value;\n  }\n\n  /**\n   * Default visitor.\n   *\n   * @param {*} value\n   * @param {String|Number} key\n   * @param {Array<String|Number>} path\n   * @this {FormData}\n   *\n   * @returns {boolean} return true to visit the each prop of the value recursively\n   */\n  function defaultVisitor(value, key, path) {\n    let arr = value;\n    if (value && !path && typeof value === 'object') {\n      if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].endsWith(key, '{}')) {\n        // eslint-disable-next-line no-param-reassign\n        key = metaTokens ? key : key.slice(0, -2);\n        // eslint-disable-next-line no-param-reassign\n        value = JSON.stringify(value);\n      } else if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isArray(value) && isFlatArray(value) || (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isFileList(value) || _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].endsWith(key, '[]')) && (arr = _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toArray(value))) {\n        // eslint-disable-next-line no-param-reassign\n        key = removeBrackets(key);\n        arr.forEach(function each(el, index) {\n          !(_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(el) || el === null) && formData.append(\n          // eslint-disable-next-line no-nested-ternary\n          indexes === true ? renderKey([key], index, dots) : indexes === null ? key : key + '[]', convertValue(el));\n        });\n        return false;\n      }\n    }\n    if (isVisitable(value)) {\n      return true;\n    }\n    formData.append(renderKey(path, key, dots), convertValue(value));\n    return false;\n  }\n  const stack = [];\n  const exposedHelpers = Object.assign(predicates, {\n    defaultVisitor,\n    convertValue,\n    isVisitable\n  });\n  function build(value, path) {\n    if (_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(value)) return;\n    if (stack.indexOf(value) !== -1) {\n      throw Error('Circular reference detected in ' + path.join('.'));\n    }\n    stack.push(value);\n    _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].forEach(value, function each(el, key) {\n      const result = !(_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isUndefined(el) || el === null) && visitor.call(formData, el, _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isString(key) ? key.trim() : key, path, exposedHelpers);\n      if (result === true) {\n        build(el, path ? path.concat(key) : [key]);\n      }\n    });\n    stack.pop();\n  }\n  if (!_utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isObject(obj)) {\n    throw new TypeError('data must be an object');\n  }\n  build(obj);\n  return formData;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (toFormData);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/toFormData.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/toURLEncodedForm.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/toURLEncodedForm.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ toURLEncodedForm)\n/* harmony export */ });\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/axios/lib/utils.js\");\n/* harmony import */ var _toFormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toFormData.js */ \"../react-ui/node_modules/axios/lib/helpers/toFormData.js\");\n/* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../platform/index.js */ \"../react-ui/node_modules/axios/lib/platform/index.js\");\n\n\n\n\n\nfunction toURLEncodedForm(data, options) {\n  return (0,_toFormData_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(data, new _platform_index_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].classes.URLSearchParams(), {\n    visitor: function (value, key, path, helpers) {\n      if (_platform_index_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isNode && _utils_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isBuffer(value)) {\n        this.append(key, value.toString('base64'));\n        return false;\n      }\n      return helpers.defaultVisitor.apply(this, arguments);\n    },\n    ...options\n  });\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/toURLEncodedForm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/trackStream.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/trackStream.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   readBytes: () => (/* binding */ readBytes),\n/* harmony export */   streamChunk: () => (/* binding */ streamChunk),\n/* harmony export */   trackStream: () => (/* binding */ trackStream)\n/* harmony export */ });\nconst streamChunk = function* (chunk, chunkSize) {\n  let len = chunk.byteLength;\n  if (!chunkSize || len < chunkSize) {\n    yield chunk;\n    return;\n  }\n  let pos = 0;\n  let end;\n  while (pos < len) {\n    end = pos + chunkSize;\n    yield chunk.slice(pos, end);\n    pos = end;\n  }\n};\nconst readBytes = async function* (iterable, chunkSize) {\n  for await (const chunk of readStream(iterable)) {\n    yield* streamChunk(chunk, chunkSize);\n  }\n};\nconst readStream = async function* (stream) {\n  if (stream[Symbol.asyncIterator]) {\n    yield* stream;\n    return;\n  }\n  const reader = stream.getReader();\n  try {\n    for (;;) {\n      const {\n        done,\n        value\n      } = await reader.read();\n      if (done) {\n        break;\n      }\n      yield value;\n    }\n  } finally {\n    await reader.cancel();\n  }\n};\nconst trackStream = (stream, chunkSize, onProgress, onFinish) => {\n  const iterator = readBytes(stream, chunkSize);\n  let bytes = 0;\n  let done;\n  let _onFinish = e => {\n    if (!done) {\n      done = true;\n      onFinish && onFinish(e);\n    }\n  };\n  return new ReadableStream({\n    async pull(controller) {\n      try {\n        const {\n          done,\n          value\n        } = await iterator.next();\n        if (done) {\n          _onFinish();\n          controller.close();\n          return;\n        }\n        let len = value.byteLength;\n        if (onProgress) {\n          let loadedBytes = bytes += len;\n          onProgress(loadedBytes);\n        }\n        controller.enqueue(new Uint8Array(value));\n      } catch (err) {\n        _onFinish(err);\n        throw err;\n      }\n    },\n    cancel(reason) {\n      _onFinish(reason);\n      return iterator.return();\n    }\n  }, {\n    highWaterMark: 2\n  });\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/trackStream.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/helpers/validator.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/helpers/validator.js ***!
  \***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _env_data_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../env/data.js */ \"../react-ui/node_modules/axios/lib/env/data.js\");\n/* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/AxiosError.js */ \"../react-ui/node_modules/axios/lib/core/AxiosError.js\");\n\n\n\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return '[Axios v' + _env_data_js__WEBPACK_IMPORTED_MODULE_0__.VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return (value, opt, opts) => {\n    if (validator === false) {\n      throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_DEPRECATED);\n    }\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));\n    }\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\nvalidators.spelling = function spelling(correctSpelling) {\n  return (value, opt) => {\n    // eslint-disable-next-line no-console\n    console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n    return true;\n  };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('options must be an object', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_BAD_OPTION_VALUE);\n  }\n  const keys = Object.keys(options);\n  let i = keys.length;\n  while (i-- > 0) {\n    const opt = keys[i];\n    const validator = schema[opt];\n    if (validator) {\n      const value = options[opt];\n      const result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('option ' + opt + ' must be ' + result, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_BAD_OPTION_VALUE);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]('Unknown option ' + opt, _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ERR_BAD_OPTION);\n    }\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  assertOptions,\n  validators\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/helpers/validator.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/platform/browser/classes/Blob.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/platform/browser/classes/Blob.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof Blob !== 'undefined' ? Blob : null);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/platform/browser/classes/Blob.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/platform/browser/classes/FormData.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/platform/browser/classes/FormData.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof FormData !== 'undefined' ? FormData : null);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/platform/browser/classes/FormData.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js":
/*!**************************************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../helpers/AxiosURLSearchParams.js */ \"../react-ui/node_modules/axios/lib/helpers/AxiosURLSearchParams.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (typeof URLSearchParams !== 'undefined' ? URLSearchParams : _helpers_AxiosURLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/platform/browser/index.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/platform/browser/index.js ***!
  \********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _classes_URLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./classes/URLSearchParams.js */ \"../react-ui/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js\");\n/* harmony import */ var _classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./classes/FormData.js */ \"../react-ui/node_modules/axios/lib/platform/browser/classes/FormData.js\");\n/* harmony import */ var _classes_Blob_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./classes/Blob.js */ \"../react-ui/node_modules/axios/lib/platform/browser/classes/Blob.js\");\n\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  isBrowser: true,\n  classes: {\n    URLSearchParams: _classes_URLSearchParams_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"],\n    FormData: _classes_FormData_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n    Blob: _classes_Blob_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]\n  },\n  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/platform/browser/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/platform/common/utils.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/platform/common/utils.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   hasBrowserEnv: () => (/* binding */ hasBrowserEnv),\n/* harmony export */   hasStandardBrowserEnv: () => (/* binding */ hasStandardBrowserEnv),\n/* harmony export */   hasStandardBrowserWebWorkerEnv: () => (/* binding */ hasStandardBrowserWebWorkerEnv),\n/* harmony export */   navigator: () => (/* binding */ _navigator),\n/* harmony export */   origin: () => (/* binding */ origin)\n/* harmony export */ });\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv && (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n  return typeof WorkerGlobalScope !== 'undefined' &&\n  // eslint-disable-next-line no-undef\n  self instanceof WorkerGlobalScope && typeof self.importScripts === 'function';\n})();\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/platform/common/utils.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/platform/index.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/platform/index.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _node_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./node/index.js */ \"../react-ui/node_modules/axios/lib/platform/browser/index.js\");\n/* harmony import */ var _common_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common/utils.js */ \"../react-ui/node_modules/axios/lib/platform/common/utils.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  ..._common_utils_js__WEBPACK_IMPORTED_MODULE_1__,\n  ..._node_index_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/platform/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/axios/lib/utils.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/axios/lib/utils.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers/bind.js */ \"../react-ui/node_modules/axios/lib/helpers/bind.js\");\n\n\n\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {\n  toString\n} = Object.prototype;\nconst {\n  getPrototypeOf\n} = Object;\nconst {\n  iterator,\n  toStringTag\n} = Symbol;\nconst kindOf = (cache => thing => {\n  const str = toString.call(thing);\n  return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\nconst kindOfTest = type => {\n  type = type.toLowerCase();\n  return thing => kindOf(thing) === type;\n};\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {\n  isArray\n} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  let result;\n  if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = val && val.buffer && isArrayBuffer(val.buffer);\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = thing => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = val => {\n  if (kindOf(val) !== 'object') {\n    return false;\n  }\n  const prototype = getPrototypeOf(val);\n  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);\n};\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = val => {\n  // Early return for non-objects or Buffers to prevent RangeError\n  if (!isObject(val) || isBuffer(val)) {\n    return false;\n  }\n  try {\n    return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n  } catch (e) {\n    // Fallback for any other objects that might cause RangeError with Object.keys()\n    return false;\n  }\n};\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = val => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = thing => {\n  let kind;\n  return thing && (typeof FormData === 'function' && thing instanceof FormData || isFunction(thing.append) && ((kind = kindOf(thing)) === 'formdata' ||\n  // detect form-data instance\n  kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]'));\n};\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = str => str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {\n  allOwnKeys = false\n} = {}) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n  let i;\n  let l;\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Buffer check\n    if (isBuffer(obj)) {\n      return;\n    }\n\n    // Iterate over object keys\n    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n    const len = keys.length;\n    let key;\n    for (i = 0; i < len; i++) {\n      key = keys[i];\n      fn.call(null, obj[key], key, obj);\n    }\n  }\n}\nfunction findKey(obj, key) {\n  if (isBuffer(obj)) {\n    return null;\n  }\n  key = key.toLowerCase();\n  const keys = Object.keys(obj);\n  let i = keys.length;\n  let _key;\n  while (i-- > 0) {\n    _key = keys[i];\n    if (key === _key.toLowerCase()) {\n      return _key;\n    }\n  }\n  return null;\n}\nconst _global = (() => {\n  /*eslint no-undef:0*/\n  if (typeof globalThis !== \"undefined\") return globalThis;\n  return typeof self !== \"undefined\" ? self : typeof window !== 'undefined' ? window : global;\n})();\nconst isContextDefined = context => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */\n) {\n  const {\n    caseless\n  } = isContextDefined(this) && this || {};\n  const result = {};\n  const assignValue = (val, key) => {\n    const targetKey = caseless && findKey(result, key) || key;\n    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n      result[targetKey] = merge(result[targetKey], val);\n    } else if (isPlainObject(val)) {\n      result[targetKey] = merge({}, val);\n    } else if (isArray(val)) {\n      result[targetKey] = val.slice();\n    } else {\n      result[targetKey] = val;\n    }\n  };\n  for (let i = 0, l = arguments.length; i < l; i++) {\n    arguments[i] && forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {\n  allOwnKeys\n} = {}) => {\n  forEach(b, (val, key) => {\n    if (thisArg && isFunction(val)) {\n      a[key] = (0,_helpers_bind_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  }, {\n    allOwnKeys\n  });\n  return a;\n};\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = content => {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n};\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n  constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n  constructor.prototype.constructor = constructor;\n  Object.defineProperty(constructor, 'super', {\n    value: superConstructor.prototype\n  });\n  props && Object.assign(constructor.prototype, props);\n};\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n  let props;\n  let i;\n  let prop;\n  const merged = {};\n  destObj = destObj || {};\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  if (sourceObj == null) return destObj;\n  do {\n    props = Object.getOwnPropertyNames(sourceObj);\n    i = props.length;\n    while (i-- > 0) {\n      prop = props[i];\n      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n        destObj[prop] = sourceObj[prop];\n        merged[prop] = true;\n      }\n    }\n    sourceObj = filter !== false && getPrototypeOf(sourceObj);\n  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n  return destObj;\n};\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n  str = String(str);\n  if (position === undefined || position > str.length) {\n    position = str.length;\n  }\n  position -= searchString.length;\n  const lastIndex = str.indexOf(searchString, position);\n  return lastIndex !== -1 && lastIndex === position;\n};\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = thing => {\n  if (!thing) return null;\n  if (isArray(thing)) return thing;\n  let i = thing.length;\n  if (!isNumber(i)) return null;\n  const arr = new Array(i);\n  while (i-- > 0) {\n    arr[i] = thing[i];\n  }\n  return arr;\n};\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n  // eslint-disable-next-line func-names\n  return thing => {\n    return TypedArray && thing instanceof TypedArray;\n  };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n  const generator = obj && obj[iterator];\n  const _iterator = generator.call(obj);\n  let result;\n  while ((result = _iterator.next()) && !result.done) {\n    const pair = result.value;\n    fn.call(obj, pair[0], pair[1]);\n  }\n};\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n  let matches;\n  const arr = [];\n  while ((matches = regExp.exec(str)) !== null) {\n    arr.push(matches);\n  }\n  return arr;\n};\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\nconst toCamelCase = str => {\n  return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g, function replacer(m, p1, p2) {\n    return p1.toUpperCase() + p2;\n  });\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({\n  hasOwnProperty\n}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\nconst reduceDescriptors = (obj, reducer) => {\n  const descriptors = Object.getOwnPropertyDescriptors(obj);\n  const reducedDescriptors = {};\n  forEach(descriptors, (descriptor, name) => {\n    let ret;\n    if ((ret = reducer(descriptor, name, obj)) !== false) {\n      reducedDescriptors[name] = ret || descriptor;\n    }\n  });\n  Object.defineProperties(obj, reducedDescriptors);\n};\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = obj => {\n  reduceDescriptors(obj, (descriptor, name) => {\n    // skip restricted props in strict mode\n    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n      return false;\n    }\n    const value = obj[name];\n    if (!isFunction(value)) return;\n    descriptor.enumerable = false;\n    if ('writable' in descriptor) {\n      descriptor.writable = false;\n      return;\n    }\n    if (!descriptor.set) {\n      descriptor.set = () => {\n        throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n      };\n    }\n  });\n};\nconst toObjectSet = (arrayOrString, delimiter) => {\n  const obj = {};\n  const define = arr => {\n    arr.forEach(value => {\n      obj[value] = true;\n    });\n  };\n  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n  return obj;\n};\nconst noop = () => {};\nconst toFiniteNumber = (value, defaultValue) => {\n  return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n};\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n  return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);\n}\nconst toJSONObject = obj => {\n  const stack = new Array(10);\n  const visit = (source, i) => {\n    if (isObject(source)) {\n      if (stack.indexOf(source) >= 0) {\n        return;\n      }\n\n      //Buffer check\n      if (isBuffer(source)) {\n        return source;\n      }\n      if (!('toJSON' in source)) {\n        stack[i] = source;\n        const target = isArray(source) ? [] : {};\n        forEach(source, (value, key) => {\n          const reducedValue = visit(value, i + 1);\n          !isUndefined(reducedValue) && (target[key] = reducedValue);\n        });\n        stack[i] = undefined;\n        return target;\n      }\n    }\n    return source;\n  };\n  return visit(obj, 0);\n};\nconst isAsyncFn = kindOfTest('AsyncFunction');\nconst isThenable = thing => thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n  if (setImmediateSupported) {\n    return setImmediate;\n  }\n  return postMessageSupported ? ((token, callbacks) => {\n    _global.addEventListener(\"message\", ({\n      source,\n      data\n    }) => {\n      if (source === _global && data === token) {\n        callbacks.length && callbacks.shift()();\n      }\n    }, false);\n    return cb => {\n      callbacks.push(cb);\n      _global.postMessage(token, \"*\");\n    };\n  })(`axios@${Math.random()}`, []) : cb => setTimeout(cb);\n})(typeof setImmediate === 'function', isFunction(_global.postMessage));\nconst asap = typeof queueMicrotask !== 'undefined' ? queueMicrotask.bind(_global) : typeof process !== 'undefined' && process.nextTick || _setImmediate;\n\n// *********************\n\nconst isIterable = thing => thing != null && isFunction(thing[iterator]);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  isArray,\n  isArrayBuffer,\n  isBuffer,\n  isFormData,\n  isArrayBufferView,\n  isString,\n  isNumber,\n  isBoolean,\n  isObject,\n  isPlainObject,\n  isEmptyObject,\n  isReadableStream,\n  isRequest,\n  isResponse,\n  isHeaders,\n  isUndefined,\n  isDate,\n  isFile,\n  isBlob,\n  isRegExp,\n  isFunction,\n  isStream,\n  isURLSearchParams,\n  isTypedArray,\n  isFileList,\n  forEach,\n  merge,\n  extend,\n  trim,\n  stripBOM,\n  inherits,\n  toFlatObject,\n  kindOf,\n  kindOfTest,\n  endsWith,\n  toArray,\n  forEachEntry,\n  matchAll,\n  isHTMLForm,\n  hasOwnProperty,\n  hasOwnProp: hasOwnProperty,\n  // an alias to avoid ESLint no-prototype-builtins detection\n  reduceDescriptors,\n  freezeMethods,\n  toObjectSet,\n  toCamelCase,\n  noop,\n  toFiniteNumber,\n  findKey,\n  global: _global,\n  isContextDefined,\n  isSpecCompliantForm,\n  toJSONObject,\n  isAsyncFn,\n  isThenable,\n  setImmediate: _setImmediate,\n  asap,\n  isIterable\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/axios/lib/utils.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/chart.js/dist/chart.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/chart.js/dist/chart.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Animation: () => (/* binding */ Animation),\n/* harmony export */   Animations: () => (/* binding */ Animations),\n/* harmony export */   ArcElement: () => (/* binding */ ArcElement),\n/* harmony export */   BarController: () => (/* binding */ BarController),\n/* harmony export */   BarElement: () => (/* binding */ BarElement),\n/* harmony export */   BasePlatform: () => (/* binding */ BasePlatform),\n/* harmony export */   BasicPlatform: () => (/* binding */ BasicPlatform),\n/* harmony export */   BubbleController: () => (/* binding */ BubbleController),\n/* harmony export */   CategoryScale: () => (/* binding */ CategoryScale),\n/* harmony export */   Chart: () => (/* binding */ Chart),\n/* harmony export */   Colors: () => (/* binding */ plugin_colors),\n/* harmony export */   DatasetController: () => (/* binding */ DatasetController),\n/* harmony export */   Decimation: () => (/* binding */ plugin_decimation),\n/* harmony export */   DomPlatform: () => (/* binding */ DomPlatform),\n/* harmony export */   DoughnutController: () => (/* binding */ DoughnutController),\n/* harmony export */   Element: () => (/* binding */ Element),\n/* harmony export */   Filler: () => (/* binding */ index),\n/* harmony export */   Interaction: () => (/* binding */ Interaction),\n/* harmony export */   Legend: () => (/* binding */ plugin_legend),\n/* harmony export */   LineController: () => (/* binding */ LineController),\n/* harmony export */   LineElement: () => (/* binding */ LineElement),\n/* harmony export */   LinearScale: () => (/* binding */ LinearScale),\n/* harmony export */   LogarithmicScale: () => (/* binding */ LogarithmicScale),\n/* harmony export */   PieController: () => (/* binding */ PieController),\n/* harmony export */   PointElement: () => (/* binding */ PointElement),\n/* harmony export */   PolarAreaController: () => (/* binding */ PolarAreaController),\n/* harmony export */   RadarController: () => (/* binding */ RadarController),\n/* harmony export */   RadialLinearScale: () => (/* binding */ RadialLinearScale),\n/* harmony export */   Scale: () => (/* binding */ Scale),\n/* harmony export */   ScatterController: () => (/* binding */ ScatterController),\n/* harmony export */   SubTitle: () => (/* binding */ plugin_subtitle),\n/* harmony export */   Ticks: () => (/* reexport safe */ _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aM),\n/* harmony export */   TimeScale: () => (/* binding */ TimeScale),\n/* harmony export */   TimeSeriesScale: () => (/* binding */ TimeSeriesScale),\n/* harmony export */   Title: () => (/* binding */ plugin_title),\n/* harmony export */   Tooltip: () => (/* binding */ plugin_tooltip),\n/* harmony export */   _adapters: () => (/* binding */ adapters),\n/* harmony export */   _detectPlatform: () => (/* binding */ _detectPlatform),\n/* harmony export */   animator: () => (/* binding */ animator),\n/* harmony export */   controllers: () => (/* binding */ controllers),\n/* harmony export */   defaults: () => (/* reexport safe */ _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d),\n/* harmony export */   elements: () => (/* binding */ elements),\n/* harmony export */   layouts: () => (/* binding */ layouts),\n/* harmony export */   plugins: () => (/* binding */ plugins),\n/* harmony export */   registerables: () => (/* binding */ registerables),\n/* harmony export */   registry: () => (/* binding */ registry),\n/* harmony export */   scales: () => (/* binding */ scales)\n/* harmony export */ });\n/* harmony import */ var _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./chunks/helpers.dataset.js */ \"../react-ui/node_modules/chart.js/dist/chunks/helpers.dataset.js\");\n/*!\n * Chart.js v4.5.0\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\n\n\nclass Animator {\n  constructor() {\n    this._request = null;\n    this._charts = new Map();\n    this._running = false;\n    this._lastDate = undefined;\n  }\n  _notify(chart, anims, date, type) {\n    const callbacks = anims.listeners[type];\n    const numSteps = anims.duration;\n    callbacks.forEach(fn => fn({\n      chart,\n      initial: anims.initial,\n      numSteps,\n      currentStep: Math.min(date - anims.start, numSteps)\n    }));\n  }\n  _refresh() {\n    if (this._request) {\n      return;\n    }\n    this._running = true;\n    this._request = _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.r.call(window, () => {\n      this._update();\n      this._request = null;\n      if (this._running) {\n        this._refresh();\n      }\n    });\n  }\n  _update(date = Date.now()) {\n    let remaining = 0;\n    this._charts.forEach((anims, chart) => {\n      if (!anims.running || !anims.items.length) {\n        return;\n      }\n      const items = anims.items;\n      let i = items.length - 1;\n      let draw = false;\n      let item;\n      for (; i >= 0; --i) {\n        item = items[i];\n        if (item._active) {\n          if (item._total > anims.duration) {\n            anims.duration = item._total;\n          }\n          item.tick(date);\n          draw = true;\n        } else {\n          items[i] = items[items.length - 1];\n          items.pop();\n        }\n      }\n      if (draw) {\n        chart.draw();\n        this._notify(chart, anims, date, 'progress');\n      }\n      if (!items.length) {\n        anims.running = false;\n        this._notify(chart, anims, date, 'complete');\n        anims.initial = false;\n      }\n      remaining += items.length;\n    });\n    this._lastDate = date;\n    if (remaining === 0) {\n      this._running = false;\n    }\n  }\n  _getAnims(chart) {\n    const charts = this._charts;\n    let anims = charts.get(chart);\n    if (!anims) {\n      anims = {\n        running: false,\n        initial: true,\n        items: [],\n        listeners: {\n          complete: [],\n          progress: []\n        }\n      };\n      charts.set(chart, anims);\n    }\n    return anims;\n  }\n  listen(chart, event, cb) {\n    this._getAnims(chart).listeners[event].push(cb);\n  }\n  add(chart, items) {\n    if (!items || !items.length) {\n      return;\n    }\n    this._getAnims(chart).items.push(...items);\n  }\n  has(chart) {\n    return this._getAnims(chart).items.length > 0;\n  }\n  start(chart) {\n    const anims = this._charts.get(chart);\n    if (!anims) {\n      return;\n    }\n    anims.running = true;\n    anims.start = Date.now();\n    anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n    this._refresh();\n  }\n  running(chart) {\n    if (!this._running) {\n      return false;\n    }\n    const anims = this._charts.get(chart);\n    if (!anims || !anims.running || !anims.items.length) {\n      return false;\n    }\n    return true;\n  }\n  stop(chart) {\n    const anims = this._charts.get(chart);\n    if (!anims || !anims.items.length) {\n      return;\n    }\n    const items = anims.items;\n    let i = items.length - 1;\n    for (; i >= 0; --i) {\n      items[i].cancel();\n    }\n    anims.items = [];\n    this._notify(chart, anims, Date.now(), 'complete');\n  }\n  remove(chart) {\n    return this._charts.delete(chart);\n  }\n}\nvar animator = /* #__PURE__ */new Animator();\nconst transparent = 'transparent';\nconst interpolators = {\n  boolean(from, to, factor) {\n    return factor > 0.5 ? to : from;\n  },\n  color(from, to, factor) {\n    const c0 = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.c)(from || transparent);\n    const c1 = c0.valid && (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.c)(to || transparent);\n    return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n  },\n  number(from, to, factor) {\n    return from + (to - from) * factor;\n  }\n};\nclass Animation {\n  constructor(cfg, target, prop, to) {\n    const currentValue = target[prop];\n    to = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a)([cfg.to, to, currentValue, cfg.from]);\n    const from = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a)([cfg.from, currentValue, to]);\n    this._active = true;\n    this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n    this._easing = _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.e[cfg.easing] || _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.e.linear;\n    this._start = Math.floor(Date.now() + (cfg.delay || 0));\n    this._duration = this._total = Math.floor(cfg.duration);\n    this._loop = !!cfg.loop;\n    this._target = target;\n    this._prop = prop;\n    this._from = from;\n    this._to = to;\n    this._promises = undefined;\n  }\n  active() {\n    return this._active;\n  }\n  update(cfg, to, date) {\n    if (this._active) {\n      this._notify(false);\n      const currentValue = this._target[this._prop];\n      const elapsed = date - this._start;\n      const remain = this._duration - elapsed;\n      this._start = date;\n      this._duration = Math.floor(Math.max(remain, cfg.duration));\n      this._total += elapsed;\n      this._loop = !!cfg.loop;\n      this._to = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a)([cfg.to, to, currentValue, cfg.from]);\n      this._from = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a)([cfg.from, currentValue, to]);\n    }\n  }\n  cancel() {\n    if (this._active) {\n      this.tick(Date.now());\n      this._active = false;\n      this._notify(false);\n    }\n  }\n  tick(date) {\n    const elapsed = date - this._start;\n    const duration = this._duration;\n    const prop = this._prop;\n    const from = this._from;\n    const loop = this._loop;\n    const to = this._to;\n    let factor;\n    this._active = from !== to && (loop || elapsed < duration);\n    if (!this._active) {\n      this._target[prop] = to;\n      this._notify(true);\n      return;\n    }\n    if (elapsed < 0) {\n      this._target[prop] = from;\n      return;\n    }\n    factor = elapsed / duration % 2;\n    factor = loop && factor > 1 ? 2 - factor : factor;\n    factor = this._easing(Math.min(1, Math.max(0, factor)));\n    this._target[prop] = this._fn(from, to, factor);\n  }\n  wait() {\n    const promises = this._promises || (this._promises = []);\n    return new Promise((res, rej) => {\n      promises.push({\n        res,\n        rej\n      });\n    });\n  }\n  _notify(resolved) {\n    const method = resolved ? 'res' : 'rej';\n    const promises = this._promises || [];\n    for (let i = 0; i < promises.length; i++) {\n      promises[i][method]();\n    }\n  }\n}\nclass Animations {\n  constructor(chart, config) {\n    this._chart = chart;\n    this._properties = new Map();\n    this.configure(config);\n  }\n  configure(config) {\n    if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(config)) {\n      return;\n    }\n    const animationOptions = Object.keys(_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.animation);\n    const animatedProps = this._properties;\n    Object.getOwnPropertyNames(config).forEach(key => {\n      const cfg = config[key];\n      if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(cfg)) {\n        return;\n      }\n      const resolved = {};\n      for (const option of animationOptions) {\n        resolved[option] = cfg[option];\n      }\n      ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.b)(cfg.properties) && cfg.properties || [key]).forEach(prop => {\n        if (prop === key || !animatedProps.has(prop)) {\n          animatedProps.set(prop, resolved);\n        }\n      });\n    });\n  }\n  _animateOptions(target, values) {\n    const newOptions = values.options;\n    const options = resolveTargetOptions(target, newOptions);\n    if (!options) {\n      return [];\n    }\n    const animations = this._createAnimations(options, newOptions);\n    if (newOptions.$shared) {\n      awaitAll(target.options.$animations, newOptions).then(() => {\n        target.options = newOptions;\n      }, () => {});\n    }\n    return animations;\n  }\n  _createAnimations(target, values) {\n    const animatedProps = this._properties;\n    const animations = [];\n    const running = target.$animations || (target.$animations = {});\n    const props = Object.keys(values);\n    const date = Date.now();\n    let i;\n    for (i = props.length - 1; i >= 0; --i) {\n      const prop = props[i];\n      if (prop.charAt(0) === '$') {\n        continue;\n      }\n      if (prop === 'options') {\n        animations.push(...this._animateOptions(target, values));\n        continue;\n      }\n      const value = values[prop];\n      let animation = running[prop];\n      const cfg = animatedProps.get(prop);\n      if (animation) {\n        if (cfg && animation.active()) {\n          animation.update(cfg, value, date);\n          continue;\n        } else {\n          animation.cancel();\n        }\n      }\n      if (!cfg || !cfg.duration) {\n        target[prop] = value;\n        continue;\n      }\n      running[prop] = animation = new Animation(cfg, target, prop, value);\n      animations.push(animation);\n    }\n    return animations;\n  }\n  update(target, values) {\n    if (this._properties.size === 0) {\n      Object.assign(target, values);\n      return;\n    }\n    const animations = this._createAnimations(target, values);\n    if (animations.length) {\n      animator.add(this._chart, animations);\n      return true;\n    }\n  }\n}\nfunction awaitAll(animations, properties) {\n  const running = [];\n  const keys = Object.keys(properties);\n  for (let i = 0; i < keys.length; i++) {\n    const anim = animations[keys[i]];\n    if (anim && anim.active()) {\n      running.push(anim.wait());\n    }\n  }\n  return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n  if (!newOptions) {\n    return;\n  }\n  let options = target.options;\n  if (!options) {\n    target.options = newOptions;\n    return;\n  }\n  if (options.$shared) {\n    target.options = options = Object.assign({}, options, {\n      $shared: false,\n      $animations: {}\n    });\n  }\n  return options;\n}\nfunction scaleClip(scale, allowedOverflow) {\n  const opts = scale && scale.options || {};\n  const reverse = opts.reverse;\n  const min = opts.min === undefined ? allowedOverflow : 0;\n  const max = opts.max === undefined ? allowedOverflow : 0;\n  return {\n    start: reverse ? max : min,\n    end: reverse ? min : max\n  };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n  if (allowedOverflow === false) {\n    return false;\n  }\n  const x = scaleClip(xScale, allowedOverflow);\n  const y = scaleClip(yScale, allowedOverflow);\n  return {\n    top: y.end,\n    right: x.end,\n    bottom: y.start,\n    left: x.start\n  };\n}\nfunction toClip(value) {\n  let t, r, b, l;\n  if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(value)) {\n    t = value.top;\n    r = value.right;\n    b = value.bottom;\n    l = value.left;\n  } else {\n    t = r = b = l = value;\n  }\n  return {\n    top: t,\n    right: r,\n    bottom: b,\n    left: l,\n    disabled: value === false\n  };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n  const keys = [];\n  const metasets = chart._getSortedDatasetMetas(filterVisible);\n  let i, ilen;\n  for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n    keys.push(metasets[i].index);\n  }\n  return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n  const keys = stack.keys;\n  const singleMode = options.mode === 'single';\n  let i, ilen, datasetIndex, otherValue;\n  if (value === null) {\n    return;\n  }\n  let found = false;\n  for (i = 0, ilen = keys.length; i < ilen; ++i) {\n    datasetIndex = +keys[i];\n    if (datasetIndex === dsIndex) {\n      found = true;\n      if (options.all) {\n        continue;\n      }\n      break;\n    }\n    otherValue = stack.values[datasetIndex];\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(otherValue) && (singleMode || value === 0 || (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.s)(value) === (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.s)(otherValue))) {\n      value += otherValue;\n    }\n  }\n  if (!found && !options.all) {\n    return 0;\n  }\n  return value;\n}\nfunction convertObjectDataToArray(data, meta) {\n  const {\n    iScale,\n    vScale\n  } = meta;\n  const iAxisKey = iScale.axis === 'x' ? 'x' : 'y';\n  const vAxisKey = vScale.axis === 'x' ? 'x' : 'y';\n  const keys = Object.keys(data);\n  const adata = new Array(keys.length);\n  let i, ilen, key;\n  for (i = 0, ilen = keys.length; i < ilen; ++i) {\n    key = keys[i];\n    adata[i] = {\n      [iAxisKey]: key,\n      [vAxisKey]: data[key]\n    };\n  }\n  return adata;\n}\nfunction isStacked(scale, meta) {\n  const stacked = scale && scale.options.stacked;\n  return stacked || stacked === undefined && meta.stack !== undefined;\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n  return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n  const {\n    min,\n    max,\n    minDefined,\n    maxDefined\n  } = scale.getUserBounds();\n  return {\n    min: minDefined ? min : Number.NEGATIVE_INFINITY,\n    max: maxDefined ? max : Number.POSITIVE_INFINITY\n  };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n  const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n  return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n  for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n    const value = stack[meta.index];\n    if (positive && value > 0 || !positive && value < 0) {\n      return meta.index;\n    }\n  }\n  return null;\n}\nfunction updateStacks(controller, parsed) {\n  const {\n    chart,\n    _cachedMeta: meta\n  } = controller;\n  const stacks = chart._stacks || (chart._stacks = {});\n  const {\n    iScale,\n    vScale,\n    index: datasetIndex\n  } = meta;\n  const iAxis = iScale.axis;\n  const vAxis = vScale.axis;\n  const key = getStackKey(iScale, vScale, meta);\n  const ilen = parsed.length;\n  let stack;\n  for (let i = 0; i < ilen; ++i) {\n    const item = parsed[i];\n    const {\n      [iAxis]: index,\n      [vAxis]: value\n    } = item;\n    const itemStacks = item._stacks || (item._stacks = {});\n    stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n    stack[datasetIndex] = value;\n    stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n    stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n    const visualValues = stack._visualValues || (stack._visualValues = {});\n    visualValues[datasetIndex] = value;\n  }\n}\nfunction getFirstScaleId(chart, axis) {\n  const scales = chart.scales;\n  return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n  return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.j)(parent, {\n    active: false,\n    dataset: undefined,\n    datasetIndex: index,\n    index,\n    mode: 'default',\n    type: 'dataset'\n  });\n}\nfunction createDataContext(parent, index, element) {\n  return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.j)(parent, {\n    active: false,\n    dataIndex: index,\n    parsed: undefined,\n    raw: undefined,\n    element,\n    index,\n    mode: 'default',\n    type: 'data'\n  });\n}\nfunction clearStacks(meta, items) {\n  const datasetIndex = meta.controller.index;\n  const axis = meta.vScale && meta.vScale.axis;\n  if (!axis) {\n    return;\n  }\n  items = items || meta._parsed;\n  for (const parsed of items) {\n    const stacks = parsed._stacks;\n    if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n      return;\n    }\n    delete stacks[axis][datasetIndex];\n    if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n      delete stacks[axis]._visualValues[datasetIndex];\n    }\n  }\n}\nconst isDirectUpdateMode = mode => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked && {\n  keys: getSortedDatasetIndices(chart, true),\n  values: null\n};\nclass DatasetController {\n  static defaults = {};\n  static datasetElementType = null;\n  static dataElementType = null;\n  constructor(chart, datasetIndex) {\n    this.chart = chart;\n    this._ctx = chart.ctx;\n    this.index = datasetIndex;\n    this._cachedDataOpts = {};\n    this._cachedMeta = this.getMeta();\n    this._type = this._cachedMeta.type;\n    this.options = undefined;\n    this._parsing = false;\n    this._data = undefined;\n    this._objectData = undefined;\n    this._sharedOptions = undefined;\n    this._drawStart = undefined;\n    this._drawCount = undefined;\n    this.enableOptionSharing = false;\n    this.supportsDecimation = false;\n    this.$context = undefined;\n    this._syncList = [];\n    this.datasetElementType = new.target.datasetElementType;\n    this.dataElementType = new.target.dataElementType;\n    this.initialize();\n  }\n  initialize() {\n    const meta = this._cachedMeta;\n    this.configure();\n    this.linkScales();\n    meta._stacked = isStacked(meta.vScale, meta);\n    this.addElements();\n    if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n      console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n    }\n  }\n  updateIndex(datasetIndex) {\n    if (this.index !== datasetIndex) {\n      clearStacks(this._cachedMeta);\n    }\n    this.index = datasetIndex;\n  }\n  linkScales() {\n    const chart = this.chart;\n    const meta = this._cachedMeta;\n    const dataset = this.getDataset();\n    const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n    const xid = meta.xAxisID = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n    const yid = meta.yAxisID = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n    const rid = meta.rAxisID = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n    const indexAxis = meta.indexAxis;\n    const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n    const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n    meta.xScale = this.getScaleForId(xid);\n    meta.yScale = this.getScaleForId(yid);\n    meta.rScale = this.getScaleForId(rid);\n    meta.iScale = this.getScaleForId(iid);\n    meta.vScale = this.getScaleForId(vid);\n  }\n  getDataset() {\n    return this.chart.data.datasets[this.index];\n  }\n  getMeta() {\n    return this.chart.getDatasetMeta(this.index);\n  }\n  getScaleForId(scaleID) {\n    return this.chart.scales[scaleID];\n  }\n  _getOtherScale(scale) {\n    const meta = this._cachedMeta;\n    return scale === meta.iScale ? meta.vScale : meta.iScale;\n  }\n  reset() {\n    this._update('reset');\n  }\n  _destroy() {\n    const meta = this._cachedMeta;\n    if (this._data) {\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.u)(this._data, this);\n    }\n    if (meta._stacked) {\n      clearStacks(meta);\n    }\n  }\n  _dataCheck() {\n    const dataset = this.getDataset();\n    const data = dataset.data || (dataset.data = []);\n    const _data = this._data;\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(data)) {\n      const meta = this._cachedMeta;\n      this._data = convertObjectDataToArray(data, meta);\n    } else if (_data !== data) {\n      if (_data) {\n        (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.u)(_data, this);\n        const meta = this._cachedMeta;\n        clearStacks(meta);\n        meta._parsed = [];\n      }\n      if (data && Object.isExtensible(data)) {\n        (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.l)(data, this);\n      }\n      this._syncList = [];\n      this._data = data;\n    }\n  }\n  addElements() {\n    const meta = this._cachedMeta;\n    this._dataCheck();\n    if (this.datasetElementType) {\n      meta.dataset = new this.datasetElementType();\n    }\n  }\n  buildOrUpdateElements(resetNewElements) {\n    const meta = this._cachedMeta;\n    const dataset = this.getDataset();\n    let stackChanged = false;\n    this._dataCheck();\n    const oldStacked = meta._stacked;\n    meta._stacked = isStacked(meta.vScale, meta);\n    if (meta.stack !== dataset.stack) {\n      stackChanged = true;\n      clearStacks(meta);\n      meta.stack = dataset.stack;\n    }\n    this._resyncElements(resetNewElements);\n    if (stackChanged || oldStacked !== meta._stacked) {\n      updateStacks(this, meta._parsed);\n      meta._stacked = isStacked(meta.vScale, meta);\n    }\n  }\n  configure() {\n    const config = this.chart.config;\n    const scopeKeys = config.datasetScopeKeys(this._type);\n    const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n    this.options = config.createResolver(scopes, this.getContext());\n    this._parsing = this.options.parsing;\n    this._cachedDataOpts = {};\n  }\n  parse(start, count) {\n    const {\n      _cachedMeta: meta,\n      _data: data\n    } = this;\n    const {\n      iScale,\n      _stacked\n    } = meta;\n    const iAxis = iScale.axis;\n    let sorted = start === 0 && count === data.length ? true : meta._sorted;\n    let prev = start > 0 && meta._parsed[start - 1];\n    let i, cur, parsed;\n    if (this._parsing === false) {\n      meta._parsed = data;\n      meta._sorted = true;\n      parsed = data;\n    } else {\n      if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.b)(data[start])) {\n        parsed = this.parseArrayData(meta, data, start, count);\n      } else if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(data[start])) {\n        parsed = this.parseObjectData(meta, data, start, count);\n      } else {\n        parsed = this.parsePrimitiveData(meta, data, start, count);\n      }\n      const isNotInOrderComparedToPrev = () => cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n      for (i = 0; i < count; ++i) {\n        meta._parsed[i + start] = cur = parsed[i];\n        if (sorted) {\n          if (isNotInOrderComparedToPrev()) {\n            sorted = false;\n          }\n          prev = cur;\n        }\n      }\n      meta._sorted = sorted;\n    }\n    if (_stacked) {\n      updateStacks(this, parsed);\n    }\n  }\n  parsePrimitiveData(meta, data, start, count) {\n    const {\n      iScale,\n      vScale\n    } = meta;\n    const iAxis = iScale.axis;\n    const vAxis = vScale.axis;\n    const labels = iScale.getLabels();\n    const singleScale = iScale === vScale;\n    const parsed = new Array(count);\n    let i, ilen, index;\n    for (i = 0, ilen = count; i < ilen; ++i) {\n      index = i + start;\n      parsed[i] = {\n        [iAxis]: singleScale || iScale.parse(labels[index], index),\n        [vAxis]: vScale.parse(data[index], index)\n      };\n    }\n    return parsed;\n  }\n  parseArrayData(meta, data, start, count) {\n    const {\n      xScale,\n      yScale\n    } = meta;\n    const parsed = new Array(count);\n    let i, ilen, index, item;\n    for (i = 0, ilen = count; i < ilen; ++i) {\n      index = i + start;\n      item = data[index];\n      parsed[i] = {\n        x: xScale.parse(item[0], index),\n        y: yScale.parse(item[1], index)\n      };\n    }\n    return parsed;\n  }\n  parseObjectData(meta, data, start, count) {\n    const {\n      xScale,\n      yScale\n    } = meta;\n    const {\n      xAxisKey = 'x',\n      yAxisKey = 'y'\n    } = this._parsing;\n    const parsed = new Array(count);\n    let i, ilen, index, item;\n    for (i = 0, ilen = count; i < ilen; ++i) {\n      index = i + start;\n      item = data[index];\n      parsed[i] = {\n        x: xScale.parse((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.f)(item, xAxisKey), index),\n        y: yScale.parse((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.f)(item, yAxisKey), index)\n      };\n    }\n    return parsed;\n  }\n  getParsed(index) {\n    return this._cachedMeta._parsed[index];\n  }\n  getDataElement(index) {\n    return this._cachedMeta.data[index];\n  }\n  applyStack(scale, parsed, mode) {\n    const chart = this.chart;\n    const meta = this._cachedMeta;\n    const value = parsed[scale.axis];\n    const stack = {\n      keys: getSortedDatasetIndices(chart, true),\n      values: parsed._stacks[scale.axis]._visualValues\n    };\n    return applyStack(stack, value, meta.index, {\n      mode\n    });\n  }\n  updateRangeFromParsed(range, scale, parsed, stack) {\n    const parsedValue = parsed[scale.axis];\n    let value = parsedValue === null ? NaN : parsedValue;\n    const values = stack && parsed._stacks[scale.axis];\n    if (stack && values) {\n      stack.values = values;\n      value = applyStack(stack, parsedValue, this._cachedMeta.index);\n    }\n    range.min = Math.min(range.min, value);\n    range.max = Math.max(range.max, value);\n  }\n  getMinMax(scale, canStack) {\n    const meta = this._cachedMeta;\n    const _parsed = meta._parsed;\n    const sorted = meta._sorted && scale === meta.iScale;\n    const ilen = _parsed.length;\n    const otherScale = this._getOtherScale(scale);\n    const stack = createStack(canStack, meta, this.chart);\n    const range = {\n      min: Number.POSITIVE_INFINITY,\n      max: Number.NEGATIVE_INFINITY\n    };\n    const {\n      min: otherMin,\n      max: otherMax\n    } = getUserBounds(otherScale);\n    let i, parsed;\n    function _skip() {\n      parsed = _parsed[i];\n      const otherValue = parsed[otherScale.axis];\n      return !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n    }\n    for (i = 0; i < ilen; ++i) {\n      if (_skip()) {\n        continue;\n      }\n      this.updateRangeFromParsed(range, scale, parsed, stack);\n      if (sorted) {\n        break;\n      }\n    }\n    if (sorted) {\n      for (i = ilen - 1; i >= 0; --i) {\n        if (_skip()) {\n          continue;\n        }\n        this.updateRangeFromParsed(range, scale, parsed, stack);\n        break;\n      }\n    }\n    return range;\n  }\n  getAllParsedValues(scale) {\n    const parsed = this._cachedMeta._parsed;\n    const values = [];\n    let i, ilen, value;\n    for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n      value = parsed[i][scale.axis];\n      if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(value)) {\n        values.push(value);\n      }\n    }\n    return values;\n  }\n  getMaxOverflow() {\n    return false;\n  }\n  getLabelAndValue(index) {\n    const meta = this._cachedMeta;\n    const iScale = meta.iScale;\n    const vScale = meta.vScale;\n    const parsed = this.getParsed(index);\n    return {\n      label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n      value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n    };\n  }\n  _update(mode) {\n    const meta = this._cachedMeta;\n    this.update(mode || 'default');\n    meta._clip = toClip((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n  }\n  update(mode) {}\n  draw() {\n    const ctx = this._ctx;\n    const chart = this.chart;\n    const meta = this._cachedMeta;\n    const elements = meta.data || [];\n    const area = chart.chartArea;\n    const active = [];\n    const start = this._drawStart || 0;\n    const count = this._drawCount || elements.length - start;\n    const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n    let i;\n    if (meta.dataset) {\n      meta.dataset.draw(ctx, area, start, count);\n    }\n    for (i = start; i < start + count; ++i) {\n      const element = elements[i];\n      if (element.hidden) {\n        continue;\n      }\n      if (element.active && drawActiveElementsOnTop) {\n        active.push(element);\n      } else {\n        element.draw(ctx, area);\n      }\n    }\n    for (i = 0; i < active.length; ++i) {\n      active[i].draw(ctx, area);\n    }\n  }\n  getStyle(index, active) {\n    const mode = active ? 'active' : 'default';\n    return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n  }\n  getContext(index, active, mode) {\n    const dataset = this.getDataset();\n    let context;\n    if (index >= 0 && index < this._cachedMeta.data.length) {\n      const element = this._cachedMeta.data[index];\n      context = element.$context || (element.$context = createDataContext(this.getContext(), index, element));\n      context.parsed = this.getParsed(index);\n      context.raw = dataset.data[index];\n      context.index = context.dataIndex = index;\n    } else {\n      context = this.$context || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n      context.dataset = dataset;\n      context.index = context.datasetIndex = this.index;\n    }\n    context.active = !!active;\n    context.mode = mode;\n    return context;\n  }\n  resolveDatasetElementOptions(mode) {\n    return this._resolveElementOptions(this.datasetElementType.id, mode);\n  }\n  resolveDataElementOptions(index, mode) {\n    return this._resolveElementOptions(this.dataElementType.id, mode, index);\n  }\n  _resolveElementOptions(elementType, mode = 'default', index) {\n    const active = mode === 'active';\n    const cache = this._cachedDataOpts;\n    const cacheKey = elementType + '-' + mode;\n    const cached = cache[cacheKey];\n    const sharing = this.enableOptionSharing && (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.h)(index);\n    if (cached) {\n      return cloneIfNotShared(cached, sharing);\n    }\n    const config = this.chart.config;\n    const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n    const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n    const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n    const names = Object.keys(_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.elements[elementType]);\n    const context = () => this.getContext(index, active, mode);\n    const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n    if (values.$shared) {\n      values.$shared = sharing;\n      cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n    }\n    return values;\n  }\n  _resolveAnimations(index, transition, active) {\n    const chart = this.chart;\n    const cache = this._cachedDataOpts;\n    const cacheKey = `animation-${transition}`;\n    const cached = cache[cacheKey];\n    if (cached) {\n      return cached;\n    }\n    let options;\n    if (chart.options.animation !== false) {\n      const config = this.chart.config;\n      const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n      const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n      options = config.createResolver(scopes, this.getContext(index, active, transition));\n    }\n    const animations = new Animations(chart, options && options.animations);\n    if (options && options._cacheable) {\n      cache[cacheKey] = Object.freeze(animations);\n    }\n    return animations;\n  }\n  getSharedOptions(options) {\n    if (!options.$shared) {\n      return;\n    }\n    return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n  }\n  includeOptions(mode, sharedOptions) {\n    return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n  }\n  _getSharedOptions(start, mode) {\n    const firstOpts = this.resolveDataElementOptions(start, mode);\n    const previouslySharedOptions = this._sharedOptions;\n    const sharedOptions = this.getSharedOptions(firstOpts);\n    const includeOptions = this.includeOptions(mode, sharedOptions) || sharedOptions !== previouslySharedOptions;\n    this.updateSharedOptions(sharedOptions, mode, firstOpts);\n    return {\n      sharedOptions,\n      includeOptions\n    };\n  }\n  updateElement(element, index, properties, mode) {\n    if (isDirectUpdateMode(mode)) {\n      Object.assign(element, properties);\n    } else {\n      this._resolveAnimations(index, mode).update(element, properties);\n    }\n  }\n  updateSharedOptions(sharedOptions, mode, newOptions) {\n    if (sharedOptions && !isDirectUpdateMode(mode)) {\n      this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n    }\n  }\n  _setStyle(element, index, mode, active) {\n    element.active = active;\n    const options = this.getStyle(index, active);\n    this._resolveAnimations(index, mode, active).update(element, {\n      options: !active && this.getSharedOptions(options) || options\n    });\n  }\n  removeHoverStyle(element, datasetIndex, index) {\n    this._setStyle(element, index, 'active', false);\n  }\n  setHoverStyle(element, datasetIndex, index) {\n    this._setStyle(element, index, 'active', true);\n  }\n  _removeDatasetHoverStyle() {\n    const element = this._cachedMeta.dataset;\n    if (element) {\n      this._setStyle(element, undefined, 'active', false);\n    }\n  }\n  _setDatasetHoverStyle() {\n    const element = this._cachedMeta.dataset;\n    if (element) {\n      this._setStyle(element, undefined, 'active', true);\n    }\n  }\n  _resyncElements(resetNewElements) {\n    const data = this._data;\n    const elements = this._cachedMeta.data;\n    for (const [method, arg1, arg2] of this._syncList) {\n      this[method](arg1, arg2);\n    }\n    this._syncList = [];\n    const numMeta = elements.length;\n    const numData = data.length;\n    const count = Math.min(numData, numMeta);\n    if (count) {\n      this.parse(0, count);\n    }\n    if (numData > numMeta) {\n      this._insertElements(numMeta, numData - numMeta, resetNewElements);\n    } else if (numData < numMeta) {\n      this._removeElements(numData, numMeta - numData);\n    }\n  }\n  _insertElements(start, count, resetNewElements = true) {\n    const meta = this._cachedMeta;\n    const data = meta.data;\n    const end = start + count;\n    let i;\n    const move = arr => {\n      arr.length += count;\n      for (i = arr.length - 1; i >= end; i--) {\n        arr[i] = arr[i - count];\n      }\n    };\n    move(data);\n    for (i = start; i < end; ++i) {\n      data[i] = new this.dataElementType();\n    }\n    if (this._parsing) {\n      move(meta._parsed);\n    }\n    this.parse(start, count);\n    if (resetNewElements) {\n      this.updateElements(data, start, count, 'reset');\n    }\n  }\n  updateElements(element, start, count, mode) {}\n  _removeElements(start, count) {\n    const meta = this._cachedMeta;\n    if (this._parsing) {\n      const removed = meta._parsed.splice(start, count);\n      if (meta._stacked) {\n        clearStacks(meta, removed);\n      }\n    }\n    meta.data.splice(start, count);\n  }\n  _sync(args) {\n    if (this._parsing) {\n      this._syncList.push(args);\n    } else {\n      const [method, arg1, arg2] = args;\n      this[method](arg1, arg2);\n    }\n    this.chart._dataChanges.push([this.index, ...args]);\n  }\n  _onDataPush() {\n    const count = arguments.length;\n    this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n  }\n  _onDataPop() {\n    this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n  }\n  _onDataShift() {\n    this._sync(['_removeElements', 0, 1]);\n  }\n  _onDataSplice(start, count) {\n    if (count) {\n      this._sync(['_removeElements', start, count]);\n    }\n    const newCount = arguments.length - 2;\n    if (newCount) {\n      this._sync(['_insertElements', start, newCount]);\n    }\n  }\n  _onDataUnshift() {\n    this._sync(['_insertElements', 0, arguments.length]);\n  }\n}\nfunction getAllScaleValues(scale, type) {\n  if (!scale._cache.$bar) {\n    const visibleMetas = scale.getMatchingVisibleMetas(type);\n    let values = [];\n    for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n      values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n    }\n    scale._cache.$bar = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__._)(values.sort((a, b) => a - b));\n  }\n  return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n  const scale = meta.iScale;\n  const values = getAllScaleValues(scale, meta.type);\n  let min = scale._length;\n  let i, ilen, curr, prev;\n  const updateMinAndPrev = () => {\n    if (curr === 32767 || curr === -32768) {\n      return;\n    }\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.h)(prev)) {\n      min = Math.min(min, Math.abs(curr - prev) || min);\n    }\n    prev = curr;\n  };\n  for (i = 0, ilen = values.length; i < ilen; ++i) {\n    curr = scale.getPixelForValue(values[i]);\n    updateMinAndPrev();\n  }\n  prev = undefined;\n  for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n    curr = scale.getPixelForTick(i);\n    updateMinAndPrev();\n  }\n  return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n  const thickness = options.barThickness;\n  let size, ratio;\n  if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(thickness)) {\n    size = ruler.min * options.categoryPercentage;\n    ratio = options.barPercentage;\n  } else {\n    size = thickness * stackCount;\n    ratio = 1;\n  }\n  return {\n    chunk: size / stackCount,\n    ratio,\n    start: ruler.pixels[index] - size / 2\n  };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n  const pixels = ruler.pixels;\n  const curr = pixels[index];\n  let prev = index > 0 ? pixels[index - 1] : null;\n  let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n  const percent = options.categoryPercentage;\n  if (prev === null) {\n    prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n  }\n  if (next === null) {\n    next = curr + curr - prev;\n  }\n  const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n  const size = Math.abs(next - prev) / 2 * percent;\n  return {\n    chunk: size / stackCount,\n    ratio: options.barPercentage,\n    start\n  };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n  const startValue = vScale.parse(entry[0], i);\n  const endValue = vScale.parse(entry[1], i);\n  const min = Math.min(startValue, endValue);\n  const max = Math.max(startValue, endValue);\n  let barStart = min;\n  let barEnd = max;\n  if (Math.abs(min) > Math.abs(max)) {\n    barStart = max;\n    barEnd = min;\n  }\n  item[vScale.axis] = barEnd;\n  item._custom = {\n    barStart,\n    barEnd,\n    start: startValue,\n    end: endValue,\n    min,\n    max\n  };\n}\nfunction parseValue(entry, item, vScale, i) {\n  if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.b)(entry)) {\n    parseFloatBar(entry, item, vScale, i);\n  } else {\n    item[vScale.axis] = vScale.parse(entry, i);\n  }\n  return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n  const iScale = meta.iScale;\n  const vScale = meta.vScale;\n  const labels = iScale.getLabels();\n  const singleScale = iScale === vScale;\n  const parsed = [];\n  let i, ilen, item, entry;\n  for (i = start, ilen = start + count; i < ilen; ++i) {\n    entry = data[i];\n    item = {};\n    item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n    parsed.push(parseValue(entry, item, vScale, i));\n  }\n  return parsed;\n}\nfunction isFloatBar(custom) {\n  return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n  if (size !== 0) {\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.s)(size);\n  }\n  return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n  let reverse, start, end, top, bottom;\n  if (properties.horizontal) {\n    reverse = properties.base > properties.x;\n    start = 'left';\n    end = 'right';\n  } else {\n    reverse = properties.base < properties.y;\n    start = 'bottom';\n    end = 'top';\n  }\n  if (reverse) {\n    top = 'end';\n    bottom = 'start';\n  } else {\n    top = 'start';\n    bottom = 'end';\n  }\n  return {\n    start,\n    end,\n    reverse,\n    top,\n    bottom\n  };\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n  let edge = options.borderSkipped;\n  const res = {};\n  if (!edge) {\n    properties.borderSkipped = res;\n    return;\n  }\n  if (edge === true) {\n    properties.borderSkipped = {\n      top: true,\n      right: true,\n      bottom: true,\n      left: true\n    };\n    return;\n  }\n  const {\n    start,\n    end,\n    reverse,\n    top,\n    bottom\n  } = borderProps(properties);\n  if (edge === 'middle' && stack) {\n    properties.enableBorderRadius = true;\n    if ((stack._top || 0) === index) {\n      edge = top;\n    } else if ((stack._bottom || 0) === index) {\n      edge = bottom;\n    } else {\n      res[parseEdge(bottom, start, end, reverse)] = true;\n      edge = top;\n    }\n  }\n  res[parseEdge(edge, start, end, reverse)] = true;\n  properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n  if (reverse) {\n    edge = swap(edge, a, b);\n    edge = startEnd(edge, b, a);\n  } else {\n    edge = startEnd(edge, a, b);\n  }\n  return edge;\n}\nfunction swap(orig, v1, v2) {\n  return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n  return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, {\n  inflateAmount\n}, ratio) {\n  properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\nclass BarController extends DatasetController {\n  static id = 'bar';\n  static defaults = {\n    datasetElementType: false,\n    dataElementType: 'bar',\n    categoryPercentage: 0.8,\n    barPercentage: 0.9,\n    grouped: true,\n    animations: {\n      numbers: {\n        type: 'number',\n        properties: ['x', 'y', 'base', 'width', 'height']\n      }\n    }\n  };\n  static overrides = {\n    scales: {\n      _index_: {\n        type: 'category',\n        offset: true,\n        grid: {\n          offset: true\n        }\n      },\n      _value_: {\n        type: 'linear',\n        beginAtZero: true\n      }\n    }\n  };\n  parsePrimitiveData(meta, data, start, count) {\n    return parseArrayOrPrimitive(meta, data, start, count);\n  }\n  parseArrayData(meta, data, start, count) {\n    return parseArrayOrPrimitive(meta, data, start, count);\n  }\n  parseObjectData(meta, data, start, count) {\n    const {\n      iScale,\n      vScale\n    } = meta;\n    const {\n      xAxisKey = 'x',\n      yAxisKey = 'y'\n    } = this._parsing;\n    const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n    const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n    const parsed = [];\n    let i, ilen, item, obj;\n    for (i = start, ilen = start + count; i < ilen; ++i) {\n      obj = data[i];\n      item = {};\n      item[iScale.axis] = iScale.parse((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.f)(obj, iAxisKey), i);\n      parsed.push(parseValue((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.f)(obj, vAxisKey), item, vScale, i));\n    }\n    return parsed;\n  }\n  updateRangeFromParsed(range, scale, parsed, stack) {\n    super.updateRangeFromParsed(range, scale, parsed, stack);\n    const custom = parsed._custom;\n    if (custom && scale === this._cachedMeta.vScale) {\n      range.min = Math.min(range.min, custom.min);\n      range.max = Math.max(range.max, custom.max);\n    }\n  }\n  getMaxOverflow() {\n    return 0;\n  }\n  getLabelAndValue(index) {\n    const meta = this._cachedMeta;\n    const {\n      iScale,\n      vScale\n    } = meta;\n    const parsed = this.getParsed(index);\n    const custom = parsed._custom;\n    const value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n    return {\n      label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n      value\n    };\n  }\n  initialize() {\n    this.enableOptionSharing = true;\n    super.initialize();\n    const meta = this._cachedMeta;\n    meta.stack = this.getDataset().stack;\n  }\n  update(mode) {\n    const meta = this._cachedMeta;\n    this.updateElements(meta.data, 0, meta.data.length, mode);\n  }\n  updateElements(bars, start, count, mode) {\n    const reset = mode === 'reset';\n    const {\n      index,\n      _cachedMeta: {\n        vScale\n      }\n    } = this;\n    const base = vScale.getBasePixel();\n    const horizontal = vScale.isHorizontal();\n    const ruler = this._getRuler();\n    const {\n      sharedOptions,\n      includeOptions\n    } = this._getSharedOptions(start, mode);\n    for (let i = start; i < start + count; i++) {\n      const parsed = this.getParsed(i);\n      const vpixels = reset || (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(parsed[vScale.axis]) ? {\n        base,\n        head: base\n      } : this._calculateBarValuePixels(i);\n      const ipixels = this._calculateBarIndexPixels(i, ruler);\n      const stack = (parsed._stacks || {})[vScale.axis];\n      const properties = {\n        horizontal,\n        base: vpixels.base,\n        enableBorderRadius: !stack || isFloatBar(parsed._custom) || index === stack._top || index === stack._bottom,\n        x: horizontal ? vpixels.head : ipixels.center,\n        y: horizontal ? ipixels.center : vpixels.head,\n        height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n        width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n      };\n      if (includeOptions) {\n        properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n      }\n      const options = properties.options || bars[i].options;\n      setBorderSkipped(properties, options, stack, index);\n      setInflateAmount(properties, options, ruler.ratio);\n      this.updateElement(bars[i], i, properties, mode);\n    }\n  }\n  _getStacks(last, dataIndex) {\n    const {\n      iScale\n    } = this._cachedMeta;\n    const metasets = iScale.getMatchingVisibleMetas(this._type).filter(meta => meta.controller.options.grouped);\n    const stacked = iScale.options.stacked;\n    const stacks = [];\n    const currentParsed = this._cachedMeta.controller.getParsed(dataIndex);\n    const iScaleValue = currentParsed && currentParsed[iScale.axis];\n    const skipNull = meta => {\n      const parsed = meta._parsed.find(item => item[iScale.axis] === iScaleValue);\n      const val = parsed && parsed[meta.vScale.axis];\n      if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(val) || isNaN(val)) {\n        return true;\n      }\n    };\n    for (const meta of metasets) {\n      if (dataIndex !== undefined && skipNull(meta)) {\n        continue;\n      }\n      if (stacked === false || stacks.indexOf(meta.stack) === -1 || stacked === undefined && meta.stack === undefined) {\n        stacks.push(meta.stack);\n      }\n      if (meta.index === last) {\n        break;\n      }\n    }\n    if (!stacks.length) {\n      stacks.push(undefined);\n    }\n    return stacks;\n  }\n  _getStackCount(index) {\n    return this._getStacks(undefined, index).length;\n  }\n  _getAxisCount() {\n    return this._getAxis().length;\n  }\n  getFirstScaleIdForIndexAxis() {\n    const scales = this.chart.scales;\n    const indexScaleId = this.chart.options.indexAxis;\n    return Object.keys(scales).filter(key => scales[key].axis === indexScaleId).shift();\n  }\n  _getAxis() {\n    const axis = {};\n    const firstScaleAxisId = this.getFirstScaleIdForIndexAxis();\n    for (const dataset of this.chart.data.datasets) {\n      axis[(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(this.chart.options.indexAxis === 'x' ? dataset.xAxisID : dataset.yAxisID, firstScaleAxisId)] = true;\n    }\n    return Object.keys(axis);\n  }\n  _getStackIndex(datasetIndex, name, dataIndex) {\n    const stacks = this._getStacks(datasetIndex, dataIndex);\n    const index = name !== undefined ? stacks.indexOf(name) : -1;\n    return index === -1 ? stacks.length - 1 : index;\n  }\n  _getRuler() {\n    const opts = this.options;\n    const meta = this._cachedMeta;\n    const iScale = meta.iScale;\n    const pixels = [];\n    let i, ilen;\n    for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n      pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n    }\n    const barThickness = opts.barThickness;\n    const min = barThickness || computeMinSampleSize(meta);\n    return {\n      min,\n      pixels,\n      start: iScale._startPixel,\n      end: iScale._endPixel,\n      stackCount: this._getStackCount(),\n      scale: iScale,\n      grouped: opts.grouped,\n      ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n    };\n  }\n  _calculateBarValuePixels(index) {\n    const {\n      _cachedMeta: {\n        vScale,\n        _stacked,\n        index: datasetIndex\n      },\n      options: {\n        base: baseValue,\n        minBarLength\n      }\n    } = this;\n    const actualBase = baseValue || 0;\n    const parsed = this.getParsed(index);\n    const custom = parsed._custom;\n    const floating = isFloatBar(custom);\n    let value = parsed[vScale.axis];\n    let start = 0;\n    let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n    let head, size;\n    if (length !== value) {\n      start = length - value;\n      length = value;\n    }\n    if (floating) {\n      value = custom.barStart;\n      length = custom.barEnd - custom.barStart;\n      if (value !== 0 && (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.s)(value) !== (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.s)(custom.barEnd)) {\n        start = 0;\n      }\n      start += value;\n    }\n    const startValue = !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(baseValue) && !floating ? baseValue : start;\n    let base = vScale.getPixelForValue(startValue);\n    if (this.chart.getDataVisibility(index)) {\n      head = vScale.getPixelForValue(start + length);\n    } else {\n      head = base;\n    }\n    size = head - base;\n    if (Math.abs(size) < minBarLength) {\n      size = barSign(size, vScale, actualBase) * minBarLength;\n      if (value === actualBase) {\n        base -= size / 2;\n      }\n      const startPixel = vScale.getPixelForDecimal(0);\n      const endPixel = vScale.getPixelForDecimal(1);\n      const min = Math.min(startPixel, endPixel);\n      const max = Math.max(startPixel, endPixel);\n      base = Math.max(Math.min(base, max), min);\n      head = base + size;\n      if (_stacked && !floating) {\n        parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n      }\n    }\n    if (base === vScale.getPixelForValue(actualBase)) {\n      const halfGrid = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.s)(size) * vScale.getLineWidthForValue(actualBase) / 2;\n      base += halfGrid;\n      size -= halfGrid;\n    }\n    return {\n      size,\n      base,\n      head,\n      center: head + size / 2\n    };\n  }\n  _calculateBarIndexPixels(index, ruler) {\n    const scale = ruler.scale;\n    const options = this.options;\n    const skipNull = options.skipNull;\n    const maxBarThickness = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(options.maxBarThickness, Infinity);\n    let center, size;\n    const axisCount = this._getAxisCount();\n    if (ruler.grouped) {\n      const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n      const range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount * axisCount) : computeFitCategoryTraits(index, ruler, options, stackCount * axisCount);\n      const axisID = this.chart.options.indexAxis === 'x' ? this.getDataset().xAxisID : this.getDataset().yAxisID;\n      const axisNumber = this._getAxis().indexOf((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(axisID, this.getFirstScaleIdForIndexAxis()));\n      const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined) + axisNumber;\n      center = range.start + range.chunk * stackIndex + range.chunk / 2;\n      size = Math.min(maxBarThickness, range.chunk * range.ratio);\n    } else {\n      center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n      size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n    }\n    return {\n      base: center - size / 2,\n      head: center + size / 2,\n      center,\n      size\n    };\n  }\n  draw() {\n    const meta = this._cachedMeta;\n    const vScale = meta.vScale;\n    const rects = meta.data;\n    const ilen = rects.length;\n    let i = 0;\n    for (; i < ilen; ++i) {\n      if (this.getParsed(i)[vScale.axis] !== null && !rects[i].hidden) {\n        rects[i].draw(this._ctx);\n      }\n    }\n  }\n}\nclass BubbleController extends DatasetController {\n  static id = 'bubble';\n  static defaults = {\n    datasetElementType: false,\n    dataElementType: 'point',\n    animations: {\n      numbers: {\n        type: 'number',\n        properties: ['x', 'y', 'borderWidth', 'radius']\n      }\n    }\n  };\n  static overrides = {\n    scales: {\n      x: {\n        type: 'linear'\n      },\n      y: {\n        type: 'linear'\n      }\n    }\n  };\n  initialize() {\n    this.enableOptionSharing = true;\n    super.initialize();\n  }\n  parsePrimitiveData(meta, data, start, count) {\n    const parsed = super.parsePrimitiveData(meta, data, start, count);\n    for (let i = 0; i < parsed.length; i++) {\n      parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n    }\n    return parsed;\n  }\n  parseArrayData(meta, data, start, count) {\n    const parsed = super.parseArrayData(meta, data, start, count);\n    for (let i = 0; i < parsed.length; i++) {\n      const item = data[start + i];\n      parsed[i]._custom = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(item[2], this.resolveDataElementOptions(i + start).radius);\n    }\n    return parsed;\n  }\n  parseObjectData(meta, data, start, count) {\n    const parsed = super.parseObjectData(meta, data, start, count);\n    for (let i = 0; i < parsed.length; i++) {\n      const item = data[start + i];\n      parsed[i]._custom = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n    }\n    return parsed;\n  }\n  getMaxOverflow() {\n    const data = this._cachedMeta.data;\n    let max = 0;\n    for (let i = data.length - 1; i >= 0; --i) {\n      max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n    }\n    return max > 0 && max;\n  }\n  getLabelAndValue(index) {\n    const meta = this._cachedMeta;\n    const labels = this.chart.data.labels || [];\n    const {\n      xScale,\n      yScale\n    } = meta;\n    const parsed = this.getParsed(index);\n    const x = xScale.getLabelForValue(parsed.x);\n    const y = yScale.getLabelForValue(parsed.y);\n    const r = parsed._custom;\n    return {\n      label: labels[index] || '',\n      value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n    };\n  }\n  update(mode) {\n    const points = this._cachedMeta.data;\n    this.updateElements(points, 0, points.length, mode);\n  }\n  updateElements(points, start, count, mode) {\n    const reset = mode === 'reset';\n    const {\n      iScale,\n      vScale\n    } = this._cachedMeta;\n    const {\n      sharedOptions,\n      includeOptions\n    } = this._getSharedOptions(start, mode);\n    const iAxis = iScale.axis;\n    const vAxis = vScale.axis;\n    for (let i = start; i < start + count; i++) {\n      const point = points[i];\n      const parsed = !reset && this.getParsed(i);\n      const properties = {};\n      const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n      const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n      properties.skip = isNaN(iPixel) || isNaN(vPixel);\n      if (includeOptions) {\n        properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n        if (reset) {\n          properties.options.radius = 0;\n        }\n      }\n      this.updateElement(point, i, properties, mode);\n    }\n  }\n  resolveDataElementOptions(index, mode) {\n    const parsed = this.getParsed(index);\n    let values = super.resolveDataElementOptions(index, mode);\n    if (values.$shared) {\n      values = Object.assign({}, values, {\n        $shared: false\n      });\n    }\n    const radius = values.radius;\n    if (mode !== 'active') {\n      values.radius = 0;\n    }\n    values.radius += (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(parsed && parsed._custom, radius);\n    return values;\n  }\n}\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n  let ratioX = 1;\n  let ratioY = 1;\n  let offsetX = 0;\n  let offsetY = 0;\n  if (circumference < _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T) {\n    const startAngle = rotation;\n    const endAngle = startAngle + circumference;\n    const startX = Math.cos(startAngle);\n    const startY = Math.sin(startAngle);\n    const endX = Math.cos(endAngle);\n    const endY = Math.sin(endAngle);\n    const calcMax = (angle, a, b) => (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.p)(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n    const calcMin = (angle, a, b) => (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.p)(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n    const maxX = calcMax(0, startX, endX);\n    const maxY = calcMax(_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.H, startY, endY);\n    const minX = calcMin(_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P, startX, endX);\n    const minY = calcMin(_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P + _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.H, startY, endY);\n    ratioX = (maxX - minX) / 2;\n    ratioY = (maxY - minY) / 2;\n    offsetX = -(maxX + minX) / 2;\n    offsetY = -(maxY + minY) / 2;\n  }\n  return {\n    ratioX,\n    ratioY,\n    offsetX,\n    offsetY\n  };\n}\nclass DoughnutController extends DatasetController {\n  static id = 'doughnut';\n  static defaults = {\n    datasetElementType: false,\n    dataElementType: 'arc',\n    animation: {\n      animateRotate: true,\n      animateScale: false\n    },\n    animations: {\n      numbers: {\n        type: 'number',\n        properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n      }\n    },\n    cutout: '50%',\n    rotation: 0,\n    circumference: 360,\n    radius: '100%',\n    spacing: 0,\n    indexAxis: 'r'\n  };\n  static descriptors = {\n    _scriptable: name => name !== 'spacing',\n    _indexable: name => name !== 'spacing' && !name.startsWith('borderDash') && !name.startsWith('hoverBorderDash')\n  };\n  static overrides = {\n    aspectRatio: 1,\n    plugins: {\n      legend: {\n        labels: {\n          generateLabels(chart) {\n            const data = chart.data;\n            if (data.labels.length && data.datasets.length) {\n              const {\n                labels: {\n                  pointStyle,\n                  color\n                }\n              } = chart.legend.options;\n              return data.labels.map((label, i) => {\n                const meta = chart.getDatasetMeta(0);\n                const style = meta.controller.getStyle(i);\n                return {\n                  text: label,\n                  fillStyle: style.backgroundColor,\n                  strokeStyle: style.borderColor,\n                  fontColor: color,\n                  lineWidth: style.borderWidth,\n                  pointStyle: pointStyle,\n                  hidden: !chart.getDataVisibility(i),\n                  index: i\n                };\n              });\n            }\n            return [];\n          }\n        },\n        onClick(e, legendItem, legend) {\n          legend.chart.toggleDataVisibility(legendItem.index);\n          legend.chart.update();\n        }\n      }\n    }\n  };\n  constructor(chart, datasetIndex) {\n    super(chart, datasetIndex);\n    this.enableOptionSharing = true;\n    this.innerRadius = undefined;\n    this.outerRadius = undefined;\n    this.offsetX = undefined;\n    this.offsetY = undefined;\n  }\n  linkScales() {}\n  parse(start, count) {\n    const data = this.getDataset().data;\n    const meta = this._cachedMeta;\n    if (this._parsing === false) {\n      meta._parsed = data;\n    } else {\n      let getter = i => +data[i];\n      if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(data[start])) {\n        const {\n          key = 'value'\n        } = this._parsing;\n        getter = i => +(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.f)(data[i], key);\n      }\n      let i, ilen;\n      for (i = start, ilen = start + count; i < ilen; ++i) {\n        meta._parsed[i] = getter(i);\n      }\n    }\n  }\n  _getRotation() {\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.t)(this.options.rotation - 90);\n  }\n  _getCircumference() {\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.t)(this.options.circumference);\n  }\n  _getRotationExtents() {\n    let min = _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T;\n    let max = -_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T;\n    for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n      if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n        const controller = this.chart.getDatasetMeta(i).controller;\n        const rotation = controller._getRotation();\n        const circumference = controller._getCircumference();\n        min = Math.min(min, rotation);\n        max = Math.max(max, rotation + circumference);\n      }\n    }\n    return {\n      rotation: min,\n      circumference: max - min\n    };\n  }\n  update(mode) {\n    const chart = this.chart;\n    const {\n      chartArea\n    } = chart;\n    const meta = this._cachedMeta;\n    const arcs = meta.data;\n    const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n    const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n    const cutout = Math.min((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.m)(this.options.cutout, maxSize), 1);\n    const chartWeight = this._getRingWeight(this.index);\n    const {\n      circumference,\n      rotation\n    } = this._getRotationExtents();\n    const {\n      ratioX,\n      ratioY,\n      offsetX,\n      offsetY\n    } = getRatioAndOffset(rotation, circumference, cutout);\n    const maxWidth = (chartArea.width - spacing) / ratioX;\n    const maxHeight = (chartArea.height - spacing) / ratioY;\n    const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n    const outerRadius = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.n)(this.options.radius, maxRadius);\n    const innerRadius = Math.max(outerRadius * cutout, 0);\n    const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n    this.offsetX = offsetX * outerRadius;\n    this.offsetY = offsetY * outerRadius;\n    meta.total = this.calculateTotal();\n    this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n    this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n    this.updateElements(arcs, 0, arcs.length, mode);\n  }\n  _circumference(i, reset) {\n    const opts = this.options;\n    const meta = this._cachedMeta;\n    const circumference = this._getCircumference();\n    if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n      return 0;\n    }\n    return this.calculateCircumference(meta._parsed[i] * circumference / _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T);\n  }\n  updateElements(arcs, start, count, mode) {\n    const reset = mode === 'reset';\n    const chart = this.chart;\n    const chartArea = chart.chartArea;\n    const opts = chart.options;\n    const animationOpts = opts.animation;\n    const centerX = (chartArea.left + chartArea.right) / 2;\n    const centerY = (chartArea.top + chartArea.bottom) / 2;\n    const animateScale = reset && animationOpts.animateScale;\n    const innerRadius = animateScale ? 0 : this.innerRadius;\n    const outerRadius = animateScale ? 0 : this.outerRadius;\n    const {\n      sharedOptions,\n      includeOptions\n    } = this._getSharedOptions(start, mode);\n    let startAngle = this._getRotation();\n    let i;\n    for (i = 0; i < start; ++i) {\n      startAngle += this._circumference(i, reset);\n    }\n    for (i = start; i < start + count; ++i) {\n      const circumference = this._circumference(i, reset);\n      const arc = arcs[i];\n      const properties = {\n        x: centerX + this.offsetX,\n        y: centerY + this.offsetY,\n        startAngle,\n        endAngle: startAngle + circumference,\n        circumference,\n        outerRadius,\n        innerRadius\n      };\n      if (includeOptions) {\n        properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n      }\n      startAngle += circumference;\n      this.updateElement(arc, i, properties, mode);\n    }\n  }\n  calculateTotal() {\n    const meta = this._cachedMeta;\n    const metaData = meta.data;\n    let total = 0;\n    let i;\n    for (i = 0; i < metaData.length; i++) {\n      const value = meta._parsed[i];\n      if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n        total += Math.abs(value);\n      }\n    }\n    return total;\n  }\n  calculateCircumference(value) {\n    const total = this._cachedMeta.total;\n    if (total > 0 && !isNaN(value)) {\n      return _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T * (Math.abs(value) / total);\n    }\n    return 0;\n  }\n  getLabelAndValue(index) {\n    const meta = this._cachedMeta;\n    const chart = this.chart;\n    const labels = chart.data.labels || [];\n    const value = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.o)(meta._parsed[index], chart.options.locale);\n    return {\n      label: labels[index] || '',\n      value\n    };\n  }\n  getMaxBorderWidth(arcs) {\n    let max = 0;\n    const chart = this.chart;\n    let i, ilen, meta, controller, options;\n    if (!arcs) {\n      for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n        if (chart.isDatasetVisible(i)) {\n          meta = chart.getDatasetMeta(i);\n          arcs = meta.data;\n          controller = meta.controller;\n          break;\n        }\n      }\n    }\n    if (!arcs) {\n      return 0;\n    }\n    for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n      options = controller.resolveDataElementOptions(i);\n      if (options.borderAlign !== 'inner') {\n        max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n      }\n    }\n    return max;\n  }\n  getMaxOffset(arcs) {\n    let max = 0;\n    for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n      const options = this.resolveDataElementOptions(i);\n      max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n    }\n    return max;\n  }\n  _getRingWeightOffset(datasetIndex) {\n    let ringWeightOffset = 0;\n    for (let i = 0; i < datasetIndex; ++i) {\n      if (this.chart.isDatasetVisible(i)) {\n        ringWeightOffset += this._getRingWeight(i);\n      }\n    }\n    return ringWeightOffset;\n  }\n  _getRingWeight(datasetIndex) {\n    return Math.max((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n  }\n  _getVisibleDatasetWeightTotal() {\n    return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n  }\n}\nclass LineController extends DatasetController {\n  static id = 'line';\n  static defaults = {\n    datasetElementType: 'line',\n    dataElementType: 'point',\n    showLine: true,\n    spanGaps: false\n  };\n  static overrides = {\n    scales: {\n      _index_: {\n        type: 'category'\n      },\n      _value_: {\n        type: 'linear'\n      }\n    }\n  };\n  initialize() {\n    this.enableOptionSharing = true;\n    this.supportsDecimation = true;\n    super.initialize();\n  }\n  update(mode) {\n    const meta = this._cachedMeta;\n    const {\n      dataset: line,\n      data: points = [],\n      _dataset\n    } = meta;\n    const animationsDisabled = this.chart._animationsDisabled;\n    let {\n      start,\n      count\n    } = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.q)(meta, points, animationsDisabled);\n    this._drawStart = start;\n    this._drawCount = count;\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.w)(meta)) {\n      start = 0;\n      count = points.length;\n    }\n    line._chart = this.chart;\n    line._datasetIndex = this.index;\n    line._decimated = !!_dataset._decimated;\n    line.points = points;\n    const options = this.resolveDatasetElementOptions(mode);\n    if (!this.options.showLine) {\n      options.borderWidth = 0;\n    }\n    options.segment = this.options.segment;\n    this.updateElement(line, undefined, {\n      animated: !animationsDisabled,\n      options\n    }, mode);\n    this.updateElements(points, start, count, mode);\n  }\n  updateElements(points, start, count, mode) {\n    const reset = mode === 'reset';\n    const {\n      iScale,\n      vScale,\n      _stacked,\n      _dataset\n    } = this._cachedMeta;\n    const {\n      sharedOptions,\n      includeOptions\n    } = this._getSharedOptions(start, mode);\n    const iAxis = iScale.axis;\n    const vAxis = vScale.axis;\n    const {\n      spanGaps,\n      segment\n    } = this.options;\n    const maxGapLength = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.x)(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n    const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n    const end = start + count;\n    const pointsCount = points.length;\n    let prevParsed = start > 0 && this.getParsed(start - 1);\n    for (let i = 0; i < pointsCount; ++i) {\n      const point = points[i];\n      const properties = directUpdate ? point : {};\n      if (i < start || i >= end) {\n        properties.skip = true;\n        continue;\n      }\n      const parsed = this.getParsed(i);\n      const nullData = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(parsed[vAxis]);\n      const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n      const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n      properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n      properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n      if (segment) {\n        properties.parsed = parsed;\n        properties.raw = _dataset.data[i];\n      }\n      if (includeOptions) {\n        properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n      }\n      if (!directUpdate) {\n        this.updateElement(point, i, properties, mode);\n      }\n      prevParsed = parsed;\n    }\n  }\n  getMaxOverflow() {\n    const meta = this._cachedMeta;\n    const dataset = meta.dataset;\n    const border = dataset.options && dataset.options.borderWidth || 0;\n    const data = meta.data || [];\n    if (!data.length) {\n      return border;\n    }\n    const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n    const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n    return Math.max(border, firstPoint, lastPoint) / 2;\n  }\n  draw() {\n    const meta = this._cachedMeta;\n    meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n    super.draw();\n  }\n}\nclass PolarAreaController extends DatasetController {\n  static id = 'polarArea';\n  static defaults = {\n    dataElementType: 'arc',\n    animation: {\n      animateRotate: true,\n      animateScale: true\n    },\n    animations: {\n      numbers: {\n        type: 'number',\n        properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n      }\n    },\n    indexAxis: 'r',\n    startAngle: 0\n  };\n  static overrides = {\n    aspectRatio: 1,\n    plugins: {\n      legend: {\n        labels: {\n          generateLabels(chart) {\n            const data = chart.data;\n            if (data.labels.length && data.datasets.length) {\n              const {\n                labels: {\n                  pointStyle,\n                  color\n                }\n              } = chart.legend.options;\n              return data.labels.map((label, i) => {\n                const meta = chart.getDatasetMeta(0);\n                const style = meta.controller.getStyle(i);\n                return {\n                  text: label,\n                  fillStyle: style.backgroundColor,\n                  strokeStyle: style.borderColor,\n                  fontColor: color,\n                  lineWidth: style.borderWidth,\n                  pointStyle: pointStyle,\n                  hidden: !chart.getDataVisibility(i),\n                  index: i\n                };\n              });\n            }\n            return [];\n          }\n        },\n        onClick(e, legendItem, legend) {\n          legend.chart.toggleDataVisibility(legendItem.index);\n          legend.chart.update();\n        }\n      }\n    },\n    scales: {\n      r: {\n        type: 'radialLinear',\n        angleLines: {\n          display: false\n        },\n        beginAtZero: true,\n        grid: {\n          circular: true\n        },\n        pointLabels: {\n          display: false\n        },\n        startAngle: 0\n      }\n    }\n  };\n  constructor(chart, datasetIndex) {\n    super(chart, datasetIndex);\n    this.innerRadius = undefined;\n    this.outerRadius = undefined;\n  }\n  getLabelAndValue(index) {\n    const meta = this._cachedMeta;\n    const chart = this.chart;\n    const labels = chart.data.labels || [];\n    const value = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.o)(meta._parsed[index].r, chart.options.locale);\n    return {\n      label: labels[index] || '',\n      value\n    };\n  }\n  parseObjectData(meta, data, start, count) {\n    return _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.y.bind(this)(meta, data, start, count);\n  }\n  update(mode) {\n    const arcs = this._cachedMeta.data;\n    this._updateRadius();\n    this.updateElements(arcs, 0, arcs.length, mode);\n  }\n  getMinMax() {\n    const meta = this._cachedMeta;\n    const range = {\n      min: Number.POSITIVE_INFINITY,\n      max: Number.NEGATIVE_INFINITY\n    };\n    meta.data.forEach((element, index) => {\n      const parsed = this.getParsed(index).r;\n      if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n        if (parsed < range.min) {\n          range.min = parsed;\n        }\n        if (parsed > range.max) {\n          range.max = parsed;\n        }\n      }\n    });\n    return range;\n  }\n  _updateRadius() {\n    const chart = this.chart;\n    const chartArea = chart.chartArea;\n    const opts = chart.options;\n    const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n    const outerRadius = Math.max(minSize / 2, 0);\n    const innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n    const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n    this.outerRadius = outerRadius - radiusLength * this.index;\n    this.innerRadius = this.outerRadius - radiusLength;\n  }\n  updateElements(arcs, start, count, mode) {\n    const reset = mode === 'reset';\n    const chart = this.chart;\n    const opts = chart.options;\n    const animationOpts = opts.animation;\n    const scale = this._cachedMeta.rScale;\n    const centerX = scale.xCenter;\n    const centerY = scale.yCenter;\n    const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P;\n    let angle = datasetStartAngle;\n    let i;\n    const defaultAngle = 360 / this.countVisibleElements();\n    for (i = 0; i < start; ++i) {\n      angle += this._computeAngle(i, mode, defaultAngle);\n    }\n    for (i = start; i < start + count; i++) {\n      const arc = arcs[i];\n      let startAngle = angle;\n      let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n      let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n      angle = endAngle;\n      if (reset) {\n        if (animationOpts.animateScale) {\n          outerRadius = 0;\n        }\n        if (animationOpts.animateRotate) {\n          startAngle = endAngle = datasetStartAngle;\n        }\n      }\n      const properties = {\n        x: centerX,\n        y: centerY,\n        innerRadius: 0,\n        outerRadius,\n        startAngle,\n        endAngle,\n        options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n      };\n      this.updateElement(arc, i, properties, mode);\n    }\n  }\n  countVisibleElements() {\n    const meta = this._cachedMeta;\n    let count = 0;\n    meta.data.forEach((element, index) => {\n      if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n        count++;\n      }\n    });\n    return count;\n  }\n  _computeAngle(index, mode, defaultAngle) {\n    return this.chart.getDataVisibility(index) ? (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.t)(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n  }\n}\nclass PieController extends DoughnutController {\n  static id = 'pie';\n  static defaults = {\n    cutout: 0,\n    rotation: 0,\n    circumference: 360,\n    radius: '100%'\n  };\n}\nclass RadarController extends DatasetController {\n  static id = 'radar';\n  static defaults = {\n    datasetElementType: 'line',\n    dataElementType: 'point',\n    indexAxis: 'r',\n    showLine: true,\n    elements: {\n      line: {\n        fill: 'start'\n      }\n    }\n  };\n  static overrides = {\n    aspectRatio: 1,\n    scales: {\n      r: {\n        type: 'radialLinear'\n      }\n    }\n  };\n  getLabelAndValue(index) {\n    const vScale = this._cachedMeta.vScale;\n    const parsed = this.getParsed(index);\n    return {\n      label: vScale.getLabels()[index],\n      value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n    };\n  }\n  parseObjectData(meta, data, start, count) {\n    return _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.y.bind(this)(meta, data, start, count);\n  }\n  update(mode) {\n    const meta = this._cachedMeta;\n    const line = meta.dataset;\n    const points = meta.data || [];\n    const labels = meta.iScale.getLabels();\n    line.points = points;\n    if (mode !== 'resize') {\n      const options = this.resolveDatasetElementOptions(mode);\n      if (!this.options.showLine) {\n        options.borderWidth = 0;\n      }\n      const properties = {\n        _loop: true,\n        _fullLoop: labels.length === points.length,\n        options\n      };\n      this.updateElement(line, undefined, properties, mode);\n    }\n    this.updateElements(points, 0, points.length, mode);\n  }\n  updateElements(points, start, count, mode) {\n    const scale = this._cachedMeta.rScale;\n    const reset = mode === 'reset';\n    for (let i = start; i < start + count; i++) {\n      const point = points[i];\n      const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n      const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n      const x = reset ? scale.xCenter : pointPosition.x;\n      const y = reset ? scale.yCenter : pointPosition.y;\n      const properties = {\n        x,\n        y,\n        angle: pointPosition.angle,\n        skip: isNaN(x) || isNaN(y),\n        options\n      };\n      this.updateElement(point, i, properties, mode);\n    }\n  }\n}\nclass ScatterController extends DatasetController {\n  static id = 'scatter';\n  static defaults = {\n    datasetElementType: false,\n    dataElementType: 'point',\n    showLine: false,\n    fill: false\n  };\n  static overrides = {\n    interaction: {\n      mode: 'point'\n    },\n    scales: {\n      x: {\n        type: 'linear'\n      },\n      y: {\n        type: 'linear'\n      }\n    }\n  };\n  getLabelAndValue(index) {\n    const meta = this._cachedMeta;\n    const labels = this.chart.data.labels || [];\n    const {\n      xScale,\n      yScale\n    } = meta;\n    const parsed = this.getParsed(index);\n    const x = xScale.getLabelForValue(parsed.x);\n    const y = yScale.getLabelForValue(parsed.y);\n    return {\n      label: labels[index] || '',\n      value: '(' + x + ', ' + y + ')'\n    };\n  }\n  update(mode) {\n    const meta = this._cachedMeta;\n    const {\n      data: points = []\n    } = meta;\n    const animationsDisabled = this.chart._animationsDisabled;\n    let {\n      start,\n      count\n    } = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.q)(meta, points, animationsDisabled);\n    this._drawStart = start;\n    this._drawCount = count;\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.w)(meta)) {\n      start = 0;\n      count = points.length;\n    }\n    if (this.options.showLine) {\n      if (!this.datasetElementType) {\n        this.addElements();\n      }\n      const {\n        dataset: line,\n        _dataset\n      } = meta;\n      line._chart = this.chart;\n      line._datasetIndex = this.index;\n      line._decimated = !!_dataset._decimated;\n      line.points = points;\n      const options = this.resolveDatasetElementOptions(mode);\n      options.segment = this.options.segment;\n      this.updateElement(line, undefined, {\n        animated: !animationsDisabled,\n        options\n      }, mode);\n    } else if (this.datasetElementType) {\n      delete meta.dataset;\n      this.datasetElementType = false;\n    }\n    this.updateElements(points, start, count, mode);\n  }\n  addElements() {\n    const {\n      showLine\n    } = this.options;\n    if (!this.datasetElementType && showLine) {\n      this.datasetElementType = this.chart.registry.getElement('line');\n    }\n    super.addElements();\n  }\n  updateElements(points, start, count, mode) {\n    const reset = mode === 'reset';\n    const {\n      iScale,\n      vScale,\n      _stacked,\n      _dataset\n    } = this._cachedMeta;\n    const firstOpts = this.resolveDataElementOptions(start, mode);\n    const sharedOptions = this.getSharedOptions(firstOpts);\n    const includeOptions = this.includeOptions(mode, sharedOptions);\n    const iAxis = iScale.axis;\n    const vAxis = vScale.axis;\n    const {\n      spanGaps,\n      segment\n    } = this.options;\n    const maxGapLength = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.x)(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n    const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n    let prevParsed = start > 0 && this.getParsed(start - 1);\n    for (let i = start; i < start + count; ++i) {\n      const point = points[i];\n      const parsed = this.getParsed(i);\n      const properties = directUpdate ? point : {};\n      const nullData = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(parsed[vAxis]);\n      const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n      const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n      properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n      properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n      if (segment) {\n        properties.parsed = parsed;\n        properties.raw = _dataset.data[i];\n      }\n      if (includeOptions) {\n        properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n      }\n      if (!directUpdate) {\n        this.updateElement(point, i, properties, mode);\n      }\n      prevParsed = parsed;\n    }\n    this.updateSharedOptions(sharedOptions, mode, firstOpts);\n  }\n  getMaxOverflow() {\n    const meta = this._cachedMeta;\n    const data = meta.data || [];\n    if (!this.options.showLine) {\n      let max = 0;\n      for (let i = data.length - 1; i >= 0; --i) {\n        max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n      }\n      return max > 0 && max;\n    }\n    const dataset = meta.dataset;\n    const border = dataset.options && dataset.options.borderWidth || 0;\n    if (!data.length) {\n      return border;\n    }\n    const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n    const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n    return Math.max(border, firstPoint, lastPoint) / 2;\n  }\n}\nvar controllers = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  BarController: BarController,\n  BubbleController: BubbleController,\n  DoughnutController: DoughnutController,\n  LineController: LineController,\n  PieController: PieController,\n  PolarAreaController: PolarAreaController,\n  RadarController: RadarController,\n  ScatterController: ScatterController\n});\n\n/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */\nfunction abstract() {\n  throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */\nclass DateAdapterBase {\n  /**\n  * Override default date adapter methods.\n  * Accepts type parameter to define options type.\n  * @example\n  * Chart._adapters._date.override<{myAdapterOption: string}>({\n  *   init() {\n  *     console.log(this.options.myAdapterOption);\n  *   }\n  * })\n  */\n  static override(members) {\n    Object.assign(DateAdapterBase.prototype, members);\n  }\n  options;\n  constructor(options) {\n    this.options = options || {};\n  }\n  // eslint-disable-next-line @typescript-eslint/no-empty-function\n  init() {}\n  formats() {\n    return abstract();\n  }\n  parse() {\n    return abstract();\n  }\n  format() {\n    return abstract();\n  }\n  add() {\n    return abstract();\n  }\n  diff() {\n    return abstract();\n  }\n  startOf() {\n    return abstract();\n  }\n  endOf() {\n    return abstract();\n  }\n}\nvar adapters = {\n  _date: DateAdapterBase\n};\nfunction binarySearch(metaset, axis, value, intersect) {\n  const {\n    controller,\n    data,\n    _sorted\n  } = metaset;\n  const iScale = controller._cachedMeta.iScale;\n  const spanGaps = metaset.dataset ? metaset.dataset.options ? metaset.dataset.options.spanGaps : null : null;\n  if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n    const lookupMethod = iScale._reversePixels ? _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.A : _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.B;\n    if (!intersect) {\n      const result = lookupMethod(data, axis, value);\n      if (spanGaps) {\n        const {\n          vScale\n        } = controller._cachedMeta;\n        const {\n          _parsed\n        } = metaset;\n        const distanceToDefinedLo = _parsed.slice(0, result.lo + 1).reverse().findIndex(point => !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(point[vScale.axis]));\n        result.lo -= Math.max(0, distanceToDefinedLo);\n        const distanceToDefinedHi = _parsed.slice(result.hi).findIndex(point => !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(point[vScale.axis]));\n        result.hi += Math.max(0, distanceToDefinedHi);\n      }\n      return result;\n    } else if (controller._sharedOptions) {\n      const el = data[0];\n      const range = typeof el.getRange === 'function' && el.getRange(axis);\n      if (range) {\n        const start = lookupMethod(data, axis, value - range);\n        const end = lookupMethod(data, axis, value + range);\n        return {\n          lo: start.lo,\n          hi: end.hi\n        };\n      }\n    }\n  }\n  return {\n    lo: 0,\n    hi: data.length - 1\n  };\n}\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n  const metasets = chart.getSortedVisibleDatasetMetas();\n  const value = position[axis];\n  for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n    const {\n      index,\n      data\n    } = metasets[i];\n    const {\n      lo,\n      hi\n    } = binarySearch(metasets[i], axis, value, intersect);\n    for (let j = lo; j <= hi; ++j) {\n      const element = data[j];\n      if (!element.skip) {\n        handler(element, index, j);\n      }\n    }\n  }\n}\nfunction getDistanceMetricForAxis(axis) {\n  const useX = axis.indexOf('x') !== -1;\n  const useY = axis.indexOf('y') !== -1;\n  return function (pt1, pt2) {\n    const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n    const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n    return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n  };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n  const items = [];\n  if (!includeInvisible && !chart.isPointInArea(position)) {\n    return items;\n  }\n  const evaluationFunc = function (element, datasetIndex, index) {\n    if (!includeInvisible && !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.C)(element, chart.chartArea, 0)) {\n      return;\n    }\n    if (element.inRange(position.x, position.y, useFinalPosition)) {\n      items.push({\n        element,\n        datasetIndex,\n        index\n      });\n    }\n  };\n  evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n  return items;\n}\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n  let items = [];\n  function evaluationFunc(element, datasetIndex, index) {\n    const {\n      startAngle,\n      endAngle\n    } = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n    const {\n      angle\n    } = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.D)(element, {\n      x: position.x,\n      y: position.y\n    });\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.p)(angle, startAngle, endAngle)) {\n      items.push({\n        element,\n        datasetIndex,\n        index\n      });\n    }\n  }\n  evaluateInteractionItems(chart, axis, position, evaluationFunc);\n  return items;\n}\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n  let items = [];\n  const distanceMetric = getDistanceMetricForAxis(axis);\n  let minDistance = Number.POSITIVE_INFINITY;\n  function evaluationFunc(element, datasetIndex, index) {\n    const inRange = element.inRange(position.x, position.y, useFinalPosition);\n    if (intersect && !inRange) {\n      return;\n    }\n    const center = element.getCenterPoint(useFinalPosition);\n    const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n    if (!pointInArea && !inRange) {\n      return;\n    }\n    const distance = distanceMetric(position, center);\n    if (distance < minDistance) {\n      items = [{\n        element,\n        datasetIndex,\n        index\n      }];\n      minDistance = distance;\n    } else if (distance === minDistance) {\n      items.push({\n        element,\n        datasetIndex,\n        index\n      });\n    }\n  }\n  evaluateInteractionItems(chart, axis, position, evaluationFunc);\n  return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n  if (!includeInvisible && !chart.isPointInArea(position)) {\n    return [];\n  }\n  return axis === 'r' && !intersect ? getNearestRadialItems(chart, position, axis, useFinalPosition) : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n  const items = [];\n  const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n  let intersectsItem = false;\n  evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n    if (element[rangeMethod] && element[rangeMethod](position[axis], useFinalPosition)) {\n      items.push({\n        element,\n        datasetIndex,\n        index\n      });\n      intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n    }\n  });\n  if (intersect && !intersectsItem) {\n    return [];\n  }\n  return items;\n}\nvar Interaction = {\n  evaluateInteractionItems,\n  modes: {\n    index(chart, e, options, useFinalPosition) {\n      const position = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.z)(e, chart);\n      const axis = options.axis || 'x';\n      const includeInvisible = options.includeInvisible || false;\n      const items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n      const elements = [];\n      if (!items.length) {\n        return [];\n      }\n      chart.getSortedVisibleDatasetMetas().forEach(meta => {\n        const index = items[0].index;\n        const element = meta.data[index];\n        if (element && !element.skip) {\n          elements.push({\n            element,\n            datasetIndex: meta.index,\n            index\n          });\n        }\n      });\n      return elements;\n    },\n    dataset(chart, e, options, useFinalPosition) {\n      const position = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.z)(e, chart);\n      const axis = options.axis || 'xy';\n      const includeInvisible = options.includeInvisible || false;\n      let items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n      if (items.length > 0) {\n        const datasetIndex = items[0].datasetIndex;\n        const data = chart.getDatasetMeta(datasetIndex).data;\n        items = [];\n        for (let i = 0; i < data.length; ++i) {\n          items.push({\n            element: data[i],\n            datasetIndex,\n            index: i\n          });\n        }\n      }\n      return items;\n    },\n    point(chart, e, options, useFinalPosition) {\n      const position = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.z)(e, chart);\n      const axis = options.axis || 'xy';\n      const includeInvisible = options.includeInvisible || false;\n      return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n    },\n    nearest(chart, e, options, useFinalPosition) {\n      const position = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.z)(e, chart);\n      const axis = options.axis || 'xy';\n      const includeInvisible = options.includeInvisible || false;\n      return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n    },\n    x(chart, e, options, useFinalPosition) {\n      const position = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.z)(e, chart);\n      return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n    },\n    y(chart, e, options, useFinalPosition) {\n      const position = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.z)(e, chart);\n      return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n    }\n  }\n};\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n  return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n  return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n  return array.sort((a, b) => {\n    const v0 = reverse ? b : a;\n    const v1 = reverse ? a : b;\n    return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n  });\n}\nfunction wrapBoxes(boxes) {\n  const layoutBoxes = [];\n  let i, ilen, box, pos, stack, stackWeight;\n  for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n    box = boxes[i];\n    ({\n      position: pos,\n      options: {\n        stack,\n        stackWeight = 1\n      }\n    } = box);\n    layoutBoxes.push({\n      index: i,\n      box,\n      pos,\n      horizontal: box.isHorizontal(),\n      weight: box.weight,\n      stack: stack && pos + stack,\n      stackWeight\n    });\n  }\n  return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n  const stacks = {};\n  for (const wrap of layouts) {\n    const {\n      stack,\n      pos,\n      stackWeight\n    } = wrap;\n    if (!stack || !STATIC_POSITIONS.includes(pos)) {\n      continue;\n    }\n    const _stack = stacks[stack] || (stacks[stack] = {\n      count: 0,\n      placed: 0,\n      weight: 0,\n      size: 0\n    });\n    _stack.count++;\n    _stack.weight += stackWeight;\n  }\n  return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n  const stacks = buildStacks(layouts);\n  const {\n    vBoxMaxWidth,\n    hBoxMaxHeight\n  } = params;\n  let i, ilen, layout;\n  for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n    layout = layouts[i];\n    const {\n      fullSize\n    } = layout.box;\n    const stack = stacks[layout.stack];\n    const factor = stack && layout.stackWeight / stack.weight;\n    if (layout.horizontal) {\n      layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n      layout.height = hBoxMaxHeight;\n    } else {\n      layout.width = vBoxMaxWidth;\n      layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n    }\n  }\n  return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n  const layoutBoxes = wrapBoxes(boxes);\n  const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n  const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n  const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n  const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n  const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n  const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n  const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n  return {\n    fullSize,\n    leftAndTop: left.concat(top),\n    rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n    chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n    vertical: left.concat(right).concat(centerVertical),\n    horizontal: top.concat(bottom).concat(centerHorizontal)\n  };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n  return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n  maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n  maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n  maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n  maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n  const {\n    pos,\n    box\n  } = layout;\n  const maxPadding = chartArea.maxPadding;\n  if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(pos)) {\n    if (layout.size) {\n      chartArea[pos] -= layout.size;\n    }\n    const stack = stacks[layout.stack] || {\n      size: 0,\n      count: 1\n    };\n    stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n    layout.size = stack.size / stack.count;\n    chartArea[pos] += layout.size;\n  }\n  if (box.getPadding) {\n    updateMaxPadding(maxPadding, box.getPadding());\n  }\n  const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n  const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n  const widthChanged = newWidth !== chartArea.w;\n  const heightChanged = newHeight !== chartArea.h;\n  chartArea.w = newWidth;\n  chartArea.h = newHeight;\n  return layout.horizontal ? {\n    same: widthChanged,\n    other: heightChanged\n  } : {\n    same: heightChanged,\n    other: widthChanged\n  };\n}\nfunction handleMaxPadding(chartArea) {\n  const maxPadding = chartArea.maxPadding;\n  function updatePos(pos) {\n    const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n    chartArea[pos] += change;\n    return change;\n  }\n  chartArea.y += updatePos('top');\n  chartArea.x += updatePos('left');\n  updatePos('right');\n  updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n  const maxPadding = chartArea.maxPadding;\n  function marginForPositions(positions) {\n    const margin = {\n      left: 0,\n      top: 0,\n      right: 0,\n      bottom: 0\n    };\n    positions.forEach(pos => {\n      margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n    });\n    return margin;\n  }\n  return horizontal ? marginForPositions(['left', 'right']) : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n  const refitBoxes = [];\n  let i, ilen, layout, box, refit, changed;\n  for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n    layout = boxes[i];\n    box = layout.box;\n    box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n    const {\n      same,\n      other\n    } = updateDims(chartArea, params, layout, stacks);\n    refit |= same && refitBoxes.length;\n    changed = changed || other;\n    if (!box.fullSize) {\n      refitBoxes.push(layout);\n    }\n  }\n  return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n  box.top = top;\n  box.left = left;\n  box.right = left + width;\n  box.bottom = top + height;\n  box.width = width;\n  box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n  const userPadding = params.padding;\n  let {\n    x,\n    y\n  } = chartArea;\n  for (const layout of boxes) {\n    const box = layout.box;\n    const stack = stacks[layout.stack] || {\n      count: 1,\n      placed: 0,\n      weight: 1\n    };\n    const weight = layout.stackWeight / stack.weight || 1;\n    if (layout.horizontal) {\n      const width = chartArea.w * weight;\n      const height = stack.size || box.height;\n      if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.h)(stack.start)) {\n        y = stack.start;\n      }\n      if (box.fullSize) {\n        setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n      } else {\n        setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n      }\n      stack.start = y;\n      stack.placed += width;\n      y = box.bottom;\n    } else {\n      const height = chartArea.h * weight;\n      const width = stack.size || box.width;\n      if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.h)(stack.start)) {\n        x = stack.start;\n      }\n      if (box.fullSize) {\n        setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n      } else {\n        setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n      }\n      stack.start = x;\n      stack.placed += height;\n      x = box.right;\n    }\n  }\n  chartArea.x = x;\n  chartArea.y = y;\n}\nvar layouts = {\n  addBox(chart, item) {\n    if (!chart.boxes) {\n      chart.boxes = [];\n    }\n    item.fullSize = item.fullSize || false;\n    item.position = item.position || 'top';\n    item.weight = item.weight || 0;\n    item._layers = item._layers || function () {\n      return [{\n        z: 0,\n        draw(chartArea) {\n          item.draw(chartArea);\n        }\n      }];\n    };\n    chart.boxes.push(item);\n  },\n  removeBox(chart, layoutItem) {\n    const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n    if (index !== -1) {\n      chart.boxes.splice(index, 1);\n    }\n  },\n  configure(chart, item, options) {\n    item.fullSize = options.fullSize;\n    item.position = options.position;\n    item.weight = options.weight;\n  },\n  update(chart, width, height, minPadding) {\n    if (!chart) {\n      return;\n    }\n    const padding = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(chart.options.layout.padding);\n    const availableWidth = Math.max(width - padding.width, 0);\n    const availableHeight = Math.max(height - padding.height, 0);\n    const boxes = buildLayoutBoxes(chart.boxes);\n    const verticalBoxes = boxes.vertical;\n    const horizontalBoxes = boxes.horizontal;\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(chart.boxes, box => {\n      if (typeof box.beforeLayout === 'function') {\n        box.beforeLayout();\n      }\n    });\n    const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) => wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n    const params = Object.freeze({\n      outerWidth: width,\n      outerHeight: height,\n      padding,\n      availableWidth,\n      availableHeight,\n      vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n      hBoxMaxHeight: availableHeight / 2\n    });\n    const maxPadding = Object.assign({}, padding);\n    updateMaxPadding(maxPadding, (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(minPadding));\n    const chartArea = Object.assign({\n      maxPadding,\n      w: availableWidth,\n      h: availableHeight,\n      x: padding.left,\n      y: padding.top\n    }, padding);\n    const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n    fitBoxes(boxes.fullSize, chartArea, params, stacks);\n    fitBoxes(verticalBoxes, chartArea, params, stacks);\n    if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n      fitBoxes(verticalBoxes, chartArea, params, stacks);\n    }\n    handleMaxPadding(chartArea);\n    placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n    chartArea.x += chartArea.w;\n    chartArea.y += chartArea.h;\n    placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n    chart.chartArea = {\n      left: chartArea.left,\n      top: chartArea.top,\n      right: chartArea.left + chartArea.w,\n      bottom: chartArea.top + chartArea.h,\n      height: chartArea.h,\n      width: chartArea.w\n    };\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(boxes.chartArea, layout => {\n      const box = layout.box;\n      Object.assign(box, chart.chartArea);\n      box.update(chartArea.w, chartArea.h, {\n        left: 0,\n        top: 0,\n        right: 0,\n        bottom: 0\n      });\n    });\n  }\n};\nclass BasePlatform {\n  acquireContext(canvas, aspectRatio) {}\n  releaseContext(context) {\n    return false;\n  }\n  addEventListener(chart, type, listener) {}\n  removeEventListener(chart, type, listener) {}\n  getDevicePixelRatio() {\n    return 1;\n  }\n  getMaximumSize(element, width, height, aspectRatio) {\n    width = Math.max(0, width || element.width);\n    height = height || element.height;\n    return {\n      width,\n      height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n    };\n  }\n  isAttached(canvas) {\n    return true;\n  }\n  updateConfig(config) {}\n}\nclass BasicPlatform extends BasePlatform {\n  acquireContext(item) {\n    return item && item.getContext && item.getContext('2d') || null;\n  }\n  updateConfig(config) {\n    config.options.animation = false;\n  }\n}\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n  touchstart: 'mousedown',\n  touchmove: 'mousemove',\n  touchend: 'mouseup',\n  pointerenter: 'mouseenter',\n  pointerdown: 'mousedown',\n  pointermove: 'mousemove',\n  pointerup: 'mouseup',\n  pointerleave: 'mouseout',\n  pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n  const style = canvas.style;\n  const renderHeight = canvas.getAttribute('height');\n  const renderWidth = canvas.getAttribute('width');\n  canvas[EXPANDO_KEY] = {\n    initial: {\n      height: renderHeight,\n      width: renderWidth,\n      style: {\n        display: style.display,\n        height: style.height,\n        width: style.width\n      }\n    }\n  };\n  style.display = style.display || 'block';\n  style.boxSizing = style.boxSizing || 'border-box';\n  if (isNullOrEmpty(renderWidth)) {\n    const displayWidth = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.J)(canvas, 'width');\n    if (displayWidth !== undefined) {\n      canvas.width = displayWidth;\n    }\n  }\n  if (isNullOrEmpty(renderHeight)) {\n    if (canvas.style.height === '') {\n      canvas.height = canvas.width / (aspectRatio || 2);\n    } else {\n      const displayHeight = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.J)(canvas, 'height');\n      if (displayHeight !== undefined) {\n        canvas.height = displayHeight;\n      }\n    }\n  }\n  return canvas;\n}\nconst eventListenerOptions = _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.K ? {\n  passive: true\n} : false;\nfunction addListener(node, type, listener) {\n  if (node) {\n    node.addEventListener(type, listener, eventListenerOptions);\n  }\n}\nfunction removeListener(chart, type, listener) {\n  if (chart && chart.canvas) {\n    chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n  }\n}\nfunction fromNativeEvent(event, chart) {\n  const type = EVENT_TYPES[event.type] || event.type;\n  const {\n    x,\n    y\n  } = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.z)(event, chart);\n  return {\n    type,\n    chart,\n    native: event,\n    x: x !== undefined ? x : null,\n    y: y !== undefined ? y : null\n  };\n}\nfunction nodeListContains(nodeList, canvas) {\n  for (const node of nodeList) {\n    if (node === canvas || node.contains(canvas)) {\n      return true;\n    }\n  }\n}\nfunction createAttachObserver(chart, type, listener) {\n  const canvas = chart.canvas;\n  const observer = new MutationObserver(entries => {\n    let trigger = false;\n    for (const entry of entries) {\n      trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n      trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n    }\n    if (trigger) {\n      listener();\n    }\n  });\n  observer.observe(document, {\n    childList: true,\n    subtree: true\n  });\n  return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n  const canvas = chart.canvas;\n  const observer = new MutationObserver(entries => {\n    let trigger = false;\n    for (const entry of entries) {\n      trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n      trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n    }\n    if (trigger) {\n      listener();\n    }\n  });\n  observer.observe(document, {\n    childList: true,\n    subtree: true\n  });\n  return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n  const dpr = window.devicePixelRatio;\n  if (dpr === oldDevicePixelRatio) {\n    return;\n  }\n  oldDevicePixelRatio = dpr;\n  drpListeningCharts.forEach((resize, chart) => {\n    if (chart.currentDevicePixelRatio !== dpr) {\n      resize();\n    }\n  });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n  if (!drpListeningCharts.size) {\n    window.addEventListener('resize', onWindowResize);\n  }\n  drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n  drpListeningCharts.delete(chart);\n  if (!drpListeningCharts.size) {\n    window.removeEventListener('resize', onWindowResize);\n  }\n}\nfunction createResizeObserver(chart, type, listener) {\n  const canvas = chart.canvas;\n  const container = canvas && (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.I)(canvas);\n  if (!container) {\n    return;\n  }\n  const resize = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.L)((width, height) => {\n    const w = container.clientWidth;\n    listener(width, height);\n    if (w < container.clientWidth) {\n      listener();\n    }\n  }, window);\n  const observer = new ResizeObserver(entries => {\n    const entry = entries[0];\n    const width = entry.contentRect.width;\n    const height = entry.contentRect.height;\n    if (width === 0 && height === 0) {\n      return;\n    }\n    resize(width, height);\n  });\n  observer.observe(container);\n  listenDevicePixelRatioChanges(chart, resize);\n  return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n  if (observer) {\n    observer.disconnect();\n  }\n  if (type === 'resize') {\n    unlistenDevicePixelRatioChanges(chart);\n  }\n}\nfunction createProxyAndListen(chart, type, listener) {\n  const canvas = chart.canvas;\n  const proxy = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.L)(event => {\n    if (chart.ctx !== null) {\n      listener(fromNativeEvent(event, chart));\n    }\n  }, chart);\n  addListener(canvas, type, proxy);\n  return proxy;\n}\nclass DomPlatform extends BasePlatform {\n  acquireContext(canvas, aspectRatio) {\n    const context = canvas && canvas.getContext && canvas.getContext('2d');\n    if (context && context.canvas === canvas) {\n      initCanvas(canvas, aspectRatio);\n      return context;\n    }\n    return null;\n  }\n  releaseContext(context) {\n    const canvas = context.canvas;\n    if (!canvas[EXPANDO_KEY]) {\n      return false;\n    }\n    const initial = canvas[EXPANDO_KEY].initial;\n    ['height', 'width'].forEach(prop => {\n      const value = initial[prop];\n      if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(value)) {\n        canvas.removeAttribute(prop);\n      } else {\n        canvas.setAttribute(prop, value);\n      }\n    });\n    const style = initial.style || {};\n    Object.keys(style).forEach(key => {\n      canvas.style[key] = style[key];\n    });\n    canvas.width = canvas.width;\n    delete canvas[EXPANDO_KEY];\n    return true;\n  }\n  addEventListener(chart, type, listener) {\n    this.removeEventListener(chart, type);\n    const proxies = chart.$proxies || (chart.$proxies = {});\n    const handlers = {\n      attach: createAttachObserver,\n      detach: createDetachObserver,\n      resize: createResizeObserver\n    };\n    const handler = handlers[type] || createProxyAndListen;\n    proxies[type] = handler(chart, type, listener);\n  }\n  removeEventListener(chart, type) {\n    const proxies = chart.$proxies || (chart.$proxies = {});\n    const proxy = proxies[type];\n    if (!proxy) {\n      return;\n    }\n    const handlers = {\n      attach: releaseObserver,\n      detach: releaseObserver,\n      resize: releaseObserver\n    };\n    const handler = handlers[type] || removeListener;\n    handler(chart, type, proxy);\n    proxies[type] = undefined;\n  }\n  getDevicePixelRatio() {\n    return window.devicePixelRatio;\n  }\n  getMaximumSize(canvas, width, height, aspectRatio) {\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.G)(canvas, width, height, aspectRatio);\n  }\n  isAttached(canvas) {\n    const container = canvas && (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.I)(canvas);\n    return !!(container && container.isConnected);\n  }\n}\nfunction _detectPlatform(canvas) {\n  if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.M)() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n    return BasicPlatform;\n  }\n  return DomPlatform;\n}\nclass Element {\n  static defaults = {};\n  static defaultRoutes = undefined;\n  x;\n  y;\n  active = false;\n  options;\n  $animations;\n  tooltipPosition(useFinalPosition) {\n    const {\n      x,\n      y\n    } = this.getProps(['x', 'y'], useFinalPosition);\n    return {\n      x,\n      y\n    };\n  }\n  hasValue() {\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.x)(this.x) && (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.x)(this.y);\n  }\n  getProps(props, final) {\n    const anims = this.$animations;\n    if (!final || !anims) {\n      // let's not create an object, if not needed\n      return this;\n    }\n    const ret = {};\n    props.forEach(prop => {\n      ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n    });\n    return ret;\n  }\n}\nfunction autoSkip(scale, ticks) {\n  const tickOpts = scale.options.ticks;\n  const determinedMaxTicks = determineMaxTicks(scale);\n  const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n  const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n  const numMajorIndices = majorIndices.length;\n  const first = majorIndices[0];\n  const last = majorIndices[numMajorIndices - 1];\n  const newTicks = [];\n  if (numMajorIndices > ticksLimit) {\n    skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n    return newTicks;\n  }\n  const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n  if (numMajorIndices > 0) {\n    let i, ilen;\n    const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n    skip(ticks, newTicks, spacing, (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n    for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n      skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n    }\n    skip(ticks, newTicks, spacing, last, (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n    return newTicks;\n  }\n  skip(ticks, newTicks, spacing);\n  return newTicks;\n}\nfunction determineMaxTicks(scale) {\n  const offset = scale.options.offset;\n  const tickLength = scale._tickSize();\n  const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n  const maxChart = scale._maxLength / tickLength;\n  return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n  const evenMajorSpacing = getEvenSpacing(majorIndices);\n  const spacing = ticks.length / ticksLimit;\n  if (!evenMajorSpacing) {\n    return Math.max(spacing, 1);\n  }\n  const factors = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.N)(evenMajorSpacing);\n  for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n    const factor = factors[i];\n    if (factor > spacing) {\n      return factor;\n    }\n  }\n  return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n  const result = [];\n  let i, ilen;\n  for (i = 0, ilen = ticks.length; i < ilen; i++) {\n    if (ticks[i].major) {\n      result.push(i);\n    }\n  }\n  return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n  let count = 0;\n  let next = majorIndices[0];\n  let i;\n  spacing = Math.ceil(spacing);\n  for (i = 0; i < ticks.length; i++) {\n    if (i === next) {\n      newTicks.push(ticks[i]);\n      count++;\n      next = majorIndices[count * spacing];\n    }\n  }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n  const start = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(majorStart, 0);\n  const end = Math.min((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(majorEnd, ticks.length), ticks.length);\n  let count = 0;\n  let length, i, next;\n  spacing = Math.ceil(spacing);\n  if (majorEnd) {\n    length = majorEnd - majorStart;\n    spacing = length / Math.floor(length / spacing);\n  }\n  next = start;\n  while (next < 0) {\n    count++;\n    next = Math.round(start + count * spacing);\n  }\n  for (i = Math.max(start, 0); i < end; i++) {\n    if (i === next) {\n      newTicks.push(ticks[i]);\n      count++;\n      next = Math.round(start + count * spacing);\n    }\n  }\n}\nfunction getEvenSpacing(arr) {\n  const len = arr.length;\n  let i, diff;\n  if (len < 2) {\n    return false;\n  }\n  for (diff = arr[0], i = 1; i < len; ++i) {\n    if (arr[i] - arr[i - 1] !== diff) {\n      return false;\n    }\n  }\n  return diff;\n}\nconst reverseAlign = align => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit) => Math.min(maxTicksLimit || ticksLength, ticksLength);\nfunction sample(arr, numItems) {\n  const result = [];\n  const increment = arr.length / numItems;\n  const len = arr.length;\n  let i = 0;\n  for (; i < len; i += increment) {\n    result.push(arr[Math.floor(i)]);\n  }\n  return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n  const length = scale.ticks.length;\n  const validIndex = Math.min(index, length - 1);\n  const start = scale._startPixel;\n  const end = scale._endPixel;\n  const epsilon = 1e-6;\n  let lineValue = scale.getPixelForTick(validIndex);\n  let offset;\n  if (offsetGridLines) {\n    if (length === 1) {\n      offset = Math.max(lineValue - start, end - lineValue);\n    } else if (index === 0) {\n      offset = (scale.getPixelForTick(1) - lineValue) / 2;\n    } else {\n      offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n    }\n    lineValue += validIndex < index ? offset : -offset;\n    if (lineValue < start - epsilon || lineValue > end + epsilon) {\n      return;\n    }\n  }\n  return lineValue;\n}\nfunction garbageCollect(caches, length) {\n  (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(caches, cache => {\n    const gc = cache.gc;\n    const gcLen = gc.length / 2;\n    let i;\n    if (gcLen > length) {\n      for (i = 0; i < gcLen; ++i) {\n        delete cache.data[gc[i]];\n      }\n      gc.splice(0, gcLen);\n    }\n  });\n}\nfunction getTickMarkLength(options) {\n  return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n  if (!options.display) {\n    return 0;\n  }\n  const font = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(options.font, fallback);\n  const padding = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(options.padding);\n  const lines = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.b)(options.text) ? options.text.length : 1;\n  return lines * font.lineHeight + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n  return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.j)(parent, {\n    scale,\n    type: 'scale'\n  });\n}\nfunction createTickContext(parent, index, tick) {\n  return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.j)(parent, {\n    tick,\n    index,\n    type: 'tick'\n  });\n}\nfunction titleAlign(align, position, reverse) {\n  let ret = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a1)(align);\n  if (reverse && position !== 'right' || !reverse && position === 'right') {\n    ret = reverseAlign(ret);\n  }\n  return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n  const {\n    top,\n    left,\n    bottom,\n    right,\n    chart\n  } = scale;\n  const {\n    chartArea,\n    scales\n  } = chart;\n  let rotation = 0;\n  let maxWidth, titleX, titleY;\n  const height = bottom - top;\n  const width = right - left;\n  if (scale.isHorizontal()) {\n    titleX = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(align, left, right);\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(position)) {\n      const positionAxisID = Object.keys(position)[0];\n      const value = position[positionAxisID];\n      titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n    } else if (position === 'center') {\n      titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n    } else {\n      titleY = offsetFromEdge(scale, position, offset);\n    }\n    maxWidth = right - left;\n  } else {\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(position)) {\n      const positionAxisID = Object.keys(position)[0];\n      const value = position[positionAxisID];\n      titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n    } else if (position === 'center') {\n      titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n    } else {\n      titleX = offsetFromEdge(scale, position, offset);\n    }\n    titleY = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(align, bottom, top);\n    rotation = position === 'left' ? -_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.H : _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.H;\n  }\n  return {\n    titleX,\n    titleY,\n    maxWidth,\n    rotation\n  };\n}\nclass Scale extends Element {\n  constructor(cfg) {\n    super();\n    this.id = cfg.id;\n    this.type = cfg.type;\n    this.options = undefined;\n    this.ctx = cfg.ctx;\n    this.chart = cfg.chart;\n    this.top = undefined;\n    this.bottom = undefined;\n    this.left = undefined;\n    this.right = undefined;\n    this.width = undefined;\n    this.height = undefined;\n    this._margins = {\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0\n    };\n    this.maxWidth = undefined;\n    this.maxHeight = undefined;\n    this.paddingTop = undefined;\n    this.paddingBottom = undefined;\n    this.paddingLeft = undefined;\n    this.paddingRight = undefined;\n    this.axis = undefined;\n    this.labelRotation = undefined;\n    this.min = undefined;\n    this.max = undefined;\n    this._range = undefined;\n    this.ticks = [];\n    this._gridLineItems = null;\n    this._labelItems = null;\n    this._labelSizes = null;\n    this._length = 0;\n    this._maxLength = 0;\n    this._longestTextCache = {};\n    this._startPixel = undefined;\n    this._endPixel = undefined;\n    this._reversePixels = false;\n    this._userMax = undefined;\n    this._userMin = undefined;\n    this._suggestedMax = undefined;\n    this._suggestedMin = undefined;\n    this._ticksLength = 0;\n    this._borderValue = 0;\n    this._cache = {};\n    this._dataLimitsCached = false;\n    this.$context = undefined;\n  }\n  init(options) {\n    this.options = options.setContext(this.getContext());\n    this.axis = options.axis;\n    this._userMin = this.parse(options.min);\n    this._userMax = this.parse(options.max);\n    this._suggestedMin = this.parse(options.suggestedMin);\n    this._suggestedMax = this.parse(options.suggestedMax);\n  }\n  parse(raw, index) {\n    return raw;\n  }\n  getUserBounds() {\n    let {\n      _userMin,\n      _userMax,\n      _suggestedMin,\n      _suggestedMax\n    } = this;\n    _userMin = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.O)(_userMin, Number.POSITIVE_INFINITY);\n    _userMax = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.O)(_userMax, Number.NEGATIVE_INFINITY);\n    _suggestedMin = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.O)(_suggestedMin, Number.POSITIVE_INFINITY);\n    _suggestedMax = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.O)(_suggestedMax, Number.NEGATIVE_INFINITY);\n    return {\n      min: (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.O)(_userMin, _suggestedMin),\n      max: (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.O)(_userMax, _suggestedMax),\n      minDefined: (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(_userMin),\n      maxDefined: (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(_userMax)\n    };\n  }\n  getMinMax(canStack) {\n    let {\n      min,\n      max,\n      minDefined,\n      maxDefined\n    } = this.getUserBounds();\n    let range;\n    if (minDefined && maxDefined) {\n      return {\n        min,\n        max\n      };\n    }\n    const metas = this.getMatchingVisibleMetas();\n    for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n      range = metas[i].controller.getMinMax(this, canStack);\n      if (!minDefined) {\n        min = Math.min(min, range.min);\n      }\n      if (!maxDefined) {\n        max = Math.max(max, range.max);\n      }\n    }\n    min = maxDefined && min > max ? max : min;\n    max = minDefined && min > max ? min : max;\n    return {\n      min: (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.O)(min, (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.O)(max, min)),\n      max: (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.O)(max, (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.O)(min, max))\n    };\n  }\n  getPadding() {\n    return {\n      left: this.paddingLeft || 0,\n      top: this.paddingTop || 0,\n      right: this.paddingRight || 0,\n      bottom: this.paddingBottom || 0\n    };\n  }\n  getTicks() {\n    return this.ticks;\n  }\n  getLabels() {\n    const data = this.chart.data;\n    return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n  }\n  getLabelItems(chartArea = this.chart.chartArea) {\n    const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n    return items;\n  }\n  beforeLayout() {\n    this._cache = {};\n    this._dataLimitsCached = false;\n  }\n  beforeUpdate() {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(this.options.beforeUpdate, [this]);\n  }\n  update(maxWidth, maxHeight, margins) {\n    const {\n      beginAtZero,\n      grace,\n      ticks: tickOpts\n    } = this.options;\n    const sampleSize = tickOpts.sampleSize;\n    this.beforeUpdate();\n    this.maxWidth = maxWidth;\n    this.maxHeight = maxHeight;\n    this._margins = margins = Object.assign({\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0\n    }, margins);\n    this.ticks = null;\n    this._labelSizes = null;\n    this._gridLineItems = null;\n    this._labelItems = null;\n    this.beforeSetDimensions();\n    this.setDimensions();\n    this.afterSetDimensions();\n    this._maxLength = this.isHorizontal() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n    if (!this._dataLimitsCached) {\n      this.beforeDataLimits();\n      this.determineDataLimits();\n      this.afterDataLimits();\n      this._range = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.R)(this, grace, beginAtZero);\n      this._dataLimitsCached = true;\n    }\n    this.beforeBuildTicks();\n    this.ticks = this.buildTicks() || [];\n    this.afterBuildTicks();\n    const samplingEnabled = sampleSize < this.ticks.length;\n    this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n    this.configure();\n    this.beforeCalculateLabelRotation();\n    this.calculateLabelRotation();\n    this.afterCalculateLabelRotation();\n    if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n      this.ticks = autoSkip(this, this.ticks);\n      this._labelSizes = null;\n      this.afterAutoSkip();\n    }\n    if (samplingEnabled) {\n      this._convertTicksToLabels(this.ticks);\n    }\n    this.beforeFit();\n    this.fit();\n    this.afterFit();\n    this.afterUpdate();\n  }\n  configure() {\n    let reversePixels = this.options.reverse;\n    let startPixel, endPixel;\n    if (this.isHorizontal()) {\n      startPixel = this.left;\n      endPixel = this.right;\n    } else {\n      startPixel = this.top;\n      endPixel = this.bottom;\n      reversePixels = !reversePixels;\n    }\n    this._startPixel = startPixel;\n    this._endPixel = endPixel;\n    this._reversePixels = reversePixels;\n    this._length = endPixel - startPixel;\n    this._alignToPixels = this.options.alignToPixels;\n  }\n  afterUpdate() {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(this.options.afterUpdate, [this]);\n  }\n  beforeSetDimensions() {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(this.options.beforeSetDimensions, [this]);\n  }\n  setDimensions() {\n    if (this.isHorizontal()) {\n      this.width = this.maxWidth;\n      this.left = 0;\n      this.right = this.width;\n    } else {\n      this.height = this.maxHeight;\n      this.top = 0;\n      this.bottom = this.height;\n    }\n    this.paddingLeft = 0;\n    this.paddingTop = 0;\n    this.paddingRight = 0;\n    this.paddingBottom = 0;\n  }\n  afterSetDimensions() {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(this.options.afterSetDimensions, [this]);\n  }\n  _callHooks(name) {\n    this.chart.notifyPlugins(name, this.getContext());\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(this.options[name], [this]);\n  }\n  beforeDataLimits() {\n    this._callHooks('beforeDataLimits');\n  }\n  determineDataLimits() {}\n  afterDataLimits() {\n    this._callHooks('afterDataLimits');\n  }\n  beforeBuildTicks() {\n    this._callHooks('beforeBuildTicks');\n  }\n  buildTicks() {\n    return [];\n  }\n  afterBuildTicks() {\n    this._callHooks('afterBuildTicks');\n  }\n  beforeTickToLabelConversion() {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(this.options.beforeTickToLabelConversion, [this]);\n  }\n  generateTickLabels(ticks) {\n    const tickOpts = this.options.ticks;\n    let i, ilen, tick;\n    for (i = 0, ilen = ticks.length; i < ilen; i++) {\n      tick = ticks[i];\n      tick.label = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(tickOpts.callback, [tick.value, i, ticks], this);\n    }\n  }\n  afterTickToLabelConversion() {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(this.options.afterTickToLabelConversion, [this]);\n  }\n  beforeCalculateLabelRotation() {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(this.options.beforeCalculateLabelRotation, [this]);\n  }\n  calculateLabelRotation() {\n    const options = this.options;\n    const tickOpts = options.ticks;\n    const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n    const minRotation = tickOpts.minRotation || 0;\n    const maxRotation = tickOpts.maxRotation;\n    let labelRotation = minRotation;\n    let tickWidth, maxHeight, maxLabelDiagonal;\n    if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n      this.labelRotation = minRotation;\n      return;\n    }\n    const labelSizes = this._getLabelSizes();\n    const maxLabelWidth = labelSizes.widest.width;\n    const maxLabelHeight = labelSizes.highest.height;\n    const maxWidth = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n    tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n    if (maxLabelWidth + 6 > tickWidth) {\n      tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n      maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n      maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n      labelRotation = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.U)(Math.min(Math.asin((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n      labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n    }\n    this.labelRotation = labelRotation;\n  }\n  afterCalculateLabelRotation() {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(this.options.afterCalculateLabelRotation, [this]);\n  }\n  afterAutoSkip() {}\n  beforeFit() {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(this.options.beforeFit, [this]);\n  }\n  fit() {\n    const minSize = {\n      width: 0,\n      height: 0\n    };\n    const {\n      chart,\n      options: {\n        ticks: tickOpts,\n        title: titleOpts,\n        grid: gridOpts\n      }\n    } = this;\n    const display = this._isVisible();\n    const isHorizontal = this.isHorizontal();\n    if (display) {\n      const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n      if (isHorizontal) {\n        minSize.width = this.maxWidth;\n        minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n      } else {\n        minSize.height = this.maxHeight;\n        minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n      }\n      if (tickOpts.display && this.ticks.length) {\n        const {\n          first,\n          last,\n          widest,\n          highest\n        } = this._getLabelSizes();\n        const tickPadding = tickOpts.padding * 2;\n        const angleRadians = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.t)(this.labelRotation);\n        const cos = Math.cos(angleRadians);\n        const sin = Math.sin(angleRadians);\n        if (isHorizontal) {\n          const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n          minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n        } else {\n          const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n          minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n        }\n        this._calculatePadding(first, last, sin, cos);\n      }\n    }\n    this._handleMargins();\n    if (isHorizontal) {\n      this.width = this._length = chart.width - this._margins.left - this._margins.right;\n      this.height = minSize.height;\n    } else {\n      this.width = minSize.width;\n      this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n    }\n  }\n  _calculatePadding(first, last, sin, cos) {\n    const {\n      ticks: {\n        align,\n        padding\n      },\n      position\n    } = this.options;\n    const isRotated = this.labelRotation !== 0;\n    const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n    if (this.isHorizontal()) {\n      const offsetLeft = this.getPixelForTick(0) - this.left;\n      const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n      let paddingLeft = 0;\n      let paddingRight = 0;\n      if (isRotated) {\n        if (labelsBelowTicks) {\n          paddingLeft = cos * first.width;\n          paddingRight = sin * last.height;\n        } else {\n          paddingLeft = sin * first.height;\n          paddingRight = cos * last.width;\n        }\n      } else if (align === 'start') {\n        paddingRight = last.width;\n      } else if (align === 'end') {\n        paddingLeft = first.width;\n      } else if (align !== 'inner') {\n        paddingLeft = first.width / 2;\n        paddingRight = last.width / 2;\n      }\n      this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n      this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n    } else {\n      let paddingTop = last.height / 2;\n      let paddingBottom = first.height / 2;\n      if (align === 'start') {\n        paddingTop = 0;\n        paddingBottom = first.height;\n      } else if (align === 'end') {\n        paddingTop = last.height;\n        paddingBottom = 0;\n      }\n      this.paddingTop = paddingTop + padding;\n      this.paddingBottom = paddingBottom + padding;\n    }\n  }\n  _handleMargins() {\n    if (this._margins) {\n      this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n      this._margins.top = Math.max(this.paddingTop, this._margins.top);\n      this._margins.right = Math.max(this.paddingRight, this._margins.right);\n      this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n    }\n  }\n  afterFit() {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(this.options.afterFit, [this]);\n  }\n  isHorizontal() {\n    const {\n      axis,\n      position\n    } = this.options;\n    return position === 'top' || position === 'bottom' || axis === 'x';\n  }\n  isFullSize() {\n    return this.options.fullSize;\n  }\n  _convertTicksToLabels(ticks) {\n    this.beforeTickToLabelConversion();\n    this.generateTickLabels(ticks);\n    let i, ilen;\n    for (i = 0, ilen = ticks.length; i < ilen; i++) {\n      if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(ticks[i].label)) {\n        ticks.splice(i, 1);\n        ilen--;\n        i--;\n      }\n    }\n    this.afterTickToLabelConversion();\n  }\n  _getLabelSizes() {\n    let labelSizes = this._labelSizes;\n    if (!labelSizes) {\n      const sampleSize = this.options.ticks.sampleSize;\n      let ticks = this.ticks;\n      if (sampleSize < ticks.length) {\n        ticks = sample(ticks, sampleSize);\n      }\n      this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n    }\n    return labelSizes;\n  }\n  _computeLabelSizes(ticks, length, maxTicksLimit) {\n    const {\n      ctx,\n      _longestTextCache: caches\n    } = this;\n    const widths = [];\n    const heights = [];\n    const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n    let widestLabelSize = 0;\n    let highestLabelSize = 0;\n    let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n    for (i = 0; i < length; i += increment) {\n      label = ticks[i].label;\n      tickFont = this._resolveTickFontOptions(i);\n      ctx.font = fontString = tickFont.string;\n      cache = caches[fontString] = caches[fontString] || {\n        data: {},\n        gc: []\n      };\n      lineHeight = tickFont.lineHeight;\n      width = height = 0;\n      if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(label) && !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.b)(label)) {\n        width = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.V)(ctx, cache.data, cache.gc, width, label);\n        height = lineHeight;\n      } else if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.b)(label)) {\n        for (j = 0, jlen = label.length; j < jlen; ++j) {\n          nestedLabel = label[j];\n          if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(nestedLabel) && !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.b)(nestedLabel)) {\n            width = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.V)(ctx, cache.data, cache.gc, width, nestedLabel);\n            height += lineHeight;\n          }\n        }\n      }\n      widths.push(width);\n      heights.push(height);\n      widestLabelSize = Math.max(width, widestLabelSize);\n      highestLabelSize = Math.max(height, highestLabelSize);\n    }\n    garbageCollect(caches, length);\n    const widest = widths.indexOf(widestLabelSize);\n    const highest = heights.indexOf(highestLabelSize);\n    const valueAt = idx => ({\n      width: widths[idx] || 0,\n      height: heights[idx] || 0\n    });\n    return {\n      first: valueAt(0),\n      last: valueAt(length - 1),\n      widest: valueAt(widest),\n      highest: valueAt(highest),\n      widths,\n      heights\n    };\n  }\n  getLabelForValue(value) {\n    return value;\n  }\n  getPixelForValue(value, index) {\n    return NaN;\n  }\n  getValueForPixel(pixel) {}\n  getPixelForTick(index) {\n    const ticks = this.ticks;\n    if (index < 0 || index > ticks.length - 1) {\n      return null;\n    }\n    return this.getPixelForValue(ticks[index].value);\n  }\n  getPixelForDecimal(decimal) {\n    if (this._reversePixels) {\n      decimal = 1 - decimal;\n    }\n    const pixel = this._startPixel + decimal * this._length;\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.W)(this._alignToPixels ? (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.X)(this.chart, pixel, 0) : pixel);\n  }\n  getDecimalForPixel(pixel) {\n    const decimal = (pixel - this._startPixel) / this._length;\n    return this._reversePixels ? 1 - decimal : decimal;\n  }\n  getBasePixel() {\n    return this.getPixelForValue(this.getBaseValue());\n  }\n  getBaseValue() {\n    const {\n      min,\n      max\n    } = this;\n    return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n  }\n  getContext(index) {\n    const ticks = this.ticks || [];\n    if (index >= 0 && index < ticks.length) {\n      const tick = ticks[index];\n      return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n    }\n    return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n  }\n  _tickSize() {\n    const optionTicks = this.options.ticks;\n    const rot = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.t)(this.labelRotation);\n    const cos = Math.abs(Math.cos(rot));\n    const sin = Math.abs(Math.sin(rot));\n    const labelSizes = this._getLabelSizes();\n    const padding = optionTicks.autoSkipPadding || 0;\n    const w = labelSizes ? labelSizes.widest.width + padding : 0;\n    const h = labelSizes ? labelSizes.highest.height + padding : 0;\n    return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n  }\n  _isVisible() {\n    const display = this.options.display;\n    if (display !== 'auto') {\n      return !!display;\n    }\n    return this.getMatchingVisibleMetas().length > 0;\n  }\n  _computeGridLineItems(chartArea) {\n    const axis = this.axis;\n    const chart = this.chart;\n    const options = this.options;\n    const {\n      grid,\n      position,\n      border\n    } = options;\n    const offset = grid.offset;\n    const isHorizontal = this.isHorizontal();\n    const ticks = this.ticks;\n    const ticksLength = ticks.length + (offset ? 1 : 0);\n    const tl = getTickMarkLength(grid);\n    const items = [];\n    const borderOpts = border.setContext(this.getContext());\n    const axisWidth = borderOpts.display ? borderOpts.width : 0;\n    const axisHalfWidth = axisWidth / 2;\n    const alignBorderValue = function (pixel) {\n      return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.X)(chart, pixel, axisWidth);\n    };\n    let borderValue, i, lineValue, alignedLineValue;\n    let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n    if (position === 'top') {\n      borderValue = alignBorderValue(this.bottom);\n      ty1 = this.bottom - tl;\n      ty2 = borderValue - axisHalfWidth;\n      y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n      y2 = chartArea.bottom;\n    } else if (position === 'bottom') {\n      borderValue = alignBorderValue(this.top);\n      y1 = chartArea.top;\n      y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n      ty1 = borderValue + axisHalfWidth;\n      ty2 = this.top + tl;\n    } else if (position === 'left') {\n      borderValue = alignBorderValue(this.right);\n      tx1 = this.right - tl;\n      tx2 = borderValue - axisHalfWidth;\n      x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n      x2 = chartArea.right;\n    } else if (position === 'right') {\n      borderValue = alignBorderValue(this.left);\n      x1 = chartArea.left;\n      x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n      tx1 = borderValue + axisHalfWidth;\n      tx2 = this.left + tl;\n    } else if (axis === 'x') {\n      if (position === 'center') {\n        borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n      } else if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(position)) {\n        const positionAxisID = Object.keys(position)[0];\n        const value = position[positionAxisID];\n        borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n      }\n      y1 = chartArea.top;\n      y2 = chartArea.bottom;\n      ty1 = borderValue + axisHalfWidth;\n      ty2 = ty1 + tl;\n    } else if (axis === 'y') {\n      if (position === 'center') {\n        borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n      } else if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(position)) {\n        const positionAxisID = Object.keys(position)[0];\n        const value = position[positionAxisID];\n        borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n      }\n      tx1 = borderValue - axisHalfWidth;\n      tx2 = tx1 - tl;\n      x1 = chartArea.left;\n      x2 = chartArea.right;\n    }\n    const limit = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(options.ticks.maxTicksLimit, ticksLength);\n    const step = Math.max(1, Math.ceil(ticksLength / limit));\n    for (i = 0; i < ticksLength; i += step) {\n      const context = this.getContext(i);\n      const optsAtIndex = grid.setContext(context);\n      const optsAtIndexBorder = border.setContext(context);\n      const lineWidth = optsAtIndex.lineWidth;\n      const lineColor = optsAtIndex.color;\n      const borderDash = optsAtIndexBorder.dash || [];\n      const borderDashOffset = optsAtIndexBorder.dashOffset;\n      const tickWidth = optsAtIndex.tickWidth;\n      const tickColor = optsAtIndex.tickColor;\n      const tickBorderDash = optsAtIndex.tickBorderDash || [];\n      const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n      lineValue = getPixelForGridLine(this, i, offset);\n      if (lineValue === undefined) {\n        continue;\n      }\n      alignedLineValue = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.X)(chart, lineValue, lineWidth);\n      if (isHorizontal) {\n        tx1 = tx2 = x1 = x2 = alignedLineValue;\n      } else {\n        ty1 = ty2 = y1 = y2 = alignedLineValue;\n      }\n      items.push({\n        tx1,\n        ty1,\n        tx2,\n        ty2,\n        x1,\n        y1,\n        x2,\n        y2,\n        width: lineWidth,\n        color: lineColor,\n        borderDash,\n        borderDashOffset,\n        tickWidth,\n        tickColor,\n        tickBorderDash,\n        tickBorderDashOffset\n      });\n    }\n    this._ticksLength = ticksLength;\n    this._borderValue = borderValue;\n    return items;\n  }\n  _computeLabelItems(chartArea) {\n    const axis = this.axis;\n    const options = this.options;\n    const {\n      position,\n      ticks: optionTicks\n    } = options;\n    const isHorizontal = this.isHorizontal();\n    const ticks = this.ticks;\n    const {\n      align,\n      crossAlign,\n      padding,\n      mirror\n    } = optionTicks;\n    const tl = getTickMarkLength(options.grid);\n    const tickAndPadding = tl + padding;\n    const hTickAndPadding = mirror ? -padding : tickAndPadding;\n    const rotation = -(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.t)(this.labelRotation);\n    const items = [];\n    let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n    let textBaseline = 'middle';\n    if (position === 'top') {\n      y = this.bottom - hTickAndPadding;\n      textAlign = this._getXAxisLabelAlignment();\n    } else if (position === 'bottom') {\n      y = this.top + hTickAndPadding;\n      textAlign = this._getXAxisLabelAlignment();\n    } else if (position === 'left') {\n      const ret = this._getYAxisLabelAlignment(tl);\n      textAlign = ret.textAlign;\n      x = ret.x;\n    } else if (position === 'right') {\n      const ret = this._getYAxisLabelAlignment(tl);\n      textAlign = ret.textAlign;\n      x = ret.x;\n    } else if (axis === 'x') {\n      if (position === 'center') {\n        y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n      } else if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(position)) {\n        const positionAxisID = Object.keys(position)[0];\n        const value = position[positionAxisID];\n        y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n      }\n      textAlign = this._getXAxisLabelAlignment();\n    } else if (axis === 'y') {\n      if (position === 'center') {\n        x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n      } else if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(position)) {\n        const positionAxisID = Object.keys(position)[0];\n        const value = position[positionAxisID];\n        x = this.chart.scales[positionAxisID].getPixelForValue(value);\n      }\n      textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n    }\n    if (axis === 'y') {\n      if (align === 'start') {\n        textBaseline = 'top';\n      } else if (align === 'end') {\n        textBaseline = 'bottom';\n      }\n    }\n    const labelSizes = this._getLabelSizes();\n    for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n      tick = ticks[i];\n      label = tick.label;\n      const optsAtIndex = optionTicks.setContext(this.getContext(i));\n      pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n      font = this._resolveTickFontOptions(i);\n      lineHeight = font.lineHeight;\n      lineCount = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.b)(label) ? label.length : 1;\n      const halfCount = lineCount / 2;\n      const color = optsAtIndex.color;\n      const strokeColor = optsAtIndex.textStrokeColor;\n      const strokeWidth = optsAtIndex.textStrokeWidth;\n      let tickTextAlign = textAlign;\n      if (isHorizontal) {\n        x = pixel;\n        if (textAlign === 'inner') {\n          if (i === ilen - 1) {\n            tickTextAlign = !this.options.reverse ? 'right' : 'left';\n          } else if (i === 0) {\n            tickTextAlign = !this.options.reverse ? 'left' : 'right';\n          } else {\n            tickTextAlign = 'center';\n          }\n        }\n        if (position === 'top') {\n          if (crossAlign === 'near' || rotation !== 0) {\n            textOffset = -lineCount * lineHeight + lineHeight / 2;\n          } else if (crossAlign === 'center') {\n            textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n          } else {\n            textOffset = -labelSizes.highest.height + lineHeight / 2;\n          }\n        } else {\n          if (crossAlign === 'near' || rotation !== 0) {\n            textOffset = lineHeight / 2;\n          } else if (crossAlign === 'center') {\n            textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n          } else {\n            textOffset = labelSizes.highest.height - lineCount * lineHeight;\n          }\n        }\n        if (mirror) {\n          textOffset *= -1;\n        }\n        if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n          x += lineHeight / 2 * Math.sin(rotation);\n        }\n      } else {\n        y = pixel;\n        textOffset = (1 - lineCount) * lineHeight / 2;\n      }\n      let backdrop;\n      if (optsAtIndex.showLabelBackdrop) {\n        const labelPadding = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(optsAtIndex.backdropPadding);\n        const height = labelSizes.heights[i];\n        const width = labelSizes.widths[i];\n        let top = textOffset - labelPadding.top;\n        let left = 0 - labelPadding.left;\n        switch (textBaseline) {\n          case 'middle':\n            top -= height / 2;\n            break;\n          case 'bottom':\n            top -= height;\n            break;\n        }\n        switch (textAlign) {\n          case 'center':\n            left -= width / 2;\n            break;\n          case 'right':\n            left -= width;\n            break;\n          case 'inner':\n            if (i === ilen - 1) {\n              left -= width;\n            } else if (i > 0) {\n              left -= width / 2;\n            }\n            break;\n        }\n        backdrop = {\n          left,\n          top,\n          width: width + labelPadding.width,\n          height: height + labelPadding.height,\n          color: optsAtIndex.backdropColor\n        };\n      }\n      items.push({\n        label,\n        font,\n        textOffset,\n        options: {\n          rotation,\n          color,\n          strokeColor,\n          strokeWidth,\n          textAlign: tickTextAlign,\n          textBaseline,\n          translation: [x, y],\n          backdrop\n        }\n      });\n    }\n    return items;\n  }\n  _getXAxisLabelAlignment() {\n    const {\n      position,\n      ticks\n    } = this.options;\n    const rotation = -(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.t)(this.labelRotation);\n    if (rotation) {\n      return position === 'top' ? 'left' : 'right';\n    }\n    let align = 'center';\n    if (ticks.align === 'start') {\n      align = 'left';\n    } else if (ticks.align === 'end') {\n      align = 'right';\n    } else if (ticks.align === 'inner') {\n      align = 'inner';\n    }\n    return align;\n  }\n  _getYAxisLabelAlignment(tl) {\n    const {\n      position,\n      ticks: {\n        crossAlign,\n        mirror,\n        padding\n      }\n    } = this.options;\n    const labelSizes = this._getLabelSizes();\n    const tickAndPadding = tl + padding;\n    const widest = labelSizes.widest.width;\n    let textAlign;\n    let x;\n    if (position === 'left') {\n      if (mirror) {\n        x = this.right + padding;\n        if (crossAlign === 'near') {\n          textAlign = 'left';\n        } else if (crossAlign === 'center') {\n          textAlign = 'center';\n          x += widest / 2;\n        } else {\n          textAlign = 'right';\n          x += widest;\n        }\n      } else {\n        x = this.right - tickAndPadding;\n        if (crossAlign === 'near') {\n          textAlign = 'right';\n        } else if (crossAlign === 'center') {\n          textAlign = 'center';\n          x -= widest / 2;\n        } else {\n          textAlign = 'left';\n          x = this.left;\n        }\n      }\n    } else if (position === 'right') {\n      if (mirror) {\n        x = this.left + padding;\n        if (crossAlign === 'near') {\n          textAlign = 'right';\n        } else if (crossAlign === 'center') {\n          textAlign = 'center';\n          x -= widest / 2;\n        } else {\n          textAlign = 'left';\n          x -= widest;\n        }\n      } else {\n        x = this.left + tickAndPadding;\n        if (crossAlign === 'near') {\n          textAlign = 'left';\n        } else if (crossAlign === 'center') {\n          textAlign = 'center';\n          x += widest / 2;\n        } else {\n          textAlign = 'right';\n          x = this.right;\n        }\n      }\n    } else {\n      textAlign = 'right';\n    }\n    return {\n      textAlign,\n      x\n    };\n  }\n  _computeLabelArea() {\n    if (this.options.ticks.mirror) {\n      return;\n    }\n    const chart = this.chart;\n    const position = this.options.position;\n    if (position === 'left' || position === 'right') {\n      return {\n        top: 0,\n        left: this.left,\n        bottom: chart.height,\n        right: this.right\n      };\n    }\n    if (position === 'top' || position === 'bottom') {\n      return {\n        top: this.top,\n        left: 0,\n        bottom: this.bottom,\n        right: chart.width\n      };\n    }\n  }\n  drawBackground() {\n    const {\n      ctx,\n      options: {\n        backgroundColor\n      },\n      left,\n      top,\n      width,\n      height\n    } = this;\n    if (backgroundColor) {\n      ctx.save();\n      ctx.fillStyle = backgroundColor;\n      ctx.fillRect(left, top, width, height);\n      ctx.restore();\n    }\n  }\n  getLineWidthForValue(value) {\n    const grid = this.options.grid;\n    if (!this._isVisible() || !grid.display) {\n      return 0;\n    }\n    const ticks = this.ticks;\n    const index = ticks.findIndex(t => t.value === value);\n    if (index >= 0) {\n      const opts = grid.setContext(this.getContext(index));\n      return opts.lineWidth;\n    }\n    return 0;\n  }\n  drawGrid(chartArea) {\n    const grid = this.options.grid;\n    const ctx = this.ctx;\n    const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n    let i, ilen;\n    const drawLine = (p1, p2, style) => {\n      if (!style.width || !style.color) {\n        return;\n      }\n      ctx.save();\n      ctx.lineWidth = style.width;\n      ctx.strokeStyle = style.color;\n      ctx.setLineDash(style.borderDash || []);\n      ctx.lineDashOffset = style.borderDashOffset;\n      ctx.beginPath();\n      ctx.moveTo(p1.x, p1.y);\n      ctx.lineTo(p2.x, p2.y);\n      ctx.stroke();\n      ctx.restore();\n    };\n    if (grid.display) {\n      for (i = 0, ilen = items.length; i < ilen; ++i) {\n        const item = items[i];\n        if (grid.drawOnChartArea) {\n          drawLine({\n            x: item.x1,\n            y: item.y1\n          }, {\n            x: item.x2,\n            y: item.y2\n          }, item);\n        }\n        if (grid.drawTicks) {\n          drawLine({\n            x: item.tx1,\n            y: item.ty1\n          }, {\n            x: item.tx2,\n            y: item.ty2\n          }, {\n            color: item.tickColor,\n            width: item.tickWidth,\n            borderDash: item.tickBorderDash,\n            borderDashOffset: item.tickBorderDashOffset\n          });\n        }\n      }\n    }\n  }\n  drawBorder() {\n    const {\n      chart,\n      ctx,\n      options: {\n        border,\n        grid\n      }\n    } = this;\n    const borderOpts = border.setContext(this.getContext());\n    const axisWidth = border.display ? borderOpts.width : 0;\n    if (!axisWidth) {\n      return;\n    }\n    const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n    const borderValue = this._borderValue;\n    let x1, x2, y1, y2;\n    if (this.isHorizontal()) {\n      x1 = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.X)(chart, this.left, axisWidth) - axisWidth / 2;\n      x2 = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.X)(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n      y1 = y2 = borderValue;\n    } else {\n      y1 = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.X)(chart, this.top, axisWidth) - axisWidth / 2;\n      y2 = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.X)(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n      x1 = x2 = borderValue;\n    }\n    ctx.save();\n    ctx.lineWidth = borderOpts.width;\n    ctx.strokeStyle = borderOpts.color;\n    ctx.beginPath();\n    ctx.moveTo(x1, y1);\n    ctx.lineTo(x2, y2);\n    ctx.stroke();\n    ctx.restore();\n  }\n  drawLabels(chartArea) {\n    const optionTicks = this.options.ticks;\n    if (!optionTicks.display) {\n      return;\n    }\n    const ctx = this.ctx;\n    const area = this._computeLabelArea();\n    if (area) {\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Y)(ctx, area);\n    }\n    const items = this.getLabelItems(chartArea);\n    for (const item of items) {\n      const renderTextOptions = item.options;\n      const tickFont = item.font;\n      const label = item.label;\n      const y = item.textOffset;\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Z)(ctx, label, 0, y, tickFont, renderTextOptions);\n    }\n    if (area) {\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.$)(ctx);\n    }\n  }\n  drawTitle() {\n    const {\n      ctx,\n      options: {\n        position,\n        title,\n        reverse\n      }\n    } = this;\n    if (!title.display) {\n      return;\n    }\n    const font = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(title.font);\n    const padding = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(title.padding);\n    const align = title.align;\n    let offset = font.lineHeight / 2;\n    if (position === 'bottom' || position === 'center' || (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(position)) {\n      offset += padding.bottom;\n      if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.b)(title.text)) {\n        offset += font.lineHeight * (title.text.length - 1);\n      }\n    } else {\n      offset += padding.top;\n    }\n    const {\n      titleX,\n      titleY,\n      maxWidth,\n      rotation\n    } = titleArgs(this, offset, position, align);\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Z)(ctx, title.text, 0, 0, font, {\n      color: title.color,\n      maxWidth,\n      rotation,\n      textAlign: titleAlign(align, position, reverse),\n      textBaseline: 'middle',\n      translation: [titleX, titleY]\n    });\n  }\n  draw(chartArea) {\n    if (!this._isVisible()) {\n      return;\n    }\n    this.drawBackground();\n    this.drawGrid(chartArea);\n    this.drawBorder();\n    this.drawTitle();\n    this.drawLabels(chartArea);\n  }\n  _layers() {\n    const opts = this.options;\n    const tz = opts.ticks && opts.ticks.z || 0;\n    const gz = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(opts.grid && opts.grid.z, -1);\n    const bz = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(opts.border && opts.border.z, 0);\n    if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n      return [{\n        z: tz,\n        draw: chartArea => {\n          this.draw(chartArea);\n        }\n      }];\n    }\n    return [{\n      z: gz,\n      draw: chartArea => {\n        this.drawBackground();\n        this.drawGrid(chartArea);\n        this.drawTitle();\n      }\n    }, {\n      z: bz,\n      draw: () => {\n        this.drawBorder();\n      }\n    }, {\n      z: tz,\n      draw: chartArea => {\n        this.drawLabels(chartArea);\n      }\n    }];\n  }\n  getMatchingVisibleMetas(type) {\n    const metas = this.chart.getSortedVisibleDatasetMetas();\n    const axisID = this.axis + 'AxisID';\n    const result = [];\n    let i, ilen;\n    for (i = 0, ilen = metas.length; i < ilen; ++i) {\n      const meta = metas[i];\n      if (meta[axisID] === this.id && (!type || meta.type === type)) {\n        result.push(meta);\n      }\n    }\n    return result;\n  }\n  _resolveTickFontOptions(index) {\n    const opts = this.options.ticks.setContext(this.getContext(index));\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(opts.font);\n  }\n  _maxDigits() {\n    const fontSize = this._resolveTickFontOptions(0).lineHeight;\n    return (this.isHorizontal() ? this.width : this.height) / fontSize;\n  }\n}\nclass TypedRegistry {\n  constructor(type, scope, override) {\n    this.type = type;\n    this.scope = scope;\n    this.override = override;\n    this.items = Object.create(null);\n  }\n  isForType(type) {\n    return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n  }\n  register(item) {\n    const proto = Object.getPrototypeOf(item);\n    let parentScope;\n    if (isIChartComponent(proto)) {\n      parentScope = this.register(proto);\n    }\n    const items = this.items;\n    const id = item.id;\n    const scope = this.scope + '.' + id;\n    if (!id) {\n      throw new Error('class does not have id: ' + item);\n    }\n    if (id in items) {\n      return scope;\n    }\n    items[id] = item;\n    registerDefaults(item, scope, parentScope);\n    if (this.override) {\n      _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.override(item.id, item.overrides);\n    }\n    return scope;\n  }\n  get(id) {\n    return this.items[id];\n  }\n  unregister(item) {\n    const items = this.items;\n    const id = item.id;\n    const scope = this.scope;\n    if (id in items) {\n      delete items[id];\n    }\n    if (scope && id in _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d[scope]) {\n      delete _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d[scope][id];\n      if (this.override) {\n        delete _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a3[id];\n      }\n    }\n  }\n}\nfunction registerDefaults(item, scope, parentScope) {\n  const itemDefaults = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a4)(Object.create(null), [parentScope ? _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.get(parentScope) : {}, _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.get(scope), item.defaults]);\n  _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.set(scope, itemDefaults);\n  if (item.defaultRoutes) {\n    routeDefaults(scope, item.defaultRoutes);\n  }\n  if (item.descriptors) {\n    _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.describe(scope, item.descriptors);\n  }\n}\nfunction routeDefaults(scope, routes) {\n  Object.keys(routes).forEach(property => {\n    const propertyParts = property.split('.');\n    const sourceName = propertyParts.pop();\n    const sourceScope = [scope].concat(propertyParts).join('.');\n    const parts = routes[property].split('.');\n    const targetName = parts.pop();\n    const targetScope = parts.join('.');\n    _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.route(sourceScope, sourceName, targetScope, targetName);\n  });\n}\nfunction isIChartComponent(proto) {\n  return 'id' in proto && 'defaults' in proto;\n}\nclass Registry {\n  constructor() {\n    this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n    this.elements = new TypedRegistry(Element, 'elements');\n    this.plugins = new TypedRegistry(Object, 'plugins');\n    this.scales = new TypedRegistry(Scale, 'scales');\n    this._typedRegistries = [this.controllers, this.scales, this.elements];\n  }\n  add(...args) {\n    this._each('register', args);\n  }\n  remove(...args) {\n    this._each('unregister', args);\n  }\n  addControllers(...args) {\n    this._each('register', args, this.controllers);\n  }\n  addElements(...args) {\n    this._each('register', args, this.elements);\n  }\n  addPlugins(...args) {\n    this._each('register', args, this.plugins);\n  }\n  addScales(...args) {\n    this._each('register', args, this.scales);\n  }\n  getController(id) {\n    return this._get(id, this.controllers, 'controller');\n  }\n  getElement(id) {\n    return this._get(id, this.elements, 'element');\n  }\n  getPlugin(id) {\n    return this._get(id, this.plugins, 'plugin');\n  }\n  getScale(id) {\n    return this._get(id, this.scales, 'scale');\n  }\n  removeControllers(...args) {\n    this._each('unregister', args, this.controllers);\n  }\n  removeElements(...args) {\n    this._each('unregister', args, this.elements);\n  }\n  removePlugins(...args) {\n    this._each('unregister', args, this.plugins);\n  }\n  removeScales(...args) {\n    this._each('unregister', args, this.scales);\n  }\n  _each(method, args, typedRegistry) {\n    [...args].forEach(arg => {\n      const reg = typedRegistry || this._getRegistryForType(arg);\n      if (typedRegistry || reg.isForType(arg) || reg === this.plugins && arg.id) {\n        this._exec(method, reg, arg);\n      } else {\n        (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(arg, item => {\n          const itemReg = typedRegistry || this._getRegistryForType(item);\n          this._exec(method, itemReg, item);\n        });\n      }\n    });\n  }\n  _exec(method, registry, component) {\n    const camelMethod = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a5)(method);\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(component['before' + camelMethod], [], component);\n    registry[method](component);\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(component['after' + camelMethod], [], component);\n  }\n  _getRegistryForType(type) {\n    for (let i = 0; i < this._typedRegistries.length; i++) {\n      const reg = this._typedRegistries[i];\n      if (reg.isForType(type)) {\n        return reg;\n      }\n    }\n    return this.plugins;\n  }\n  _get(id, typedRegistry, type) {\n    const item = typedRegistry.get(id);\n    if (item === undefined) {\n      throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n    }\n    return item;\n  }\n}\nvar registry = /* #__PURE__ */new Registry();\nclass PluginService {\n  constructor() {\n    this._init = [];\n  }\n  notify(chart, hook, args, filter) {\n    if (hook === 'beforeInit') {\n      this._init = this._createDescriptors(chart, true);\n      this._notify(this._init, chart, 'install');\n    }\n    const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n    const result = this._notify(descriptors, chart, hook, args);\n    if (hook === 'afterDestroy') {\n      this._notify(descriptors, chart, 'stop');\n      this._notify(this._init, chart, 'uninstall');\n    }\n    return result;\n  }\n  _notify(descriptors, chart, hook, args) {\n    args = args || {};\n    for (const descriptor of descriptors) {\n      const plugin = descriptor.plugin;\n      const method = plugin[hook];\n      const params = [chart, args, descriptor.options];\n      if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(method, params, plugin) === false && args.cancelable) {\n        return false;\n      }\n    }\n    return true;\n  }\n  invalidate() {\n    if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(this._cache)) {\n      this._oldCache = this._cache;\n      this._cache = undefined;\n    }\n  }\n  _descriptors(chart) {\n    if (this._cache) {\n      return this._cache;\n    }\n    const descriptors = this._cache = this._createDescriptors(chart);\n    this._notifyStateChanges(chart);\n    return descriptors;\n  }\n  _createDescriptors(chart, all) {\n    const config = chart && chart.config;\n    const options = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(config.options && config.options.plugins, {});\n    const plugins = allPlugins(config);\n    return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n  }\n  _notifyStateChanges(chart) {\n    const previousDescriptors = this._oldCache || [];\n    const descriptors = this._cache;\n    const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n    this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n    this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n  }\n}\nfunction allPlugins(config) {\n  const localIds = {};\n  const plugins = [];\n  const keys = Object.keys(registry.plugins.items);\n  for (let i = 0; i < keys.length; i++) {\n    plugins.push(registry.getPlugin(keys[i]));\n  }\n  const local = config.plugins || [];\n  for (let i = 0; i < local.length; i++) {\n    const plugin = local[i];\n    if (plugins.indexOf(plugin) === -1) {\n      plugins.push(plugin);\n      localIds[plugin.id] = true;\n    }\n  }\n  return {\n    plugins,\n    localIds\n  };\n}\nfunction getOpts(options, all) {\n  if (!all && options === false) {\n    return null;\n  }\n  if (options === true) {\n    return {};\n  }\n  return options;\n}\nfunction createDescriptors(chart, {\n  plugins,\n  localIds\n}, options, all) {\n  const result = [];\n  const context = chart.getContext();\n  for (const plugin of plugins) {\n    const id = plugin.id;\n    const opts = getOpts(options[id], all);\n    if (opts === null) {\n      continue;\n    }\n    result.push({\n      plugin,\n      options: pluginOpts(chart.config, {\n        plugin,\n        local: localIds[id]\n      }, opts, context)\n    });\n  }\n  return result;\n}\nfunction pluginOpts(config, {\n  plugin,\n  local\n}, opts, context) {\n  const keys = config.pluginScopeKeys(plugin);\n  const scopes = config.getOptionScopes(opts, keys);\n  if (local && plugin.defaults) {\n    scopes.push(plugin.defaults);\n  }\n  return config.createResolver(scopes, context, [''], {\n    scriptable: false,\n    indexable: false,\n    allKeys: true\n  });\n}\nfunction getIndexAxis(type, options) {\n  const datasetDefaults = _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.datasets[type] || {};\n  const datasetOptions = (options.datasets || {})[type] || {};\n  return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n  let axis = id;\n  if (id === '_index_') {\n    axis = indexAxis;\n  } else if (id === '_value_') {\n    axis = indexAxis === 'x' ? 'y' : 'x';\n  }\n  return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n  return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction idMatchesAxis(id) {\n  if (id === 'x' || id === 'y' || id === 'r') {\n    return id;\n  }\n}\nfunction axisFromPosition(position) {\n  if (position === 'top' || position === 'bottom') {\n    return 'x';\n  }\n  if (position === 'left' || position === 'right') {\n    return 'y';\n  }\n}\nfunction determineAxis(id, ...scaleOptions) {\n  if (idMatchesAxis(id)) {\n    return id;\n  }\n  for (const opts of scaleOptions) {\n    const axis = opts.axis || axisFromPosition(opts.position) || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n    if (axis) {\n      return axis;\n    }\n  }\n  throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\nfunction getAxisFromDataset(id, axis, dataset) {\n  if (dataset[axis + 'AxisID'] === id) {\n    return {\n      axis\n    };\n  }\n}\nfunction retrieveAxisFromDatasets(id, config) {\n  if (config.data && config.data.datasets) {\n    const boundDs = config.data.datasets.filter(d => d.xAxisID === id || d.yAxisID === id);\n    if (boundDs.length) {\n      return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n    }\n  }\n  return {};\n}\nfunction mergeScaleConfig(config, options) {\n  const chartDefaults = _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a3[config.type] || {\n    scales: {}\n  };\n  const configScales = options.scales || {};\n  const chartIndexAxis = getIndexAxis(config.type, options);\n  const scales = Object.create(null);\n  Object.keys(configScales).forEach(id => {\n    const scaleConf = configScales[id];\n    if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(scaleConf)) {\n      return console.error(`Invalid scale configuration for scale: ${id}`);\n    }\n    if (scaleConf._proxy) {\n      return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n    }\n    const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.scales[scaleConf.type]);\n    const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n    const defaultScaleOptions = chartDefaults.scales || {};\n    scales[id] = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ab)(Object.create(null), [{\n      axis\n    }, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n  });\n  config.data.datasets.forEach(dataset => {\n    const type = dataset.type || config.type;\n    const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n    const datasetDefaults = _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a3[type] || {};\n    const defaultScaleOptions = datasetDefaults.scales || {};\n    Object.keys(defaultScaleOptions).forEach(defaultID => {\n      const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n      const id = dataset[axis + 'AxisID'] || axis;\n      scales[id] = scales[id] || Object.create(null);\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ab)(scales[id], [{\n        axis\n      }, configScales[id], defaultScaleOptions[defaultID]]);\n    });\n  });\n  Object.keys(scales).forEach(key => {\n    const scale = scales[key];\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ab)(scale, [_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.scales[scale.type], _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.scale]);\n  });\n  return scales;\n}\nfunction initOptions(config) {\n  const options = config.options || (config.options = {});\n  options.plugins = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(options.plugins, {});\n  options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n  data = data || {};\n  data.datasets = data.datasets || [];\n  data.labels = data.labels || [];\n  return data;\n}\nfunction initConfig(config) {\n  config = config || {};\n  config.data = initData(config.data);\n  initOptions(config);\n  return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n  let keys = keyCache.get(cacheKey);\n  if (!keys) {\n    keys = generate();\n    keyCache.set(cacheKey, keys);\n    keysCached.add(keys);\n  }\n  return keys;\n}\nconst addIfFound = (set, obj, key) => {\n  const opts = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.f)(obj, key);\n  if (opts !== undefined) {\n    set.add(opts);\n  }\n};\nclass Config {\n  constructor(config) {\n    this._config = initConfig(config);\n    this._scopeCache = new Map();\n    this._resolverCache = new Map();\n  }\n  get platform() {\n    return this._config.platform;\n  }\n  get type() {\n    return this._config.type;\n  }\n  set type(type) {\n    this._config.type = type;\n  }\n  get data() {\n    return this._config.data;\n  }\n  set data(data) {\n    this._config.data = initData(data);\n  }\n  get options() {\n    return this._config.options;\n  }\n  set options(options) {\n    this._config.options = options;\n  }\n  get plugins() {\n    return this._config.plugins;\n  }\n  update() {\n    const config = this._config;\n    this.clearCache();\n    initOptions(config);\n  }\n  clearCache() {\n    this._scopeCache.clear();\n    this._resolverCache.clear();\n  }\n  datasetScopeKeys(datasetType) {\n    return cachedKeys(datasetType, () => [[`datasets.${datasetType}`, '']]);\n  }\n  datasetAnimationScopeKeys(datasetType, transition) {\n    return cachedKeys(`${datasetType}.transition.${transition}`, () => [[`datasets.${datasetType}.transitions.${transition}`, `transitions.${transition}`], [`datasets.${datasetType}`, '']]);\n  }\n  datasetElementScopeKeys(datasetType, elementType) {\n    return cachedKeys(`${datasetType}-${elementType}`, () => [[`datasets.${datasetType}.elements.${elementType}`, `datasets.${datasetType}`, `elements.${elementType}`, '']]);\n  }\n  pluginScopeKeys(plugin) {\n    const id = plugin.id;\n    const type = this.type;\n    return cachedKeys(`${type}-plugin-${id}`, () => [[`plugins.${id}`, ...(plugin.additionalOptionScopes || [])]]);\n  }\n  _cachedScopes(mainScope, resetCache) {\n    const _scopeCache = this._scopeCache;\n    let cache = _scopeCache.get(mainScope);\n    if (!cache || resetCache) {\n      cache = new Map();\n      _scopeCache.set(mainScope, cache);\n    }\n    return cache;\n  }\n  getOptionScopes(mainScope, keyLists, resetCache) {\n    const {\n      options,\n      type\n    } = this;\n    const cache = this._cachedScopes(mainScope, resetCache);\n    const cached = cache.get(keyLists);\n    if (cached) {\n      return cached;\n    }\n    const scopes = new Set();\n    keyLists.forEach(keys => {\n      if (mainScope) {\n        scopes.add(mainScope);\n        keys.forEach(key => addIfFound(scopes, mainScope, key));\n      }\n      keys.forEach(key => addIfFound(scopes, options, key));\n      keys.forEach(key => addIfFound(scopes, _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a3[type] || {}, key));\n      keys.forEach(key => addIfFound(scopes, _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d, key));\n      keys.forEach(key => addIfFound(scopes, _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a6, key));\n    });\n    const array = Array.from(scopes);\n    if (array.length === 0) {\n      array.push(Object.create(null));\n    }\n    if (keysCached.has(keyLists)) {\n      cache.set(keyLists, array);\n    }\n    return array;\n  }\n  chartOptionScopes() {\n    const {\n      options,\n      type\n    } = this;\n    return [options, _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a3[type] || {}, _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.datasets[type] || {}, {\n      type\n    }, _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d, _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a6];\n  }\n  resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n    const result = {\n      $shared: true\n    };\n    const {\n      resolver,\n      subPrefixes\n    } = getResolver(this._resolverCache, scopes, prefixes);\n    let options = resolver;\n    if (needContext(resolver, names)) {\n      result.$shared = false;\n      context = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a7)(context) ? context() : context;\n      const subResolver = this.createResolver(scopes, context, subPrefixes);\n      options = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a8)(resolver, context, subResolver);\n    }\n    for (const prop of names) {\n      result[prop] = options[prop];\n    }\n    return result;\n  }\n  createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n    const {\n      resolver\n    } = getResolver(this._resolverCache, scopes, prefixes);\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(context) ? (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a8)(resolver, context, undefined, descriptorDefaults) : resolver;\n  }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n  let cache = resolverCache.get(scopes);\n  if (!cache) {\n    cache = new Map();\n    resolverCache.set(scopes, cache);\n  }\n  const cacheKey = prefixes.join();\n  let cached = cache.get(cacheKey);\n  if (!cached) {\n    const resolver = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a9)(scopes, prefixes);\n    cached = {\n      resolver,\n      subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n    };\n    cache.set(cacheKey, cached);\n  }\n  return cached;\n}\nconst hasFunction = value => (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(value) && Object.getOwnPropertyNames(value).some(key => (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a7)(value[key]));\nfunction needContext(proxy, names) {\n  const {\n    isScriptable,\n    isIndexable\n  } = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aa)(proxy);\n  for (const prop of names) {\n    const scriptable = isScriptable(prop);\n    const indexable = isIndexable(prop);\n    const value = (indexable || scriptable) && proxy[prop];\n    if (scriptable && ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a7)(value) || hasFunction(value)) || indexable && (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.b)(value)) {\n      return true;\n    }\n  }\n  return false;\n}\nvar version = \"4.5.0\";\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n  return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\nfunction compare2Level(l1, l2) {\n  return function (a, b) {\n    return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n  };\n}\nfunction onAnimationsComplete(context) {\n  const chart = context.chart;\n  const animationOptions = chart.options.animation;\n  chart.notifyPlugins('afterRender');\n  (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n  const chart = context.chart;\n  const animationOptions = chart.options.animation;\n  (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n  if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.M)() && typeof item === 'string') {\n    item = document.getElementById(item);\n  } else if (item && item.length) {\n    item = item[0];\n  }\n  if (item && item.canvas) {\n    item = item.canvas;\n  }\n  return item;\n}\nconst instances = {};\nconst getChart = key => {\n  const canvas = getCanvas(key);\n  return Object.values(instances).filter(c => c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n  const keys = Object.keys(obj);\n  for (const key of keys) {\n    const intKey = +key;\n    if (intKey >= start) {\n      const value = obj[key];\n      delete obj[key];\n      if (move > 0 || intKey > start) {\n        obj[intKey + move] = value;\n      }\n    }\n  }\n}\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n  if (!inChartArea || e.type === 'mouseout') {\n    return null;\n  }\n  if (isClick) {\n    return lastEvent;\n  }\n  return e;\n}\nclass Chart {\n  static defaults = _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d;\n  static instances = instances;\n  static overrides = _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a3;\n  static registry = registry;\n  static version = version;\n  static getChart = getChart;\n  static register(...items) {\n    registry.add(...items);\n    invalidatePlugins();\n  }\n  static unregister(...items) {\n    registry.remove(...items);\n    invalidatePlugins();\n  }\n  constructor(item, userConfig) {\n    const config = this.config = new Config(userConfig);\n    const initialCanvas = getCanvas(item);\n    const existingChart = getChart(initialCanvas);\n    if (existingChart) {\n      throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.');\n    }\n    const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n    this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n    this.platform.updateConfig(config);\n    const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n    const canvas = context && context.canvas;\n    const height = canvas && canvas.height;\n    const width = canvas && canvas.width;\n    this.id = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ac)();\n    this.ctx = context;\n    this.canvas = canvas;\n    this.width = width;\n    this.height = height;\n    this._options = options;\n    this._aspectRatio = this.aspectRatio;\n    this._layers = [];\n    this._metasets = [];\n    this._stacks = undefined;\n    this.boxes = [];\n    this.currentDevicePixelRatio = undefined;\n    this.chartArea = undefined;\n    this._active = [];\n    this._lastEvent = undefined;\n    this._listeners = {};\n    this._responsiveListeners = undefined;\n    this._sortedMetasets = [];\n    this.scales = {};\n    this._plugins = new PluginService();\n    this.$proxies = {};\n    this._hiddenIndices = {};\n    this.attached = false;\n    this._animationsDisabled = undefined;\n    this.$context = undefined;\n    this._doResize = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ad)(mode => this.update(mode), options.resizeDelay || 0);\n    this._dataChanges = [];\n    instances[this.id] = this;\n    if (!context || !canvas) {\n      console.error(\"Failed to create chart: can't acquire context from the given item\");\n      return;\n    }\n    animator.listen(this, 'complete', onAnimationsComplete);\n    animator.listen(this, 'progress', onAnimationProgress);\n    this._initialize();\n    if (this.attached) {\n      this.update();\n    }\n  }\n  get aspectRatio() {\n    const {\n      options: {\n        aspectRatio,\n        maintainAspectRatio\n      },\n      width,\n      height,\n      _aspectRatio\n    } = this;\n    if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(aspectRatio)) {\n      return aspectRatio;\n    }\n    if (maintainAspectRatio && _aspectRatio) {\n      return _aspectRatio;\n    }\n    return height ? width / height : null;\n  }\n  get data() {\n    return this.config.data;\n  }\n  set data(data) {\n    this.config.data = data;\n  }\n  get options() {\n    return this._options;\n  }\n  set options(options) {\n    this.config.options = options;\n  }\n  get registry() {\n    return registry;\n  }\n  _initialize() {\n    this.notifyPlugins('beforeInit');\n    if (this.options.responsive) {\n      this.resize();\n    } else {\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ae)(this, this.options.devicePixelRatio);\n    }\n    this.bindEvents();\n    this.notifyPlugins('afterInit');\n    return this;\n  }\n  clear() {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.af)(this.canvas, this.ctx);\n    return this;\n  }\n  stop() {\n    animator.stop(this);\n    return this;\n  }\n  resize(width, height) {\n    if (!animator.running(this)) {\n      this._resize(width, height);\n    } else {\n      this._resizeBeforeDraw = {\n        width,\n        height\n      };\n    }\n  }\n  _resize(width, height) {\n    const options = this.options;\n    const canvas = this.canvas;\n    const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n    const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n    const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n    const mode = this.width ? 'resize' : 'attach';\n    this.width = newSize.width;\n    this.height = newSize.height;\n    this._aspectRatio = this.aspectRatio;\n    if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ae)(this, newRatio, true)) {\n      return;\n    }\n    this.notifyPlugins('resize', {\n      size: newSize\n    });\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(options.onResize, [this, newSize], this);\n    if (this.attached) {\n      if (this._doResize(mode)) {\n        this.render();\n      }\n    }\n  }\n  ensureScalesHaveIDs() {\n    const options = this.options;\n    const scalesOptions = options.scales || {};\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(scalesOptions, (axisOptions, axisID) => {\n      axisOptions.id = axisID;\n    });\n  }\n  buildOrUpdateScales() {\n    const options = this.options;\n    const scaleOpts = options.scales;\n    const scales = this.scales;\n    const updated = Object.keys(scales).reduce((obj, id) => {\n      obj[id] = false;\n      return obj;\n    }, {});\n    let items = [];\n    if (scaleOpts) {\n      items = items.concat(Object.keys(scaleOpts).map(id => {\n        const scaleOptions = scaleOpts[id];\n        const axis = determineAxis(id, scaleOptions);\n        const isRadial = axis === 'r';\n        const isHorizontal = axis === 'x';\n        return {\n          options: scaleOptions,\n          dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n          dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n        };\n      }));\n    }\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(items, item => {\n      const scaleOptions = item.options;\n      const id = scaleOptions.id;\n      const axis = determineAxis(id, scaleOptions);\n      const scaleType = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(scaleOptions.type, item.dtype);\n      if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n        scaleOptions.position = item.dposition;\n      }\n      updated[id] = true;\n      let scale = null;\n      if (id in scales && scales[id].type === scaleType) {\n        scale = scales[id];\n      } else {\n        const scaleClass = registry.getScale(scaleType);\n        scale = new scaleClass({\n          id,\n          type: scaleType,\n          ctx: this.ctx,\n          chart: this\n        });\n        scales[scale.id] = scale;\n      }\n      scale.init(scaleOptions, options);\n    });\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(updated, (hasUpdated, id) => {\n      if (!hasUpdated) {\n        delete scales[id];\n      }\n    });\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(scales, scale => {\n      layouts.configure(this, scale, scale.options);\n      layouts.addBox(this, scale);\n    });\n  }\n  _updateMetasets() {\n    const metasets = this._metasets;\n    const numData = this.data.datasets.length;\n    const numMeta = metasets.length;\n    metasets.sort((a, b) => a.index - b.index);\n    if (numMeta > numData) {\n      for (let i = numData; i < numMeta; ++i) {\n        this._destroyDatasetMeta(i);\n      }\n      metasets.splice(numData, numMeta - numData);\n    }\n    this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n  }\n  _removeUnreferencedMetasets() {\n    const {\n      _metasets: metasets,\n      data: {\n        datasets\n      }\n    } = this;\n    if (metasets.length > datasets.length) {\n      delete this._stacks;\n    }\n    metasets.forEach((meta, index) => {\n      if (datasets.filter(x => x === meta._dataset).length === 0) {\n        this._destroyDatasetMeta(index);\n      }\n    });\n  }\n  buildOrUpdateControllers() {\n    const newControllers = [];\n    const datasets = this.data.datasets;\n    let i, ilen;\n    this._removeUnreferencedMetasets();\n    for (i = 0, ilen = datasets.length; i < ilen; i++) {\n      const dataset = datasets[i];\n      let meta = this.getDatasetMeta(i);\n      const type = dataset.type || this.config.type;\n      if (meta.type && meta.type !== type) {\n        this._destroyDatasetMeta(i);\n        meta = this.getDatasetMeta(i);\n      }\n      meta.type = type;\n      meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n      meta.order = dataset.order || 0;\n      meta.index = i;\n      meta.label = '' + dataset.label;\n      meta.visible = this.isDatasetVisible(i);\n      if (meta.controller) {\n        meta.controller.updateIndex(i);\n        meta.controller.linkScales();\n      } else {\n        const ControllerClass = registry.getController(type);\n        const {\n          datasetElementType,\n          dataElementType\n        } = _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.datasets[type];\n        Object.assign(ControllerClass, {\n          dataElementType: registry.getElement(dataElementType),\n          datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n        });\n        meta.controller = new ControllerClass(this, i);\n        newControllers.push(meta.controller);\n      }\n    }\n    this._updateMetasets();\n    return newControllers;\n  }\n  _resetElements() {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(this.data.datasets, (dataset, datasetIndex) => {\n      this.getDatasetMeta(datasetIndex).controller.reset();\n    }, this);\n  }\n  reset() {\n    this._resetElements();\n    this.notifyPlugins('reset');\n  }\n  update(mode) {\n    const config = this.config;\n    config.update();\n    const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n    const animsDisabled = this._animationsDisabled = !options.animation;\n    this._updateScales();\n    this._checkEventBindings();\n    this._updateHiddenIndices();\n    this._plugins.invalidate();\n    if (this.notifyPlugins('beforeUpdate', {\n      mode,\n      cancelable: true\n    }) === false) {\n      return;\n    }\n    const newControllers = this.buildOrUpdateControllers();\n    this.notifyPlugins('beforeElementsUpdate');\n    let minPadding = 0;\n    for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n      const {\n        controller\n      } = this.getDatasetMeta(i);\n      const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n      controller.buildOrUpdateElements(reset);\n      minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n    }\n    minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n    this._updateLayout(minPadding);\n    if (!animsDisabled) {\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(newControllers, controller => {\n        controller.reset();\n      });\n    }\n    this._updateDatasets(mode);\n    this.notifyPlugins('afterUpdate', {\n      mode\n    });\n    this._layers.sort(compare2Level('z', '_idx'));\n    const {\n      _active,\n      _lastEvent\n    } = this;\n    if (_lastEvent) {\n      this._eventHandler(_lastEvent, true);\n    } else if (_active.length) {\n      this._updateHoverStyles(_active, _active, true);\n    }\n    this.render();\n  }\n  _updateScales() {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(this.scales, scale => {\n      layouts.removeBox(this, scale);\n    });\n    this.ensureScalesHaveIDs();\n    this.buildOrUpdateScales();\n  }\n  _checkEventBindings() {\n    const options = this.options;\n    const existingEvents = new Set(Object.keys(this._listeners));\n    const newEvents = new Set(options.events);\n    if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ag)(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n      this.unbindEvents();\n      this.bindEvents();\n    }\n  }\n  _updateHiddenIndices() {\n    const {\n      _hiddenIndices\n    } = this;\n    const changes = this._getUniformDataChanges() || [];\n    for (const {\n      method,\n      start,\n      count\n    } of changes) {\n      const move = method === '_removeElements' ? -count : count;\n      moveNumericKeys(_hiddenIndices, start, move);\n    }\n  }\n  _getUniformDataChanges() {\n    const _dataChanges = this._dataChanges;\n    if (!_dataChanges || !_dataChanges.length) {\n      return;\n    }\n    this._dataChanges = [];\n    const datasetCount = this.data.datasets.length;\n    const makeSet = idx => new Set(_dataChanges.filter(c => c[0] === idx).map((c, i) => i + ',' + c.splice(1).join(',')));\n    const changeSet = makeSet(0);\n    for (let i = 1; i < datasetCount; i++) {\n      if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ag)(changeSet, makeSet(i))) {\n        return;\n      }\n    }\n    return Array.from(changeSet).map(c => c.split(',')).map(a => ({\n      method: a[1],\n      start: +a[2],\n      count: +a[3]\n    }));\n  }\n  _updateLayout(minPadding) {\n    if (this.notifyPlugins('beforeLayout', {\n      cancelable: true\n    }) === false) {\n      return;\n    }\n    layouts.update(this, this.width, this.height, minPadding);\n    const area = this.chartArea;\n    const noArea = area.width <= 0 || area.height <= 0;\n    this._layers = [];\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(this.boxes, box => {\n      if (noArea && box.position === 'chartArea') {\n        return;\n      }\n      if (box.configure) {\n        box.configure();\n      }\n      this._layers.push(...box._layers());\n    }, this);\n    this._layers.forEach((item, index) => {\n      item._idx = index;\n    });\n    this.notifyPlugins('afterLayout');\n  }\n  _updateDatasets(mode) {\n    if (this.notifyPlugins('beforeDatasetsUpdate', {\n      mode,\n      cancelable: true\n    }) === false) {\n      return;\n    }\n    for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n      this.getDatasetMeta(i).controller.configure();\n    }\n    for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n      this._updateDataset(i, (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a7)(mode) ? mode({\n        datasetIndex: i\n      }) : mode);\n    }\n    this.notifyPlugins('afterDatasetsUpdate', {\n      mode\n    });\n  }\n  _updateDataset(index, mode) {\n    const meta = this.getDatasetMeta(index);\n    const args = {\n      meta,\n      index,\n      mode,\n      cancelable: true\n    };\n    if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n      return;\n    }\n    meta.controller._update(mode);\n    args.cancelable = false;\n    this.notifyPlugins('afterDatasetUpdate', args);\n  }\n  render() {\n    if (this.notifyPlugins('beforeRender', {\n      cancelable: true\n    }) === false) {\n      return;\n    }\n    if (animator.has(this)) {\n      if (this.attached && !animator.running(this)) {\n        animator.start(this);\n      }\n    } else {\n      this.draw();\n      onAnimationsComplete({\n        chart: this\n      });\n    }\n  }\n  draw() {\n    let i;\n    if (this._resizeBeforeDraw) {\n      const {\n        width,\n        height\n      } = this._resizeBeforeDraw;\n      this._resizeBeforeDraw = null;\n      this._resize(width, height);\n    }\n    this.clear();\n    if (this.width <= 0 || this.height <= 0) {\n      return;\n    }\n    if (this.notifyPlugins('beforeDraw', {\n      cancelable: true\n    }) === false) {\n      return;\n    }\n    const layers = this._layers;\n    for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n      layers[i].draw(this.chartArea);\n    }\n    this._drawDatasets();\n    for (; i < layers.length; ++i) {\n      layers[i].draw(this.chartArea);\n    }\n    this.notifyPlugins('afterDraw');\n  }\n  _getSortedDatasetMetas(filterVisible) {\n    const metasets = this._sortedMetasets;\n    const result = [];\n    let i, ilen;\n    for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n      const meta = metasets[i];\n      if (!filterVisible || meta.visible) {\n        result.push(meta);\n      }\n    }\n    return result;\n  }\n  getSortedVisibleDatasetMetas() {\n    return this._getSortedDatasetMetas(true);\n  }\n  _drawDatasets() {\n    if (this.notifyPlugins('beforeDatasetsDraw', {\n      cancelable: true\n    }) === false) {\n      return;\n    }\n    const metasets = this.getSortedVisibleDatasetMetas();\n    for (let i = metasets.length - 1; i >= 0; --i) {\n      this._drawDataset(metasets[i]);\n    }\n    this.notifyPlugins('afterDatasetsDraw');\n  }\n  _drawDataset(meta) {\n    const ctx = this.ctx;\n    const args = {\n      meta,\n      index: meta.index,\n      cancelable: true\n    };\n    const clip = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ah)(this, meta);\n    if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n      return;\n    }\n    if (clip) {\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Y)(ctx, clip);\n    }\n    meta.controller.draw();\n    if (clip) {\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.$)(ctx);\n    }\n    args.cancelable = false;\n    this.notifyPlugins('afterDatasetDraw', args);\n  }\n  isPointInArea(point) {\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.C)(point, this.chartArea, this._minPadding);\n  }\n  getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n    const method = Interaction.modes[mode];\n    if (typeof method === 'function') {\n      return method(this, e, options, useFinalPosition);\n    }\n    return [];\n  }\n  getDatasetMeta(datasetIndex) {\n    const dataset = this.data.datasets[datasetIndex];\n    const metasets = this._metasets;\n    let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n    if (!meta) {\n      meta = {\n        type: null,\n        data: [],\n        dataset: null,\n        controller: null,\n        hidden: null,\n        xAxisID: null,\n        yAxisID: null,\n        order: dataset && dataset.order || 0,\n        index: datasetIndex,\n        _dataset: dataset,\n        _parsed: [],\n        _sorted: false\n      };\n      metasets.push(meta);\n    }\n    return meta;\n  }\n  getContext() {\n    return this.$context || (this.$context = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.j)(null, {\n      chart: this,\n      type: 'chart'\n    }));\n  }\n  getVisibleDatasetCount() {\n    return this.getSortedVisibleDatasetMetas().length;\n  }\n  isDatasetVisible(datasetIndex) {\n    const dataset = this.data.datasets[datasetIndex];\n    if (!dataset) {\n      return false;\n    }\n    const meta = this.getDatasetMeta(datasetIndex);\n    return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n  }\n  setDatasetVisibility(datasetIndex, visible) {\n    const meta = this.getDatasetMeta(datasetIndex);\n    meta.hidden = !visible;\n  }\n  toggleDataVisibility(index) {\n    this._hiddenIndices[index] = !this._hiddenIndices[index];\n  }\n  getDataVisibility(index) {\n    return !this._hiddenIndices[index];\n  }\n  _updateVisibility(datasetIndex, dataIndex, visible) {\n    const mode = visible ? 'show' : 'hide';\n    const meta = this.getDatasetMeta(datasetIndex);\n    const anims = meta.controller._resolveAnimations(undefined, mode);\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.h)(dataIndex)) {\n      meta.data[dataIndex].hidden = !visible;\n      this.update();\n    } else {\n      this.setDatasetVisibility(datasetIndex, visible);\n      anims.update(meta, {\n        visible\n      });\n      this.update(ctx => ctx.datasetIndex === datasetIndex ? mode : undefined);\n    }\n  }\n  hide(datasetIndex, dataIndex) {\n    this._updateVisibility(datasetIndex, dataIndex, false);\n  }\n  show(datasetIndex, dataIndex) {\n    this._updateVisibility(datasetIndex, dataIndex, true);\n  }\n  _destroyDatasetMeta(datasetIndex) {\n    const meta = this._metasets[datasetIndex];\n    if (meta && meta.controller) {\n      meta.controller._destroy();\n    }\n    delete this._metasets[datasetIndex];\n  }\n  _stop() {\n    let i, ilen;\n    this.stop();\n    animator.remove(this);\n    for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n      this._destroyDatasetMeta(i);\n    }\n  }\n  destroy() {\n    this.notifyPlugins('beforeDestroy');\n    const {\n      canvas,\n      ctx\n    } = this;\n    this._stop();\n    this.config.clearCache();\n    if (canvas) {\n      this.unbindEvents();\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.af)(canvas, ctx);\n      this.platform.releaseContext(ctx);\n      this.canvas = null;\n      this.ctx = null;\n    }\n    delete instances[this.id];\n    this.notifyPlugins('afterDestroy');\n  }\n  toBase64Image(...args) {\n    return this.canvas.toDataURL(...args);\n  }\n  bindEvents() {\n    this.bindUserEvents();\n    if (this.options.responsive) {\n      this.bindResponsiveEvents();\n    } else {\n      this.attached = true;\n    }\n  }\n  bindUserEvents() {\n    const listeners = this._listeners;\n    const platform = this.platform;\n    const _add = (type, listener) => {\n      platform.addEventListener(this, type, listener);\n      listeners[type] = listener;\n    };\n    const listener = (e, x, y) => {\n      e.offsetX = x;\n      e.offsetY = y;\n      this._eventHandler(e);\n    };\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(this.options.events, type => _add(type, listener));\n  }\n  bindResponsiveEvents() {\n    if (!this._responsiveListeners) {\n      this._responsiveListeners = {};\n    }\n    const listeners = this._responsiveListeners;\n    const platform = this.platform;\n    const _add = (type, listener) => {\n      platform.addEventListener(this, type, listener);\n      listeners[type] = listener;\n    };\n    const _remove = (type, listener) => {\n      if (listeners[type]) {\n        platform.removeEventListener(this, type, listener);\n        delete listeners[type];\n      }\n    };\n    const listener = (width, height) => {\n      if (this.canvas) {\n        this.resize(width, height);\n      }\n    };\n    let detached;\n    const attached = () => {\n      _remove('attach', attached);\n      this.attached = true;\n      this.resize();\n      _add('resize', listener);\n      _add('detach', detached);\n    };\n    detached = () => {\n      this.attached = false;\n      _remove('resize', listener);\n      this._stop();\n      this._resize(0, 0);\n      _add('attach', attached);\n    };\n    if (platform.isAttached(this.canvas)) {\n      attached();\n    } else {\n      detached();\n    }\n  }\n  unbindEvents() {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(this._listeners, (listener, type) => {\n      this.platform.removeEventListener(this, type, listener);\n    });\n    this._listeners = {};\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(this._responsiveListeners, (listener, type) => {\n      this.platform.removeEventListener(this, type, listener);\n    });\n    this._responsiveListeners = undefined;\n  }\n  updateHoverStyle(items, mode, enabled) {\n    const prefix = enabled ? 'set' : 'remove';\n    let meta, item, i, ilen;\n    if (mode === 'dataset') {\n      meta = this.getDatasetMeta(items[0].datasetIndex);\n      meta.controller['_' + prefix + 'DatasetHoverStyle']();\n    }\n    for (i = 0, ilen = items.length; i < ilen; ++i) {\n      item = items[i];\n      const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n      if (controller) {\n        controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n      }\n    }\n  }\n  getActiveElements() {\n    return this._active || [];\n  }\n  setActiveElements(activeElements) {\n    const lastActive = this._active || [];\n    const active = activeElements.map(({\n      datasetIndex,\n      index\n    }) => {\n      const meta = this.getDatasetMeta(datasetIndex);\n      if (!meta) {\n        throw new Error('No dataset found at index ' + datasetIndex);\n      }\n      return {\n        datasetIndex,\n        element: meta.data[index],\n        index\n      };\n    });\n    const changed = !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ai)(active, lastActive);\n    if (changed) {\n      this._active = active;\n      this._lastEvent = null;\n      this._updateHoverStyles(active, lastActive);\n    }\n  }\n  notifyPlugins(hook, args, filter) {\n    return this._plugins.notify(this, hook, args, filter);\n  }\n  isPluginEnabled(pluginId) {\n    return this._plugins._cache.filter(p => p.plugin.id === pluginId).length === 1;\n  }\n  _updateHoverStyles(active, lastActive, replay) {\n    const hoverOptions = this.options.hover;\n    const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n    const deactivated = diff(lastActive, active);\n    const activated = replay ? active : diff(active, lastActive);\n    if (deactivated.length) {\n      this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n    }\n    if (activated.length && hoverOptions.mode) {\n      this.updateHoverStyle(activated, hoverOptions.mode, true);\n    }\n  }\n  _eventHandler(e, replay) {\n    const args = {\n      event: e,\n      replay,\n      cancelable: true,\n      inChartArea: this.isPointInArea(e)\n    };\n    const eventFilter = plugin => (plugin.options.events || this.options.events).includes(e.native.type);\n    if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n      return;\n    }\n    const changed = this._handleEvent(e, replay, args.inChartArea);\n    args.cancelable = false;\n    this.notifyPlugins('afterEvent', args, eventFilter);\n    if (changed || args.changed) {\n      this.render();\n    }\n    return this;\n  }\n  _handleEvent(e, replay, inChartArea) {\n    const {\n      _active: lastActive = [],\n      options\n    } = this;\n    const useFinalPosition = replay;\n    const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n    const isClick = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aj)(e);\n    const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n    if (inChartArea) {\n      this._lastEvent = null;\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(options.onHover, [e, active, this], this);\n      if (isClick) {\n        (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(options.onClick, [e, active, this], this);\n      }\n    }\n    const changed = !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ai)(active, lastActive);\n    if (changed || replay) {\n      this._active = active;\n      this._updateHoverStyles(active, lastActive, replay);\n    }\n    this._lastEvent = lastEvent;\n    return changed;\n  }\n  _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n    if (e.type === 'mouseout') {\n      return [];\n    }\n    if (!inChartArea) {\n      return lastActive;\n    }\n    const hoverOptions = this.options.hover;\n    return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n  }\n}\nfunction invalidatePlugins() {\n  return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(Chart.instances, chart => chart._plugins.invalidate());\n}\nfunction clipSelf(ctx, element, endAngle) {\n  const {\n    startAngle,\n    x,\n    y,\n    outerRadius,\n    innerRadius,\n    options\n  } = element;\n  const {\n    borderWidth,\n    borderJoinStyle\n  } = options;\n  const outerAngleClip = Math.min(borderWidth / outerRadius, (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.al)(startAngle - endAngle));\n  ctx.beginPath();\n  ctx.arc(x, y, outerRadius - borderWidth / 2, startAngle + outerAngleClip / 2, endAngle - outerAngleClip / 2);\n  if (innerRadius > 0) {\n    const innerAngleClip = Math.min(borderWidth / innerRadius, (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.al)(startAngle - endAngle));\n    ctx.arc(x, y, innerRadius + borderWidth / 2, endAngle - innerAngleClip / 2, startAngle + innerAngleClip / 2, true);\n  } else {\n    const clipWidth = Math.min(borderWidth / 2, outerRadius * (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.al)(startAngle - endAngle));\n    if (borderJoinStyle === 'round') {\n      ctx.arc(x, y, clipWidth, endAngle - _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P / 2, startAngle + _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P / 2, true);\n    } else if (borderJoinStyle === 'bevel') {\n      const r = 2 * clipWidth * clipWidth;\n      const endX = -r * Math.cos(endAngle + _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P / 2) + x;\n      const endY = -r * Math.sin(endAngle + _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P / 2) + y;\n      const startX = r * Math.cos(startAngle + _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P / 2) + x;\n      const startY = r * Math.sin(startAngle + _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P / 2) + y;\n      ctx.lineTo(endX, endY);\n      ctx.lineTo(startX, startY);\n    }\n  }\n  ctx.closePath();\n  ctx.moveTo(0, 0);\n  ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height);\n  ctx.clip('evenodd');\n}\nfunction clipArc(ctx, element, endAngle) {\n  const {\n    startAngle,\n    pixelMargin,\n    x,\n    y,\n    outerRadius,\n    innerRadius\n  } = element;\n  let angleMargin = pixelMargin / outerRadius;\n  // Draw an inner border by clipping the arc and drawing a double-width border\n  // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n  ctx.beginPath();\n  ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n  if (innerRadius > pixelMargin) {\n    angleMargin = pixelMargin / innerRadius;\n    ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n  } else {\n    ctx.arc(x, y, pixelMargin, endAngle + _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.H, startAngle - _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.H);\n  }\n  ctx.closePath();\n  ctx.clip();\n}\nfunction toRadiusCorners(value) {\n  return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.am)(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\n/**\n * Parse border radius from the provided options\n */\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n  const o = toRadiusCorners(arc.options.borderRadius);\n  const halfThickness = (outerRadius - innerRadius) / 2;\n  const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n  // Outer limits are complicated. We want to compute the available angular distance at\n  // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n  // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n  //\n  // If the borderRadius is large, that value can become negative.\n  // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n  // we know that the thickness term will dominate and compute the limits at that point\n  const computeOuterLimit = val => {\n    const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)(val, 0, Math.min(halfThickness, outerArcLimit));\n  };\n  return {\n    outerStart: computeOuterLimit(o.outerStart),\n    outerEnd: computeOuterLimit(o.outerEnd),\n    innerStart: (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)(o.innerStart, 0, innerLimit),\n    innerEnd: (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)(o.innerEnd, 0, innerLimit)\n  };\n}\n/**\n * Convert (r, 𝜃) to (x, y)\n */\nfunction rThetaToXY(r, theta, x, y) {\n  return {\n    x: x + r * Math.cos(theta),\n    y: y + r * Math.sin(theta)\n  };\n}\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n *   Start      End\n *\n *    1--->a--->2    Outer\n *   /           \\\n *   8           3\n *   |           |\n *   |           |\n *   7           4\n *   \\           /\n *    6<---b<---5    Inner\n */\nfunction pathArc(ctx, element, offset, spacing, end, circular) {\n  const {\n    x,\n    y,\n    startAngle: start,\n    pixelMargin,\n    innerRadius: innerR\n  } = element;\n  const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n  const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n  let spacingOffset = 0;\n  const alpha = end - start;\n  if (spacing) {\n    // When spacing is present, it is the same for all items\n    // So we adjust the start and end angle of the arc such that\n    // the distance is the same as it would be without the spacing\n    const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n    const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n    const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n    const adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n    spacingOffset = (alpha - adjustedAngle) / 2;\n  }\n  const beta = Math.max(0.001, alpha * outerRadius - offset / _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P) / outerRadius;\n  const angleOffset = (alpha - beta) / 2;\n  const startAngle = start + angleOffset + spacingOffset;\n  const endAngle = end - angleOffset - spacingOffset;\n  const {\n    outerStart,\n    outerEnd,\n    innerStart,\n    innerEnd\n  } = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n  const outerStartAdjustedRadius = outerRadius - outerStart;\n  const outerEndAdjustedRadius = outerRadius - outerEnd;\n  const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n  const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n  const innerStartAdjustedRadius = innerRadius + innerStart;\n  const innerEndAdjustedRadius = innerRadius + innerEnd;\n  const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n  const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n  ctx.beginPath();\n  if (circular) {\n    // The first arc segments from point 1 to point a to point 2\n    const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n    ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n    ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n    // The corner segment from point 2 to point 3\n    if (outerEnd > 0) {\n      const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n      ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.H);\n    }\n    // The line from point 3 to point 4\n    const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n    ctx.lineTo(p4.x, p4.y);\n    // The corner segment from point 4 to point 5\n    if (innerEnd > 0) {\n      const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n      ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.H, innerEndAdjustedAngle + Math.PI);\n    }\n    // The inner arc from point 5 to point b to point 6\n    const innerMidAdjustedAngle = (endAngle - innerEnd / innerRadius + (startAngle + innerStart / innerRadius)) / 2;\n    ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, innerMidAdjustedAngle, true);\n    ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + innerStart / innerRadius, true);\n    // The corner segment from point 6 to point 7\n    if (innerStart > 0) {\n      const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n      ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.H);\n    }\n    // The line from point 7 to point 8\n    const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n    ctx.lineTo(p8.x, p8.y);\n    // The corner segment from point 8 to point 1\n    if (outerStart > 0) {\n      const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n      ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.H, outerStartAdjustedAngle);\n    }\n  } else {\n    ctx.moveTo(x, y);\n    const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n    const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n    ctx.lineTo(outerStartX, outerStartY);\n    const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n    const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n    ctx.lineTo(outerEndX, outerEndY);\n  }\n  ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n  const {\n    fullCircles,\n    startAngle,\n    circumference\n  } = element;\n  let endAngle = element.endAngle;\n  if (fullCircles) {\n    pathArc(ctx, element, offset, spacing, endAngle, circular);\n    for (let i = 0; i < fullCircles; ++i) {\n      ctx.fill();\n    }\n    if (!isNaN(circumference)) {\n      endAngle = startAngle + (circumference % _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T || _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T);\n    }\n  }\n  pathArc(ctx, element, offset, spacing, endAngle, circular);\n  ctx.fill();\n  return endAngle;\n}\nfunction drawBorder(ctx, element, offset, spacing, circular) {\n  const {\n    fullCircles,\n    startAngle,\n    circumference,\n    options\n  } = element;\n  const {\n    borderWidth,\n    borderJoinStyle,\n    borderDash,\n    borderDashOffset,\n    borderRadius\n  } = options;\n  const inner = options.borderAlign === 'inner';\n  if (!borderWidth) {\n    return;\n  }\n  ctx.setLineDash(borderDash || []);\n  ctx.lineDashOffset = borderDashOffset;\n  if (inner) {\n    ctx.lineWidth = borderWidth * 2;\n    ctx.lineJoin = borderJoinStyle || 'round';\n  } else {\n    ctx.lineWidth = borderWidth;\n    ctx.lineJoin = borderJoinStyle || 'bevel';\n  }\n  let endAngle = element.endAngle;\n  if (fullCircles) {\n    pathArc(ctx, element, offset, spacing, endAngle, circular);\n    for (let i = 0; i < fullCircles; ++i) {\n      ctx.stroke();\n    }\n    if (!isNaN(circumference)) {\n      endAngle = startAngle + (circumference % _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T || _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T);\n    }\n  }\n  if (inner) {\n    clipArc(ctx, element, endAngle);\n  }\n  if (options.selfJoin && endAngle - startAngle >= _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P && borderRadius === 0 && borderJoinStyle !== 'miter') {\n    clipSelf(ctx, element, endAngle);\n  }\n  if (!fullCircles) {\n    pathArc(ctx, element, offset, spacing, endAngle, circular);\n    ctx.stroke();\n  }\n}\nclass ArcElement extends Element {\n  static id = 'arc';\n  static defaults = {\n    borderAlign: 'center',\n    borderColor: '#fff',\n    borderDash: [],\n    borderDashOffset: 0,\n    borderJoinStyle: undefined,\n    borderRadius: 0,\n    borderWidth: 2,\n    offset: 0,\n    spacing: 0,\n    angle: undefined,\n    circular: true,\n    selfJoin: false\n  };\n  static defaultRoutes = {\n    backgroundColor: 'backgroundColor'\n  };\n  static descriptors = {\n    _scriptable: true,\n    _indexable: name => name !== 'borderDash'\n  };\n  circumference;\n  endAngle;\n  fullCircles;\n  innerRadius;\n  outerRadius;\n  pixelMargin;\n  startAngle;\n  constructor(cfg) {\n    super();\n    this.options = undefined;\n    this.circumference = undefined;\n    this.startAngle = undefined;\n    this.endAngle = undefined;\n    this.innerRadius = undefined;\n    this.outerRadius = undefined;\n    this.pixelMargin = 0;\n    this.fullCircles = 0;\n    if (cfg) {\n      Object.assign(this, cfg);\n    }\n  }\n  inRange(chartX, chartY, useFinalPosition) {\n    const point = this.getProps(['x', 'y'], useFinalPosition);\n    const {\n      angle,\n      distance\n    } = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.D)(point, {\n      x: chartX,\n      y: chartY\n    });\n    const {\n      startAngle,\n      endAngle,\n      innerRadius,\n      outerRadius,\n      circumference\n    } = this.getProps(['startAngle', 'endAngle', 'innerRadius', 'outerRadius', 'circumference'], useFinalPosition);\n    const rAdjust = (this.options.spacing + this.options.borderWidth) / 2;\n    const _circumference = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(circumference, endAngle - startAngle);\n    const nonZeroBetween = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.p)(angle, startAngle, endAngle) && startAngle !== endAngle;\n    const betweenAngles = _circumference >= _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T || nonZeroBetween;\n    const withinRadius = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ak)(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n    return betweenAngles && withinRadius;\n  }\n  getCenterPoint(useFinalPosition) {\n    const {\n      x,\n      y,\n      startAngle,\n      endAngle,\n      innerRadius,\n      outerRadius\n    } = this.getProps(['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius'], useFinalPosition);\n    const {\n      offset,\n      spacing\n    } = this.options;\n    const halfAngle = (startAngle + endAngle) / 2;\n    const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n    return {\n      x: x + Math.cos(halfAngle) * halfRadius,\n      y: y + Math.sin(halfAngle) * halfRadius\n    };\n  }\n  tooltipPosition(useFinalPosition) {\n    return this.getCenterPoint(useFinalPosition);\n  }\n  draw(ctx) {\n    const {\n      options,\n      circumference\n    } = this;\n    const offset = (options.offset || 0) / 4;\n    const spacing = (options.spacing || 0) / 2;\n    const circular = options.circular;\n    this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n    this.fullCircles = circumference > _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T ? Math.floor(circumference / _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T) : 0;\n    if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n      return;\n    }\n    ctx.save();\n    const halfAngle = (this.startAngle + this.endAngle) / 2;\n    ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n    const fix = 1 - Math.sin(Math.min(_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P, circumference || 0));\n    const radiusOffset = offset * fix;\n    ctx.fillStyle = options.backgroundColor;\n    ctx.strokeStyle = options.borderColor;\n    drawArc(ctx, this, radiusOffset, spacing, circular);\n    drawBorder(ctx, this, radiusOffset, spacing, circular);\n    ctx.restore();\n  }\n}\nfunction setStyle(ctx, options, style = options) {\n  ctx.lineCap = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(style.borderCapStyle, options.borderCapStyle);\n  ctx.setLineDash((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(style.borderDash, options.borderDash));\n  ctx.lineDashOffset = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(style.borderDashOffset, options.borderDashOffset);\n  ctx.lineJoin = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(style.borderJoinStyle, options.borderJoinStyle);\n  ctx.lineWidth = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(style.borderWidth, options.borderWidth);\n  ctx.strokeStyle = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n  ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n  if (options.stepped) {\n    return _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.at;\n  }\n  if (options.tension || options.cubicInterpolationMode === 'monotone') {\n    return _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.au;\n  }\n  return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n  const count = points.length;\n  const {\n    start: paramsStart = 0,\n    end: paramsEnd = count - 1\n  } = params;\n  const {\n    start: segmentStart,\n    end: segmentEnd\n  } = segment;\n  const start = Math.max(paramsStart, segmentStart);\n  const end = Math.min(paramsEnd, segmentEnd);\n  const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n  return {\n    count,\n    start,\n    loop: segment.loop,\n    ilen: end < start && !outside ? count + end - start : end - start\n  };\n}\nfunction pathSegment(ctx, line, segment, params) {\n  const {\n    points,\n    options\n  } = line;\n  const {\n    count,\n    start,\n    loop,\n    ilen\n  } = pathVars(points, segment, params);\n  const lineMethod = getLineMethod(options);\n  let {\n    move = true,\n    reverse\n  } = params || {};\n  let i, point, prev;\n  for (i = 0; i <= ilen; ++i) {\n    point = points[(start + (reverse ? ilen - i : i)) % count];\n    if (point.skip) {\n      continue;\n    } else if (move) {\n      ctx.moveTo(point.x, point.y);\n      move = false;\n    } else {\n      lineMethod(ctx, prev, point, reverse, options.stepped);\n    }\n    prev = point;\n  }\n  if (loop) {\n    point = points[(start + (reverse ? ilen : 0)) % count];\n    lineMethod(ctx, prev, point, reverse, options.stepped);\n  }\n  return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n  const points = line.points;\n  const {\n    count,\n    start,\n    ilen\n  } = pathVars(points, segment, params);\n  const {\n    move = true,\n    reverse\n  } = params || {};\n  let avgX = 0;\n  let countX = 0;\n  let i, point, prevX, minY, maxY, lastY;\n  const pointIndex = index => (start + (reverse ? ilen - index : index)) % count;\n  const drawX = () => {\n    if (minY !== maxY) {\n      ctx.lineTo(avgX, maxY);\n      ctx.lineTo(avgX, minY);\n      ctx.lineTo(avgX, lastY);\n    }\n  };\n  if (move) {\n    point = points[pointIndex(0)];\n    ctx.moveTo(point.x, point.y);\n  }\n  for (i = 0; i <= ilen; ++i) {\n    point = points[pointIndex(i)];\n    if (point.skip) {\n      continue;\n    }\n    const x = point.x;\n    const y = point.y;\n    const truncX = x | 0;\n    if (truncX === prevX) {\n      if (y < minY) {\n        minY = y;\n      } else if (y > maxY) {\n        maxY = y;\n      }\n      avgX = (countX * avgX + x) / ++countX;\n    } else {\n      drawX();\n      ctx.lineTo(x, y);\n      prevX = truncX;\n      countX = 0;\n      minY = maxY = y;\n    }\n    lastY = y;\n  }\n  drawX();\n}\nfunction _getSegmentMethod(line) {\n  const opts = line.options;\n  const borderDash = opts.borderDash && opts.borderDash.length;\n  const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n  return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n  if (options.stepped) {\n    return _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aq;\n  }\n  if (options.tension || options.cubicInterpolationMode === 'monotone') {\n    return _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ar;\n  }\n  return _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.as;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n  let path = line._path;\n  if (!path) {\n    path = line._path = new Path2D();\n    if (line.path(path, start, count)) {\n      path.closePath();\n    }\n  }\n  setStyle(ctx, line.options);\n  ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n  const {\n    segments,\n    options\n  } = line;\n  const segmentMethod = _getSegmentMethod(line);\n  for (const segment of segments) {\n    setStyle(ctx, options, segment.style);\n    ctx.beginPath();\n    if (segmentMethod(ctx, line, segment, {\n      start,\n      end: start + count - 1\n    })) {\n      ctx.closePath();\n    }\n    ctx.stroke();\n  }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n  if (usePath2D && !line.options.segment) {\n    strokePathWithCache(ctx, line, start, count);\n  } else {\n    strokePathDirect(ctx, line, start, count);\n  }\n}\nclass LineElement extends Element {\n  static id = 'line';\n  static defaults = {\n    borderCapStyle: 'butt',\n    borderDash: [],\n    borderDashOffset: 0,\n    borderJoinStyle: 'miter',\n    borderWidth: 3,\n    capBezierPoints: true,\n    cubicInterpolationMode: 'default',\n    fill: false,\n    spanGaps: false,\n    stepped: false,\n    tension: 0\n  };\n  static defaultRoutes = {\n    backgroundColor: 'backgroundColor',\n    borderColor: 'borderColor'\n  };\n  static descriptors = {\n    _scriptable: true,\n    _indexable: name => name !== 'borderDash' && name !== 'fill'\n  };\n  constructor(cfg) {\n    super();\n    this.animated = true;\n    this.options = undefined;\n    this._chart = undefined;\n    this._loop = undefined;\n    this._fullLoop = undefined;\n    this._path = undefined;\n    this._points = undefined;\n    this._segments = undefined;\n    this._decimated = false;\n    this._pointsUpdated = false;\n    this._datasetIndex = undefined;\n    if (cfg) {\n      Object.assign(this, cfg);\n    }\n  }\n  updateControlPoints(chartArea, indexAxis) {\n    const options = this.options;\n    if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n      const loop = options.spanGaps ? this._loop : this._fullLoop;\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.an)(this._points, options, chartArea, loop, indexAxis);\n      this._pointsUpdated = true;\n    }\n  }\n  set points(points) {\n    this._points = points;\n    delete this._segments;\n    delete this._path;\n    this._pointsUpdated = false;\n  }\n  get points() {\n    return this._points;\n  }\n  get segments() {\n    return this._segments || (this._segments = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ao)(this, this.options.segment));\n  }\n  first() {\n    const segments = this.segments;\n    const points = this.points;\n    return segments.length && points[segments[0].start];\n  }\n  last() {\n    const segments = this.segments;\n    const points = this.points;\n    const count = segments.length;\n    return count && points[segments[count - 1].end];\n  }\n  interpolate(point, property) {\n    const options = this.options;\n    const value = point[property];\n    const points = this.points;\n    const segments = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ap)(this, {\n      property,\n      start: value,\n      end: value\n    });\n    if (!segments.length) {\n      return;\n    }\n    const result = [];\n    const _interpolate = _getInterpolationMethod(options);\n    let i, ilen;\n    for (i = 0, ilen = segments.length; i < ilen; ++i) {\n      const {\n        start,\n        end\n      } = segments[i];\n      const p1 = points[start];\n      const p2 = points[end];\n      if (p1 === p2) {\n        result.push(p1);\n        continue;\n      }\n      const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n      const interpolated = _interpolate(p1, p2, t, options.stepped);\n      interpolated[property] = point[property];\n      result.push(interpolated);\n    }\n    return result.length === 1 ? result[0] : result;\n  }\n  pathSegment(ctx, segment, params) {\n    const segmentMethod = _getSegmentMethod(this);\n    return segmentMethod(ctx, this, segment, params);\n  }\n  path(ctx, start, count) {\n    const segments = this.segments;\n    const segmentMethod = _getSegmentMethod(this);\n    let loop = this._loop;\n    start = start || 0;\n    count = count || this.points.length - start;\n    for (const segment of segments) {\n      loop &= segmentMethod(ctx, this, segment, {\n        start,\n        end: start + count - 1\n      });\n    }\n    return !!loop;\n  }\n  draw(ctx, chartArea, start, count) {\n    const options = this.options || {};\n    const points = this.points || [];\n    if (points.length && options.borderWidth) {\n      ctx.save();\n      draw(ctx, this, start, count);\n      ctx.restore();\n    }\n    if (this.animated) {\n      this._pointsUpdated = false;\n      this._path = undefined;\n    }\n  }\n}\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n  const options = el.options;\n  const {\n    [axis]: value\n  } = el.getProps([axis], useFinalPosition);\n  return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\nclass PointElement extends Element {\n  static id = 'point';\n  parsed;\n  skip;\n  stop;\n  /**\n  * @type {any}\n  */\n  static defaults = {\n    borderWidth: 1,\n    hitRadius: 1,\n    hoverBorderWidth: 1,\n    hoverRadius: 4,\n    pointStyle: 'circle',\n    radius: 3,\n    rotation: 0\n  };\n  /**\n  * @type {any}\n  */\n  static defaultRoutes = {\n    backgroundColor: 'backgroundColor',\n    borderColor: 'borderColor'\n  };\n  constructor(cfg) {\n    super();\n    this.options = undefined;\n    this.parsed = undefined;\n    this.skip = undefined;\n    this.stop = undefined;\n    if (cfg) {\n      Object.assign(this, cfg);\n    }\n  }\n  inRange(mouseX, mouseY, useFinalPosition) {\n    const options = this.options;\n    const {\n      x,\n      y\n    } = this.getProps(['x', 'y'], useFinalPosition);\n    return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n  }\n  inXRange(mouseX, useFinalPosition) {\n    return inRange$1(this, mouseX, 'x', useFinalPosition);\n  }\n  inYRange(mouseY, useFinalPosition) {\n    return inRange$1(this, mouseY, 'y', useFinalPosition);\n  }\n  getCenterPoint(useFinalPosition) {\n    const {\n      x,\n      y\n    } = this.getProps(['x', 'y'], useFinalPosition);\n    return {\n      x,\n      y\n    };\n  }\n  size(options) {\n    options = options || this.options || {};\n    let radius = options.radius || 0;\n    radius = Math.max(radius, radius && options.hoverRadius || 0);\n    const borderWidth = radius && options.borderWidth || 0;\n    return (radius + borderWidth) * 2;\n  }\n  draw(ctx, area) {\n    const options = this.options;\n    if (this.skip || options.radius < 0.1 || !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.C)(this, area, this.size(options) / 2)) {\n      return;\n    }\n    ctx.strokeStyle = options.borderColor;\n    ctx.lineWidth = options.borderWidth;\n    ctx.fillStyle = options.backgroundColor;\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.av)(ctx, options, this.x, this.y);\n  }\n  getRange() {\n    const options = this.options || {};\n    // @ts-expect-error Fallbacks should never be hit in practice\n    return options.radius + options.hitRadius;\n  }\n}\nfunction getBarBounds(bar, useFinalPosition) {\n  const {\n    x,\n    y,\n    base,\n    width,\n    height\n  } = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n  let left, right, top, bottom, half;\n  if (bar.horizontal) {\n    half = height / 2;\n    left = Math.min(x, base);\n    right = Math.max(x, base);\n    top = y - half;\n    bottom = y + half;\n  } else {\n    half = width / 2;\n    left = x - half;\n    right = x + half;\n    top = Math.min(y, base);\n    bottom = Math.max(y, base);\n  }\n  return {\n    left,\n    top,\n    right,\n    bottom\n  };\n}\nfunction skipOrLimit(skip, value, min, max) {\n  return skip ? 0 : (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n  const value = bar.options.borderWidth;\n  const skip = bar.borderSkipped;\n  const o = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ax)(value);\n  return {\n    t: skipOrLimit(skip.top, o.top, 0, maxH),\n    r: skipOrLimit(skip.right, o.right, 0, maxW),\n    b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n    l: skipOrLimit(skip.left, o.left, 0, maxW)\n  };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n  const {\n    enableBorderRadius\n  } = bar.getProps(['enableBorderRadius']);\n  const value = bar.options.borderRadius;\n  const o = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ay)(value);\n  const maxR = Math.min(maxW, maxH);\n  const skip = bar.borderSkipped;\n  const enableBorder = enableBorderRadius || (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(value);\n  return {\n    topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n    topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n    bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n    bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n  };\n}\nfunction boundingRects(bar) {\n  const bounds = getBarBounds(bar);\n  const width = bounds.right - bounds.left;\n  const height = bounds.bottom - bounds.top;\n  const border = parseBorderWidth(bar, width / 2, height / 2);\n  const radius = parseBorderRadius(bar, width / 2, height / 2);\n  return {\n    outer: {\n      x: bounds.left,\n      y: bounds.top,\n      w: width,\n      h: height,\n      radius\n    },\n    inner: {\n      x: bounds.left + border.l,\n      y: bounds.top + border.t,\n      w: width - border.l - border.r,\n      h: height - border.t - border.b,\n      radius: {\n        topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n        topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n        bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n        bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n      }\n    }\n  };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n  const skipX = x === null;\n  const skipY = y === null;\n  const skipBoth = skipX && skipY;\n  const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n  return bounds && (skipX || (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ak)(x, bounds.left, bounds.right)) && (skipY || (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ak)(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n  return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n  ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n  const x = rect.x !== refRect.x ? -amount : 0;\n  const y = rect.y !== refRect.y ? -amount : 0;\n  const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n  const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n  return {\n    x: rect.x + x,\n    y: rect.y + y,\n    w: rect.w + w,\n    h: rect.h + h,\n    radius: rect.radius\n  };\n}\nclass BarElement extends Element {\n  static id = 'bar';\n  static defaults = {\n    borderSkipped: 'start',\n    borderWidth: 0,\n    borderRadius: 0,\n    inflateAmount: 'auto',\n    pointStyle: undefined\n  };\n  static defaultRoutes = {\n    backgroundColor: 'backgroundColor',\n    borderColor: 'borderColor'\n  };\n  constructor(cfg) {\n    super();\n    this.options = undefined;\n    this.horizontal = undefined;\n    this.base = undefined;\n    this.width = undefined;\n    this.height = undefined;\n    this.inflateAmount = undefined;\n    if (cfg) {\n      Object.assign(this, cfg);\n    }\n  }\n  draw(ctx) {\n    const {\n      inflateAmount,\n      options: {\n        borderColor,\n        backgroundColor\n      }\n    } = this;\n    const {\n      inner,\n      outer\n    } = boundingRects(this);\n    const addRectPath = hasRadius(outer.radius) ? _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aw : addNormalRectPath;\n    ctx.save();\n    if (outer.w !== inner.w || outer.h !== inner.h) {\n      ctx.beginPath();\n      addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n      ctx.clip();\n      addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n      ctx.fillStyle = borderColor;\n      ctx.fill('evenodd');\n    }\n    ctx.beginPath();\n    addRectPath(ctx, inflateRect(inner, inflateAmount));\n    ctx.fillStyle = backgroundColor;\n    ctx.fill();\n    ctx.restore();\n  }\n  inRange(mouseX, mouseY, useFinalPosition) {\n    return inRange(this, mouseX, mouseY, useFinalPosition);\n  }\n  inXRange(mouseX, useFinalPosition) {\n    return inRange(this, mouseX, null, useFinalPosition);\n  }\n  inYRange(mouseY, useFinalPosition) {\n    return inRange(this, null, mouseY, useFinalPosition);\n  }\n  getCenterPoint(useFinalPosition) {\n    const {\n      x,\n      y,\n      base,\n      horizontal\n    } = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n    return {\n      x: horizontal ? (x + base) / 2 : x,\n      y: horizontal ? y : (y + base) / 2\n    };\n  }\n  getRange(axis) {\n    return axis === 'x' ? this.width / 2 : this.height / 2;\n  }\n}\nvar elements = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  ArcElement: ArcElement,\n  BarElement: BarElement,\n  LineElement: LineElement,\n  PointElement: PointElement\n});\nconst BORDER_COLORS = ['rgb(54, 162, 235)', 'rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(153, 102, 255)', 'rgb(201, 203, 207)' // grey\n];\n// Border colors with 50% transparency\nconst BACKGROUND_COLORS = /* #__PURE__ */BORDER_COLORS.map(color => color.replace('rgb(', 'rgba(').replace(')', ', 0.5)'));\nfunction getBorderColor(i) {\n  return BORDER_COLORS[i % BORDER_COLORS.length];\n}\nfunction getBackgroundColor(i) {\n  return BACKGROUND_COLORS[i % BACKGROUND_COLORS.length];\n}\nfunction colorizeDefaultDataset(dataset, i) {\n  dataset.borderColor = getBorderColor(i);\n  dataset.backgroundColor = getBackgroundColor(i);\n  return ++i;\n}\nfunction colorizeDoughnutDataset(dataset, i) {\n  dataset.backgroundColor = dataset.data.map(() => getBorderColor(i++));\n  return i;\n}\nfunction colorizePolarAreaDataset(dataset, i) {\n  dataset.backgroundColor = dataset.data.map(() => getBackgroundColor(i++));\n  return i;\n}\nfunction getColorizer(chart) {\n  let i = 0;\n  return (dataset, datasetIndex) => {\n    const controller = chart.getDatasetMeta(datasetIndex).controller;\n    if (controller instanceof DoughnutController) {\n      i = colorizeDoughnutDataset(dataset, i);\n    } else if (controller instanceof PolarAreaController) {\n      i = colorizePolarAreaDataset(dataset, i);\n    } else if (controller) {\n      i = colorizeDefaultDataset(dataset, i);\n    }\n  };\n}\nfunction containsColorsDefinitions(descriptors) {\n  let k;\n  for (k in descriptors) {\n    if (descriptors[k].borderColor || descriptors[k].backgroundColor) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction containsColorsDefinition(descriptor) {\n  return descriptor && (descriptor.borderColor || descriptor.backgroundColor);\n}\nfunction containsDefaultColorsDefenitions() {\n  return _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.borderColor !== 'rgba(0,0,0,0.1)' || _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.backgroundColor !== 'rgba(0,0,0,0.1)';\n}\nvar plugin_colors = {\n  id: 'colors',\n  defaults: {\n    enabled: true,\n    forceOverride: false\n  },\n  beforeLayout(chart, _args, options) {\n    if (!options.enabled) {\n      return;\n    }\n    const {\n      data: {\n        datasets\n      },\n      options: chartOptions\n    } = chart.config;\n    const {\n      elements\n    } = chartOptions;\n    const containsColorDefenition = containsColorsDefinitions(datasets) || containsColorsDefinition(chartOptions) || elements && containsColorsDefinitions(elements) || containsDefaultColorsDefenitions();\n    if (!options.forceOverride && containsColorDefenition) {\n      return;\n    }\n    const colorizer = getColorizer(chart);\n    datasets.forEach(colorizer);\n  }\n};\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n  const samples = options.samples || availableWidth;\n  if (samples >= count) {\n    return data.slice(start, start + count);\n  }\n  const decimated = [];\n  const bucketWidth = (count - 2) / (samples - 2);\n  let sampledIndex = 0;\n  const endIndex = start + count - 1;\n  let a = start;\n  let i, maxAreaPoint, maxArea, area, nextA;\n  decimated[sampledIndex++] = data[a];\n  for (i = 0; i < samples - 2; i++) {\n    let avgX = 0;\n    let avgY = 0;\n    let j;\n    const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n    const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n    const avgRangeLength = avgRangeEnd - avgRangeStart;\n    for (j = avgRangeStart; j < avgRangeEnd; j++) {\n      avgX += data[j].x;\n      avgY += data[j].y;\n    }\n    avgX /= avgRangeLength;\n    avgY /= avgRangeLength;\n    const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n    const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n    const {\n      x: pointAx,\n      y: pointAy\n    } = data[a];\n    maxArea = area = -1;\n    for (j = rangeOffs; j < rangeTo; j++) {\n      area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n      if (area > maxArea) {\n        maxArea = area;\n        maxAreaPoint = data[j];\n        nextA = j;\n      }\n    }\n    decimated[sampledIndex++] = maxAreaPoint;\n    a = nextA;\n  }\n  decimated[sampledIndex++] = data[endIndex];\n  return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n  let avgX = 0;\n  let countX = 0;\n  let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n  const decimated = [];\n  const endIndex = start + count - 1;\n  const xMin = data[start].x;\n  const xMax = data[endIndex].x;\n  const dx = xMax - xMin;\n  for (i = start; i < start + count; ++i) {\n    point = data[i];\n    x = (point.x - xMin) / dx * availableWidth;\n    y = point.y;\n    const truncX = x | 0;\n    if (truncX === prevX) {\n      if (y < minY) {\n        minY = y;\n        minIndex = i;\n      } else if (y > maxY) {\n        maxY = y;\n        maxIndex = i;\n      }\n      avgX = (countX * avgX + point.x) / ++countX;\n    } else {\n      const lastIndex = i - 1;\n      if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(minIndex) && !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(maxIndex)) {\n        const intermediateIndex1 = Math.min(minIndex, maxIndex);\n        const intermediateIndex2 = Math.max(minIndex, maxIndex);\n        if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n          decimated.push({\n            ...data[intermediateIndex1],\n            x: avgX\n          });\n        }\n        if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n          decimated.push({\n            ...data[intermediateIndex2],\n            x: avgX\n          });\n        }\n      }\n      if (i > 0 && lastIndex !== startIndex) {\n        decimated.push(data[lastIndex]);\n      }\n      decimated.push(point);\n      prevX = truncX;\n      countX = 0;\n      minY = maxY = y;\n      minIndex = maxIndex = startIndex = i;\n    }\n  }\n  return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n  if (dataset._decimated) {\n    const data = dataset._data;\n    delete dataset._decimated;\n    delete dataset._data;\n    Object.defineProperty(dataset, 'data', {\n      configurable: true,\n      enumerable: true,\n      writable: true,\n      value: data\n    });\n  }\n}\nfunction cleanDecimatedData(chart) {\n  chart.data.datasets.forEach(dataset => {\n    cleanDecimatedDataset(dataset);\n  });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n  const pointCount = points.length;\n  let start = 0;\n  let count;\n  const {\n    iScale\n  } = meta;\n  const {\n    min,\n    max,\n    minDefined,\n    maxDefined\n  } = iScale.getUserBounds();\n  if (minDefined) {\n    start = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.B)(points, iScale.axis, min).lo, 0, pointCount - 1);\n  }\n  if (maxDefined) {\n    count = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.B)(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n  } else {\n    count = pointCount - start;\n  }\n  return {\n    start,\n    count\n  };\n}\nvar plugin_decimation = {\n  id: 'decimation',\n  defaults: {\n    algorithm: 'min-max',\n    enabled: false\n  },\n  beforeElementsUpdate: (chart, args, options) => {\n    if (!options.enabled) {\n      cleanDecimatedData(chart);\n      return;\n    }\n    const availableWidth = chart.width;\n    chart.data.datasets.forEach((dataset, datasetIndex) => {\n      const {\n        _data,\n        indexAxis\n      } = dataset;\n      const meta = chart.getDatasetMeta(datasetIndex);\n      const data = _data || dataset.data;\n      if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a)([indexAxis, chart.options.indexAxis]) === 'y') {\n        return;\n      }\n      if (!meta.controller.supportsDecimation) {\n        return;\n      }\n      const xAxis = chart.scales[meta.xAxisID];\n      if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n        return;\n      }\n      if (chart.options.parsing) {\n        return;\n      }\n      let {\n        start,\n        count\n      } = getStartAndCountOfVisiblePointsSimplified(meta, data);\n      const threshold = options.threshold || 4 * availableWidth;\n      if (count <= threshold) {\n        cleanDecimatedDataset(dataset);\n        return;\n      }\n      if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(_data)) {\n        dataset._data = data;\n        delete dataset.data;\n        Object.defineProperty(dataset, 'data', {\n          configurable: true,\n          enumerable: true,\n          get: function () {\n            return this._decimated;\n          },\n          set: function (d) {\n            this._data = d;\n          }\n        });\n      }\n      let decimated;\n      switch (options.algorithm) {\n        case 'lttb':\n          decimated = lttbDecimation(data, start, count, availableWidth, options);\n          break;\n        case 'min-max':\n          decimated = minMaxDecimation(data, start, count, availableWidth);\n          break;\n        default:\n          throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n      }\n      dataset._decimated = decimated;\n    });\n  },\n  destroy(chart) {\n    cleanDecimatedData(chart);\n  }\n};\nfunction _segments(line, target, property) {\n  const segments = line.segments;\n  const points = line.points;\n  const tpoints = target.points;\n  const parts = [];\n  for (const segment of segments) {\n    let {\n      start,\n      end\n    } = segment;\n    end = _findSegmentEnd(start, end, points);\n    const bounds = _getBounds(property, points[start], points[end], segment.loop);\n    if (!target.segments) {\n      parts.push({\n        source: segment,\n        target: bounds,\n        start: points[start],\n        end: points[end]\n      });\n      continue;\n    }\n    const targetSegments = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ap)(target, bounds);\n    for (const tgt of targetSegments) {\n      const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n      const fillSources = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.az)(segment, points, subBounds);\n      for (const fillSource of fillSources) {\n        parts.push({\n          source: fillSource,\n          target: tgt,\n          start: {\n            [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n          },\n          end: {\n            [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n          }\n        });\n      }\n    }\n  }\n  return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n  if (loop) {\n    return;\n  }\n  let start = first[property];\n  let end = last[property];\n  if (property === 'angle') {\n    start = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.al)(start);\n    end = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.al)(end);\n  }\n  return {\n    property,\n    start,\n    end\n  };\n}\nfunction _pointsFromSegments(boundary, line) {\n  const {\n    x = null,\n    y = null\n  } = boundary || {};\n  const linePoints = line.points;\n  const points = [];\n  line.segments.forEach(({\n    start,\n    end\n  }) => {\n    end = _findSegmentEnd(start, end, linePoints);\n    const first = linePoints[start];\n    const last = linePoints[end];\n    if (y !== null) {\n      points.push({\n        x: first.x,\n        y\n      });\n      points.push({\n        x: last.x,\n        y\n      });\n    } else if (x !== null) {\n      points.push({\n        x,\n        y: first.y\n      });\n      points.push({\n        x,\n        y: last.y\n      });\n    }\n  });\n  return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n  for (; end > start; end--) {\n    const point = points[end];\n    if (!isNaN(point.x) && !isNaN(point.y)) {\n      break;\n    }\n  }\n  return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n  if (a && b) {\n    return fn(a[prop], b[prop]);\n  }\n  return a ? a[prop] : b ? b[prop] : 0;\n}\nfunction _createBoundaryLine(boundary, line) {\n  let points = [];\n  let _loop = false;\n  if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.b)(boundary)) {\n    _loop = true;\n    points = boundary;\n  } else {\n    points = _pointsFromSegments(boundary, line);\n  }\n  return points.length ? new LineElement({\n    points,\n    options: {\n      tension: 0\n    },\n    _loop,\n    _fullLoop: _loop\n  }) : null;\n}\nfunction _shouldApplyFill(source) {\n  return source && source.fill !== false;\n}\nfunction _resolveTarget(sources, index, propagate) {\n  const source = sources[index];\n  let fill = source.fill;\n  const visited = [index];\n  let target;\n  if (!propagate) {\n    return fill;\n  }\n  while (fill !== false && visited.indexOf(fill) === -1) {\n    if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(fill)) {\n      return fill;\n    }\n    target = sources[fill];\n    if (!target) {\n      return false;\n    }\n    if (target.visible) {\n      return fill;\n    }\n    visited.push(fill);\n    fill = target.fill;\n  }\n  return false;\n}\nfunction _decodeFill(line, index, count) {\n  const fill = parseFillOption(line);\n  if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(fill)) {\n    return isNaN(fill.value) ? false : fill;\n  }\n  let target = parseFloat(fill);\n  if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(target) && Math.floor(target) === target) {\n    return decodeTargetIndex(fill[0], index, target, count);\n  }\n  return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n  if (firstCh === '-' || firstCh === '+') {\n    target = index + target;\n  }\n  if (target === index || target < 0 || target >= count) {\n    return false;\n  }\n  return target;\n}\nfunction _getTargetPixel(fill, scale) {\n  let pixel = null;\n  if (fill === 'start') {\n    pixel = scale.bottom;\n  } else if (fill === 'end') {\n    pixel = scale.top;\n  } else if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(fill)) {\n    pixel = scale.getPixelForValue(fill.value);\n  } else if (scale.getBasePixel) {\n    pixel = scale.getBasePixel();\n  }\n  return pixel;\n}\nfunction _getTargetValue(fill, scale, startValue) {\n  let value;\n  if (fill === 'start') {\n    value = startValue;\n  } else if (fill === 'end') {\n    value = scale.options.reverse ? scale.min : scale.max;\n  } else if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(fill)) {\n    value = fill.value;\n  } else {\n    value = scale.getBaseValue();\n  }\n  return value;\n}\nfunction parseFillOption(line) {\n  const options = line.options;\n  const fillOption = options.fill;\n  let fill = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(fillOption && fillOption.target, fillOption);\n  if (fill === undefined) {\n    fill = !!options.backgroundColor;\n  }\n  if (fill === false || fill === null) {\n    return false;\n  }\n  if (fill === true) {\n    return 'origin';\n  }\n  return fill;\n}\nfunction _buildStackLine(source) {\n  const {\n    scale,\n    index,\n    line\n  } = source;\n  const points = [];\n  const segments = line.segments;\n  const sourcePoints = line.points;\n  const linesBelow = getLinesBelow(scale, index);\n  linesBelow.push(_createBoundaryLine({\n    x: null,\n    y: scale.bottom\n  }, line));\n  for (let i = 0; i < segments.length; i++) {\n    const segment = segments[i];\n    for (let j = segment.start; j <= segment.end; j++) {\n      addPointsBelow(points, sourcePoints[j], linesBelow);\n    }\n  }\n  return new LineElement({\n    points,\n    options: {}\n  });\n}\nfunction getLinesBelow(scale, index) {\n  const below = [];\n  const metas = scale.getMatchingVisibleMetas('line');\n  for (let i = 0; i < metas.length; i++) {\n    const meta = metas[i];\n    if (meta.index === index) {\n      break;\n    }\n    if (!meta.hidden) {\n      below.unshift(meta.dataset);\n    }\n  }\n  return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n  const postponed = [];\n  for (let j = 0; j < linesBelow.length; j++) {\n    const line = linesBelow[j];\n    const {\n      first,\n      last,\n      point\n    } = findPoint(line, sourcePoint, 'x');\n    if (!point || first && last) {\n      continue;\n    }\n    if (first) {\n      postponed.unshift(point);\n    } else {\n      points.push(point);\n      if (!last) {\n        break;\n      }\n    }\n  }\n  points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n  const point = line.interpolate(sourcePoint, property);\n  if (!point) {\n    return {};\n  }\n  const pointValue = point[property];\n  const segments = line.segments;\n  const linePoints = line.points;\n  let first = false;\n  let last = false;\n  for (let i = 0; i < segments.length; i++) {\n    const segment = segments[i];\n    const firstValue = linePoints[segment.start][property];\n    const lastValue = linePoints[segment.end][property];\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ak)(pointValue, firstValue, lastValue)) {\n      first = pointValue === firstValue;\n      last = pointValue === lastValue;\n      break;\n    }\n  }\n  return {\n    first,\n    last,\n    point\n  };\n}\nclass simpleArc {\n  constructor(opts) {\n    this.x = opts.x;\n    this.y = opts.y;\n    this.radius = opts.radius;\n  }\n  pathSegment(ctx, bounds, opts) {\n    const {\n      x,\n      y,\n      radius\n    } = this;\n    bounds = bounds || {\n      start: 0,\n      end: _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T\n    };\n    ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n    return !opts.bounds;\n  }\n  interpolate(point) {\n    const {\n      x,\n      y,\n      radius\n    } = this;\n    const angle = point.angle;\n    return {\n      x: x + Math.cos(angle) * radius,\n      y: y + Math.sin(angle) * radius,\n      angle\n    };\n  }\n}\nfunction _getTarget(source) {\n  const {\n    chart,\n    fill,\n    line\n  } = source;\n  if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(fill)) {\n    return getLineByIndex(chart, fill);\n  }\n  if (fill === 'stack') {\n    return _buildStackLine(source);\n  }\n  if (fill === 'shape') {\n    return true;\n  }\n  const boundary = computeBoundary(source);\n  if (boundary instanceof simpleArc) {\n    return boundary;\n  }\n  return _createBoundaryLine(boundary, line);\n}\nfunction getLineByIndex(chart, index) {\n  const meta = chart.getDatasetMeta(index);\n  const visible = meta && chart.isDatasetVisible(index);\n  return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n  const scale = source.scale || {};\n  if (scale.getPointPositionForValue) {\n    return computeCircularBoundary(source);\n  }\n  return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n  const {\n    scale = {},\n    fill\n  } = source;\n  const pixel = _getTargetPixel(fill, scale);\n  if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(pixel)) {\n    const horizontal = scale.isHorizontal();\n    return {\n      x: horizontal ? pixel : null,\n      y: horizontal ? null : pixel\n    };\n  }\n  return null;\n}\nfunction computeCircularBoundary(source) {\n  const {\n    scale,\n    fill\n  } = source;\n  const options = scale.options;\n  const length = scale.getLabels().length;\n  const start = options.reverse ? scale.max : scale.min;\n  const value = _getTargetValue(fill, scale, start);\n  const target = [];\n  if (options.grid.circular) {\n    const center = scale.getPointPositionForValue(0, start);\n    return new simpleArc({\n      x: center.x,\n      y: center.y,\n      radius: scale.getDistanceFromCenterForValue(value)\n    });\n  }\n  for (let i = 0; i < length; ++i) {\n    target.push(scale.getPointPositionForValue(i, value));\n  }\n  return target;\n}\nfunction _drawfill(ctx, source, area) {\n  const target = _getTarget(source);\n  const {\n    chart,\n    index,\n    line,\n    scale,\n    axis\n  } = source;\n  const lineOpts = line.options;\n  const fillOption = lineOpts.fill;\n  const color = lineOpts.backgroundColor;\n  const {\n    above = color,\n    below = color\n  } = fillOption || {};\n  const meta = chart.getDatasetMeta(index);\n  const clip = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ah)(chart, meta);\n  if (target && line.points.length) {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Y)(ctx, area);\n    doFill(ctx, {\n      line,\n      target,\n      above,\n      below,\n      area,\n      scale,\n      axis,\n      clip\n    });\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.$)(ctx);\n  }\n}\nfunction doFill(ctx, cfg) {\n  const {\n    line,\n    target,\n    above,\n    below,\n    area,\n    scale,\n    clip\n  } = cfg;\n  const property = line._loop ? 'angle' : cfg.axis;\n  ctx.save();\n  let fillColor = below;\n  if (below !== above) {\n    if (property === 'x') {\n      clipVertical(ctx, target, area.top);\n      fill(ctx, {\n        line,\n        target,\n        color: above,\n        scale,\n        property,\n        clip\n      });\n      ctx.restore();\n      ctx.save();\n      clipVertical(ctx, target, area.bottom);\n    } else if (property === 'y') {\n      clipHorizontal(ctx, target, area.left);\n      fill(ctx, {\n        line,\n        target,\n        color: below,\n        scale,\n        property,\n        clip\n      });\n      ctx.restore();\n      ctx.save();\n      clipHorizontal(ctx, target, area.right);\n      fillColor = above;\n    }\n  }\n  fill(ctx, {\n    line,\n    target,\n    color: fillColor,\n    scale,\n    property,\n    clip\n  });\n  ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n  const {\n    segments,\n    points\n  } = target;\n  let first = true;\n  let lineLoop = false;\n  ctx.beginPath();\n  for (const segment of segments) {\n    const {\n      start,\n      end\n    } = segment;\n    const firstPoint = points[start];\n    const lastPoint = points[_findSegmentEnd(start, end, points)];\n    if (first) {\n      ctx.moveTo(firstPoint.x, firstPoint.y);\n      first = false;\n    } else {\n      ctx.lineTo(firstPoint.x, clipY);\n      ctx.lineTo(firstPoint.x, firstPoint.y);\n    }\n    lineLoop = !!target.pathSegment(ctx, segment, {\n      move: lineLoop\n    });\n    if (lineLoop) {\n      ctx.closePath();\n    } else {\n      ctx.lineTo(lastPoint.x, clipY);\n    }\n  }\n  ctx.lineTo(target.first().x, clipY);\n  ctx.closePath();\n  ctx.clip();\n}\nfunction clipHorizontal(ctx, target, clipX) {\n  const {\n    segments,\n    points\n  } = target;\n  let first = true;\n  let lineLoop = false;\n  ctx.beginPath();\n  for (const segment of segments) {\n    const {\n      start,\n      end\n    } = segment;\n    const firstPoint = points[start];\n    const lastPoint = points[_findSegmentEnd(start, end, points)];\n    if (first) {\n      ctx.moveTo(firstPoint.x, firstPoint.y);\n      first = false;\n    } else {\n      ctx.lineTo(clipX, firstPoint.y);\n      ctx.lineTo(firstPoint.x, firstPoint.y);\n    }\n    lineLoop = !!target.pathSegment(ctx, segment, {\n      move: lineLoop\n    });\n    if (lineLoop) {\n      ctx.closePath();\n    } else {\n      ctx.lineTo(clipX, lastPoint.y);\n    }\n  }\n  ctx.lineTo(clipX, target.first().y);\n  ctx.closePath();\n  ctx.clip();\n}\nfunction fill(ctx, cfg) {\n  const {\n    line,\n    target,\n    property,\n    color,\n    scale,\n    clip\n  } = cfg;\n  const segments = _segments(line, target, property);\n  for (const {\n    source: src,\n    target: tgt,\n    start,\n    end\n  } of segments) {\n    const {\n      style: {\n        backgroundColor = color\n      } = {}\n    } = src;\n    const notShape = target !== true;\n    ctx.save();\n    ctx.fillStyle = backgroundColor;\n    clipBounds(ctx, scale, clip, notShape && _getBounds(property, start, end));\n    ctx.beginPath();\n    const lineLoop = !!line.pathSegment(ctx, src);\n    let loop;\n    if (notShape) {\n      if (lineLoop) {\n        ctx.closePath();\n      } else {\n        interpolatedLineTo(ctx, target, end, property);\n      }\n      const targetLoop = !!target.pathSegment(ctx, tgt, {\n        move: lineLoop,\n        reverse: true\n      });\n      loop = lineLoop && targetLoop;\n      if (!loop) {\n        interpolatedLineTo(ctx, target, start, property);\n      }\n    }\n    ctx.closePath();\n    ctx.fill(loop ? 'evenodd' : 'nonzero');\n    ctx.restore();\n  }\n}\nfunction clipBounds(ctx, scale, clip, bounds) {\n  const chartArea = scale.chart.chartArea;\n  const {\n    property,\n    start,\n    end\n  } = bounds || {};\n  if (property === 'x' || property === 'y') {\n    let left, top, right, bottom;\n    if (property === 'x') {\n      left = start;\n      top = chartArea.top;\n      right = end;\n      bottom = chartArea.bottom;\n    } else {\n      left = chartArea.left;\n      top = start;\n      right = chartArea.right;\n      bottom = end;\n    }\n    ctx.beginPath();\n    if (clip) {\n      left = Math.max(left, clip.left);\n      right = Math.min(right, clip.right);\n      top = Math.max(top, clip.top);\n      bottom = Math.min(bottom, clip.bottom);\n    }\n    ctx.rect(left, top, right - left, bottom - top);\n    ctx.clip();\n  }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n  const interpolatedPoint = target.interpolate(point, property);\n  if (interpolatedPoint) {\n    ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n  }\n}\nvar index = {\n  id: 'filler',\n  afterDatasetsUpdate(chart, _args, options) {\n    const count = (chart.data.datasets || []).length;\n    const sources = [];\n    let meta, i, line, source;\n    for (i = 0; i < count; ++i) {\n      meta = chart.getDatasetMeta(i);\n      line = meta.dataset;\n      source = null;\n      if (line && line.options && line instanceof LineElement) {\n        source = {\n          visible: chart.isDatasetVisible(i),\n          index: i,\n          fill: _decodeFill(line, i, count),\n          chart,\n          axis: meta.controller.options.indexAxis,\n          scale: meta.vScale,\n          line\n        };\n      }\n      meta.$filler = source;\n      sources.push(source);\n    }\n    for (i = 0; i < count; ++i) {\n      source = sources[i];\n      if (!source || source.fill === false) {\n        continue;\n      }\n      source.fill = _resolveTarget(sources, i, options.propagate);\n    }\n  },\n  beforeDraw(chart, _args, options) {\n    const draw = options.drawTime === 'beforeDraw';\n    const metasets = chart.getSortedVisibleDatasetMetas();\n    const area = chart.chartArea;\n    for (let i = metasets.length - 1; i >= 0; --i) {\n      const source = metasets[i].$filler;\n      if (!source) {\n        continue;\n      }\n      source.line.updateControlPoints(area, source.axis);\n      if (draw && source.fill) {\n        _drawfill(chart.ctx, source, area);\n      }\n    }\n  },\n  beforeDatasetsDraw(chart, _args, options) {\n    if (options.drawTime !== 'beforeDatasetsDraw') {\n      return;\n    }\n    const metasets = chart.getSortedVisibleDatasetMetas();\n    for (let i = metasets.length - 1; i >= 0; --i) {\n      const source = metasets[i].$filler;\n      if (_shouldApplyFill(source)) {\n        _drawfill(chart.ctx, source, chart.chartArea);\n      }\n    }\n  },\n  beforeDatasetDraw(chart, args, options) {\n    const source = args.meta.$filler;\n    if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n      return;\n    }\n    _drawfill(chart.ctx, source, chart.chartArea);\n  },\n  defaults: {\n    propagate: true,\n    drawTime: 'beforeDatasetDraw'\n  }\n};\nconst getBoxSize = (labelOpts, fontSize) => {\n  let {\n    boxHeight = fontSize,\n    boxWidth = fontSize\n  } = labelOpts;\n  if (labelOpts.usePointStyle) {\n    boxHeight = Math.min(boxHeight, fontSize);\n    boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n  }\n  return {\n    boxWidth,\n    boxHeight,\n    itemHeight: Math.max(fontSize, boxHeight)\n  };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n  constructor(config) {\n    super();\n    this._added = false;\n    this.legendHitBoxes = [];\n    this._hoveredItem = null;\n    this.doughnutMode = false;\n    this.chart = config.chart;\n    this.options = config.options;\n    this.ctx = config.ctx;\n    this.legendItems = undefined;\n    this.columnSizes = undefined;\n    this.lineWidths = undefined;\n    this.maxHeight = undefined;\n    this.maxWidth = undefined;\n    this.top = undefined;\n    this.bottom = undefined;\n    this.left = undefined;\n    this.right = undefined;\n    this.height = undefined;\n    this.width = undefined;\n    this._margins = undefined;\n    this.position = undefined;\n    this.weight = undefined;\n    this.fullSize = undefined;\n  }\n  update(maxWidth, maxHeight, margins) {\n    this.maxWidth = maxWidth;\n    this.maxHeight = maxHeight;\n    this._margins = margins;\n    this.setDimensions();\n    this.buildLabels();\n    this.fit();\n  }\n  setDimensions() {\n    if (this.isHorizontal()) {\n      this.width = this.maxWidth;\n      this.left = this._margins.left;\n      this.right = this.width;\n    } else {\n      this.height = this.maxHeight;\n      this.top = this._margins.top;\n      this.bottom = this.height;\n    }\n  }\n  buildLabels() {\n    const labelOpts = this.options.labels || {};\n    let legendItems = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(labelOpts.generateLabels, [this.chart], this) || [];\n    if (labelOpts.filter) {\n      legendItems = legendItems.filter(item => labelOpts.filter(item, this.chart.data));\n    }\n    if (labelOpts.sort) {\n      legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n    }\n    if (this.options.reverse) {\n      legendItems.reverse();\n    }\n    this.legendItems = legendItems;\n  }\n  fit() {\n    const {\n      options,\n      ctx\n    } = this;\n    if (!options.display) {\n      this.width = this.height = 0;\n      return;\n    }\n    const labelOpts = options.labels;\n    const labelFont = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(labelOpts.font);\n    const fontSize = labelFont.size;\n    const titleHeight = this._computeTitleHeight();\n    const {\n      boxWidth,\n      itemHeight\n    } = getBoxSize(labelOpts, fontSize);\n    let width, height;\n    ctx.font = labelFont.string;\n    if (this.isHorizontal()) {\n      width = this.maxWidth;\n      height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n    } else {\n      height = this.maxHeight;\n      width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n    }\n    this.width = Math.min(width, options.maxWidth || this.maxWidth);\n    this.height = Math.min(height, options.maxHeight || this.maxHeight);\n  }\n  _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n    const {\n      ctx,\n      maxWidth,\n      options: {\n        labels: {\n          padding\n        }\n      }\n    } = this;\n    const hitboxes = this.legendHitBoxes = [];\n    const lineWidths = this.lineWidths = [0];\n    const lineHeight = itemHeight + padding;\n    let totalHeight = titleHeight;\n    ctx.textAlign = 'left';\n    ctx.textBaseline = 'middle';\n    let row = -1;\n    let top = -lineHeight;\n    this.legendItems.forEach((legendItem, i) => {\n      const itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n      if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n        totalHeight += lineHeight;\n        lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n        top += lineHeight;\n        row++;\n      }\n      hitboxes[i] = {\n        left: 0,\n        top,\n        row,\n        width: itemWidth,\n        height: itemHeight\n      };\n      lineWidths[lineWidths.length - 1] += itemWidth + padding;\n    });\n    return totalHeight;\n  }\n  _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n    const {\n      ctx,\n      maxHeight,\n      options: {\n        labels: {\n          padding\n        }\n      }\n    } = this;\n    const hitboxes = this.legendHitBoxes = [];\n    const columnSizes = this.columnSizes = [];\n    const heightLimit = maxHeight - titleHeight;\n    let totalWidth = padding;\n    let currentColWidth = 0;\n    let currentColHeight = 0;\n    let left = 0;\n    let col = 0;\n    this.legendItems.forEach((legendItem, i) => {\n      const {\n        itemWidth,\n        itemHeight\n      } = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n      if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n        totalWidth += currentColWidth + padding;\n        columnSizes.push({\n          width: currentColWidth,\n          height: currentColHeight\n        });\n        left += currentColWidth + padding;\n        col++;\n        currentColWidth = currentColHeight = 0;\n      }\n      hitboxes[i] = {\n        left,\n        top: currentColHeight,\n        col,\n        width: itemWidth,\n        height: itemHeight\n      };\n      currentColWidth = Math.max(currentColWidth, itemWidth);\n      currentColHeight += itemHeight + padding;\n    });\n    totalWidth += currentColWidth;\n    columnSizes.push({\n      width: currentColWidth,\n      height: currentColHeight\n    });\n    return totalWidth;\n  }\n  adjustHitBoxes() {\n    if (!this.options.display) {\n      return;\n    }\n    const titleHeight = this._computeTitleHeight();\n    const {\n      legendHitBoxes: hitboxes,\n      options: {\n        align,\n        labels: {\n          padding\n        },\n        rtl\n      }\n    } = this;\n    const rtlHelper = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aA)(rtl, this.left, this.width);\n    if (this.isHorizontal()) {\n      let row = 0;\n      let left = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(align, this.left + padding, this.right - this.lineWidths[row]);\n      for (const hitbox of hitboxes) {\n        if (row !== hitbox.row) {\n          row = hitbox.row;\n          left = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(align, this.left + padding, this.right - this.lineWidths[row]);\n        }\n        hitbox.top += this.top + titleHeight + padding;\n        hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n        left += hitbox.width + padding;\n      }\n    } else {\n      let col = 0;\n      let top = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n      for (const hitbox of hitboxes) {\n        if (hitbox.col !== col) {\n          col = hitbox.col;\n          top = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n        }\n        hitbox.top = top;\n        hitbox.left += this.left + padding;\n        hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n        top += hitbox.height + padding;\n      }\n    }\n  }\n  isHorizontal() {\n    return this.options.position === 'top' || this.options.position === 'bottom';\n  }\n  draw() {\n    if (this.options.display) {\n      const ctx = this.ctx;\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Y)(ctx, this);\n      this._draw();\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.$)(ctx);\n    }\n  }\n  _draw() {\n    const {\n      options: opts,\n      columnSizes,\n      lineWidths,\n      ctx\n    } = this;\n    const {\n      align,\n      labels: labelOpts\n    } = opts;\n    const defaultColor = _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.color;\n    const rtlHelper = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aA)(opts.rtl, this.left, this.width);\n    const labelFont = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(labelOpts.font);\n    const {\n      padding\n    } = labelOpts;\n    const fontSize = labelFont.size;\n    const halfFontSize = fontSize / 2;\n    let cursor;\n    this.drawTitle();\n    ctx.textAlign = rtlHelper.textAlign('left');\n    ctx.textBaseline = 'middle';\n    ctx.lineWidth = 0.5;\n    ctx.font = labelFont.string;\n    const {\n      boxWidth,\n      boxHeight,\n      itemHeight\n    } = getBoxSize(labelOpts, fontSize);\n    const drawLegendBox = function (x, y, legendItem) {\n      if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n        return;\n      }\n      ctx.save();\n      const lineWidth = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(legendItem.lineWidth, 1);\n      ctx.fillStyle = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(legendItem.fillStyle, defaultColor);\n      ctx.lineCap = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(legendItem.lineCap, 'butt');\n      ctx.lineDashOffset = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(legendItem.lineDashOffset, 0);\n      ctx.lineJoin = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(legendItem.lineJoin, 'miter');\n      ctx.lineWidth = lineWidth;\n      ctx.strokeStyle = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(legendItem.strokeStyle, defaultColor);\n      ctx.setLineDash((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(legendItem.lineDash, []));\n      if (labelOpts.usePointStyle) {\n        const drawOptions = {\n          radius: boxHeight * Math.SQRT2 / 2,\n          pointStyle: legendItem.pointStyle,\n          rotation: legendItem.rotation,\n          borderWidth: lineWidth\n        };\n        const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n        const centerY = y + halfFontSize;\n        (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aE)(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n      } else {\n        const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n        const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n        const borderRadius = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ay)(legendItem.borderRadius);\n        ctx.beginPath();\n        if (Object.values(borderRadius).some(v => v !== 0)) {\n          (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aw)(ctx, {\n            x: xBoxLeft,\n            y: yBoxTop,\n            w: boxWidth,\n            h: boxHeight,\n            radius: borderRadius\n          });\n        } else {\n          ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n        }\n        ctx.fill();\n        if (lineWidth !== 0) {\n          ctx.stroke();\n        }\n      }\n      ctx.restore();\n    };\n    const fillText = function (x, y, legendItem) {\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Z)(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n        strikethrough: legendItem.hidden,\n        textAlign: rtlHelper.textAlign(legendItem.textAlign)\n      });\n    };\n    const isHorizontal = this.isHorizontal();\n    const titleHeight = this._computeTitleHeight();\n    if (isHorizontal) {\n      cursor = {\n        x: (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(align, this.left + padding, this.right - lineWidths[0]),\n        y: this.top + padding + titleHeight,\n        line: 0\n      };\n    } else {\n      cursor = {\n        x: this.left + padding,\n        y: (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n        line: 0\n      };\n    }\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aB)(this.ctx, opts.textDirection);\n    const lineHeight = itemHeight + padding;\n    this.legendItems.forEach((legendItem, i) => {\n      ctx.strokeStyle = legendItem.fontColor;\n      ctx.fillStyle = legendItem.fontColor;\n      const textWidth = ctx.measureText(legendItem.text).width;\n      const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n      const width = boxWidth + halfFontSize + textWidth;\n      let x = cursor.x;\n      let y = cursor.y;\n      rtlHelper.setWidth(this.width);\n      if (isHorizontal) {\n        if (i > 0 && x + width + padding > this.right) {\n          y = cursor.y += lineHeight;\n          cursor.line++;\n          x = cursor.x = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(align, this.left + padding, this.right - lineWidths[cursor.line]);\n        }\n      } else if (i > 0 && y + lineHeight > this.bottom) {\n        x = cursor.x = x + columnSizes[cursor.line].width + padding;\n        cursor.line++;\n        y = cursor.y = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n      }\n      const realX = rtlHelper.x(x);\n      drawLegendBox(realX, y, legendItem);\n      x = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aC)(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n      fillText(rtlHelper.x(x), y, legendItem);\n      if (isHorizontal) {\n        cursor.x += width + padding;\n      } else if (typeof legendItem.text !== 'string') {\n        const fontLineHeight = labelFont.lineHeight;\n        cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n      } else {\n        cursor.y += lineHeight;\n      }\n    });\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aD)(this.ctx, opts.textDirection);\n  }\n  drawTitle() {\n    const opts = this.options;\n    const titleOpts = opts.title;\n    const titleFont = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(titleOpts.font);\n    const titlePadding = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(titleOpts.padding);\n    if (!titleOpts.display) {\n      return;\n    }\n    const rtlHelper = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aA)(opts.rtl, this.left, this.width);\n    const ctx = this.ctx;\n    const position = titleOpts.position;\n    const halfFontSize = titleFont.size / 2;\n    const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n    let y;\n    let left = this.left;\n    let maxWidth = this.width;\n    if (this.isHorizontal()) {\n      maxWidth = Math.max(...this.lineWidths);\n      y = this.top + topPaddingPlusHalfFontSize;\n      left = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(opts.align, left, this.right - maxWidth);\n    } else {\n      const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n      y = topPaddingPlusHalfFontSize + (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n    }\n    const x = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(position, left, left + maxWidth);\n    ctx.textAlign = rtlHelper.textAlign((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a1)(position));\n    ctx.textBaseline = 'middle';\n    ctx.strokeStyle = titleOpts.color;\n    ctx.fillStyle = titleOpts.color;\n    ctx.font = titleFont.string;\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Z)(ctx, titleOpts.text, x, y, titleFont);\n  }\n  _computeTitleHeight() {\n    const titleOpts = this.options.title;\n    const titleFont = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(titleOpts.font);\n    const titlePadding = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(titleOpts.padding);\n    return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n  }\n  _getLegendItemAt(x, y) {\n    let i, hitBox, lh;\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ak)(x, this.left, this.right) && (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ak)(y, this.top, this.bottom)) {\n      lh = this.legendHitBoxes;\n      for (i = 0; i < lh.length; ++i) {\n        hitBox = lh[i];\n        if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ak)(x, hitBox.left, hitBox.left + hitBox.width) && (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ak)(y, hitBox.top, hitBox.top + hitBox.height)) {\n          return this.legendItems[i];\n        }\n      }\n    }\n    return null;\n  }\n  handleEvent(e) {\n    const opts = this.options;\n    if (!isListened(e.type, opts)) {\n      return;\n    }\n    const hoveredItem = this._getLegendItemAt(e.x, e.y);\n    if (e.type === 'mousemove' || e.type === 'mouseout') {\n      const previous = this._hoveredItem;\n      const sameItem = itemsEqual(previous, hoveredItem);\n      if (previous && !sameItem) {\n        (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(opts.onLeave, [e, previous, this], this);\n      }\n      this._hoveredItem = hoveredItem;\n      if (hoveredItem && !sameItem) {\n        (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(opts.onHover, [e, hoveredItem, this], this);\n      }\n    } else if (hoveredItem) {\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(opts.onClick, [e, hoveredItem, this], this);\n    }\n  }\n}\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n  const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n  const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n  return {\n    itemWidth,\n    itemHeight\n  };\n}\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n  let legendItemText = legendItem.text;\n  if (legendItemText && typeof legendItemText !== 'string') {\n    legendItemText = legendItemText.reduce((a, b) => a.length > b.length ? a : b);\n  }\n  return boxWidth + labelFont.size / 2 + ctx.measureText(legendItemText).width;\n}\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n  let itemHeight = _itemHeight;\n  if (typeof legendItem.text !== 'string') {\n    itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n  }\n  return itemHeight;\n}\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n  const labelHeight = legendItem.text ? legendItem.text.length : 0;\n  return fontLineHeight * labelHeight;\n}\nfunction isListened(type, opts) {\n  if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n    return true;\n  }\n  if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n    return true;\n  }\n  return false;\n}\nvar plugin_legend = {\n  id: 'legend',\n  _element: Legend,\n  start(chart, _args, options) {\n    const legend = chart.legend = new Legend({\n      ctx: chart.ctx,\n      options,\n      chart\n    });\n    layouts.configure(chart, legend, options);\n    layouts.addBox(chart, legend);\n  },\n  stop(chart) {\n    layouts.removeBox(chart, chart.legend);\n    delete chart.legend;\n  },\n  beforeUpdate(chart, _args, options) {\n    const legend = chart.legend;\n    layouts.configure(chart, legend, options);\n    legend.options = options;\n  },\n  afterUpdate(chart) {\n    const legend = chart.legend;\n    legend.buildLabels();\n    legend.adjustHitBoxes();\n  },\n  afterEvent(chart, args) {\n    if (!args.replay) {\n      chart.legend.handleEvent(args.event);\n    }\n  },\n  defaults: {\n    display: true,\n    position: 'top',\n    align: 'center',\n    fullSize: true,\n    reverse: false,\n    weight: 1000,\n    onClick(e, legendItem, legend) {\n      const index = legendItem.datasetIndex;\n      const ci = legend.chart;\n      if (ci.isDatasetVisible(index)) {\n        ci.hide(index);\n        legendItem.hidden = true;\n      } else {\n        ci.show(index);\n        legendItem.hidden = false;\n      }\n    },\n    onHover: null,\n    onLeave: null,\n    labels: {\n      color: ctx => ctx.chart.options.color,\n      boxWidth: 40,\n      padding: 10,\n      generateLabels(chart) {\n        const datasets = chart.data.datasets;\n        const {\n          labels: {\n            usePointStyle,\n            pointStyle,\n            textAlign,\n            color,\n            useBorderRadius,\n            borderRadius\n          }\n        } = chart.legend.options;\n        return chart._getSortedDatasetMetas().map(meta => {\n          const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n          const borderWidth = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(style.borderWidth);\n          return {\n            text: datasets[meta.index].label,\n            fillStyle: style.backgroundColor,\n            fontColor: color,\n            hidden: !meta.visible,\n            lineCap: style.borderCapStyle,\n            lineDash: style.borderDash,\n            lineDashOffset: style.borderDashOffset,\n            lineJoin: style.borderJoinStyle,\n            lineWidth: (borderWidth.width + borderWidth.height) / 4,\n            strokeStyle: style.borderColor,\n            pointStyle: pointStyle || style.pointStyle,\n            rotation: style.rotation,\n            textAlign: textAlign || style.textAlign,\n            borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n            datasetIndex: meta.index\n          };\n        }, this);\n      }\n    },\n    title: {\n      color: ctx => ctx.chart.options.color,\n      display: false,\n      position: 'center',\n      text: ''\n    }\n  },\n  descriptors: {\n    _scriptable: name => !name.startsWith('on'),\n    labels: {\n      _scriptable: name => !['generateLabels', 'filter', 'sort'].includes(name)\n    }\n  }\n};\nclass Title extends Element {\n  constructor(config) {\n    super();\n    this.chart = config.chart;\n    this.options = config.options;\n    this.ctx = config.ctx;\n    this._padding = undefined;\n    this.top = undefined;\n    this.bottom = undefined;\n    this.left = undefined;\n    this.right = undefined;\n    this.width = undefined;\n    this.height = undefined;\n    this.position = undefined;\n    this.weight = undefined;\n    this.fullSize = undefined;\n  }\n  update(maxWidth, maxHeight) {\n    const opts = this.options;\n    this.left = 0;\n    this.top = 0;\n    if (!opts.display) {\n      this.width = this.height = this.right = this.bottom = 0;\n      return;\n    }\n    this.width = this.right = maxWidth;\n    this.height = this.bottom = maxHeight;\n    const lineCount = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.b)(opts.text) ? opts.text.length : 1;\n    this._padding = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(opts.padding);\n    const textSize = lineCount * (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(opts.font).lineHeight + this._padding.height;\n    if (this.isHorizontal()) {\n      this.height = textSize;\n    } else {\n      this.width = textSize;\n    }\n  }\n  isHorizontal() {\n    const pos = this.options.position;\n    return pos === 'top' || pos === 'bottom';\n  }\n  _drawArgs(offset) {\n    const {\n      top,\n      left,\n      bottom,\n      right,\n      options\n    } = this;\n    const align = options.align;\n    let rotation = 0;\n    let maxWidth, titleX, titleY;\n    if (this.isHorizontal()) {\n      titleX = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(align, left, right);\n      titleY = top + offset;\n      maxWidth = right - left;\n    } else {\n      if (options.position === 'left') {\n        titleX = left + offset;\n        titleY = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(align, bottom, top);\n        rotation = _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P * -0.5;\n      } else {\n        titleX = right - offset;\n        titleY = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a2)(align, top, bottom);\n        rotation = _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P * 0.5;\n      }\n      maxWidth = bottom - top;\n    }\n    return {\n      titleX,\n      titleY,\n      maxWidth,\n      rotation\n    };\n  }\n  draw() {\n    const ctx = this.ctx;\n    const opts = this.options;\n    if (!opts.display) {\n      return;\n    }\n    const fontOpts = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(opts.font);\n    const lineHeight = fontOpts.lineHeight;\n    const offset = lineHeight / 2 + this._padding.top;\n    const {\n      titleX,\n      titleY,\n      maxWidth,\n      rotation\n    } = this._drawArgs(offset);\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Z)(ctx, opts.text, 0, 0, fontOpts, {\n      color: opts.color,\n      maxWidth,\n      rotation,\n      textAlign: (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a1)(opts.align),\n      textBaseline: 'middle',\n      translation: [titleX, titleY]\n    });\n  }\n}\nfunction createTitle(chart, titleOpts) {\n  const title = new Title({\n    ctx: chart.ctx,\n    options: titleOpts,\n    chart\n  });\n  layouts.configure(chart, title, titleOpts);\n  layouts.addBox(chart, title);\n  chart.titleBlock = title;\n}\nvar plugin_title = {\n  id: 'title',\n  _element: Title,\n  start(chart, _args, options) {\n    createTitle(chart, options);\n  },\n  stop(chart) {\n    const titleBlock = chart.titleBlock;\n    layouts.removeBox(chart, titleBlock);\n    delete chart.titleBlock;\n  },\n  beforeUpdate(chart, _args, options) {\n    const title = chart.titleBlock;\n    layouts.configure(chart, title, options);\n    title.options = options;\n  },\n  defaults: {\n    align: 'center',\n    display: false,\n    font: {\n      weight: 'bold'\n    },\n    fullSize: true,\n    padding: 10,\n    position: 'top',\n    text: '',\n    weight: 2000\n  },\n  defaultRoutes: {\n    color: 'color'\n  },\n  descriptors: {\n    _scriptable: true,\n    _indexable: false\n  }\n};\nconst map = new WeakMap();\nvar plugin_subtitle = {\n  id: 'subtitle',\n  start(chart, _args, options) {\n    const title = new Title({\n      ctx: chart.ctx,\n      options,\n      chart\n    });\n    layouts.configure(chart, title, options);\n    layouts.addBox(chart, title);\n    map.set(chart, title);\n  },\n  stop(chart) {\n    layouts.removeBox(chart, map.get(chart));\n    map.delete(chart);\n  },\n  beforeUpdate(chart, _args, options) {\n    const title = map.get(chart);\n    layouts.configure(chart, title, options);\n    title.options = options;\n  },\n  defaults: {\n    align: 'center',\n    display: false,\n    font: {\n      weight: 'normal'\n    },\n    fullSize: true,\n    padding: 0,\n    position: 'top',\n    text: '',\n    weight: 1500\n  },\n  defaultRoutes: {\n    color: 'color'\n  },\n  descriptors: {\n    _scriptable: true,\n    _indexable: false\n  }\n};\nconst positioners = {\n  average(items) {\n    if (!items.length) {\n      return false;\n    }\n    let i, len;\n    let xSet = new Set();\n    let y = 0;\n    let count = 0;\n    for (i = 0, len = items.length; i < len; ++i) {\n      const el = items[i].element;\n      if (el && el.hasValue()) {\n        const pos = el.tooltipPosition();\n        xSet.add(pos.x);\n        y += pos.y;\n        ++count;\n      }\n    }\n    if (count === 0 || xSet.size === 0) {\n      return false;\n    }\n    const xAverage = [...xSet].reduce((a, b) => a + b) / xSet.size;\n    return {\n      x: xAverage,\n      y: y / count\n    };\n  },\n  nearest(items, eventPosition) {\n    if (!items.length) {\n      return false;\n    }\n    let x = eventPosition.x;\n    let y = eventPosition.y;\n    let minDistance = Number.POSITIVE_INFINITY;\n    let i, len, nearestElement;\n    for (i = 0, len = items.length; i < len; ++i) {\n      const el = items[i].element;\n      if (el && el.hasValue()) {\n        const center = el.getCenterPoint();\n        const d = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aF)(eventPosition, center);\n        if (d < minDistance) {\n          minDistance = d;\n          nearestElement = el;\n        }\n      }\n    }\n    if (nearestElement) {\n      const tp = nearestElement.tooltipPosition();\n      x = tp.x;\n      y = tp.y;\n    }\n    return {\n      x,\n      y\n    };\n  }\n};\nfunction pushOrConcat(base, toPush) {\n  if (toPush) {\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.b)(toPush)) {\n      Array.prototype.push.apply(base, toPush);\n    } else {\n      base.push(toPush);\n    }\n  }\n  return base;\n}\nfunction splitNewlines(str) {\n  if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n    return str.split('\\n');\n  }\n  return str;\n}\nfunction createTooltipItem(chart, item) {\n  const {\n    element,\n    datasetIndex,\n    index\n  } = item;\n  const controller = chart.getDatasetMeta(datasetIndex).controller;\n  const {\n    label,\n    value\n  } = controller.getLabelAndValue(index);\n  return {\n    chart,\n    label,\n    parsed: controller.getParsed(index),\n    raw: chart.data.datasets[datasetIndex].data[index],\n    formattedValue: value,\n    dataset: controller.getDataset(),\n    dataIndex: index,\n    datasetIndex,\n    element\n  };\n}\nfunction getTooltipSize(tooltip, options) {\n  const ctx = tooltip.chart.ctx;\n  const {\n    body,\n    footer,\n    title\n  } = tooltip;\n  const {\n    boxWidth,\n    boxHeight\n  } = options;\n  const bodyFont = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(options.bodyFont);\n  const titleFont = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(options.titleFont);\n  const footerFont = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(options.footerFont);\n  const titleLineCount = title.length;\n  const footerLineCount = footer.length;\n  const bodyLineItemCount = body.length;\n  const padding = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(options.padding);\n  let height = padding.height;\n  let width = 0;\n  let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n  combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n  if (titleLineCount) {\n    height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n  }\n  if (combinedBodyLength) {\n    const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n    height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n  }\n  if (footerLineCount) {\n    height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n  }\n  let widthPadding = 0;\n  const maxLineWidth = function (line) {\n    width = Math.max(width, ctx.measureText(line).width + widthPadding);\n  };\n  ctx.save();\n  ctx.font = titleFont.string;\n  (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(tooltip.title, maxLineWidth);\n  ctx.font = bodyFont.string;\n  (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n  widthPadding = options.displayColors ? boxWidth + 2 + options.boxPadding : 0;\n  (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(body, bodyItem => {\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(bodyItem.before, maxLineWidth);\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(bodyItem.lines, maxLineWidth);\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(bodyItem.after, maxLineWidth);\n  });\n  widthPadding = 0;\n  ctx.font = footerFont.string;\n  (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(tooltip.footer, maxLineWidth);\n  ctx.restore();\n  width += padding.width;\n  return {\n    width,\n    height\n  };\n}\nfunction determineYAlign(chart, size) {\n  const {\n    y,\n    height\n  } = size;\n  if (y < height / 2) {\n    return 'top';\n  } else if (y > chart.height - height / 2) {\n    return 'bottom';\n  }\n  return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n  const {\n    x,\n    width\n  } = size;\n  const caret = options.caretSize + options.caretPadding;\n  if (xAlign === 'left' && x + width + caret > chart.width) {\n    return true;\n  }\n  if (xAlign === 'right' && x - width - caret < 0) {\n    return true;\n  }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n  const {\n    x,\n    width\n  } = size;\n  const {\n    width: chartWidth,\n    chartArea: {\n      left,\n      right\n    }\n  } = chart;\n  let xAlign = 'center';\n  if (yAlign === 'center') {\n    xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n  } else if (x <= width / 2) {\n    xAlign = 'left';\n  } else if (x >= chartWidth - width / 2) {\n    xAlign = 'right';\n  }\n  if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n    xAlign = 'center';\n  }\n  return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n  const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n  return {\n    xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n    yAlign\n  };\n}\nfunction alignX(size, xAlign) {\n  let {\n    x,\n    width\n  } = size;\n  if (xAlign === 'right') {\n    x -= width;\n  } else if (xAlign === 'center') {\n    x -= width / 2;\n  }\n  return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n  let {\n    y,\n    height\n  } = size;\n  if (yAlign === 'top') {\n    y += paddingAndSize;\n  } else if (yAlign === 'bottom') {\n    y -= height + paddingAndSize;\n  } else {\n    y -= height / 2;\n  }\n  return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n  const {\n    caretSize,\n    caretPadding,\n    cornerRadius\n  } = options;\n  const {\n    xAlign,\n    yAlign\n  } = alignment;\n  const paddingAndSize = caretSize + caretPadding;\n  const {\n    topLeft,\n    topRight,\n    bottomLeft,\n    bottomRight\n  } = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ay)(cornerRadius);\n  let x = alignX(size, xAlign);\n  const y = alignY(size, yAlign, paddingAndSize);\n  if (yAlign === 'center') {\n    if (xAlign === 'left') {\n      x += paddingAndSize;\n    } else if (xAlign === 'right') {\n      x -= paddingAndSize;\n    }\n  } else if (xAlign === 'left') {\n    x -= Math.max(topLeft, bottomLeft) + caretSize;\n  } else if (xAlign === 'right') {\n    x += Math.max(topRight, bottomRight) + caretSize;\n  }\n  return {\n    x: (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)(x, 0, chart.width - size.width),\n    y: (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)(y, 0, chart.height - size.height)\n  };\n}\nfunction getAlignedX(tooltip, align, options) {\n  const padding = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(options.padding);\n  return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n  return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n  return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.j)(parent, {\n    tooltip,\n    tooltipItems,\n    type: 'tooltip'\n  });\n}\nfunction overrideCallbacks(callbacks, context) {\n  const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n  return override ? callbacks.override(override) : callbacks;\n}\nconst defaultCallbacks = {\n  beforeTitle: _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aG,\n  title(tooltipItems) {\n    if (tooltipItems.length > 0) {\n      const item = tooltipItems[0];\n      const labels = item.chart.data.labels;\n      const labelCount = labels ? labels.length : 0;\n      if (this && this.options && this.options.mode === 'dataset') {\n        return item.dataset.label || '';\n      } else if (item.label) {\n        return item.label;\n      } else if (labelCount > 0 && item.dataIndex < labelCount) {\n        return labels[item.dataIndex];\n      }\n    }\n    return '';\n  },\n  afterTitle: _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aG,\n  beforeBody: _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aG,\n  beforeLabel: _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aG,\n  label(tooltipItem) {\n    if (this && this.options && this.options.mode === 'dataset') {\n      return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n    }\n    let label = tooltipItem.dataset.label || '';\n    if (label) {\n      label += ': ';\n    }\n    const value = tooltipItem.formattedValue;\n    if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(value)) {\n      label += value;\n    }\n    return label;\n  },\n  labelColor(tooltipItem) {\n    const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n    const options = meta.controller.getStyle(tooltipItem.dataIndex);\n    return {\n      borderColor: options.borderColor,\n      backgroundColor: options.backgroundColor,\n      borderWidth: options.borderWidth,\n      borderDash: options.borderDash,\n      borderDashOffset: options.borderDashOffset,\n      borderRadius: 0\n    };\n  },\n  labelTextColor() {\n    return this.options.bodyColor;\n  },\n  labelPointStyle(tooltipItem) {\n    const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n    const options = meta.controller.getStyle(tooltipItem.dataIndex);\n    return {\n      pointStyle: options.pointStyle,\n      rotation: options.rotation\n    };\n  },\n  afterLabel: _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aG,\n  afterBody: _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aG,\n  beforeFooter: _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aG,\n  footer: _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aG,\n  afterFooter: _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aG\n};\nfunction invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n  const result = callbacks[name].call(ctx, arg);\n  if (typeof result === 'undefined') {\n    return defaultCallbacks[name].call(ctx, arg);\n  }\n  return result;\n}\nclass Tooltip extends Element {\n  static positioners = positioners;\n  constructor(config) {\n    super();\n    this.opacity = 0;\n    this._active = [];\n    this._eventPosition = undefined;\n    this._size = undefined;\n    this._cachedAnimations = undefined;\n    this._tooltipItems = [];\n    this.$animations = undefined;\n    this.$context = undefined;\n    this.chart = config.chart;\n    this.options = config.options;\n    this.dataPoints = undefined;\n    this.title = undefined;\n    this.beforeBody = undefined;\n    this.body = undefined;\n    this.afterBody = undefined;\n    this.footer = undefined;\n    this.xAlign = undefined;\n    this.yAlign = undefined;\n    this.x = undefined;\n    this.y = undefined;\n    this.height = undefined;\n    this.width = undefined;\n    this.caretX = undefined;\n    this.caretY = undefined;\n    this.labelColors = undefined;\n    this.labelPointStyles = undefined;\n    this.labelTextColors = undefined;\n  }\n  initialize(options) {\n    this.options = options;\n    this._cachedAnimations = undefined;\n    this.$context = undefined;\n  }\n  _resolveAnimations() {\n    const cached = this._cachedAnimations;\n    if (cached) {\n      return cached;\n    }\n    const chart = this.chart;\n    const options = this.options.setContext(this.getContext());\n    const opts = options.enabled && chart.options.animation && options.animations;\n    const animations = new Animations(this.chart, opts);\n    if (opts._cacheable) {\n      this._cachedAnimations = Object.freeze(animations);\n    }\n    return animations;\n  }\n  getContext() {\n    return this.$context || (this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n  }\n  getTitle(context, options) {\n    const {\n      callbacks\n    } = options;\n    const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n    const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n    const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n    let lines = [];\n    lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n    lines = pushOrConcat(lines, splitNewlines(title));\n    lines = pushOrConcat(lines, splitNewlines(afterTitle));\n    return lines;\n  }\n  getBeforeBody(tooltipItems, options) {\n    return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems));\n  }\n  getBody(tooltipItems, options) {\n    const {\n      callbacks\n    } = options;\n    const bodyItems = [];\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(tooltipItems, context => {\n      const bodyItem = {\n        before: [],\n        lines: [],\n        after: []\n      };\n      const scoped = overrideCallbacks(callbacks, context);\n      pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n      pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n      pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n      bodyItems.push(bodyItem);\n    });\n    return bodyItems;\n  }\n  getAfterBody(tooltipItems, options) {\n    return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems));\n  }\n  getFooter(tooltipItems, options) {\n    const {\n      callbacks\n    } = options;\n    const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n    const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n    const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n    let lines = [];\n    lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n    lines = pushOrConcat(lines, splitNewlines(footer));\n    lines = pushOrConcat(lines, splitNewlines(afterFooter));\n    return lines;\n  }\n  _createItems(options) {\n    const active = this._active;\n    const data = this.chart.data;\n    const labelColors = [];\n    const labelPointStyles = [];\n    const labelTextColors = [];\n    let tooltipItems = [];\n    let i, len;\n    for (i = 0, len = active.length; i < len; ++i) {\n      tooltipItems.push(createTooltipItem(this.chart, active[i]));\n    }\n    if (options.filter) {\n      tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n    }\n    if (options.itemSort) {\n      tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n    }\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(tooltipItems, context => {\n      const scoped = overrideCallbacks(options.callbacks, context);\n      labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n      labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n      labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n    });\n    this.labelColors = labelColors;\n    this.labelPointStyles = labelPointStyles;\n    this.labelTextColors = labelTextColors;\n    this.dataPoints = tooltipItems;\n    return tooltipItems;\n  }\n  update(changed, replay) {\n    const options = this.options.setContext(this.getContext());\n    const active = this._active;\n    let properties;\n    let tooltipItems = [];\n    if (!active.length) {\n      if (this.opacity !== 0) {\n        properties = {\n          opacity: 0\n        };\n      }\n    } else {\n      const position = positioners[options.position].call(this, active, this._eventPosition);\n      tooltipItems = this._createItems(options);\n      this.title = this.getTitle(tooltipItems, options);\n      this.beforeBody = this.getBeforeBody(tooltipItems, options);\n      this.body = this.getBody(tooltipItems, options);\n      this.afterBody = this.getAfterBody(tooltipItems, options);\n      this.footer = this.getFooter(tooltipItems, options);\n      const size = this._size = getTooltipSize(this, options);\n      const positionAndSize = Object.assign({}, position, size);\n      const alignment = determineAlignment(this.chart, options, positionAndSize);\n      const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n      this.xAlign = alignment.xAlign;\n      this.yAlign = alignment.yAlign;\n      properties = {\n        opacity: 1,\n        x: backgroundPoint.x,\n        y: backgroundPoint.y,\n        width: size.width,\n        height: size.height,\n        caretX: position.x,\n        caretY: position.y\n      };\n    }\n    this._tooltipItems = tooltipItems;\n    this.$context = undefined;\n    if (properties) {\n      this._resolveAnimations().update(this, properties);\n    }\n    if (changed && options.external) {\n      options.external.call(this, {\n        chart: this.chart,\n        tooltip: this,\n        replay\n      });\n    }\n  }\n  drawCaret(tooltipPoint, ctx, size, options) {\n    const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n    ctx.lineTo(caretPosition.x1, caretPosition.y1);\n    ctx.lineTo(caretPosition.x2, caretPosition.y2);\n    ctx.lineTo(caretPosition.x3, caretPosition.y3);\n  }\n  getCaretPosition(tooltipPoint, size, options) {\n    const {\n      xAlign,\n      yAlign\n    } = this;\n    const {\n      caretSize,\n      cornerRadius\n    } = options;\n    const {\n      topLeft,\n      topRight,\n      bottomLeft,\n      bottomRight\n    } = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ay)(cornerRadius);\n    const {\n      x: ptX,\n      y: ptY\n    } = tooltipPoint;\n    const {\n      width,\n      height\n    } = size;\n    let x1, x2, x3, y1, y2, y3;\n    if (yAlign === 'center') {\n      y2 = ptY + height / 2;\n      if (xAlign === 'left') {\n        x1 = ptX;\n        x2 = x1 - caretSize;\n        y1 = y2 + caretSize;\n        y3 = y2 - caretSize;\n      } else {\n        x1 = ptX + width;\n        x2 = x1 + caretSize;\n        y1 = y2 - caretSize;\n        y3 = y2 + caretSize;\n      }\n      x3 = x1;\n    } else {\n      if (xAlign === 'left') {\n        x2 = ptX + Math.max(topLeft, bottomLeft) + caretSize;\n      } else if (xAlign === 'right') {\n        x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n      } else {\n        x2 = this.caretX;\n      }\n      if (yAlign === 'top') {\n        y1 = ptY;\n        y2 = y1 - caretSize;\n        x1 = x2 - caretSize;\n        x3 = x2 + caretSize;\n      } else {\n        y1 = ptY + height;\n        y2 = y1 + caretSize;\n        x1 = x2 + caretSize;\n        x3 = x2 - caretSize;\n      }\n      y3 = y1;\n    }\n    return {\n      x1,\n      x2,\n      x3,\n      y1,\n      y2,\n      y3\n    };\n  }\n  drawTitle(pt, ctx, options) {\n    const title = this.title;\n    const length = title.length;\n    let titleFont, titleSpacing, i;\n    if (length) {\n      const rtlHelper = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aA)(options.rtl, this.x, this.width);\n      pt.x = getAlignedX(this, options.titleAlign, options);\n      ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n      ctx.textBaseline = 'middle';\n      titleFont = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(options.titleFont);\n      titleSpacing = options.titleSpacing;\n      ctx.fillStyle = options.titleColor;\n      ctx.font = titleFont.string;\n      for (i = 0; i < length; ++i) {\n        ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n        pt.y += titleFont.lineHeight + titleSpacing;\n        if (i + 1 === length) {\n          pt.y += options.titleMarginBottom - titleSpacing;\n        }\n      }\n    }\n  }\n  _drawColorBox(ctx, pt, i, rtlHelper, options) {\n    const labelColor = this.labelColors[i];\n    const labelPointStyle = this.labelPointStyles[i];\n    const {\n      boxHeight,\n      boxWidth\n    } = options;\n    const bodyFont = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(options.bodyFont);\n    const colorX = getAlignedX(this, 'left', options);\n    const rtlColorX = rtlHelper.x(colorX);\n    const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n    const colorY = pt.y + yOffSet;\n    if (options.usePointStyle) {\n      const drawOptions = {\n        radius: Math.min(boxWidth, boxHeight) / 2,\n        pointStyle: labelPointStyle.pointStyle,\n        rotation: labelPointStyle.rotation,\n        borderWidth: 1\n      };\n      const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n      const centerY = colorY + boxHeight / 2;\n      ctx.strokeStyle = options.multiKeyBackground;\n      ctx.fillStyle = options.multiKeyBackground;\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.av)(ctx, drawOptions, centerX, centerY);\n      ctx.strokeStyle = labelColor.borderColor;\n      ctx.fillStyle = labelColor.backgroundColor;\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.av)(ctx, drawOptions, centerX, centerY);\n    } else {\n      ctx.lineWidth = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.i)(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : labelColor.borderWidth || 1;\n      ctx.strokeStyle = labelColor.borderColor;\n      ctx.setLineDash(labelColor.borderDash || []);\n      ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n      const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n      const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n      const borderRadius = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ay)(labelColor.borderRadius);\n      if (Object.values(borderRadius).some(v => v !== 0)) {\n        ctx.beginPath();\n        ctx.fillStyle = options.multiKeyBackground;\n        (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aw)(ctx, {\n          x: outerX,\n          y: colorY,\n          w: boxWidth,\n          h: boxHeight,\n          radius: borderRadius\n        });\n        ctx.fill();\n        ctx.stroke();\n        ctx.fillStyle = labelColor.backgroundColor;\n        ctx.beginPath();\n        (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aw)(ctx, {\n          x: innerX,\n          y: colorY + 1,\n          w: boxWidth - 2,\n          h: boxHeight - 2,\n          radius: borderRadius\n        });\n        ctx.fill();\n      } else {\n        ctx.fillStyle = options.multiKeyBackground;\n        ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n        ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n        ctx.fillStyle = labelColor.backgroundColor;\n        ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n      }\n    }\n    ctx.fillStyle = this.labelTextColors[i];\n  }\n  drawBody(pt, ctx, options) {\n    const {\n      body\n    } = this;\n    const {\n      bodySpacing,\n      bodyAlign,\n      displayColors,\n      boxHeight,\n      boxWidth,\n      boxPadding\n    } = options;\n    const bodyFont = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(options.bodyFont);\n    let bodyLineHeight = bodyFont.lineHeight;\n    let xLinePadding = 0;\n    const rtlHelper = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aA)(options.rtl, this.x, this.width);\n    const fillLineOfText = function (line) {\n      ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n      pt.y += bodyLineHeight + bodySpacing;\n    };\n    const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n    let bodyItem, textColor, lines, i, j, ilen, jlen;\n    ctx.textAlign = bodyAlign;\n    ctx.textBaseline = 'middle';\n    ctx.font = bodyFont.string;\n    pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n    ctx.fillStyle = options.bodyColor;\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(this.beforeBody, fillLineOfText);\n    xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n    for (i = 0, ilen = body.length; i < ilen; ++i) {\n      bodyItem = body[i];\n      textColor = this.labelTextColors[i];\n      ctx.fillStyle = textColor;\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(bodyItem.before, fillLineOfText);\n      lines = bodyItem.lines;\n      if (displayColors && lines.length) {\n        this._drawColorBox(ctx, pt, i, rtlHelper, options);\n        bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n      }\n      for (j = 0, jlen = lines.length; j < jlen; ++j) {\n        fillLineOfText(lines[j]);\n        bodyLineHeight = bodyFont.lineHeight;\n      }\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(bodyItem.after, fillLineOfText);\n    }\n    xLinePadding = 0;\n    bodyLineHeight = bodyFont.lineHeight;\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.F)(this.afterBody, fillLineOfText);\n    pt.y -= bodySpacing;\n  }\n  drawFooter(pt, ctx, options) {\n    const footer = this.footer;\n    const length = footer.length;\n    let footerFont, i;\n    if (length) {\n      const rtlHelper = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aA)(options.rtl, this.x, this.width);\n      pt.x = getAlignedX(this, options.footerAlign, options);\n      pt.y += options.footerMarginTop;\n      ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n      ctx.textBaseline = 'middle';\n      footerFont = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(options.footerFont);\n      ctx.fillStyle = options.footerColor;\n      ctx.font = footerFont.string;\n      for (i = 0; i < length; ++i) {\n        ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n        pt.y += footerFont.lineHeight + options.footerSpacing;\n      }\n    }\n  }\n  drawBackground(pt, ctx, tooltipSize, options) {\n    const {\n      xAlign,\n      yAlign\n    } = this;\n    const {\n      x,\n      y\n    } = pt;\n    const {\n      width,\n      height\n    } = tooltipSize;\n    const {\n      topLeft,\n      topRight,\n      bottomLeft,\n      bottomRight\n    } = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ay)(options.cornerRadius);\n    ctx.fillStyle = options.backgroundColor;\n    ctx.strokeStyle = options.borderColor;\n    ctx.lineWidth = options.borderWidth;\n    ctx.beginPath();\n    ctx.moveTo(x + topLeft, y);\n    if (yAlign === 'top') {\n      this.drawCaret(pt, ctx, tooltipSize, options);\n    }\n    ctx.lineTo(x + width - topRight, y);\n    ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n    if (yAlign === 'center' && xAlign === 'right') {\n      this.drawCaret(pt, ctx, tooltipSize, options);\n    }\n    ctx.lineTo(x + width, y + height - bottomRight);\n    ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n    if (yAlign === 'bottom') {\n      this.drawCaret(pt, ctx, tooltipSize, options);\n    }\n    ctx.lineTo(x + bottomLeft, y + height);\n    ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n    if (yAlign === 'center' && xAlign === 'left') {\n      this.drawCaret(pt, ctx, tooltipSize, options);\n    }\n    ctx.lineTo(x, y + topLeft);\n    ctx.quadraticCurveTo(x, y, x + topLeft, y);\n    ctx.closePath();\n    ctx.fill();\n    if (options.borderWidth > 0) {\n      ctx.stroke();\n    }\n  }\n  _updateAnimationTarget(options) {\n    const chart = this.chart;\n    const anims = this.$animations;\n    const animX = anims && anims.x;\n    const animY = anims && anims.y;\n    if (animX || animY) {\n      const position = positioners[options.position].call(this, this._active, this._eventPosition);\n      if (!position) {\n        return;\n      }\n      const size = this._size = getTooltipSize(this, options);\n      const positionAndSize = Object.assign({}, position, this._size);\n      const alignment = determineAlignment(chart, options, positionAndSize);\n      const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n      if (animX._to !== point.x || animY._to !== point.y) {\n        this.xAlign = alignment.xAlign;\n        this.yAlign = alignment.yAlign;\n        this.width = size.width;\n        this.height = size.height;\n        this.caretX = position.x;\n        this.caretY = position.y;\n        this._resolveAnimations().update(this, point);\n      }\n    }\n  }\n  _willRender() {\n    return !!this.opacity;\n  }\n  draw(ctx) {\n    const options = this.options.setContext(this.getContext());\n    let opacity = this.opacity;\n    if (!opacity) {\n      return;\n    }\n    this._updateAnimationTarget(options);\n    const tooltipSize = {\n      width: this.width,\n      height: this.height\n    };\n    const pt = {\n      x: this.x,\n      y: this.y\n    };\n    opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n    const padding = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(options.padding);\n    const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n    if (options.enabled && hasTooltipContent) {\n      ctx.save();\n      ctx.globalAlpha = opacity;\n      this.drawBackground(pt, ctx, tooltipSize, options);\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aB)(ctx, options.textDirection);\n      pt.y += padding.top;\n      this.drawTitle(pt, ctx, options);\n      this.drawBody(pt, ctx, options);\n      this.drawFooter(pt, ctx, options);\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aD)(ctx, options.textDirection);\n      ctx.restore();\n    }\n  }\n  getActiveElements() {\n    return this._active || [];\n  }\n  setActiveElements(activeElements, eventPosition) {\n    const lastActive = this._active;\n    const active = activeElements.map(({\n      datasetIndex,\n      index\n    }) => {\n      const meta = this.chart.getDatasetMeta(datasetIndex);\n      if (!meta) {\n        throw new Error('Cannot find a dataset at index ' + datasetIndex);\n      }\n      return {\n        datasetIndex,\n        element: meta.data[index],\n        index\n      };\n    });\n    const changed = !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ai)(lastActive, active);\n    const positionChanged = this._positionChanged(active, eventPosition);\n    if (changed || positionChanged) {\n      this._active = active;\n      this._eventPosition = eventPosition;\n      this._ignoreReplayEvents = true;\n      this.update(true);\n    }\n  }\n  handleEvent(e, replay, inChartArea = true) {\n    if (replay && this._ignoreReplayEvents) {\n      return false;\n    }\n    this._ignoreReplayEvents = false;\n    const options = this.options;\n    const lastActive = this._active || [];\n    const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n    const positionChanged = this._positionChanged(active, e);\n    const changed = replay || !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ai)(active, lastActive) || positionChanged;\n    if (changed) {\n      this._active = active;\n      if (options.enabled || options.external) {\n        this._eventPosition = {\n          x: e.x,\n          y: e.y\n        };\n        this.update(true, replay);\n      }\n    }\n    return changed;\n  }\n  _getActiveElements(e, lastActive, replay, inChartArea) {\n    const options = this.options;\n    if (e.type === 'mouseout') {\n      return [];\n    }\n    if (!inChartArea) {\n      return lastActive.filter(i => this.chart.data.datasets[i.datasetIndex] && this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined);\n    }\n    const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n    if (options.reverse) {\n      active.reverse();\n    }\n    return active;\n  }\n  _positionChanged(active, e) {\n    const {\n      caretX,\n      caretY,\n      options\n    } = this;\n    const position = positioners[options.position].call(this, active, e);\n    return position !== false && (caretX !== position.x || caretY !== position.y);\n  }\n}\nvar plugin_tooltip = {\n  id: 'tooltip',\n  _element: Tooltip,\n  positioners,\n  afterInit(chart, _args, options) {\n    if (options) {\n      chart.tooltip = new Tooltip({\n        chart,\n        options\n      });\n    }\n  },\n  beforeUpdate(chart, _args, options) {\n    if (chart.tooltip) {\n      chart.tooltip.initialize(options);\n    }\n  },\n  reset(chart, _args, options) {\n    if (chart.tooltip) {\n      chart.tooltip.initialize(options);\n    }\n  },\n  afterDraw(chart) {\n    const tooltip = chart.tooltip;\n    if (tooltip && tooltip._willRender()) {\n      const args = {\n        tooltip\n      };\n      if (chart.notifyPlugins('beforeTooltipDraw', {\n        ...args,\n        cancelable: true\n      }) === false) {\n        return;\n      }\n      tooltip.draw(chart.ctx);\n      chart.notifyPlugins('afterTooltipDraw', args);\n    }\n  },\n  afterEvent(chart, args) {\n    if (chart.tooltip) {\n      const useFinalPosition = args.replay;\n      if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n        args.changed = true;\n      }\n    }\n  },\n  defaults: {\n    enabled: true,\n    external: null,\n    position: 'average',\n    backgroundColor: 'rgba(0,0,0,0.8)',\n    titleColor: '#fff',\n    titleFont: {\n      weight: 'bold'\n    },\n    titleSpacing: 2,\n    titleMarginBottom: 6,\n    titleAlign: 'left',\n    bodyColor: '#fff',\n    bodySpacing: 2,\n    bodyFont: {},\n    bodyAlign: 'left',\n    footerColor: '#fff',\n    footerSpacing: 2,\n    footerMarginTop: 6,\n    footerFont: {\n      weight: 'bold'\n    },\n    footerAlign: 'left',\n    padding: 6,\n    caretPadding: 2,\n    caretSize: 5,\n    cornerRadius: 6,\n    boxHeight: (ctx, opts) => opts.bodyFont.size,\n    boxWidth: (ctx, opts) => opts.bodyFont.size,\n    multiKeyBackground: '#fff',\n    displayColors: true,\n    boxPadding: 0,\n    borderColor: 'rgba(0,0,0,0)',\n    borderWidth: 0,\n    animation: {\n      duration: 400,\n      easing: 'easeOutQuart'\n    },\n    animations: {\n      numbers: {\n        type: 'number',\n        properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY']\n      },\n      opacity: {\n        easing: 'linear',\n        duration: 200\n      }\n    },\n    callbacks: defaultCallbacks\n  },\n  defaultRoutes: {\n    bodyFont: 'font',\n    footerFont: 'font',\n    titleFont: 'font'\n  },\n  descriptors: {\n    _scriptable: name => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n    _indexable: false,\n    callbacks: {\n      _scriptable: false,\n      _indexable: false\n    },\n    animation: {\n      _fallback: false\n    },\n    animations: {\n      _fallback: 'animation'\n    }\n  },\n  additionalOptionScopes: ['interaction']\n};\nvar plugins = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  Colors: plugin_colors,\n  Decimation: plugin_decimation,\n  Filler: index,\n  Legend: plugin_legend,\n  SubTitle: plugin_subtitle,\n  Title: plugin_title,\n  Tooltip: plugin_tooltip\n});\nconst addIfString = (labels, raw, index, addedLabels) => {\n  if (typeof raw === 'string') {\n    index = labels.push(raw) - 1;\n    addedLabels.unshift({\n      index,\n      label: raw\n    });\n  } else if (isNaN(raw)) {\n    index = null;\n  }\n  return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n  const first = labels.indexOf(raw);\n  if (first === -1) {\n    return addIfString(labels, raw, index, addedLabels);\n  }\n  const last = labels.lastIndexOf(raw);\n  return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)(Math.round(index), 0, max);\nfunction _getLabelForValue(value) {\n  const labels = this.getLabels();\n  if (value >= 0 && value < labels.length) {\n    return labels[value];\n  }\n  return value;\n}\nclass CategoryScale extends Scale {\n  static id = 'category';\n  static defaults = {\n    ticks: {\n      callback: _getLabelForValue\n    }\n  };\n  constructor(cfg) {\n    super(cfg);\n    this._startValue = undefined;\n    this._valueRange = 0;\n    this._addedLabels = [];\n  }\n  init(scaleOptions) {\n    const added = this._addedLabels;\n    if (added.length) {\n      const labels = this.getLabels();\n      for (const {\n        index,\n        label\n      } of added) {\n        if (labels[index] === label) {\n          labels.splice(index, 1);\n        }\n      }\n      this._addedLabels = [];\n    }\n    super.init(scaleOptions);\n  }\n  parse(raw, index) {\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(raw)) {\n      return null;\n    }\n    const labels = this.getLabels();\n    index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(index, raw), this._addedLabels);\n    return validIndex(index, labels.length - 1);\n  }\n  determineDataLimits() {\n    const {\n      minDefined,\n      maxDefined\n    } = this.getUserBounds();\n    let {\n      min,\n      max\n    } = this.getMinMax(true);\n    if (this.options.bounds === 'ticks') {\n      if (!minDefined) {\n        min = 0;\n      }\n      if (!maxDefined) {\n        max = this.getLabels().length - 1;\n      }\n    }\n    this.min = min;\n    this.max = max;\n  }\n  buildTicks() {\n    const min = this.min;\n    const max = this.max;\n    const offset = this.options.offset;\n    const ticks = [];\n    let labels = this.getLabels();\n    labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n    this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n    this._startValue = this.min - (offset ? 0.5 : 0);\n    for (let value = min; value <= max; value++) {\n      ticks.push({\n        value\n      });\n    }\n    return ticks;\n  }\n  getLabelForValue(value) {\n    return _getLabelForValue.call(this, value);\n  }\n  configure() {\n    super.configure();\n    if (!this.isHorizontal()) {\n      this._reversePixels = !this._reversePixels;\n    }\n  }\n  getPixelForValue(value) {\n    if (typeof value !== 'number') {\n      value = this.parse(value);\n    }\n    return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n  }\n  getPixelForTick(index) {\n    const ticks = this.ticks;\n    if (index < 0 || index > ticks.length - 1) {\n      return null;\n    }\n    return this.getPixelForValue(ticks[index].value);\n  }\n  getValueForPixel(pixel) {\n    return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n  }\n  getBasePixel() {\n    return this.bottom;\n  }\n}\nfunction generateTicks$1(generationOptions, dataRange) {\n  const ticks = [];\n  const MIN_SPACING = 1e-14;\n  const {\n    bounds,\n    step,\n    min,\n    max,\n    precision,\n    count,\n    maxTicks,\n    maxDigits,\n    includeBounds\n  } = generationOptions;\n  const unit = step || 1;\n  const maxSpaces = maxTicks - 1;\n  const {\n    min: rmin,\n    max: rmax\n  } = dataRange;\n  const minDefined = !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(min);\n  const maxDefined = !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(max);\n  const countDefined = !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(count);\n  const minSpacing = (rmax - rmin) / (maxDigits + 1);\n  let spacing = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aI)((rmax - rmin) / maxSpaces / unit) * unit;\n  let factor, niceMin, niceMax, numSpaces;\n  if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n    return [{\n      value: rmin\n    }, {\n      value: rmax\n    }];\n  }\n  numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n  if (numSpaces > maxSpaces) {\n    spacing = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aI)(numSpaces * spacing / maxSpaces / unit) * unit;\n  }\n  if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(precision)) {\n    factor = Math.pow(10, precision);\n    spacing = Math.ceil(spacing * factor) / factor;\n  }\n  if (bounds === 'ticks') {\n    niceMin = Math.floor(rmin / spacing) * spacing;\n    niceMax = Math.ceil(rmax / spacing) * spacing;\n  } else {\n    niceMin = rmin;\n    niceMax = rmax;\n  }\n  if (minDefined && maxDefined && step && (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aJ)((max - min) / step, spacing / 1000)) {\n    numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n    spacing = (max - min) / numSpaces;\n    niceMin = min;\n    niceMax = max;\n  } else if (countDefined) {\n    niceMin = minDefined ? min : niceMin;\n    niceMax = maxDefined ? max : niceMax;\n    numSpaces = count - 1;\n    spacing = (niceMax - niceMin) / numSpaces;\n  } else {\n    numSpaces = (niceMax - niceMin) / spacing;\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aK)(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n      numSpaces = Math.round(numSpaces);\n    } else {\n      numSpaces = Math.ceil(numSpaces);\n    }\n  }\n  const decimalPlaces = Math.max((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aL)(spacing), (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aL)(niceMin));\n  factor = Math.pow(10, (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(precision) ? decimalPlaces : precision);\n  niceMin = Math.round(niceMin * factor) / factor;\n  niceMax = Math.round(niceMax * factor) / factor;\n  let j = 0;\n  if (minDefined) {\n    if (includeBounds && niceMin !== min) {\n      ticks.push({\n        value: min\n      });\n      if (niceMin < min) {\n        j++;\n      }\n      if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aK)(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n        j++;\n      }\n    } else if (niceMin < min) {\n      j++;\n    }\n  }\n  for (; j < numSpaces; ++j) {\n    const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n    if (maxDefined && tickValue > max) {\n      break;\n    }\n    ticks.push({\n      value: tickValue\n    });\n  }\n  if (maxDefined && includeBounds && niceMax !== max) {\n    if (ticks.length && (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aK)(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n      ticks[ticks.length - 1].value = max;\n    } else {\n      ticks.push({\n        value: max\n      });\n    }\n  } else if (!maxDefined || niceMax === max) {\n    ticks.push({\n      value: niceMax\n    });\n  }\n  return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {\n  horizontal,\n  minRotation\n}) {\n  const rad = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.t)(minRotation);\n  const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n  const length = 0.75 * minSpacing * ('' + value).length;\n  return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n  constructor(cfg) {\n    super(cfg);\n    this.start = undefined;\n    this.end = undefined;\n    this._startValue = undefined;\n    this._endValue = undefined;\n    this._valueRange = 0;\n  }\n  parse(raw, index) {\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(raw)) {\n      return null;\n    }\n    if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n      return null;\n    }\n    return +raw;\n  }\n  handleTickRangeOptions() {\n    const {\n      beginAtZero\n    } = this.options;\n    const {\n      minDefined,\n      maxDefined\n    } = this.getUserBounds();\n    let {\n      min,\n      max\n    } = this;\n    const setMin = v => min = minDefined ? min : v;\n    const setMax = v => max = maxDefined ? max : v;\n    if (beginAtZero) {\n      const minSign = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.s)(min);\n      const maxSign = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.s)(max);\n      if (minSign < 0 && maxSign < 0) {\n        setMax(0);\n      } else if (minSign > 0 && maxSign > 0) {\n        setMin(0);\n      }\n    }\n    if (min === max) {\n      let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n      setMax(max + offset);\n      if (!beginAtZero) {\n        setMin(min - offset);\n      }\n    }\n    this.min = min;\n    this.max = max;\n  }\n  getTickLimit() {\n    const tickOpts = this.options.ticks;\n    let {\n      maxTicksLimit,\n      stepSize\n    } = tickOpts;\n    let maxTicks;\n    if (stepSize) {\n      maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n      if (maxTicks > 1000) {\n        console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n        maxTicks = 1000;\n      }\n    } else {\n      maxTicks = this.computeTickLimit();\n      maxTicksLimit = maxTicksLimit || 11;\n    }\n    if (maxTicksLimit) {\n      maxTicks = Math.min(maxTicksLimit, maxTicks);\n    }\n    return maxTicks;\n  }\n  computeTickLimit() {\n    return Number.POSITIVE_INFINITY;\n  }\n  buildTicks() {\n    const opts = this.options;\n    const tickOpts = opts.ticks;\n    let maxTicks = this.getTickLimit();\n    maxTicks = Math.max(2, maxTicks);\n    const numericGeneratorOptions = {\n      maxTicks,\n      bounds: opts.bounds,\n      min: opts.min,\n      max: opts.max,\n      precision: tickOpts.precision,\n      step: tickOpts.stepSize,\n      count: tickOpts.count,\n      maxDigits: this._maxDigits(),\n      horizontal: this.isHorizontal(),\n      minRotation: tickOpts.minRotation || 0,\n      includeBounds: tickOpts.includeBounds !== false\n    };\n    const dataRange = this._range || this;\n    const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n    if (opts.bounds === 'ticks') {\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aH)(ticks, this, 'value');\n    }\n    if (opts.reverse) {\n      ticks.reverse();\n      this.start = this.max;\n      this.end = this.min;\n    } else {\n      this.start = this.min;\n      this.end = this.max;\n    }\n    return ticks;\n  }\n  configure() {\n    const ticks = this.ticks;\n    let start = this.min;\n    let end = this.max;\n    super.configure();\n    if (this.options.offset && ticks.length) {\n      const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n      start -= offset;\n      end += offset;\n    }\n    this._startValue = start;\n    this._endValue = end;\n    this._valueRange = end - start;\n  }\n  getLabelForValue(value) {\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.o)(value, this.chart.options.locale, this.options.ticks.format);\n  }\n}\nclass LinearScale extends LinearScaleBase {\n  static id = 'linear';\n  static defaults = {\n    ticks: {\n      callback: _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aM.formatters.numeric\n    }\n  };\n  determineDataLimits() {\n    const {\n      min,\n      max\n    } = this.getMinMax(true);\n    this.min = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(min) ? min : 0;\n    this.max = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(max) ? max : 1;\n    this.handleTickRangeOptions();\n  }\n  computeTickLimit() {\n    const horizontal = this.isHorizontal();\n    const length = horizontal ? this.width : this.height;\n    const minRotation = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.t)(this.options.ticks.minRotation);\n    const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n    const tickFont = this._resolveTickFontOptions(0);\n    return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n  }\n  getPixelForValue(value) {\n    return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n  }\n  getValueForPixel(pixel) {\n    return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n  }\n}\nconst log10Floor = v => Math.floor((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aN)(v));\nconst changeExponent = (v, m) => Math.pow(10, log10Floor(v) + m);\nfunction isMajor(tickVal) {\n  const remain = tickVal / Math.pow(10, log10Floor(tickVal));\n  return remain === 1;\n}\nfunction steps(min, max, rangeExp) {\n  const rangeStep = Math.pow(10, rangeExp);\n  const start = Math.floor(min / rangeStep);\n  const end = Math.ceil(max / rangeStep);\n  return end - start;\n}\nfunction startExp(min, max) {\n  const range = max - min;\n  let rangeExp = log10Floor(range);\n  while (steps(min, max, rangeExp) > 10) {\n    rangeExp++;\n  }\n  while (steps(min, max, rangeExp) < 10) {\n    rangeExp--;\n  }\n  return Math.min(rangeExp, log10Floor(min));\n}\nfunction generateTicks(generationOptions, {\n  min,\n  max\n}) {\n  min = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.O)(generationOptions.min, min);\n  const ticks = [];\n  const minExp = log10Floor(min);\n  let exp = startExp(min, max);\n  let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n  const stepSize = Math.pow(10, exp);\n  const base = minExp > exp ? Math.pow(10, minExp) : 0;\n  const start = Math.round((min - base) * precision) / precision;\n  const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n  let significand = Math.floor((start - offset) / Math.pow(10, exp));\n  let value = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.O)(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n  while (value < max) {\n    ticks.push({\n      value,\n      major: isMajor(value),\n      significand\n    });\n    if (significand >= 10) {\n      significand = significand < 15 ? 15 : 20;\n    } else {\n      significand++;\n    }\n    if (significand >= 20) {\n      exp++;\n      significand = 2;\n      precision = exp >= 0 ? 1 : precision;\n    }\n    value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n  }\n  const lastTick = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.O)(generationOptions.max, value);\n  ticks.push({\n    value: lastTick,\n    major: isMajor(lastTick),\n    significand\n  });\n  return ticks;\n}\nclass LogarithmicScale extends Scale {\n  static id = 'logarithmic';\n  static defaults = {\n    ticks: {\n      callback: _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aM.formatters.logarithmic,\n      major: {\n        enabled: true\n      }\n    }\n  };\n  constructor(cfg) {\n    super(cfg);\n    this.start = undefined;\n    this.end = undefined;\n    this._startValue = undefined;\n    this._valueRange = 0;\n  }\n  parse(raw, index) {\n    const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n    if (value === 0) {\n      this._zero = true;\n      return undefined;\n    }\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(value) && value > 0 ? value : null;\n  }\n  determineDataLimits() {\n    const {\n      min,\n      max\n    } = this.getMinMax(true);\n    this.min = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(min) ? Math.max(0, min) : null;\n    this.max = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(max) ? Math.max(0, max) : null;\n    if (this.options.beginAtZero) {\n      this._zero = true;\n    }\n    if (this._zero && this.min !== this._suggestedMin && !(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(this._userMin)) {\n      this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n    }\n    this.handleTickRangeOptions();\n  }\n  handleTickRangeOptions() {\n    const {\n      minDefined,\n      maxDefined\n    } = this.getUserBounds();\n    let min = this.min;\n    let max = this.max;\n    const setMin = v => min = minDefined ? min : v;\n    const setMax = v => max = maxDefined ? max : v;\n    if (min === max) {\n      if (min <= 0) {\n        setMin(1);\n        setMax(10);\n      } else {\n        setMin(changeExponent(min, -1));\n        setMax(changeExponent(max, +1));\n      }\n    }\n    if (min <= 0) {\n      setMin(changeExponent(max, -1));\n    }\n    if (max <= 0) {\n      setMax(changeExponent(min, +1));\n    }\n    this.min = min;\n    this.max = max;\n  }\n  buildTicks() {\n    const opts = this.options;\n    const generationOptions = {\n      min: this._userMin,\n      max: this._userMax\n    };\n    const ticks = generateTicks(generationOptions, this);\n    if (opts.bounds === 'ticks') {\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aH)(ticks, this, 'value');\n    }\n    if (opts.reverse) {\n      ticks.reverse();\n      this.start = this.max;\n      this.end = this.min;\n    } else {\n      this.start = this.min;\n      this.end = this.max;\n    }\n    return ticks;\n  }\n  getLabelForValue(value) {\n    return value === undefined ? '0' : (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.o)(value, this.chart.options.locale, this.options.ticks.format);\n  }\n  configure() {\n    const start = this.min;\n    super.configure();\n    this._startValue = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aN)(start);\n    this._valueRange = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aN)(this.max) - (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aN)(start);\n  }\n  getPixelForValue(value) {\n    if (value === undefined || value === 0) {\n      value = this.min;\n    }\n    if (value === null || isNaN(value)) {\n      return NaN;\n    }\n    return this.getPixelForDecimal(value === this.min ? 0 : ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aN)(value) - this._startValue) / this._valueRange);\n  }\n  getValueForPixel(pixel) {\n    const decimal = this.getDecimalForPixel(pixel);\n    return Math.pow(10, this._startValue + decimal * this._valueRange);\n  }\n}\nfunction getTickBackdropHeight(opts) {\n  const tickOpts = opts.ticks;\n  if (tickOpts.display && opts.display) {\n    const padding = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(tickOpts.backdropPadding);\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(tickOpts.font && tickOpts.font.size, _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.d.font.size) + padding.height;\n  }\n  return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n  label = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.b)(label) ? label : [label];\n  return {\n    w: (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aO)(ctx, font.string, label),\n    h: label.length * font.lineHeight\n  };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n  if (angle === min || angle === max) {\n    return {\n      start: pos - size / 2,\n      end: pos + size / 2\n    };\n  } else if (angle < min || angle > max) {\n    return {\n      start: pos - size,\n      end: pos\n    };\n  }\n  return {\n    start: pos,\n    end: pos + size\n  };\n}\nfunction fitWithPointLabels(scale) {\n  const orig = {\n    l: scale.left + scale._padding.left,\n    r: scale.right - scale._padding.right,\n    t: scale.top + scale._padding.top,\n    b: scale.bottom - scale._padding.bottom\n  };\n  const limits = Object.assign({}, orig);\n  const labelSizes = [];\n  const padding = [];\n  const valueCount = scale._pointLabels.length;\n  const pointLabelOpts = scale.options.pointLabels;\n  const additionalAngle = pointLabelOpts.centerPointLabels ? _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P / valueCount : 0;\n  for (let i = 0; i < valueCount; i++) {\n    const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n    padding[i] = opts.padding;\n    const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n    const plFont = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(opts.font);\n    const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n    labelSizes[i] = textSize;\n    const angleRadians = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.al)(scale.getIndexAngle(i) + additionalAngle);\n    const angle = Math.round((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.U)(angleRadians));\n    const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n    const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n    updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n  }\n  scale.setCenterPoint(orig.l - limits.l, limits.r - orig.r, orig.t - limits.t, limits.b - orig.b);\n  scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n  const sin = Math.abs(Math.sin(angle));\n  const cos = Math.abs(Math.cos(angle));\n  let x = 0;\n  let y = 0;\n  if (hLimits.start < orig.l) {\n    x = (orig.l - hLimits.start) / sin;\n    limits.l = Math.min(limits.l, orig.l - x);\n  } else if (hLimits.end > orig.r) {\n    x = (hLimits.end - orig.r) / sin;\n    limits.r = Math.max(limits.r, orig.r + x);\n  }\n  if (vLimits.start < orig.t) {\n    y = (orig.t - vLimits.start) / cos;\n    limits.t = Math.min(limits.t, orig.t - y);\n  } else if (vLimits.end > orig.b) {\n    y = (vLimits.end - orig.b) / cos;\n    limits.b = Math.max(limits.b, orig.b + y);\n  }\n}\nfunction createPointLabelItem(scale, index, itemOpts) {\n  const outerDistance = scale.drawingArea;\n  const {\n    extra,\n    additionalAngle,\n    padding,\n    size\n  } = itemOpts;\n  const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n  const angle = Math.round((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.U)((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.al)(pointLabelPosition.angle + _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.H)));\n  const y = yForAngle(pointLabelPosition.y, size.h, angle);\n  const textAlign = getTextAlignForAngle(angle);\n  const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n  return {\n    visible: true,\n    x: pointLabelPosition.x,\n    y,\n    textAlign,\n    left,\n    top: y,\n    right: left + size.w,\n    bottom: y + size.h\n  };\n}\nfunction isNotOverlapped(item, area) {\n  if (!area) {\n    return true;\n  }\n  const {\n    left,\n    top,\n    right,\n    bottom\n  } = item;\n  const apexesInArea = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.C)({\n    x: left,\n    y: top\n  }, area) || (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.C)({\n    x: left,\n    y: bottom\n  }, area) || (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.C)({\n    x: right,\n    y: top\n  }, area) || (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.C)({\n    x: right,\n    y: bottom\n  }, area);\n  return !apexesInArea;\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n  const items = [];\n  const valueCount = scale._pointLabels.length;\n  const opts = scale.options;\n  const {\n    centerPointLabels,\n    display\n  } = opts.pointLabels;\n  const itemOpts = {\n    extra: getTickBackdropHeight(opts) / 2,\n    additionalAngle: centerPointLabels ? _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.P / valueCount : 0\n  };\n  let area;\n  for (let i = 0; i < valueCount; i++) {\n    itemOpts.padding = padding[i];\n    itemOpts.size = labelSizes[i];\n    const item = createPointLabelItem(scale, i, itemOpts);\n    items.push(item);\n    if (display === 'auto') {\n      item.visible = isNotOverlapped(item, area);\n      if (item.visible) {\n        area = item;\n      }\n    }\n  }\n  return items;\n}\nfunction getTextAlignForAngle(angle) {\n  if (angle === 0 || angle === 180) {\n    return 'center';\n  } else if (angle < 180) {\n    return 'left';\n  }\n  return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n  if (align === 'right') {\n    x -= w;\n  } else if (align === 'center') {\n    x -= w / 2;\n  }\n  return x;\n}\nfunction yForAngle(y, h, angle) {\n  if (angle === 90 || angle === 270) {\n    y -= h / 2;\n  } else if (angle > 270 || angle < 90) {\n    y -= h;\n  }\n  return y;\n}\nfunction drawPointLabelBox(ctx, opts, item) {\n  const {\n    left,\n    top,\n    right,\n    bottom\n  } = item;\n  const {\n    backdropColor\n  } = opts;\n  if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(backdropColor)) {\n    const borderRadius = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ay)(opts.borderRadius);\n    const padding = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(opts.backdropPadding);\n    ctx.fillStyle = backdropColor;\n    const backdropLeft = left - padding.left;\n    const backdropTop = top - padding.top;\n    const backdropWidth = right - left + padding.width;\n    const backdropHeight = bottom - top + padding.height;\n    if (Object.values(borderRadius).some(v => v !== 0)) {\n      ctx.beginPath();\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aw)(ctx, {\n        x: backdropLeft,\n        y: backdropTop,\n        w: backdropWidth,\n        h: backdropHeight,\n        radius: borderRadius\n      });\n      ctx.fill();\n    } else {\n      ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n    }\n  }\n}\nfunction drawPointLabels(scale, labelCount) {\n  const {\n    ctx,\n    options: {\n      pointLabels\n    }\n  } = scale;\n  for (let i = labelCount - 1; i >= 0; i--) {\n    const item = scale._pointLabelItems[i];\n    if (!item.visible) {\n      continue;\n    }\n    const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n    drawPointLabelBox(ctx, optsAtIndex, item);\n    const plFont = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(optsAtIndex.font);\n    const {\n      x,\n      y,\n      textAlign\n    } = item;\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Z)(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n      color: optsAtIndex.color,\n      textAlign: textAlign,\n      textBaseline: 'middle'\n    });\n  }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n  const {\n    ctx\n  } = scale;\n  if (circular) {\n    ctx.arc(scale.xCenter, scale.yCenter, radius, 0, _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T);\n  } else {\n    let pointPosition = scale.getPointPosition(0, radius);\n    ctx.moveTo(pointPosition.x, pointPosition.y);\n    for (let i = 1; i < labelCount; i++) {\n      pointPosition = scale.getPointPosition(i, radius);\n      ctx.lineTo(pointPosition.x, pointPosition.y);\n    }\n  }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n  const ctx = scale.ctx;\n  const circular = gridLineOpts.circular;\n  const {\n    color,\n    lineWidth\n  } = gridLineOpts;\n  if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n    return;\n  }\n  ctx.save();\n  ctx.strokeStyle = color;\n  ctx.lineWidth = lineWidth;\n  ctx.setLineDash(borderOpts.dash || []);\n  ctx.lineDashOffset = borderOpts.dashOffset;\n  ctx.beginPath();\n  pathRadiusLine(scale, radius, circular, labelCount);\n  ctx.closePath();\n  ctx.stroke();\n  ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n  return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.j)(parent, {\n    label,\n    index,\n    type: 'pointLabel'\n  });\n}\nclass RadialLinearScale extends LinearScaleBase {\n  static id = 'radialLinear';\n  static defaults = {\n    display: true,\n    animate: true,\n    position: 'chartArea',\n    angleLines: {\n      display: true,\n      lineWidth: 1,\n      borderDash: [],\n      borderDashOffset: 0.0\n    },\n    grid: {\n      circular: false\n    },\n    startAngle: 0,\n    ticks: {\n      showLabelBackdrop: true,\n      callback: _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aM.formatters.numeric\n    },\n    pointLabels: {\n      backdropColor: undefined,\n      backdropPadding: 2,\n      display: true,\n      font: {\n        size: 10\n      },\n      callback(label) {\n        return label;\n      },\n      padding: 5,\n      centerPointLabels: false\n    }\n  };\n  static defaultRoutes = {\n    'angleLines.color': 'borderColor',\n    'pointLabels.color': 'color',\n    'ticks.color': 'color'\n  };\n  static descriptors = {\n    angleLines: {\n      _fallback: 'grid'\n    }\n  };\n  constructor(cfg) {\n    super(cfg);\n    this.xCenter = undefined;\n    this.yCenter = undefined;\n    this.drawingArea = undefined;\n    this._pointLabels = [];\n    this._pointLabelItems = [];\n  }\n  setDimensions() {\n    const padding = this._padding = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(getTickBackdropHeight(this.options) / 2);\n    const w = this.width = this.maxWidth - padding.width;\n    const h = this.height = this.maxHeight - padding.height;\n    this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n    this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n    this.drawingArea = Math.floor(Math.min(w, h) / 2);\n  }\n  determineDataLimits() {\n    const {\n      min,\n      max\n    } = this.getMinMax(false);\n    this.min = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(min) && !isNaN(min) ? min : 0;\n    this.max = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(max) && !isNaN(max) ? max : 0;\n    this.handleTickRangeOptions();\n  }\n  computeTickLimit() {\n    return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n  }\n  generateTickLabels(ticks) {\n    LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n    this._pointLabels = this.getLabels().map((value, index) => {\n      const label = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(this.options.pointLabels.callback, [value, index], this);\n      return label || label === 0 ? label : '';\n    }).filter((v, i) => this.chart.getDataVisibility(i));\n  }\n  fit() {\n    const opts = this.options;\n    if (opts.display && opts.pointLabels.display) {\n      fitWithPointLabels(this);\n    } else {\n      this.setCenterPoint(0, 0, 0, 0);\n    }\n  }\n  setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n    this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n    this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n    this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n  }\n  getIndexAngle(index) {\n    const angleMultiplier = _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.T / (this._pointLabels.length || 1);\n    const startAngle = this.options.startAngle || 0;\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.al)(index * angleMultiplier + (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.t)(startAngle));\n  }\n  getDistanceFromCenterForValue(value) {\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(value)) {\n      return NaN;\n    }\n    const scalingFactor = this.drawingArea / (this.max - this.min);\n    if (this.options.reverse) {\n      return (this.max - value) * scalingFactor;\n    }\n    return (value - this.min) * scalingFactor;\n  }\n  getValueForDistanceFromCenter(distance) {\n    if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(distance)) {\n      return NaN;\n    }\n    const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n    return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n  }\n  getPointLabelContext(index) {\n    const pointLabels = this._pointLabels || [];\n    if (index >= 0 && index < pointLabels.length) {\n      const pointLabel = pointLabels[index];\n      return createPointLabelContext(this.getContext(), index, pointLabel);\n    }\n  }\n  getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n    const angle = this.getIndexAngle(index) - _chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.H + additionalAngle;\n    return {\n      x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n      y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n      angle\n    };\n  }\n  getPointPositionForValue(index, value) {\n    return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n  }\n  getBasePosition(index) {\n    return this.getPointPositionForValue(index || 0, this.getBaseValue());\n  }\n  getPointLabelPosition(index) {\n    const {\n      left,\n      top,\n      right,\n      bottom\n    } = this._pointLabelItems[index];\n    return {\n      left,\n      top,\n      right,\n      bottom\n    };\n  }\n  drawBackground() {\n    const {\n      backgroundColor,\n      grid: {\n        circular\n      }\n    } = this.options;\n    if (backgroundColor) {\n      const ctx = this.ctx;\n      ctx.save();\n      ctx.beginPath();\n      pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n      ctx.closePath();\n      ctx.fillStyle = backgroundColor;\n      ctx.fill();\n      ctx.restore();\n    }\n  }\n  drawGrid() {\n    const ctx = this.ctx;\n    const opts = this.options;\n    const {\n      angleLines,\n      grid,\n      border\n    } = opts;\n    const labelCount = this._pointLabels.length;\n    let i, offset, position;\n    if (opts.pointLabels.display) {\n      drawPointLabels(this, labelCount);\n    }\n    if (grid.display) {\n      this.ticks.forEach((tick, index) => {\n        if (index !== 0 || index === 0 && this.min < 0) {\n          offset = this.getDistanceFromCenterForValue(tick.value);\n          const context = this.getContext(index);\n          const optsAtIndex = grid.setContext(context);\n          const optsAtIndexBorder = border.setContext(context);\n          drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n        }\n      });\n    }\n    if (angleLines.display) {\n      ctx.save();\n      for (i = labelCount - 1; i >= 0; i--) {\n        const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n        const {\n          color,\n          lineWidth\n        } = optsAtIndex;\n        if (!lineWidth || !color) {\n          continue;\n        }\n        ctx.lineWidth = lineWidth;\n        ctx.strokeStyle = color;\n        ctx.setLineDash(optsAtIndex.borderDash);\n        ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n        offset = this.getDistanceFromCenterForValue(opts.reverse ? this.min : this.max);\n        position = this.getPointPosition(i, offset);\n        ctx.beginPath();\n        ctx.moveTo(this.xCenter, this.yCenter);\n        ctx.lineTo(position.x, position.y);\n        ctx.stroke();\n      }\n      ctx.restore();\n    }\n  }\n  drawBorder() {}\n  drawLabels() {\n    const ctx = this.ctx;\n    const opts = this.options;\n    const tickOpts = opts.ticks;\n    if (!tickOpts.display) {\n      return;\n    }\n    const startAngle = this.getIndexAngle(0);\n    let offset, width;\n    ctx.save();\n    ctx.translate(this.xCenter, this.yCenter);\n    ctx.rotate(startAngle);\n    ctx.textAlign = 'center';\n    ctx.textBaseline = 'middle';\n    this.ticks.forEach((tick, index) => {\n      if (index === 0 && this.min >= 0 && !opts.reverse) {\n        return;\n      }\n      const optsAtIndex = tickOpts.setContext(this.getContext(index));\n      const tickFont = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.a0)(optsAtIndex.font);\n      offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n      if (optsAtIndex.showLabelBackdrop) {\n        ctx.font = tickFont.string;\n        width = ctx.measureText(tick.label).width;\n        ctx.fillStyle = optsAtIndex.backdropColor;\n        const padding = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.E)(optsAtIndex.backdropPadding);\n        ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n      }\n      (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Z)(ctx, tick.label, 0, -offset, tickFont, {\n        color: optsAtIndex.color,\n        strokeColor: optsAtIndex.textStrokeColor,\n        strokeWidth: optsAtIndex.textStrokeWidth\n      });\n    });\n    ctx.restore();\n  }\n  drawTitle() {}\n}\nconst INTERVALS = {\n  millisecond: {\n    common: true,\n    size: 1,\n    steps: 1000\n  },\n  second: {\n    common: true,\n    size: 1000,\n    steps: 60\n  },\n  minute: {\n    common: true,\n    size: 60000,\n    steps: 60\n  },\n  hour: {\n    common: true,\n    size: 3600000,\n    steps: 24\n  },\n  day: {\n    common: true,\n    size: 86400000,\n    steps: 30\n  },\n  week: {\n    common: false,\n    size: 604800000,\n    steps: 4\n  },\n  month: {\n    common: true,\n    size: 2.628e9,\n    steps: 12\n  },\n  quarter: {\n    common: false,\n    size: 7.884e9,\n    steps: 4\n  },\n  year: {\n    common: true,\n    size: 3.154e10\n  }\n};\nconst UNITS = /* #__PURE__ */Object.keys(INTERVALS);\nfunction sorter(a, b) {\n  return a - b;\n}\nfunction parse(scale, input) {\n  if ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.k)(input)) {\n    return null;\n  }\n  const adapter = scale._adapter;\n  const {\n    parser,\n    round,\n    isoWeekday\n  } = scale._parseOpts;\n  let value = input;\n  if (typeof parser === 'function') {\n    value = parser(value);\n  }\n  if (!(0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(value)) {\n    value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n  }\n  if (value === null) {\n    return null;\n  }\n  if (round) {\n    value = round === 'week' && ((0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.x)(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n  }\n  return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n  const ilen = UNITS.length;\n  for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n    const interval = INTERVALS[UNITS[i]];\n    const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n    if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n      return UNITS[i];\n    }\n  }\n  return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n  for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n    const unit = UNITS[i];\n    if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n      return unit;\n    }\n  }\n  return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n  for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n    if (INTERVALS[UNITS[i]].common) {\n      return UNITS[i];\n    }\n  }\n}\nfunction addTick(ticks, time, timestamps) {\n  if (!timestamps) {\n    ticks[time] = true;\n  } else if (timestamps.length) {\n    const {\n      lo,\n      hi\n    } = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aQ)(timestamps, time);\n    const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n    ticks[timestamp] = true;\n  }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n  const adapter = scale._adapter;\n  const first = +adapter.startOf(ticks[0].value, majorUnit);\n  const last = ticks[ticks.length - 1].value;\n  let major, index;\n  for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n    index = map[major];\n    if (index >= 0) {\n      ticks[index].major = true;\n    }\n  }\n  return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n  const ticks = [];\n  const map = {};\n  const ilen = values.length;\n  let i, value;\n  for (i = 0; i < ilen; ++i) {\n    value = values[i];\n    map[value] = i;\n    ticks.push({\n      value,\n      major: false\n    });\n  }\n  return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n  static id = 'time';\n  static defaults = {\n    bounds: 'data',\n    adapters: {},\n    time: {\n      parser: false,\n      unit: false,\n      round: false,\n      isoWeekday: false,\n      minUnit: 'millisecond',\n      displayFormats: {}\n    },\n    ticks: {\n      source: 'auto',\n      callback: false,\n      major: {\n        enabled: false\n      }\n    }\n  };\n  constructor(props) {\n    super(props);\n    this._cache = {\n      data: [],\n      labels: [],\n      all: []\n    };\n    this._unit = 'day';\n    this._majorUnit = undefined;\n    this._offsets = {};\n    this._normalized = false;\n    this._parseOpts = undefined;\n  }\n  init(scaleOpts, opts = {}) {\n    const time = scaleOpts.time || (scaleOpts.time = {});\n    const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n    adapter.init(opts);\n    (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.ab)(time.displayFormats, adapter.formats());\n    this._parseOpts = {\n      parser: time.parser,\n      round: time.round,\n      isoWeekday: time.isoWeekday\n    };\n    super.init(scaleOpts);\n    this._normalized = opts.normalized;\n  }\n  parse(raw, index) {\n    if (raw === undefined) {\n      return null;\n    }\n    return parse(this, raw);\n  }\n  beforeLayout() {\n    super.beforeLayout();\n    this._cache = {\n      data: [],\n      labels: [],\n      all: []\n    };\n  }\n  determineDataLimits() {\n    const options = this.options;\n    const adapter = this._adapter;\n    const unit = options.time.unit || 'day';\n    let {\n      min,\n      max,\n      minDefined,\n      maxDefined\n    } = this.getUserBounds();\n    function _applyBounds(bounds) {\n      if (!minDefined && !isNaN(bounds.min)) {\n        min = Math.min(min, bounds.min);\n      }\n      if (!maxDefined && !isNaN(bounds.max)) {\n        max = Math.max(max, bounds.max);\n      }\n    }\n    if (!minDefined || !maxDefined) {\n      _applyBounds(this._getLabelBounds());\n      if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n        _applyBounds(this.getMinMax(false));\n      }\n    }\n    min = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n    max = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.g)(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n    this.min = Math.min(min, max - 1);\n    this.max = Math.max(min + 1, max);\n  }\n  _getLabelBounds() {\n    const arr = this.getLabelTimestamps();\n    let min = Number.POSITIVE_INFINITY;\n    let max = Number.NEGATIVE_INFINITY;\n    if (arr.length) {\n      min = arr[0];\n      max = arr[arr.length - 1];\n    }\n    return {\n      min,\n      max\n    };\n  }\n  buildTicks() {\n    const options = this.options;\n    const timeOpts = options.time;\n    const tickOpts = options.ticks;\n    const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n    if (options.bounds === 'ticks' && timestamps.length) {\n      this.min = this._userMin || timestamps[0];\n      this.max = this._userMax || timestamps[timestamps.length - 1];\n    }\n    const min = this.min;\n    const max = this.max;\n    const ticks = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.aP)(timestamps, min, max);\n    this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n    this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n    this.initOffsets(timestamps);\n    if (options.reverse) {\n      ticks.reverse();\n    }\n    return ticksFromTimestamps(this, ticks, this._majorUnit);\n  }\n  afterAutoSkip() {\n    if (this.options.offsetAfterAutoskip) {\n      this.initOffsets(this.ticks.map(tick => +tick.value));\n    }\n  }\n  initOffsets(timestamps = []) {\n    let start = 0;\n    let end = 0;\n    let first, last;\n    if (this.options.offset && timestamps.length) {\n      first = this.getDecimalForValue(timestamps[0]);\n      if (timestamps.length === 1) {\n        start = 1 - first;\n      } else {\n        start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n      }\n      last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n      if (timestamps.length === 1) {\n        end = last;\n      } else {\n        end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n      }\n    }\n    const limit = timestamps.length < 3 ? 0.5 : 0.25;\n    start = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)(start, 0, limit);\n    end = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.S)(end, 0, limit);\n    this._offsets = {\n      start,\n      end,\n      factor: 1 / (start + 1 + end)\n    };\n  }\n  _generate() {\n    const adapter = this._adapter;\n    const min = this.min;\n    const max = this.max;\n    const options = this.options;\n    const timeOpts = options.time;\n    const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n    const stepSize = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.v)(options.ticks.stepSize, 1);\n    const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n    const hasWeekday = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.x)(weekday) || weekday === true;\n    const ticks = {};\n    let first = min;\n    let time, count;\n    if (hasWeekday) {\n      first = +adapter.startOf(first, 'isoWeek', weekday);\n    }\n    first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n    if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n      throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n    }\n    const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n    for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n      addTick(ticks, time, timestamps);\n    }\n    if (time === max || options.bounds === 'ticks' || count === 1) {\n      addTick(ticks, time, timestamps);\n    }\n    return Object.keys(ticks).sort(sorter).map(x => +x);\n  }\n  getLabelForValue(value) {\n    const adapter = this._adapter;\n    const timeOpts = this.options.time;\n    if (timeOpts.tooltipFormat) {\n      return adapter.format(value, timeOpts.tooltipFormat);\n    }\n    return adapter.format(value, timeOpts.displayFormats.datetime);\n  }\n  format(value, format) {\n    const options = this.options;\n    const formats = options.time.displayFormats;\n    const unit = this._unit;\n    const fmt = format || formats[unit];\n    return this._adapter.format(value, fmt);\n  }\n  _tickFormatFunction(time, index, ticks, format) {\n    const options = this.options;\n    const formatter = options.ticks.callback;\n    if (formatter) {\n      return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.Q)(formatter, [time, index, ticks], this);\n    }\n    const formats = options.time.displayFormats;\n    const unit = this._unit;\n    const majorUnit = this._majorUnit;\n    const minorFormat = unit && formats[unit];\n    const majorFormat = majorUnit && formats[majorUnit];\n    const tick = ticks[index];\n    const major = majorUnit && majorFormat && tick && tick.major;\n    return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n  }\n  generateTickLabels(ticks) {\n    let i, ilen, tick;\n    for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n      tick = ticks[i];\n      tick.label = this._tickFormatFunction(tick.value, i, ticks);\n    }\n  }\n  getDecimalForValue(value) {\n    return value === null ? NaN : (value - this.min) / (this.max - this.min);\n  }\n  getPixelForValue(value) {\n    const offsets = this._offsets;\n    const pos = this.getDecimalForValue(value);\n    return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n  }\n  getValueForPixel(pixel) {\n    const offsets = this._offsets;\n    const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n    return this.min + pos * (this.max - this.min);\n  }\n  _getLabelSize(label) {\n    const ticksOpts = this.options.ticks;\n    const tickLabelWidth = this.ctx.measureText(label).width;\n    const angle = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.t)(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n    const cosRotation = Math.cos(angle);\n    const sinRotation = Math.sin(angle);\n    const tickFontSize = this._resolveTickFontOptions(0).size;\n    return {\n      w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n      h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n    };\n  }\n  _getLabelCapacity(exampleTime) {\n    const timeOpts = this.options.time;\n    const displayFormats = timeOpts.displayFormats;\n    const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n    const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n    const size = this._getLabelSize(exampleLabel);\n    const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n    return capacity > 0 ? capacity : 1;\n  }\n  getDataTimestamps() {\n    let timestamps = this._cache.data || [];\n    let i, ilen;\n    if (timestamps.length) {\n      return timestamps;\n    }\n    const metas = this.getMatchingVisibleMetas();\n    if (this._normalized && metas.length) {\n      return this._cache.data = metas[0].controller.getAllParsedValues(this);\n    }\n    for (i = 0, ilen = metas.length; i < ilen; ++i) {\n      timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n    }\n    return this._cache.data = this.normalize(timestamps);\n  }\n  getLabelTimestamps() {\n    const timestamps = this._cache.labels || [];\n    let i, ilen;\n    if (timestamps.length) {\n      return timestamps;\n    }\n    const labels = this.getLabels();\n    for (i = 0, ilen = labels.length; i < ilen; ++i) {\n      timestamps.push(parse(this, labels[i]));\n    }\n    return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n  }\n  normalize(values) {\n    return (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__._)(values.sort(sorter));\n  }\n}\nfunction interpolate(table, val, reverse) {\n  let lo = 0;\n  let hi = table.length - 1;\n  let prevSource, nextSource, prevTarget, nextTarget;\n  if (reverse) {\n    if (val >= table[lo].pos && val <= table[hi].pos) {\n      ({\n        lo,\n        hi\n      } = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.B)(table, 'pos', val));\n    }\n    ({\n      pos: prevSource,\n      time: prevTarget\n    } = table[lo]);\n    ({\n      pos: nextSource,\n      time: nextTarget\n    } = table[hi]);\n  } else {\n    if (val >= table[lo].time && val <= table[hi].time) {\n      ({\n        lo,\n        hi\n      } = (0,_chunks_helpers_dataset_js__WEBPACK_IMPORTED_MODULE_0__.B)(table, 'time', val));\n    }\n    ({\n      time: prevSource,\n      pos: prevTarget\n    } = table[lo]);\n    ({\n      time: nextSource,\n      pos: nextTarget\n    } = table[hi]);\n  }\n  const span = nextSource - prevSource;\n  return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n  static id = 'timeseries';\n  static defaults = TimeScale.defaults;\n  constructor(props) {\n    super(props);\n    this._table = [];\n    this._minPos = undefined;\n    this._tableRange = undefined;\n  }\n  initOffsets() {\n    const timestamps = this._getTimestampsForTable();\n    const table = this._table = this.buildLookupTable(timestamps);\n    this._minPos = interpolate(table, this.min);\n    this._tableRange = interpolate(table, this.max) - this._minPos;\n    super.initOffsets(timestamps);\n  }\n  buildLookupTable(timestamps) {\n    const {\n      min,\n      max\n    } = this;\n    const items = [];\n    const table = [];\n    let i, ilen, prev, curr, next;\n    for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n      curr = timestamps[i];\n      if (curr >= min && curr <= max) {\n        items.push(curr);\n      }\n    }\n    if (items.length < 2) {\n      return [{\n        time: min,\n        pos: 0\n      }, {\n        time: max,\n        pos: 1\n      }];\n    }\n    for (i = 0, ilen = items.length; i < ilen; ++i) {\n      next = items[i + 1];\n      prev = items[i - 1];\n      curr = items[i];\n      if (Math.round((next + prev) / 2) !== curr) {\n        table.push({\n          time: curr,\n          pos: i / (ilen - 1)\n        });\n      }\n    }\n    return table;\n  }\n  _generate() {\n    const min = this.min;\n    const max = this.max;\n    let timestamps = super.getDataTimestamps();\n    if (!timestamps.includes(min) || !timestamps.length) {\n      timestamps.splice(0, 0, min);\n    }\n    if (!timestamps.includes(max) || timestamps.length === 1) {\n      timestamps.push(max);\n    }\n    return timestamps.sort((a, b) => a - b);\n  }\n  _getTimestampsForTable() {\n    let timestamps = this._cache.all || [];\n    if (timestamps.length) {\n      return timestamps;\n    }\n    const data = this.getDataTimestamps();\n    const label = this.getLabelTimestamps();\n    if (data.length && label.length) {\n      timestamps = this.normalize(data.concat(label));\n    } else {\n      timestamps = data.length ? data : label;\n    }\n    timestamps = this._cache.all = timestamps;\n    return timestamps;\n  }\n  getDecimalForValue(value) {\n    return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n  }\n  getValueForPixel(pixel) {\n    const offsets = this._offsets;\n    const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n    return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n  }\n}\nvar scales = /*#__PURE__*/Object.freeze({\n  __proto__: null,\n  CategoryScale: CategoryScale,\n  LinearScale: LinearScale,\n  LogarithmicScale: LogarithmicScale,\n  RadialLinearScale: RadialLinearScale,\n  TimeScale: TimeScale,\n  TimeSeriesScale: TimeSeriesScale\n});\nconst registerables = [controllers, elements, plugins, scales];\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/chart.js/dist/chart.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/chart.js/dist/chunks/helpers.dataset.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/chart.js/dist/chunks/helpers.dataset.js ***!
  \************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   $: () => (/* binding */ unclipArea),\n/* harmony export */   A: () => (/* binding */ _rlookupByKey),\n/* harmony export */   B: () => (/* binding */ _lookupByKey),\n/* harmony export */   C: () => (/* binding */ _isPointInArea),\n/* harmony export */   D: () => (/* binding */ getAngleFromPoint),\n/* harmony export */   E: () => (/* binding */ toPadding),\n/* harmony export */   F: () => (/* binding */ each),\n/* harmony export */   G: () => (/* binding */ getMaximumSize),\n/* harmony export */   H: () => (/* binding */ HALF_PI),\n/* harmony export */   I: () => (/* binding */ _getParentNode),\n/* harmony export */   J: () => (/* binding */ readUsedSize),\n/* harmony export */   K: () => (/* binding */ supportsEventListenerOptions),\n/* harmony export */   L: () => (/* binding */ throttled),\n/* harmony export */   M: () => (/* binding */ _isDomSupported),\n/* harmony export */   N: () => (/* binding */ _factorize),\n/* harmony export */   O: () => (/* binding */ finiteOrDefault),\n/* harmony export */   P: () => (/* binding */ PI),\n/* harmony export */   Q: () => (/* binding */ callback),\n/* harmony export */   R: () => (/* binding */ _addGrace),\n/* harmony export */   S: () => (/* binding */ _limitValue),\n/* harmony export */   T: () => (/* binding */ TAU),\n/* harmony export */   U: () => (/* binding */ toDegrees),\n/* harmony export */   V: () => (/* binding */ _measureText),\n/* harmony export */   W: () => (/* binding */ _int16Range),\n/* harmony export */   X: () => (/* binding */ _alignPixel),\n/* harmony export */   Y: () => (/* binding */ clipArea),\n/* harmony export */   Z: () => (/* binding */ renderText),\n/* harmony export */   _: () => (/* binding */ _arrayUnique),\n/* harmony export */   a: () => (/* binding */ resolve),\n/* harmony export */   a$: () => (/* binding */ getStyle),\n/* harmony export */   a0: () => (/* binding */ toFont),\n/* harmony export */   a1: () => (/* binding */ _toLeftRightCenter),\n/* harmony export */   a2: () => (/* binding */ _alignStartEnd),\n/* harmony export */   a3: () => (/* binding */ overrides),\n/* harmony export */   a4: () => (/* binding */ merge),\n/* harmony export */   a5: () => (/* binding */ _capitalize),\n/* harmony export */   a6: () => (/* binding */ descriptors),\n/* harmony export */   a7: () => (/* binding */ isFunction),\n/* harmony export */   a8: () => (/* binding */ _attachContext),\n/* harmony export */   a9: () => (/* binding */ _createResolver),\n/* harmony export */   aA: () => (/* binding */ getRtlAdapter),\n/* harmony export */   aB: () => (/* binding */ overrideTextDirection),\n/* harmony export */   aC: () => (/* binding */ _textX),\n/* harmony export */   aD: () => (/* binding */ restoreTextDirection),\n/* harmony export */   aE: () => (/* binding */ drawPointLegend),\n/* harmony export */   aF: () => (/* binding */ distanceBetweenPoints),\n/* harmony export */   aG: () => (/* binding */ noop),\n/* harmony export */   aH: () => (/* binding */ _setMinAndMaxByKey),\n/* harmony export */   aI: () => (/* binding */ niceNum),\n/* harmony export */   aJ: () => (/* binding */ almostWhole),\n/* harmony export */   aK: () => (/* binding */ almostEquals),\n/* harmony export */   aL: () => (/* binding */ _decimalPlaces),\n/* harmony export */   aM: () => (/* binding */ Ticks),\n/* harmony export */   aN: () => (/* binding */ log10),\n/* harmony export */   aO: () => (/* binding */ _longestText),\n/* harmony export */   aP: () => (/* binding */ _filterBetween),\n/* harmony export */   aQ: () => (/* binding */ _lookup),\n/* harmony export */   aR: () => (/* binding */ isPatternOrGradient),\n/* harmony export */   aS: () => (/* binding */ getHoverColor),\n/* harmony export */   aT: () => (/* binding */ clone),\n/* harmony export */   aU: () => (/* binding */ _merger),\n/* harmony export */   aV: () => (/* binding */ _mergerIf),\n/* harmony export */   aW: () => (/* binding */ _deprecated),\n/* harmony export */   aX: () => (/* binding */ _splitKey),\n/* harmony export */   aY: () => (/* binding */ toFontString),\n/* harmony export */   aZ: () => (/* binding */ splineCurve),\n/* harmony export */   a_: () => (/* binding */ splineCurveMonotone),\n/* harmony export */   aa: () => (/* binding */ _descriptors),\n/* harmony export */   ab: () => (/* binding */ mergeIf),\n/* harmony export */   ac: () => (/* binding */ uid),\n/* harmony export */   ad: () => (/* binding */ debounce),\n/* harmony export */   ae: () => (/* binding */ retinaScale),\n/* harmony export */   af: () => (/* binding */ clearCanvas),\n/* harmony export */   ag: () => (/* binding */ setsEqual),\n/* harmony export */   ah: () => (/* binding */ getDatasetClipArea),\n/* harmony export */   ai: () => (/* binding */ _elementsEqual),\n/* harmony export */   aj: () => (/* binding */ _isClickEvent),\n/* harmony export */   ak: () => (/* binding */ _isBetween),\n/* harmony export */   al: () => (/* binding */ _normalizeAngle),\n/* harmony export */   am: () => (/* binding */ _readValueToProps),\n/* harmony export */   an: () => (/* binding */ _updateBezierControlPoints),\n/* harmony export */   ao: () => (/* binding */ _computeSegments),\n/* harmony export */   ap: () => (/* binding */ _boundSegments),\n/* harmony export */   aq: () => (/* binding */ _steppedInterpolation),\n/* harmony export */   ar: () => (/* binding */ _bezierInterpolation),\n/* harmony export */   as: () => (/* binding */ _pointInLine),\n/* harmony export */   at: () => (/* binding */ _steppedLineTo),\n/* harmony export */   au: () => (/* binding */ _bezierCurveTo),\n/* harmony export */   av: () => (/* binding */ drawPoint),\n/* harmony export */   aw: () => (/* binding */ addRoundedRectPath),\n/* harmony export */   ax: () => (/* binding */ toTRBL),\n/* harmony export */   ay: () => (/* binding */ toTRBLCorners),\n/* harmony export */   az: () => (/* binding */ _boundSegment),\n/* harmony export */   b: () => (/* binding */ isArray),\n/* harmony export */   b0: () => (/* binding */ fontString),\n/* harmony export */   b1: () => (/* binding */ toLineHeight),\n/* harmony export */   b2: () => (/* binding */ PITAU),\n/* harmony export */   b3: () => (/* binding */ INFINITY),\n/* harmony export */   b4: () => (/* binding */ RAD_PER_DEG),\n/* harmony export */   b5: () => (/* binding */ QUARTER_PI),\n/* harmony export */   b6: () => (/* binding */ TWO_THIRDS_PI),\n/* harmony export */   b7: () => (/* binding */ _angleDiff),\n/* harmony export */   c: () => (/* binding */ color),\n/* harmony export */   d: () => (/* binding */ defaults),\n/* harmony export */   e: () => (/* binding */ effects),\n/* harmony export */   f: () => (/* binding */ resolveObjectKey),\n/* harmony export */   g: () => (/* binding */ isNumberFinite),\n/* harmony export */   h: () => (/* binding */ defined),\n/* harmony export */   i: () => (/* binding */ isObject),\n/* harmony export */   j: () => (/* binding */ createContext),\n/* harmony export */   k: () => (/* binding */ isNullOrUndef),\n/* harmony export */   l: () => (/* binding */ listenArrayEvents),\n/* harmony export */   m: () => (/* binding */ toPercentage),\n/* harmony export */   n: () => (/* binding */ toDimension),\n/* harmony export */   o: () => (/* binding */ formatNumber),\n/* harmony export */   p: () => (/* binding */ _angleBetween),\n/* harmony export */   q: () => (/* binding */ _getStartAndCountOfVisiblePoints),\n/* harmony export */   r: () => (/* binding */ requestAnimFrame),\n/* harmony export */   s: () => (/* binding */ sign),\n/* harmony export */   t: () => (/* binding */ toRadians),\n/* harmony export */   u: () => (/* binding */ unlistenArrayEvents),\n/* harmony export */   v: () => (/* binding */ valueOrDefault),\n/* harmony export */   w: () => (/* binding */ _scaleRangesChanged),\n/* harmony export */   x: () => (/* binding */ isNumber),\n/* harmony export */   y: () => (/* binding */ _parseObjectDataRadialScale),\n/* harmony export */   z: () => (/* binding */ getRelativePosition)\n/* harmony export */ });\n/* harmony import */ var _kurkle_color__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @kurkle/color */ \"../react-ui/node_modules/@kurkle/color/dist/color.esm.js\");\n/*!\n * Chart.js v4.5.0\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\n\n\n/**\n * @namespace Chart.helpers\n */ /**\n    * An empty function that can be used, for example, for optional callback.\n    */\nfunction noop() {\n  /* noop */}\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */\nconst uid = (() => {\n  let id = 0;\n  return () => id++;\n})();\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nfunction isNullOrUndef(value) {\n  return value === null || value === undefined;\n}\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */\nfunction isArray(value) {\n  if (Array.isArray && Array.isArray(value)) {\n    return true;\n  }\n  const type = Object.prototype.toString.call(value);\n  if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n    return true;\n  }\n  return false;\n}\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */\nfunction isObject(value) {\n  return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value  - The value to test.\n */\nfunction isNumberFinite(value) {\n  return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */\nfunction finiteOrDefault(value, defaultValue) {\n  return isNumberFinite(value) ? value : defaultValue;\n}\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */\nfunction valueOrDefault(value, defaultValue) {\n  return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) => typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : +value / dimension;\nconst toDimension = (value, dimension) => typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */\nfunction callback(fn, args, thisArg) {\n  if (fn && typeof fn.call === 'function') {\n    return fn.apply(thisArg, args);\n  }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n  let i, len, keys;\n  if (isArray(loopable)) {\n    len = loopable.length;\n    if (reverse) {\n      for (i = len - 1; i >= 0; i--) {\n        fn.call(thisArg, loopable[i], i);\n      }\n    } else {\n      for (i = 0; i < len; i++) {\n        fn.call(thisArg, loopable[i], i);\n      }\n    }\n  } else if (isObject(loopable)) {\n    keys = Object.keys(loopable);\n    len = keys.length;\n    for (i = 0; i < len; i++) {\n      fn.call(thisArg, loopable[keys[i]], keys[i]);\n    }\n  }\n}\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */\nfunction _elementsEqual(a0, a1) {\n  let i, ilen, v0, v1;\n  if (!a0 || !a1 || a0.length !== a1.length) {\n    return false;\n  }\n  for (i = 0, ilen = a0.length; i < ilen; ++i) {\n    v0 = a0[i];\n    v1 = a1[i];\n    if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n      return false;\n    }\n  }\n  return true;\n}\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */\nfunction clone(source) {\n  if (isArray(source)) {\n    return source.map(clone);\n  }\n  if (isObject(source)) {\n    const target = Object.create(null);\n    const keys = Object.keys(source);\n    const klen = keys.length;\n    let k = 0;\n    for (; k < klen; ++k) {\n      target[keys[k]] = clone(source[keys[k]]);\n    }\n    return target;\n  }\n  return source;\n}\nfunction isValidKey(key) {\n  return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */\nfunction _merger(key, target, source, options) {\n  if (!isValidKey(key)) {\n    return;\n  }\n  const tval = target[key];\n  const sval = source[key];\n  if (isObject(tval) && isObject(sval)) {\n    // eslint-disable-next-line @typescript-eslint/no-use-before-define\n    merge(tval, sval, options);\n  } else {\n    target[key] = clone(sval);\n  }\n}\nfunction merge(target, source, options) {\n  const sources = isArray(source) ? source : [source];\n  const ilen = sources.length;\n  if (!isObject(target)) {\n    return target;\n  }\n  options = options || {};\n  const merger = options.merger || _merger;\n  let current;\n  for (let i = 0; i < ilen; ++i) {\n    current = sources[i];\n    if (!isObject(current)) {\n      continue;\n    }\n    const keys = Object.keys(current);\n    for (let k = 0, klen = keys.length; k < klen; ++k) {\n      merger(keys[k], target, current, options);\n    }\n  }\n  return target;\n}\nfunction mergeIf(target, source) {\n  // eslint-disable-next-line @typescript-eslint/no-use-before-define\n  return merge(target, source, {\n    merger: _mergerIf\n  });\n}\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */\nfunction _mergerIf(key, target, source) {\n  if (!isValidKey(key)) {\n    return;\n  }\n  const tval = target[key];\n  const sval = source[key];\n  if (isObject(tval) && isObject(sval)) {\n    mergeIf(tval, sval);\n  } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n    target[key] = clone(sval);\n  }\n}\n/**\n * @private\n */\nfunction _deprecated(scope, value, previous, current) {\n  if (value !== undefined) {\n    console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n  }\n}\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n  // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n  '': v => v,\n  // default resolvers\n  x: o => o.x,\n  y: o => o.y\n};\n/**\n * @private\n */\nfunction _splitKey(key) {\n  const parts = key.split('.');\n  const keys = [];\n  let tmp = '';\n  for (const part of parts) {\n    tmp += part;\n    if (tmp.endsWith('\\\\')) {\n      tmp = tmp.slice(0, -1) + '.';\n    } else {\n      keys.push(tmp);\n      tmp = '';\n    }\n  }\n  return keys;\n}\nfunction _getKeyResolver(key) {\n  const keys = _splitKey(key);\n  return obj => {\n    for (const k of keys) {\n      if (k === '') {\n        break;\n      }\n      obj = obj && obj[k];\n    }\n    return obj;\n  };\n}\nfunction resolveObjectKey(obj, key) {\n  const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n  return resolver(obj);\n}\n/**\n * @private\n */\nfunction _capitalize(str) {\n  return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = value => typeof value !== 'undefined';\nconst isFunction = value => typeof value === 'function';\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nconst setsEqual = (a, b) => {\n  if (a.size !== b.size) {\n    return false;\n  }\n  for (const item of a) {\n    if (!b.has(item)) {\n      return false;\n    }\n  }\n  return true;\n};\n/**\n * @param e - The event\n * @private\n */\nfunction _isClickEvent(e) {\n  return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction almostEquals(x, y, epsilon) {\n  return Math.abs(x - y) < epsilon;\n}\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */\nfunction niceNum(range) {\n  const roundedRange = Math.round(range);\n  range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n  const niceRange = Math.pow(10, Math.floor(log10(range)));\n  const fraction = range / niceRange;\n  const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n  return niceFraction * niceRange;\n}\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */\nfunction _factorize(value) {\n  const result = [];\n  const sqrt = Math.sqrt(value);\n  let i;\n  for (i = 1; i < sqrt; i++) {\n    if (value % i === 0) {\n      result.push(i);\n      result.push(value / i);\n    }\n  }\n  if (sqrt === (sqrt | 0)) {\n    result.push(sqrt);\n  }\n  result.sort((a, b) => a - b).pop();\n  return result;\n}\n/**\n * Verifies that attempting to coerce n to string or number won't throw a TypeError.\n */\nfunction isNonPrimitive(n) {\n  return typeof n === 'symbol' || typeof n === 'object' && n !== null && !(Symbol.toPrimitive in n || 'toString' in n || 'valueOf' in n);\n}\nfunction isNumber(n) {\n  return !isNonPrimitive(n) && !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostWhole(x, epsilon) {\n  const rounded = Math.round(x);\n  return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n/**\n * @private\n */\nfunction _setMinAndMaxByKey(array, target, property) {\n  let i, ilen, value;\n  for (i = 0, ilen = array.length; i < ilen; i++) {\n    value = array[i][property];\n    if (!isNaN(value)) {\n      target.min = Math.min(target.min, value);\n      target.max = Math.max(target.max, value);\n    }\n  }\n}\nfunction toRadians(degrees) {\n  return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n  return radians * (180 / PI);\n}\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */\nfunction _decimalPlaces(x) {\n  if (!isNumberFinite(x)) {\n    return;\n  }\n  let e = 1;\n  let p = 0;\n  while (Math.round(x * e) / e !== x) {\n    e *= 10;\n    p++;\n  }\n  return p;\n}\n// Gets the angle from vertical upright to the point about a centre.\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n  const distanceFromXCenter = anglePoint.x - centrePoint.x;\n  const distanceFromYCenter = anglePoint.y - centrePoint.y;\n  const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n  let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n  if (angle < -0.5 * PI) {\n    angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n  }\n  return {\n    angle,\n    distance: radialDistanceFromCenter\n  };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n  return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */\nfunction _angleDiff(a, b) {\n  return (a - b + PITAU) % TAU - PI;\n}\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */\nfunction _normalizeAngle(a) {\n  return (a % TAU + TAU) % TAU;\n}\n/**\n * @private\n */\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n  const a = _normalizeAngle(angle);\n  const s = _normalizeAngle(start);\n  const e = _normalizeAngle(end);\n  const angleToStart = _normalizeAngle(s - a);\n  const angleToEnd = _normalizeAngle(e - a);\n  const startToAngle = _normalizeAngle(a - s);\n  const endToAngle = _normalizeAngle(a - e);\n  return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */\nfunction _limitValue(value, min, max) {\n  return Math.max(min, Math.min(max, value));\n}\n/**\n * @param {number} value\n * @private\n */\nfunction _int16Range(value) {\n  return _limitValue(value, -32768, 32767);\n}\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */\nfunction _isBetween(value, start, end, epsilon = 1e-6) {\n  return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\nfunction _lookup(table, value, cmp) {\n  cmp = cmp || (index => table[index] < value);\n  let hi = table.length - 1;\n  let lo = 0;\n  let mid;\n  while (hi - lo > 1) {\n    mid = lo + hi >> 1;\n    if (cmp(mid)) {\n      lo = mid;\n    } else {\n      hi = mid;\n    }\n  }\n  return {\n    lo,\n    hi\n  };\n}\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */\nconst _lookupByKey = (table, key, value, last) => _lookup(table, value, last ? index => {\n  const ti = table[index][key];\n  return ti < value || ti === value && table[index + 1][key] === value;\n} : index => table[index][key] < value);\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */\nconst _rlookupByKey = (table, key, value) => _lookup(table, value, index => table[index][key] >= value);\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */\nfunction _filterBetween(values, min, max) {\n  let start = 0;\n  let end = values.length;\n  while (start < end && values[start] < min) {\n    start++;\n  }\n  while (end > start && values[end - 1] > max) {\n    end--;\n  }\n  return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n  if (array._chartjs) {\n    array._chartjs.listeners.push(listener);\n    return;\n  }\n  Object.defineProperty(array, '_chartjs', {\n    configurable: true,\n    enumerable: false,\n    value: {\n      listeners: [listener]\n    }\n  });\n  arrayEvents.forEach(key => {\n    const method = '_onData' + _capitalize(key);\n    const base = array[key];\n    Object.defineProperty(array, key, {\n      configurable: true,\n      enumerable: false,\n      value(...args) {\n        const res = base.apply(this, args);\n        array._chartjs.listeners.forEach(object => {\n          if (typeof object[method] === 'function') {\n            object[method](...args);\n          }\n        });\n        return res;\n      }\n    });\n  });\n}\nfunction unlistenArrayEvents(array, listener) {\n  const stub = array._chartjs;\n  if (!stub) {\n    return;\n  }\n  const listeners = stub.listeners;\n  const index = listeners.indexOf(listener);\n  if (index !== -1) {\n    listeners.splice(index, 1);\n  }\n  if (listeners.length > 0) {\n    return;\n  }\n  arrayEvents.forEach(key => {\n    delete array[key];\n  });\n  delete array._chartjs;\n}\n/**\n * @param items\n */\nfunction _arrayUnique(items) {\n  const set = new Set(items);\n  if (set.size === items.length) {\n    return items;\n  }\n  return Array.from(set);\n}\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n  return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n/**\n* Request animation polyfill\n*/\nconst requestAnimFrame = function () {\n  if (typeof window === 'undefined') {\n    return function (callback) {\n      return callback();\n    };\n  }\n  return window.requestAnimationFrame;\n}();\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */\nfunction throttled(fn, thisArg) {\n  let argsToUse = [];\n  let ticking = false;\n  return function (...args) {\n    // Save the args for use later\n    argsToUse = args;\n    if (!ticking) {\n      ticking = true;\n      requestAnimFrame.call(window, () => {\n        ticking = false;\n        fn.apply(thisArg, argsToUse);\n      });\n    }\n  };\n}\n/**\n * Debounces calling `fn` for `delay` ms\n */\nfunction debounce(fn, delay) {\n  let timeout;\n  return function (...args) {\n    if (delay) {\n      clearTimeout(timeout);\n      timeout = setTimeout(fn, delay, args);\n    } else {\n      fn.apply(this, args);\n    }\n    return delay;\n  };\n}\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */\nconst _toLeftRightCenter = align => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */\nconst _textX = (align, left, right, rtl) => {\n  const check = rtl ? 'left' : 'right';\n  return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n/**\n * Return start and count of visible points.\n * @private\n */\nfunction _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n  const pointCount = points.length;\n  let start = 0;\n  let count = pointCount;\n  if (meta._sorted) {\n    const {\n      iScale,\n      vScale,\n      _parsed\n    } = meta;\n    const spanGaps = meta.dataset ? meta.dataset.options ? meta.dataset.options.spanGaps : null : null;\n    const axis = iScale.axis;\n    const {\n      min,\n      max,\n      minDefined,\n      maxDefined\n    } = iScale.getUserBounds();\n    if (minDefined) {\n      start = Math.min(\n      // @ts-expect-error Need to type _parsed\n      _lookupByKey(_parsed, axis, min).lo,\n      // @ts-expect-error Need to fix types on _lookupByKey\n      animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo);\n      if (spanGaps) {\n        const distanceToDefinedLo = _parsed.slice(0, start + 1).reverse().findIndex(point => !isNullOrUndef(point[vScale.axis]));\n        start -= Math.max(0, distanceToDefinedLo);\n      }\n      start = _limitValue(start, 0, pointCount - 1);\n    }\n    if (maxDefined) {\n      let end = Math.max(\n      // @ts-expect-error Need to type _parsed\n      _lookupByKey(_parsed, iScale.axis, max, true).hi + 1,\n      // @ts-expect-error Need to fix types on _lookupByKey\n      animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1);\n      if (spanGaps) {\n        const distanceToDefinedHi = _parsed.slice(end - 1).findIndex(point => !isNullOrUndef(point[vScale.axis]));\n        end += Math.max(0, distanceToDefinedHi);\n      }\n      count = _limitValue(end, start, pointCount) - start;\n    } else {\n      count = pointCount - start;\n    }\n  }\n  return {\n    start,\n    count\n  };\n}\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */\nfunction _scaleRangesChanged(meta) {\n  const {\n    xScale,\n    yScale,\n    _scaleRanges\n  } = meta;\n  const newRanges = {\n    xmin: xScale.min,\n    xmax: xScale.max,\n    ymin: yScale.min,\n    ymax: yScale.max\n  };\n  if (!_scaleRanges) {\n    meta._scaleRanges = newRanges;\n    return true;\n  }\n  const changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n  Object.assign(_scaleRanges, newRanges);\n  return changed;\n}\nconst atEdge = t => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */\nconst effects = {\n  linear: t => t,\n  easeInQuad: t => t * t,\n  easeOutQuad: t => -t * (t - 2),\n  easeInOutQuad: t => (t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1),\n  easeInCubic: t => t * t * t,\n  easeOutCubic: t => (t -= 1) * t * t + 1,\n  easeInOutCubic: t => (t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2),\n  easeInQuart: t => t * t * t * t,\n  easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n  easeInOutQuart: t => (t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2),\n  easeInQuint: t => t * t * t * t * t,\n  easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n  easeInOutQuint: t => (t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2),\n  easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n  easeOutSine: t => Math.sin(t * HALF_PI),\n  easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n  easeInExpo: t => t === 0 ? 0 : Math.pow(2, 10 * (t - 1)),\n  easeOutExpo: t => t === 1 ? 1 : -Math.pow(2, -10 * t) + 1,\n  easeInOutExpo: t => atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n  easeInCirc: t => t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1),\n  easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n  easeInOutCirc: t => (t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n  easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n  easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n  easeInOutElastic(t) {\n    const s = 0.1125;\n    const p = 0.45;\n    return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n  },\n  easeInBack(t) {\n    const s = 1.70158;\n    return t * t * ((s + 1) * t - s);\n  },\n  easeOutBack(t) {\n    const s = 1.70158;\n    return (t -= 1) * t * ((s + 1) * t + s) + 1;\n  },\n  easeInOutBack(t) {\n    let s = 1.70158;\n    if ((t /= 0.5) < 1) {\n      return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n    }\n    return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n  },\n  easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n  easeOutBounce(t) {\n    const m = 7.5625;\n    const d = 2.75;\n    if (t < 1 / d) {\n      return m * t * t;\n    }\n    if (t < 2 / d) {\n      return m * (t -= 1.5 / d) * t + 0.75;\n    }\n    if (t < 2.5 / d) {\n      return m * (t -= 2.25 / d) * t + 0.9375;\n    }\n    return m * (t -= 2.625 / d) * t + 0.984375;\n  },\n  easeInOutBounce: t => t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5\n};\nfunction isPatternOrGradient(value) {\n  if (value && typeof value === 'object') {\n    const type = value.toString();\n    return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n  }\n  return false;\n}\nfunction color(value) {\n  return isPatternOrGradient(value) ? value : new _kurkle_color__WEBPACK_IMPORTED_MODULE_0__.Color(value);\n}\nfunction getHoverColor(value) {\n  return isPatternOrGradient(value) ? value : new _kurkle_color__WEBPACK_IMPORTED_MODULE_0__.Color(value).saturate(0.5).darken(0.1).hexString();\n}\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\nfunction applyAnimationsDefaults(defaults) {\n  defaults.set('animation', {\n    delay: undefined,\n    duration: 1000,\n    easing: 'easeOutQuart',\n    fn: undefined,\n    from: undefined,\n    loop: undefined,\n    to: undefined,\n    type: undefined\n  });\n  defaults.describe('animation', {\n    _fallback: false,\n    _indexable: false,\n    _scriptable: name => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn'\n  });\n  defaults.set('animations', {\n    colors: {\n      type: 'color',\n      properties: colors\n    },\n    numbers: {\n      type: 'number',\n      properties: numbers\n    }\n  });\n  defaults.describe('animations', {\n    _fallback: 'animation'\n  });\n  defaults.set('transitions', {\n    active: {\n      animation: {\n        duration: 400\n      }\n    },\n    resize: {\n      animation: {\n        duration: 0\n      }\n    },\n    show: {\n      animations: {\n        colors: {\n          from: 'transparent'\n        },\n        visible: {\n          type: 'boolean',\n          duration: 0\n        }\n      }\n    },\n    hide: {\n      animations: {\n        colors: {\n          to: 'transparent'\n        },\n        visible: {\n          type: 'boolean',\n          easing: 'linear',\n          fn: v => v | 0\n        }\n      }\n    }\n  });\n}\nfunction applyLayoutsDefaults(defaults) {\n  defaults.set('layout', {\n    autoPadding: true,\n    padding: {\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0\n    }\n  });\n}\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n  options = options || {};\n  const cacheKey = locale + JSON.stringify(options);\n  let formatter = intlCache.get(cacheKey);\n  if (!formatter) {\n    formatter = new Intl.NumberFormat(locale, options);\n    intlCache.set(cacheKey, formatter);\n  }\n  return formatter;\n}\nfunction formatNumber(num, locale, options) {\n  return getNumberFormat(locale, options).format(num);\n}\nconst formatters = {\n  values(value) {\n    return isArray(value) ? value : '' + value;\n  },\n  numeric(tickValue, index, ticks) {\n    if (tickValue === 0) {\n      return '0';\n    }\n    const locale = this.chart.options.locale;\n    let notation;\n    let delta = tickValue;\n    if (ticks.length > 1) {\n      const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n      if (maxTick < 1e-4 || maxTick > 1e+15) {\n        notation = 'scientific';\n      }\n      delta = calculateDelta(tickValue, ticks);\n    }\n    const logDelta = log10(Math.abs(delta));\n    const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n    const options = {\n      notation,\n      minimumFractionDigits: numDecimal,\n      maximumFractionDigits: numDecimal\n    };\n    Object.assign(options, this.options.ticks.format);\n    return formatNumber(tickValue, locale, options);\n  },\n  logarithmic(tickValue, index, ticks) {\n    if (tickValue === 0) {\n      return '0';\n    }\n    const remain = ticks[index].significand || tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n    if ([1, 2, 3, 5, 10, 15].includes(remain) || index > 0.8 * ticks.length) {\n      return formatters.numeric.call(this, tickValue, index, ticks);\n    }\n    return '';\n  }\n};\nfunction calculateDelta(tickValue, ticks) {\n  let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n  if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n    delta = tickValue - Math.floor(tickValue);\n  }\n  return delta;\n}\nvar Ticks = {\n  formatters\n};\nfunction applyScaleDefaults(defaults) {\n  defaults.set('scale', {\n    display: true,\n    offset: false,\n    reverse: false,\n    beginAtZero: false,\n    bounds: 'ticks',\n    clip: true,\n    grace: 0,\n    grid: {\n      display: true,\n      lineWidth: 1,\n      drawOnChartArea: true,\n      drawTicks: true,\n      tickLength: 8,\n      tickWidth: (_ctx, options) => options.lineWidth,\n      tickColor: (_ctx, options) => options.color,\n      offset: false\n    },\n    border: {\n      display: true,\n      dash: [],\n      dashOffset: 0.0,\n      width: 1\n    },\n    title: {\n      display: false,\n      text: '',\n      padding: {\n        top: 4,\n        bottom: 4\n      }\n    },\n    ticks: {\n      minRotation: 0,\n      maxRotation: 50,\n      mirror: false,\n      textStrokeWidth: 0,\n      textStrokeColor: '',\n      padding: 3,\n      display: true,\n      autoSkip: true,\n      autoSkipPadding: 3,\n      labelOffset: 0,\n      callback: Ticks.formatters.values,\n      minor: {},\n      major: {},\n      align: 'center',\n      crossAlign: 'near',\n      showLabelBackdrop: false,\n      backdropColor: 'rgba(255, 255, 255, 0.75)',\n      backdropPadding: 2\n    }\n  });\n  defaults.route('scale.ticks', 'color', '', 'color');\n  defaults.route('scale.grid', 'color', '', 'borderColor');\n  defaults.route('scale.border', 'color', '', 'borderColor');\n  defaults.route('scale.title', 'color', '', 'color');\n  defaults.describe('scale', {\n    _fallback: false,\n    _scriptable: name => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n    _indexable: name => name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash'\n  });\n  defaults.describe('scales', {\n    _fallback: 'scale'\n  });\n  defaults.describe('scale.ticks', {\n    _scriptable: name => name !== 'backdropPadding' && name !== 'callback',\n    _indexable: name => name !== 'backdropPadding'\n  });\n}\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n  if (!key) {\n    return node;\n  }\n  const keys = key.split('.');\n  for (let i = 0, n = keys.length; i < n; ++i) {\n    const k = keys[i];\n    node = node[k] || (node[k] = Object.create(null));\n  }\n  return node;\n}\nfunction set(root, scope, values) {\n  if (typeof scope === 'string') {\n    return merge(getScope$1(root, scope), values);\n  }\n  return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n  constructor(_descriptors, _appliers) {\n    this.animation = undefined;\n    this.backgroundColor = 'rgba(0,0,0,0.1)';\n    this.borderColor = 'rgba(0,0,0,0.1)';\n    this.color = '#666';\n    this.datasets = {};\n    this.devicePixelRatio = context => context.chart.platform.getDevicePixelRatio();\n    this.elements = {};\n    this.events = ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'];\n    this.font = {\n      family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n      size: 12,\n      style: 'normal',\n      lineHeight: 1.2,\n      weight: null\n    };\n    this.hover = {};\n    this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n    this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n    this.hoverColor = (ctx, options) => getHoverColor(options.color);\n    this.indexAxis = 'x';\n    this.interaction = {\n      mode: 'nearest',\n      intersect: true,\n      includeInvisible: false\n    };\n    this.maintainAspectRatio = true;\n    this.onHover = null;\n    this.onClick = null;\n    this.parsing = true;\n    this.plugins = {};\n    this.responsive = true;\n    this.scale = undefined;\n    this.scales = {};\n    this.showLine = true;\n    this.drawActiveElementsOnTop = true;\n    this.describe(_descriptors);\n    this.apply(_appliers);\n  }\n  set(scope, values) {\n    return set(this, scope, values);\n  }\n  get(scope) {\n    return getScope$1(this, scope);\n  }\n  describe(scope, values) {\n    return set(descriptors, scope, values);\n  }\n  override(scope, values) {\n    return set(overrides, scope, values);\n  }\n  route(scope, name, targetScope, targetName) {\n    const scopeObject = getScope$1(this, scope);\n    const targetScopeObject = getScope$1(this, targetScope);\n    const privateName = '_' + name;\n    Object.defineProperties(scopeObject, {\n      [privateName]: {\n        value: scopeObject[name],\n        writable: true\n      },\n      [name]: {\n        enumerable: true,\n        get() {\n          const local = this[privateName];\n          const target = targetScopeObject[targetName];\n          if (isObject(local)) {\n            return Object.assign({}, target, local);\n          }\n          return valueOrDefault(local, target);\n        },\n        set(value) {\n          this[privateName] = value;\n        }\n      }\n    });\n  }\n  apply(appliers) {\n    appliers.forEach(apply => apply(this));\n  }\n}\nvar defaults = /* #__PURE__ */new Defaults({\n  _scriptable: name => !name.startsWith('on'),\n  _indexable: name => name !== 'events',\n  hover: {\n    _fallback: 'interaction'\n  },\n  interaction: {\n    _scriptable: false,\n    _indexable: false\n  }\n}, [applyAnimationsDefaults, applyLayoutsDefaults, applyScaleDefaults]);\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nfunction toFontString(font) {\n  if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n    return null;\n  }\n  return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n/**\n * @private\n */\nfunction _measureText(ctx, data, gc, longest, string) {\n  let textWidth = data[string];\n  if (!textWidth) {\n    textWidth = data[string] = ctx.measureText(string).width;\n    gc.push(string);\n  }\n  if (textWidth > longest) {\n    longest = textWidth;\n  }\n  return longest;\n}\n/**\n * @private\n */ // eslint-disable-next-line complexity\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n  cache = cache || {};\n  let data = cache.data = cache.data || {};\n  let gc = cache.garbageCollect = cache.garbageCollect || [];\n  if (cache.font !== font) {\n    data = cache.data = {};\n    gc = cache.garbageCollect = [];\n    cache.font = font;\n  }\n  ctx.save();\n  ctx.font = font;\n  let longest = 0;\n  const ilen = arrayOfThings.length;\n  let i, j, jlen, thing, nestedThing;\n  for (i = 0; i < ilen; i++) {\n    thing = arrayOfThings[i];\n    // Undefined strings and arrays should not be measured\n    if (thing !== undefined && thing !== null && !isArray(thing)) {\n      longest = _measureText(ctx, data, gc, longest, thing);\n    } else if (isArray(thing)) {\n      // if it is an array lets measure each element\n      // to do maybe simplify this function a bit so we can do this more recursively?\n      for (j = 0, jlen = thing.length; j < jlen; j++) {\n        nestedThing = thing[j];\n        // Undefined strings and arrays should not be measured\n        if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n          longest = _measureText(ctx, data, gc, longest, nestedThing);\n        }\n      }\n    }\n  }\n  ctx.restore();\n  const gcLen = gc.length / 2;\n  if (gcLen > arrayOfThings.length) {\n    for (i = 0; i < gcLen; i++) {\n      delete data[gc[i]];\n    }\n    gc.splice(0, gcLen);\n  }\n  return longest;\n}\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */\nfunction _alignPixel(chart, pixel, width) {\n  const devicePixelRatio = chart.currentDevicePixelRatio;\n  const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n  return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n/**\n * Clears the entire canvas.\n */\nfunction clearCanvas(canvas, ctx) {\n  if (!ctx && !canvas) {\n    return;\n  }\n  ctx = ctx || canvas.getContext('2d');\n  ctx.save();\n  // canvas.width and canvas.height do not consider the canvas transform,\n  // while clearRect does\n  ctx.resetTransform();\n  ctx.clearRect(0, 0, canvas.width, canvas.height);\n  ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n  // eslint-disable-next-line @typescript-eslint/no-use-before-define\n  drawPointLegend(ctx, options, x, y, null);\n}\n// eslint-disable-next-line complexity\nfunction drawPointLegend(ctx, options, x, y, w) {\n  let type, xOffset, yOffset, size, cornerRadius, width, xOffsetW, yOffsetW;\n  const style = options.pointStyle;\n  const rotation = options.rotation;\n  const radius = options.radius;\n  let rad = (rotation || 0) * RAD_PER_DEG;\n  if (style && typeof style === 'object') {\n    type = style.toString();\n    if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n      ctx.save();\n      ctx.translate(x, y);\n      ctx.rotate(rad);\n      ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n      ctx.restore();\n      return;\n    }\n  }\n  if (isNaN(radius) || radius <= 0) {\n    return;\n  }\n  ctx.beginPath();\n  switch (style) {\n    // Default includes circle\n    default:\n      if (w) {\n        ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n      } else {\n        ctx.arc(x, y, radius, 0, TAU);\n      }\n      ctx.closePath();\n      break;\n    case 'triangle':\n      width = w ? w / 2 : radius;\n      ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n      rad += TWO_THIRDS_PI;\n      ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n      rad += TWO_THIRDS_PI;\n      ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n      ctx.closePath();\n      break;\n    case 'rectRounded':\n      // NOTE: the rounded rect implementation changed to use `arc` instead of\n      // `quadraticCurveTo` since it generates better results when rect is\n      // almost a circle. 0.516 (instead of 0.5) produces results with visually\n      // closer proportion to the previous impl and it is inscribed in the\n      // circle with `radius`. For more details, see the following PRs:\n      // https://github.com/chartjs/Chart.js/issues/5597\n      // https://github.com/chartjs/Chart.js/issues/5858\n      cornerRadius = radius * 0.516;\n      size = radius - cornerRadius;\n      xOffset = Math.cos(rad + QUARTER_PI) * size;\n      xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n      yOffset = Math.sin(rad + QUARTER_PI) * size;\n      yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n      ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n      ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n      ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n      ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n      ctx.closePath();\n      break;\n    case 'rect':\n      if (!rotation) {\n        size = Math.SQRT1_2 * radius;\n        width = w ? w / 2 : size;\n        ctx.rect(x - width, y - size, 2 * width, 2 * size);\n        break;\n      }\n      rad += QUARTER_PI;\n    /* falls through */\n    case 'rectRot':\n      xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n      xOffset = Math.cos(rad) * radius;\n      yOffset = Math.sin(rad) * radius;\n      yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n      ctx.moveTo(x - xOffsetW, y - yOffset);\n      ctx.lineTo(x + yOffsetW, y - xOffset);\n      ctx.lineTo(x + xOffsetW, y + yOffset);\n      ctx.lineTo(x - yOffsetW, y + xOffset);\n      ctx.closePath();\n      break;\n    case 'crossRot':\n      rad += QUARTER_PI;\n    /* falls through */\n    case 'cross':\n      xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n      xOffset = Math.cos(rad) * radius;\n      yOffset = Math.sin(rad) * radius;\n      yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n      ctx.moveTo(x - xOffsetW, y - yOffset);\n      ctx.lineTo(x + xOffsetW, y + yOffset);\n      ctx.moveTo(x + yOffsetW, y - xOffset);\n      ctx.lineTo(x - yOffsetW, y + xOffset);\n      break;\n    case 'star':\n      xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n      xOffset = Math.cos(rad) * radius;\n      yOffset = Math.sin(rad) * radius;\n      yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n      ctx.moveTo(x - xOffsetW, y - yOffset);\n      ctx.lineTo(x + xOffsetW, y + yOffset);\n      ctx.moveTo(x + yOffsetW, y - xOffset);\n      ctx.lineTo(x - yOffsetW, y + xOffset);\n      rad += QUARTER_PI;\n      xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n      xOffset = Math.cos(rad) * radius;\n      yOffset = Math.sin(rad) * radius;\n      yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n      ctx.moveTo(x - xOffsetW, y - yOffset);\n      ctx.lineTo(x + xOffsetW, y + yOffset);\n      ctx.moveTo(x + yOffsetW, y - xOffset);\n      ctx.lineTo(x - yOffsetW, y + xOffset);\n      break;\n    case 'line':\n      xOffset = w ? w / 2 : Math.cos(rad) * radius;\n      yOffset = Math.sin(rad) * radius;\n      ctx.moveTo(x - xOffset, y - yOffset);\n      ctx.lineTo(x + xOffset, y + yOffset);\n      break;\n    case 'dash':\n      ctx.moveTo(x, y);\n      ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n      break;\n    case false:\n      ctx.closePath();\n      break;\n  }\n  ctx.fill();\n  if (options.borderWidth > 0) {\n    ctx.stroke();\n  }\n}\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */\nfunction _isPointInArea(point, area, margin) {\n  margin = margin || 0.5; // margin - default is to match rounded decimals\n  return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n  ctx.save();\n  ctx.beginPath();\n  ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n  ctx.clip();\n}\nfunction unclipArea(ctx) {\n  ctx.restore();\n}\n/**\n * @private\n */\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n  if (!previous) {\n    return ctx.lineTo(target.x, target.y);\n  }\n  if (mode === 'middle') {\n    const midpoint = (previous.x + target.x) / 2.0;\n    ctx.lineTo(midpoint, previous.y);\n    ctx.lineTo(midpoint, target.y);\n  } else if (mode === 'after' !== !!flip) {\n    ctx.lineTo(previous.x, target.y);\n  } else {\n    ctx.lineTo(target.x, previous.y);\n  }\n  ctx.lineTo(target.x, target.y);\n}\n/**\n * @private\n */\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n  if (!previous) {\n    return ctx.lineTo(target.x, target.y);\n  }\n  ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\nfunction setRenderOpts(ctx, opts) {\n  if (opts.translation) {\n    ctx.translate(opts.translation[0], opts.translation[1]);\n  }\n  if (!isNullOrUndef(opts.rotation)) {\n    ctx.rotate(opts.rotation);\n  }\n  if (opts.color) {\n    ctx.fillStyle = opts.color;\n  }\n  if (opts.textAlign) {\n    ctx.textAlign = opts.textAlign;\n  }\n  if (opts.textBaseline) {\n    ctx.textBaseline = opts.textBaseline;\n  }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n  if (opts.strikethrough || opts.underline) {\n    /**\n    * Now that IE11 support has been dropped, we can use more\n    * of the TextMetrics object. The actual bounding boxes\n    * are unflagged in Chrome, Firefox, Edge, and Safari so they\n    * can be safely used.\n    * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n    */\n    const metrics = ctx.measureText(line);\n    const left = x - metrics.actualBoundingBoxLeft;\n    const right = x + metrics.actualBoundingBoxRight;\n    const top = y - metrics.actualBoundingBoxAscent;\n    const bottom = y + metrics.actualBoundingBoxDescent;\n    const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n    ctx.strokeStyle = ctx.fillStyle;\n    ctx.beginPath();\n    ctx.lineWidth = opts.decorationWidth || 2;\n    ctx.moveTo(left, yDecoration);\n    ctx.lineTo(right, yDecoration);\n    ctx.stroke();\n  }\n}\nfunction drawBackdrop(ctx, opts) {\n  const oldColor = ctx.fillStyle;\n  ctx.fillStyle = opts.color;\n  ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n  ctx.fillStyle = oldColor;\n}\n/**\n * Render text onto the canvas\n */\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n  const lines = isArray(text) ? text : [text];\n  const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n  let i, line;\n  ctx.save();\n  ctx.font = font.string;\n  setRenderOpts(ctx, opts);\n  for (i = 0; i < lines.length; ++i) {\n    line = lines[i];\n    if (opts.backdrop) {\n      drawBackdrop(ctx, opts.backdrop);\n    }\n    if (stroke) {\n      if (opts.strokeColor) {\n        ctx.strokeStyle = opts.strokeColor;\n      }\n      if (!isNullOrUndef(opts.strokeWidth)) {\n        ctx.lineWidth = opts.strokeWidth;\n      }\n      ctx.strokeText(line, x, y, opts.maxWidth);\n    }\n    ctx.fillText(line, x, y, opts.maxWidth);\n    decorateText(ctx, x, y, line, opts);\n    y += Number(font.lineHeight);\n  }\n  ctx.restore();\n}\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */\nfunction addRoundedRectPath(ctx, rect) {\n  const {\n    x,\n    y,\n    w,\n    h,\n    radius\n  } = rect;\n  // top left arc\n  ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n  // line from top left to bottom left\n  ctx.lineTo(x, y + h - radius.bottomLeft);\n  // bottom left arc\n  ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n  // line from bottom left to bottom right\n  ctx.lineTo(x + w - radius.bottomRight, y + h);\n  // bottom right arc\n  ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n  // line from bottom right to top right\n  ctx.lineTo(x + w, y + radius.topRight);\n  // top right arc\n  ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n  // line from top right to top left\n  ctx.lineTo(x + radius.topLeft, y);\n}\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n/**\n * @alias Chart.helpers.options\n * @namespace\n */ /**\n    * Converts the given line height `value` in pixels for a specific font `size`.\n    * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n    * @param size - The font size (in pixels) used to resolve relative `value`.\n    * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n    * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n    * @since 2.7.0\n    */\nfunction toLineHeight(value, size) {\n  const matches = ('' + value).match(LINE_HEIGHT);\n  if (!matches || matches[1] === 'normal') {\n    return size * 1.2;\n  }\n  value = +matches[2];\n  switch (matches[3]) {\n    case 'px':\n      return value;\n    case '%':\n      value /= 100;\n      break;\n  }\n  return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n  const ret = {};\n  const objProps = isObject(props);\n  const keys = objProps ? Object.keys(props) : props;\n  const read = isObject(value) ? objProps ? prop => valueOrDefault(value[prop], value[props[prop]]) : prop => value[prop] : () => value;\n  for (const prop of keys) {\n    ret[prop] = numberOrZero(read(prop));\n  }\n  return ret;\n}\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n *  else, if an object, use defined properties and sets undefined ones to 0.\n *  x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */\nfunction toTRBL(value) {\n  return _readValueToProps(value, {\n    top: 'y',\n    right: 'x',\n    bottom: 'y',\n    left: 'x'\n  });\n}\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n *  else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */\nfunction toTRBLCorners(value) {\n  return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n *  else, if an object, use defined properties and sets undefined ones to 0.\n *  x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */\nfunction toPadding(value) {\n  const obj = toTRBL(value);\n  obj.width = obj.left + obj.right;\n  obj.height = obj.top + obj.bottom;\n  return obj;\n}\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */\nfunction toFont(options, fallback) {\n  options = options || {};\n  fallback = fallback || defaults.font;\n  let size = valueOrDefault(options.size, fallback.size);\n  if (typeof size === 'string') {\n    size = parseInt(size, 10);\n  }\n  let style = valueOrDefault(options.style, fallback.style);\n  if (style && !('' + style).match(FONT_STYLE)) {\n    console.warn('Invalid font style specified: \"' + style + '\"');\n    style = undefined;\n  }\n  const font = {\n    family: valueOrDefault(options.family, fallback.family),\n    lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n    size,\n    style,\n    weight: valueOrDefault(options.weight, fallback.weight),\n    string: ''\n  };\n  font.string = toFontString(font);\n  return font;\n}\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */\nfunction resolve(inputs, context, index, info) {\n  let cacheable = true;\n  let i, ilen, value;\n  for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n    value = inputs[i];\n    if (value === undefined) {\n      continue;\n    }\n    if (context !== undefined && typeof value === 'function') {\n      value = value(context);\n      cacheable = false;\n    }\n    if (index !== undefined && isArray(value)) {\n      value = value[index % value.length];\n      cacheable = false;\n    }\n    if (value !== undefined) {\n      if (info && !cacheable) {\n        info.cacheable = false;\n      }\n      return value;\n    }\n  }\n}\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */\nfunction _addGrace(minmax, grace, beginAtZero) {\n  const {\n    min,\n    max\n  } = minmax;\n  const change = toDimension(grace, (max - min) / 2);\n  const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n  return {\n    min: keepZero(min, -Math.abs(change)),\n    max: keepZero(max, change)\n  };\n}\nfunction createContext(parentContext, context) {\n  return Object.assign(Object.create(parentContext), context);\n}\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */\nfunction _createResolver(scopes, prefixes = [''], rootScopes, fallback, getTarget = () => scopes[0]) {\n  const finalRootScopes = rootScopes || scopes;\n  if (typeof fallback === 'undefined') {\n    fallback = _resolve('_fallback', scopes);\n  }\n  const cache = {\n    [Symbol.toStringTag]: 'Object',\n    _cacheable: true,\n    _scopes: scopes,\n    _rootScopes: finalRootScopes,\n    _fallback: fallback,\n    _getTarget: getTarget,\n    override: scope => _createResolver([scope, ...scopes], prefixes, finalRootScopes, fallback)\n  };\n  return new Proxy(cache, {\n    /**\n    * A trap for the delete operator.\n    */\n    deleteProperty(target, prop) {\n      delete target[prop]; // remove from cache\n      delete target._keys; // remove cached keys\n      delete scopes[0][prop]; // remove from top level scope\n      return true;\n    },\n    /**\n    * A trap for getting property values.\n    */\n    get(target, prop) {\n      return _cached(target, prop, () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n    },\n    /**\n    * A trap for Object.getOwnPropertyDescriptor.\n    * Also used by Object.hasOwnProperty.\n    */\n    getOwnPropertyDescriptor(target, prop) {\n      return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n    },\n    /**\n    * A trap for Object.getPrototypeOf.\n    */\n    getPrototypeOf() {\n      return Reflect.getPrototypeOf(scopes[0]);\n    },\n    /**\n    * A trap for the in operator.\n    */\n    has(target, prop) {\n      return getKeysFromAllScopes(target).includes(prop);\n    },\n    /**\n    * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n    */\n    ownKeys(target) {\n      return getKeysFromAllScopes(target);\n    },\n    /**\n    * A trap for setting property values.\n    */\n    set(target, prop, value) {\n      const storage = target._storage || (target._storage = getTarget());\n      target[prop] = storage[prop] = value; // set to top level scope + cache\n      delete target._keys; // remove cached keys\n      return true;\n    }\n  });\n}\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n  const cache = {\n    _cacheable: false,\n    _proxy: proxy,\n    _context: context,\n    _subProxy: subProxy,\n    _stack: new Set(),\n    _descriptors: _descriptors(proxy, descriptorDefaults),\n    setContext: ctx => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n    override: scope => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n  };\n  return new Proxy(cache, {\n    /**\n    * A trap for the delete operator.\n    */\n    deleteProperty(target, prop) {\n      delete target[prop]; // remove from cache\n      delete proxy[prop]; // remove from proxy\n      return true;\n    },\n    /**\n    * A trap for getting property values.\n    */\n    get(target, prop, receiver) {\n      return _cached(target, prop, () => _resolveWithContext(target, prop, receiver));\n    },\n    /**\n    * A trap for Object.getOwnPropertyDescriptor.\n    * Also used by Object.hasOwnProperty.\n    */\n    getOwnPropertyDescriptor(target, prop) {\n      return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n        enumerable: true,\n        configurable: true\n      } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n    },\n    /**\n    * A trap for Object.getPrototypeOf.\n    */\n    getPrototypeOf() {\n      return Reflect.getPrototypeOf(proxy);\n    },\n    /**\n    * A trap for the in operator.\n    */\n    has(target, prop) {\n      return Reflect.has(proxy, prop);\n    },\n    /**\n    * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n    */\n    ownKeys() {\n      return Reflect.ownKeys(proxy);\n    },\n    /**\n    * A trap for setting property values.\n    */\n    set(target, prop, value) {\n      proxy[prop] = value; // set to proxy\n      delete target[prop]; // remove from cache\n      return true;\n    }\n  });\n}\n/**\n * @private\n */\nfunction _descriptors(proxy, defaults = {\n  scriptable: true,\n  indexable: true\n}) {\n  const {\n    _scriptable = defaults.scriptable,\n    _indexable = defaults.indexable,\n    _allKeys = defaults.allKeys\n  } = proxy;\n  return {\n    allKeys: _allKeys,\n    scriptable: _scriptable,\n    indexable: _indexable,\n    isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n    isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n  };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n  if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n    return target[prop];\n  }\n  const value = resolve();\n  // cache the resolved value\n  target[prop] = value;\n  return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n  const {\n    _proxy,\n    _context,\n    _subProxy,\n    _descriptors: descriptors\n  } = target;\n  let value = _proxy[prop]; // resolve from proxy\n  // resolve with context\n  if (isFunction(value) && descriptors.isScriptable(prop)) {\n    value = _resolveScriptable(prop, value, target, receiver);\n  }\n  if (isArray(value) && value.length) {\n    value = _resolveArray(prop, value, target, descriptors.isIndexable);\n  }\n  if (needsSubResolver(prop, value)) {\n    // if the resolved value is an object, create a sub resolver for it\n    value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n  }\n  return value;\n}\nfunction _resolveScriptable(prop, getValue, target, receiver) {\n  const {\n    _proxy,\n    _context,\n    _subProxy,\n    _stack\n  } = target;\n  if (_stack.has(prop)) {\n    throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n  }\n  _stack.add(prop);\n  let value = getValue(_context, _subProxy || receiver);\n  _stack.delete(prop);\n  if (needsSubResolver(prop, value)) {\n    // When scriptable option returns an object, create a resolver on that.\n    value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n  }\n  return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n  const {\n    _proxy,\n    _context,\n    _subProxy,\n    _descriptors: descriptors\n  } = target;\n  if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n    return value[_context.index % value.length];\n  } else if (isObject(value[0])) {\n    // Array of objects, return array or resolvers\n    const arr = value;\n    const scopes = _proxy._scopes.filter(s => s !== arr);\n    value = [];\n    for (const item of arr) {\n      const resolver = createSubResolver(scopes, _proxy, prop, item);\n      value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n    }\n  }\n  return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n  return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n  for (const parent of parentScopes) {\n    const scope = getScope(key, parent);\n    if (scope) {\n      set.add(scope);\n      const fallback = resolveFallback(scope._fallback, key, value);\n      if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n        // When we reach the descriptor that defines a new _fallback, return that.\n        // The fallback will resume to that new scope.\n        return fallback;\n      }\n    } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n      // Fallback to `false` results to `false`, when falling back to different key.\n      // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n      return null;\n    }\n  }\n  return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n  const rootScopes = resolver._rootScopes;\n  const fallback = resolveFallback(resolver._fallback, prop, value);\n  const allScopes = [...parentScopes, ...rootScopes];\n  const set = new Set();\n  set.add(value);\n  let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n  if (key === null) {\n    return false;\n  }\n  if (typeof fallback !== 'undefined' && fallback !== prop) {\n    key = addScopesFromKey(set, allScopes, fallback, key, value);\n    if (key === null) {\n      return false;\n    }\n  }\n  return _createResolver(Array.from(set), [''], rootScopes, fallback, () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n  while (key) {\n    key = addScopes(set, allScopes, key, fallback, item);\n  }\n  return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n  const parent = resolver._getTarget();\n  if (!(prop in parent)) {\n    parent[prop] = {};\n  }\n  const target = parent[prop];\n  if (isArray(target) && isObject(value)) {\n    // For array of objects, the object is used to store updated values\n    return value;\n  }\n  return target || {};\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n  let value;\n  for (const prefix of prefixes) {\n    value = _resolve(readKey(prefix, prop), scopes);\n    if (typeof value !== 'undefined') {\n      return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n    }\n  }\n}\nfunction _resolve(key, scopes) {\n  for (const scope of scopes) {\n    if (!scope) {\n      continue;\n    }\n    const value = scope[key];\n    if (typeof value !== 'undefined') {\n      return value;\n    }\n  }\n}\nfunction getKeysFromAllScopes(target) {\n  let keys = target._keys;\n  if (!keys) {\n    keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n  }\n  return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n  const set = new Set();\n  for (const scope of scopes) {\n    for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n      set.add(key);\n    }\n  }\n  return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n  const {\n    iScale\n  } = meta;\n  const {\n    key = 'r'\n  } = this._parsing;\n  const parsed = new Array(count);\n  let i, ilen, index, item;\n  for (i = 0, ilen = count; i < ilen; ++i) {\n    index = i + start;\n    item = data[index];\n    parsed[i] = {\n      r: iScale.parse(resolveObjectKey(item, key), index)\n    };\n  }\n  return parsed;\n}\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = indexAxis => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n  // Props to Rob Spencer at scaled innovation for his post on splining between points\n  // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n  // This function must also respect \"skipped\" points\n  const previous = firstPoint.skip ? middlePoint : firstPoint;\n  const current = middlePoint;\n  const next = afterPoint.skip ? middlePoint : afterPoint;\n  const d01 = distanceBetweenPoints(current, previous);\n  const d12 = distanceBetweenPoints(next, current);\n  let s01 = d01 / (d01 + d12);\n  let s12 = d12 / (d01 + d12);\n  // If all points are the same, s01 & s02 will be inf\n  s01 = isNaN(s01) ? 0 : s01;\n  s12 = isNaN(s12) ? 0 : s12;\n  const fa = t * s01; // scaling factor for triangle Ta\n  const fb = t * s12;\n  return {\n    previous: {\n      x: current.x - fa * (next.x - previous.x),\n      y: current.y - fa * (next.y - previous.y)\n    },\n    next: {\n      x: current.x + fb * (next.x - previous.x),\n      y: current.y + fb * (next.y - previous.y)\n    }\n  };\n}\n/**\n * Adjust tangents to ensure monotonic properties\n */\nfunction monotoneAdjust(points, deltaK, mK) {\n  const pointsLen = points.length;\n  let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n  let pointAfter = getPoint(points, 0);\n  for (let i = 0; i < pointsLen - 1; ++i) {\n    pointCurrent = pointAfter;\n    pointAfter = getPoint(points, i + 1);\n    if (!pointCurrent || !pointAfter) {\n      continue;\n    }\n    if (almostEquals(deltaK[i], 0, EPSILON)) {\n      mK[i] = mK[i + 1] = 0;\n      continue;\n    }\n    alphaK = mK[i] / deltaK[i];\n    betaK = mK[i + 1] / deltaK[i];\n    squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n    if (squaredMagnitude <= 9) {\n      continue;\n    }\n    tauK = 3 / Math.sqrt(squaredMagnitude);\n    mK[i] = alphaK * tauK * deltaK[i];\n    mK[i + 1] = betaK * tauK * deltaK[i];\n  }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n  const valueAxis = getValueAxis(indexAxis);\n  const pointsLen = points.length;\n  let delta, pointBefore, pointCurrent;\n  let pointAfter = getPoint(points, 0);\n  for (let i = 0; i < pointsLen; ++i) {\n    pointBefore = pointCurrent;\n    pointCurrent = pointAfter;\n    pointAfter = getPoint(points, i + 1);\n    if (!pointCurrent) {\n      continue;\n    }\n    const iPixel = pointCurrent[indexAxis];\n    const vPixel = pointCurrent[valueAxis];\n    if (pointBefore) {\n      delta = (iPixel - pointBefore[indexAxis]) / 3;\n      pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n      pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n    }\n    if (pointAfter) {\n      delta = (pointAfter[indexAxis] - iPixel) / 3;\n      pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n      pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n    }\n  }\n}\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n  const valueAxis = getValueAxis(indexAxis);\n  const pointsLen = points.length;\n  const deltaK = Array(pointsLen).fill(0);\n  const mK = Array(pointsLen);\n  // Calculate slopes (deltaK) and initialize tangents (mK)\n  let i, pointBefore, pointCurrent;\n  let pointAfter = getPoint(points, 0);\n  for (i = 0; i < pointsLen; ++i) {\n    pointBefore = pointCurrent;\n    pointCurrent = pointAfter;\n    pointAfter = getPoint(points, i + 1);\n    if (!pointCurrent) {\n      continue;\n    }\n    if (pointAfter) {\n      const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n      // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n      deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n    }\n    mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n  }\n  monotoneAdjust(points, deltaK, mK);\n  monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n  return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n  let i, ilen, point, inArea, inAreaPrev;\n  let inAreaNext = _isPointInArea(points[0], area);\n  for (i = 0, ilen = points.length; i < ilen; ++i) {\n    inAreaPrev = inArea;\n    inArea = inAreaNext;\n    inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n    if (!inArea) {\n      continue;\n    }\n    point = points[i];\n    if (inAreaPrev) {\n      point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n      point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n    }\n    if (inAreaNext) {\n      point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n      point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n    }\n  }\n}\n/**\n * @private\n */\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n  let i, ilen, point, controlPoints;\n  // Only consider points that are drawn in case the spanGaps option is used\n  if (options.spanGaps) {\n    points = points.filter(pt => !pt.skip);\n  }\n  if (options.cubicInterpolationMode === 'monotone') {\n    splineCurveMonotone(points, indexAxis);\n  } else {\n    let prev = loop ? points[points.length - 1] : points[0];\n    for (i = 0, ilen = points.length; i < ilen; ++i) {\n      point = points[i];\n      controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n      point.cp1x = controlPoints.previous.x;\n      point.cp1y = controlPoints.previous.y;\n      point.cp2x = controlPoints.next.x;\n      point.cp2y = controlPoints.next.y;\n      prev = point;\n    }\n  }\n  if (options.capBezierPoints) {\n    capBezierPoints(points, area);\n  }\n}\n\n/**\n * @private\n */\nfunction _isDomSupported() {\n  return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * @private\n */\nfunction _getParentNode(domNode) {\n  let parent = domNode.parentNode;\n  if (parent && parent.toString() === '[object ShadowRoot]') {\n    parent = parent.host;\n  }\n  return parent;\n}\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n  let valueInPixels;\n  if (typeof styleValue === 'string') {\n    valueInPixels = parseInt(styleValue, 10);\n    if (styleValue.indexOf('%') !== -1) {\n      // percentage * size in dimension\n      valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n    }\n  } else {\n    valueInPixels = styleValue;\n  }\n  return valueInPixels;\n}\nconst getComputedStyle = element => element.ownerDocument.defaultView.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n  return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n  const result = {};\n  suffix = suffix ? '-' + suffix : '';\n  for (let i = 0; i < 4; i++) {\n    const pos = positions[i];\n    result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n  }\n  result.width = result.left + result.right;\n  result.height = result.top + result.bottom;\n  return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */\nfunction getCanvasPosition(e, canvas) {\n  const touches = e.touches;\n  const source = touches && touches.length ? touches[0] : e;\n  const {\n    offsetX,\n    offsetY\n  } = source;\n  let box = false;\n  let x, y;\n  if (useOffsetPos(offsetX, offsetY, e.target)) {\n    x = offsetX;\n    y = offsetY;\n  } else {\n    const rect = canvas.getBoundingClientRect();\n    x = source.clientX - rect.left;\n    y = source.clientY - rect.top;\n    box = true;\n  }\n  return {\n    x,\n    y,\n    box\n  };\n}\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */\nfunction getRelativePosition(event, chart) {\n  if ('native' in event) {\n    return event;\n  }\n  const {\n    canvas,\n    currentDevicePixelRatio\n  } = chart;\n  const style = getComputedStyle(canvas);\n  const borderBox = style.boxSizing === 'border-box';\n  const paddings = getPositionedStyle(style, 'padding');\n  const borders = getPositionedStyle(style, 'border', 'width');\n  const {\n    x,\n    y,\n    box\n  } = getCanvasPosition(event, canvas);\n  const xOffset = paddings.left + (box && borders.left);\n  const yOffset = paddings.top + (box && borders.top);\n  let {\n    width,\n    height\n  } = chart;\n  if (borderBox) {\n    width -= paddings.width + borders.width;\n    height -= paddings.height + borders.height;\n  }\n  return {\n    x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n    y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n  };\n}\nfunction getContainerSize(canvas, width, height) {\n  let maxWidth, maxHeight;\n  if (width === undefined || height === undefined) {\n    const container = canvas && _getParentNode(canvas);\n    if (!container) {\n      width = canvas.clientWidth;\n      height = canvas.clientHeight;\n    } else {\n      const rect = container.getBoundingClientRect(); // this is the border box of the container\n      const containerStyle = getComputedStyle(container);\n      const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n      const containerPadding = getPositionedStyle(containerStyle, 'padding');\n      width = rect.width - containerPadding.width - containerBorder.width;\n      height = rect.height - containerPadding.height - containerBorder.height;\n      maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n      maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n    }\n  }\n  return {\n    width,\n    height,\n    maxWidth: maxWidth || INFINITY,\n    maxHeight: maxHeight || INFINITY\n  };\n}\nconst round1 = v => Math.round(v * 10) / 10;\n// eslint-disable-next-line complexity\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n  const style = getComputedStyle(canvas);\n  const margins = getPositionedStyle(style, 'margin');\n  const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n  const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n  const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n  let {\n    width,\n    height\n  } = containerSize;\n  if (style.boxSizing === 'content-box') {\n    const borders = getPositionedStyle(style, 'border', 'width');\n    const paddings = getPositionedStyle(style, 'padding');\n    width -= paddings.width + borders.width;\n    height -= paddings.height + borders.height;\n  }\n  width = Math.max(0, width - margins.width);\n  height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n  width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n  height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n  if (width && !height) {\n    // https://github.com/chartjs/Chart.js/issues/4659\n    // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n    height = round1(width / 2);\n  }\n  const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n  if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n    height = containerSize.height;\n    width = round1(Math.floor(height * aspectRatio));\n  }\n  return {\n    width,\n    height\n  };\n}\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */\nfunction retinaScale(chart, forceRatio, forceStyle) {\n  const pixelRatio = forceRatio || 1;\n  const deviceHeight = Math.floor(chart.height * pixelRatio);\n  const deviceWidth = Math.floor(chart.width * pixelRatio);\n  chart.height = Math.floor(chart.height);\n  chart.width = Math.floor(chart.width);\n  const canvas = chart.canvas;\n  // If no style has been set on the canvas, the render size is used as display size,\n  // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n  // See https://github.com/chartjs/Chart.js/issues/3575\n  if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n    canvas.style.height = `${chart.height}px`;\n    canvas.style.width = `${chart.width}px`;\n  }\n  if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n    chart.currentDevicePixelRatio = pixelRatio;\n    canvas.height = deviceHeight;\n    canvas.width = deviceWidth;\n    chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n    return true;\n  }\n  return false;\n}\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nconst supportsEventListenerOptions = function () {\n  let passiveSupported = false;\n  try {\n    const options = {\n      get passive() {\n        passiveSupported = true;\n        return false;\n      }\n    };\n    if (_isDomSupported()) {\n      window.addEventListener('test', null, options);\n      window.removeEventListener('test', null, options);\n    }\n  } catch (e) {\n    // continue regardless of error\n  }\n  return passiveSupported;\n}();\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */\nfunction readUsedSize(element, property) {\n  const value = getStyle(element, property);\n  const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n  return matches ? +matches[1] : undefined;\n}\n\n/**\n * @private\n */\nfunction _pointInLine(p1, p2, t, mode) {\n  return {\n    x: p1.x + t * (p2.x - p1.x),\n    y: p1.y + t * (p2.y - p1.y)\n  };\n}\n/**\n * @private\n */\nfunction _steppedInterpolation(p1, p2, t, mode) {\n  return {\n    x: p1.x + t * (p2.x - p1.x),\n    y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n  };\n}\n/**\n * @private\n */\nfunction _bezierInterpolation(p1, p2, t, mode) {\n  const cp1 = {\n    x: p1.cp2x,\n    y: p1.cp2y\n  };\n  const cp2 = {\n    x: p2.cp1x,\n    y: p2.cp1y\n  };\n  const a = _pointInLine(p1, cp1, t);\n  const b = _pointInLine(cp1, cp2, t);\n  const c = _pointInLine(cp2, p2, t);\n  const d = _pointInLine(a, b, t);\n  const e = _pointInLine(b, c, t);\n  return _pointInLine(d, e, t);\n}\nconst getRightToLeftAdapter = function (rectX, width) {\n  return {\n    x(x) {\n      return rectX + rectX + width - x;\n    },\n    setWidth(w) {\n      width = w;\n    },\n    textAlign(align) {\n      if (align === 'center') {\n        return align;\n      }\n      return align === 'right' ? 'left' : 'right';\n    },\n    xPlus(x, value) {\n      return x - value;\n    },\n    leftForLtr(x, itemWidth) {\n      return x - itemWidth;\n    }\n  };\n};\nconst getLeftToRightAdapter = function () {\n  return {\n    x(x) {\n      return x;\n    },\n    setWidth(w) {},\n    textAlign(align) {\n      return align;\n    },\n    xPlus(x, value) {\n      return x + value;\n    },\n    leftForLtr(x, _itemWidth) {\n      return x;\n    }\n  };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n  return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n  let style, original;\n  if (direction === 'ltr' || direction === 'rtl') {\n    style = ctx.canvas.style;\n    original = [style.getPropertyValue('direction'), style.getPropertyPriority('direction')];\n    style.setProperty('direction', direction, 'important');\n    ctx.prevTextDirection = original;\n  }\n}\nfunction restoreTextDirection(ctx, original) {\n  if (original !== undefined) {\n    delete ctx.prevTextDirection;\n    ctx.canvas.style.setProperty('direction', original[0], original[1]);\n  }\n}\nfunction propertyFn(property) {\n  if (property === 'angle') {\n    return {\n      between: _angleBetween,\n      compare: _angleDiff,\n      normalize: _normalizeAngle\n    };\n  }\n  return {\n    between: _isBetween,\n    compare: (a, b) => a - b,\n    normalize: x => x\n  };\n}\nfunction normalizeSegment({\n  start,\n  end,\n  count,\n  loop,\n  style\n}) {\n  return {\n    start: start % count,\n    end: end % count,\n    loop: loop && (end - start + 1) % count === 0,\n    style\n  };\n}\nfunction getSegment(segment, points, bounds) {\n  const {\n    property,\n    start: startBound,\n    end: endBound\n  } = bounds;\n  const {\n    between,\n    normalize\n  } = propertyFn(property);\n  const count = points.length;\n  let {\n    start,\n    end,\n    loop\n  } = segment;\n  let i, ilen;\n  if (loop) {\n    start += count;\n    end += count;\n    for (i = 0, ilen = count; i < ilen; ++i) {\n      if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n        break;\n      }\n      start--;\n      end--;\n    }\n    start %= count;\n    end %= count;\n  }\n  if (end < start) {\n    end += count;\n  }\n  return {\n    start,\n    end,\n    loop,\n    style: segment.style\n  };\n}\nfunction _boundSegment(segment, points, bounds) {\n  if (!bounds) {\n    return [segment];\n  }\n  const {\n    property,\n    start: startBound,\n    end: endBound\n  } = bounds;\n  const count = points.length;\n  const {\n    compare,\n    between,\n    normalize\n  } = propertyFn(property);\n  const {\n    start,\n    end,\n    loop,\n    style\n  } = getSegment(segment, points, bounds);\n  const result = [];\n  let inside = false;\n  let subStart = null;\n  let value, point, prevValue;\n  const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n  const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n  const shouldStart = () => inside || startIsBefore();\n  const shouldStop = () => !inside || endIsBefore();\n  for (let i = start, prev = start; i <= end; ++i) {\n    point = points[i % count];\n    if (point.skip) {\n      continue;\n    }\n    value = normalize(point[property]);\n    if (value === prevValue) {\n      continue;\n    }\n    inside = between(value, startBound, endBound);\n    if (subStart === null && shouldStart()) {\n      subStart = compare(value, startBound) === 0 ? i : prev;\n    }\n    if (subStart !== null && shouldStop()) {\n      result.push(normalizeSegment({\n        start: subStart,\n        end: i,\n        loop,\n        count,\n        style\n      }));\n      subStart = null;\n    }\n    prev = i;\n    prevValue = value;\n  }\n  if (subStart !== null) {\n    result.push(normalizeSegment({\n      start: subStart,\n      end,\n      loop,\n      count,\n      style\n    }));\n  }\n  return result;\n}\nfunction _boundSegments(line, bounds) {\n  const result = [];\n  const segments = line.segments;\n  for (let i = 0; i < segments.length; i++) {\n    const sub = _boundSegment(segments[i], line.points, bounds);\n    if (sub.length) {\n      result.push(...sub);\n    }\n  }\n  return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n  let start = 0;\n  let end = count - 1;\n  if (loop && !spanGaps) {\n    while (start < count && !points[start].skip) {\n      start++;\n    }\n  }\n  while (start < count && points[start].skip) {\n    start++;\n  }\n  start %= count;\n  if (loop) {\n    end += start;\n  }\n  while (end > start && points[end % count].skip) {\n    end--;\n  }\n  end %= count;\n  return {\n    start,\n    end\n  };\n}\nfunction solidSegments(points, start, max, loop) {\n  const count = points.length;\n  const result = [];\n  let last = start;\n  let prev = points[start];\n  let end;\n  for (end = start + 1; end <= max; ++end) {\n    const cur = points[end % count];\n    if (cur.skip || cur.stop) {\n      if (!prev.skip) {\n        loop = false;\n        result.push({\n          start: start % count,\n          end: (end - 1) % count,\n          loop\n        });\n        start = last = cur.stop ? end : null;\n      }\n    } else {\n      last = end;\n      if (prev.skip) {\n        start = end;\n      }\n    }\n    prev = cur;\n  }\n  if (last !== null) {\n    result.push({\n      start: start % count,\n      end: last % count,\n      loop\n    });\n  }\n  return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n  const points = line.points;\n  const spanGaps = line.options.spanGaps;\n  const count = points.length;\n  if (!count) {\n    return [];\n  }\n  const loop = !!line._loop;\n  const {\n    start,\n    end\n  } = findStartAndEnd(points, count, loop, spanGaps);\n  if (spanGaps === true) {\n    return splitByStyles(line, [{\n      start,\n      end,\n      loop\n    }], points, segmentOptions);\n  }\n  const max = end < start ? end + count : end;\n  const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n  return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n  if (!segmentOptions || !segmentOptions.setContext || !points) {\n    return segments;\n  }\n  return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n  const chartContext = line._chart.getContext();\n  const baseStyle = readStyle(line.options);\n  const {\n    _datasetIndex: datasetIndex,\n    options: {\n      spanGaps\n    }\n  } = line;\n  const count = points.length;\n  const result = [];\n  let prevStyle = baseStyle;\n  let start = segments[0].start;\n  let i = start;\n  function addStyle(s, e, l, st) {\n    const dir = spanGaps ? -1 : 1;\n    if (s === e) {\n      return;\n    }\n    s += count;\n    while (points[s % count].skip) {\n      s -= dir;\n    }\n    while (points[e % count].skip) {\n      e += dir;\n    }\n    if (s % count !== e % count) {\n      result.push({\n        start: s % count,\n        end: e % count,\n        loop: l,\n        style: st\n      });\n      prevStyle = st;\n      start = e % count;\n    }\n  }\n  for (const segment of segments) {\n    start = spanGaps ? start : segment.start;\n    let prev = points[start % count];\n    let style;\n    for (i = start + 1; i <= segment.end; i++) {\n      const pt = points[i % count];\n      style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n        type: 'segment',\n        p0: prev,\n        p1: pt,\n        p0DataIndex: (i - 1) % count,\n        p1DataIndex: i % count,\n        datasetIndex\n      })));\n      if (styleChanged(style, prevStyle)) {\n        addStyle(start, i - 1, segment.loop, prevStyle);\n      }\n      prev = pt;\n      prevStyle = style;\n    }\n    if (start < i - 1) {\n      addStyle(start, i - 1, segment.loop, prevStyle);\n    }\n  }\n  return result;\n}\nfunction readStyle(options) {\n  return {\n    backgroundColor: options.backgroundColor,\n    borderCapStyle: options.borderCapStyle,\n    borderDash: options.borderDash,\n    borderDashOffset: options.borderDashOffset,\n    borderJoinStyle: options.borderJoinStyle,\n    borderWidth: options.borderWidth,\n    borderColor: options.borderColor\n  };\n}\nfunction styleChanged(style, prevStyle) {\n  if (!prevStyle) {\n    return false;\n  }\n  const cache = [];\n  const replacer = function (key, value) {\n    if (!isPatternOrGradient(value)) {\n      return value;\n    }\n    if (!cache.includes(value)) {\n      cache.push(value);\n    }\n    return cache.indexOf(value);\n  };\n  return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\nfunction getSizeForArea(scale, chartArea, field) {\n  return scale.options.clip ? scale[field] : chartArea[field];\n}\nfunction getDatasetArea(meta, chartArea) {\n  const {\n    xScale,\n    yScale\n  } = meta;\n  if (xScale && yScale) {\n    return {\n      left: getSizeForArea(xScale, chartArea, 'left'),\n      right: getSizeForArea(xScale, chartArea, 'right'),\n      top: getSizeForArea(yScale, chartArea, 'top'),\n      bottom: getSizeForArea(yScale, chartArea, 'bottom')\n    };\n  }\n  return chartArea;\n}\nfunction getDatasetClipArea(chart, meta) {\n  const clip = meta._clip;\n  if (clip.disabled) {\n    return false;\n  }\n  const area = getDatasetArea(meta, chart.chartArea);\n  return {\n    left: clip.left === false ? 0 : area.left - (clip.left === true ? 0 : clip.left),\n    right: clip.right === false ? chart.width : area.right + (clip.right === true ? 0 : clip.right),\n    top: clip.top === false ? 0 : area.top - (clip.top === true ? 0 : clip.top),\n    bottom: clip.bottom === false ? chart.height : area.bottom + (clip.bottom === true ? 0 : clip.bottom)\n  };\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/chart.js/dist/chunks/helpers.dataset.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/chartjs-adapter-date-fns/dist/chartjs-adapter-date-fns.esm.js":
/*!**********************************************************************************************!*\
  !*** ../react-ui/node_modules/chartjs-adapter-date-fns/dist/chartjs-adapter-date-fns.esm.js ***!
  \**********************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var chart_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! chart.js */ \"../react-ui/node_modules/chart.js/dist/chart.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/addDays.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/addHours.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/addMilliseconds.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/addMinutes.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/addMonths.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/addQuarters.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/addSeconds.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/addWeeks.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/addYears.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/differenceInDays.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/differenceInHours.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/differenceInMilliseconds.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/differenceInMinutes.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/differenceInMonths.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/differenceInQuarters.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/differenceInSeconds.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/differenceInWeeks.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/differenceInYears.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/endOfDay.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/endOfHour.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/endOfMinute.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/endOfMonth.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/endOfQuarter.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/endOfSecond.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/endOfWeek.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/endOfYear.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/format.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/isValid.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/parse.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/parseISO.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/startOfDay.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/startOfHour.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/startOfMinute.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/startOfMonth.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/startOfQuarter.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/startOfSecond.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/startOfWeek.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/startOfYear.js\");\n/* harmony import */ var date_fns__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(/*! date-fns */ \"../react-ui/node_modules/date-fns/toDate.js\");\n/*!\n * chartjs-adapter-date-fns v3.0.0\n * https://www.chartjs.org\n * (c) 2022 chartjs-adapter-date-fns Contributors\n * Released under the MIT license\n */\n\n\nconst FORMATS = {\n  datetime: 'MMM d, yyyy, h:mm:ss aaaa',\n  millisecond: 'h:mm:ss.SSS aaaa',\n  second: 'h:mm:ss aaaa',\n  minute: 'h:mm aaaa',\n  hour: 'ha',\n  day: 'MMM d',\n  week: 'PP',\n  month: 'MMM yyyy',\n  quarter: 'qqq - yyyy',\n  year: 'yyyy'\n};\nchart_js__WEBPACK_IMPORTED_MODULE_0__._adapters._date.override({\n  _id: 'date-fns',\n  // DEBUG\n\n  formats: function () {\n    return FORMATS;\n  },\n  parse: function (value, fmt) {\n    if (value === null || typeof value === 'undefined') {\n      return null;\n    }\n    const type = typeof value;\n    if (type === 'number' || value instanceof Date) {\n      value = (0,date_fns__WEBPACK_IMPORTED_MODULE_39__.toDate)(value);\n    } else if (type === 'string') {\n      if (typeof fmt === 'string') {\n        value = (0,date_fns__WEBPACK_IMPORTED_MODULE_29__.parse)(value, fmt, new Date(), this.options);\n      } else {\n        value = (0,date_fns__WEBPACK_IMPORTED_MODULE_30__.parseISO)(value, this.options);\n      }\n    }\n    return (0,date_fns__WEBPACK_IMPORTED_MODULE_28__.isValid)(value) ? value.getTime() : null;\n  },\n  format: function (time, fmt) {\n    return (0,date_fns__WEBPACK_IMPORTED_MODULE_27__.format)(time, fmt, this.options);\n  },\n  add: function (time, amount, unit) {\n    switch (unit) {\n      case 'millisecond':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_3__.addMilliseconds)(time, amount);\n      case 'second':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_7__.addSeconds)(time, amount);\n      case 'minute':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_4__.addMinutes)(time, amount);\n      case 'hour':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_2__.addHours)(time, amount);\n      case 'day':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_1__.addDays)(time, amount);\n      case 'week':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_8__.addWeeks)(time, amount);\n      case 'month':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_5__.addMonths)(time, amount);\n      case 'quarter':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_6__.addQuarters)(time, amount);\n      case 'year':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_9__.addYears)(time, amount);\n      default:\n        return time;\n    }\n  },\n  diff: function (max, min, unit) {\n    switch (unit) {\n      case 'millisecond':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_12__.differenceInMilliseconds)(max, min);\n      case 'second':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_16__.differenceInSeconds)(max, min);\n      case 'minute':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_13__.differenceInMinutes)(max, min);\n      case 'hour':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_11__.differenceInHours)(max, min);\n      case 'day':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_10__.differenceInDays)(max, min);\n      case 'week':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_17__.differenceInWeeks)(max, min);\n      case 'month':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_14__.differenceInMonths)(max, min);\n      case 'quarter':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_15__.differenceInQuarters)(max, min);\n      case 'year':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_18__.differenceInYears)(max, min);\n      default:\n        return 0;\n    }\n  },\n  startOf: function (time, unit, weekday) {\n    switch (unit) {\n      case 'second':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_36__.startOfSecond)(time);\n      case 'minute':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_33__.startOfMinute)(time);\n      case 'hour':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_32__.startOfHour)(time);\n      case 'day':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_31__.startOfDay)(time);\n      case 'week':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_37__.startOfWeek)(time);\n      case 'isoWeek':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_37__.startOfWeek)(time, {\n          weekStartsOn: +weekday\n        });\n      case 'month':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_34__.startOfMonth)(time);\n      case 'quarter':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_35__.startOfQuarter)(time);\n      case 'year':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_38__.startOfYear)(time);\n      default:\n        return time;\n    }\n  },\n  endOf: function (time, unit) {\n    switch (unit) {\n      case 'second':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_24__.endOfSecond)(time);\n      case 'minute':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_21__.endOfMinute)(time);\n      case 'hour':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_20__.endOfHour)(time);\n      case 'day':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_19__.endOfDay)(time);\n      case 'week':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_25__.endOfWeek)(time);\n      case 'month':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_22__.endOfMonth)(time);\n      case 'quarter':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_23__.endOfQuarter)(time);\n      case 'year':\n        return (0,date_fns__WEBPACK_IMPORTED_MODULE_26__.endOfYear)(time);\n      default:\n        return time;\n    }\n  }\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/chartjs-adapter-date-fns/dist/chartjs-adapter-date-fns.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/_lib/addLeadingZeros.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/_lib/addLeadingZeros.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   addLeadingZeros: () => (/* binding */ addLeadingZeros)\n/* harmony export */ });\nfunction addLeadingZeros(number, targetLength) {\n  const sign = number < 0 ? \"-\" : \"\";\n  const output = Math.abs(number).toString().padStart(targetLength, \"0\");\n  return sign + output;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/_lib/addLeadingZeros.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/_lib/defaultOptions.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/_lib/defaultOptions.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   getDefaultOptions: () => (/* binding */ getDefaultOptions),\n/* harmony export */   setDefaultOptions: () => (/* binding */ setDefaultOptions)\n/* harmony export */ });\nlet defaultOptions = {};\nfunction getDefaultOptions() {\n  return defaultOptions;\n}\nfunction setDefaultOptions(newOptions) {\n  defaultOptions = newOptions;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/_lib/defaultOptions.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/_lib/format/formatters.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/_lib/format/formatters.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   formatters: () => (/* binding */ formatters)\n/* harmony export */ });\n/* harmony import */ var _getDayOfYear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../getDayOfYear.js */ \"../react-ui/node_modules/date-fns/getDayOfYear.js\");\n/* harmony import */ var _getISOWeek_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../getISOWeek.js */ \"../react-ui/node_modules/date-fns/getISOWeek.js\");\n/* harmony import */ var _getISOWeekYear_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../getISOWeekYear.js */ \"../react-ui/node_modules/date-fns/getISOWeekYear.js\");\n/* harmony import */ var _getWeek_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../getWeek.js */ \"../react-ui/node_modules/date-fns/getWeek.js\");\n/* harmony import */ var _getWeekYear_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../getWeekYear.js */ \"../react-ui/node_modules/date-fns/getWeekYear.js\");\n/* harmony import */ var _addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../addLeadingZeros.js */ \"../react-ui/node_modules/date-fns/_lib/addLeadingZeros.js\");\n/* harmony import */ var _lightFormatters_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lightFormatters.js */ \"../react-ui/node_modules/date-fns/_lib/format/lightFormatters.js\");\n\n\n\n\n\n\n\nconst dayPeriodEnum = {\n  am: \"am\",\n  pm: \"pm\",\n  midnight: \"midnight\",\n  noon: \"noon\",\n  morning: \"morning\",\n  afternoon: \"afternoon\",\n  evening: \"evening\",\n  night: \"night\"\n};\n\n/*\n * |     | Unit                           |     | Unit                           |\n * |-----|--------------------------------|-----|--------------------------------|\n * |  a  | AM, PM                         |  A* | Milliseconds in day            |\n * |  b  | AM, PM, noon, midnight         |  B  | Flexible day period            |\n * |  c  | Stand-alone local day of week  |  C* | Localized hour w/ day period   |\n * |  d  | Day of month                   |  D  | Day of year                    |\n * |  e  | Local day of week              |  E  | Day of week                    |\n * |  f  |                                |  F* | Day of week in month           |\n * |  g* | Modified Julian day            |  G  | Era                            |\n * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |\n * |  i! | ISO day of week                |  I! | ISO week of year               |\n * |  j* | Localized hour w/ day period   |  J* | Localized hour w/o day period  |\n * |  k  | Hour [1-24]                    |  K  | Hour [0-11]                    |\n * |  l* | (deprecated)                   |  L  | Stand-alone month              |\n * |  m  | Minute                         |  M  | Month                          |\n * |  n  |                                |  N  |                                |\n * |  o! | Ordinal number modifier        |  O  | Timezone (GMT)                 |\n * |  p! | Long localized time            |  P! | Long localized date            |\n * |  q  | Stand-alone quarter            |  Q  | Quarter                        |\n * |  r* | Related Gregorian year         |  R! | ISO week-numbering year        |\n * |  s  | Second                         |  S  | Fraction of second             |\n * |  t! | Seconds timestamp              |  T! | Milliseconds timestamp         |\n * |  u  | Extended year                  |  U* | Cyclic year                    |\n * |  v* | Timezone (generic non-locat.)  |  V* | Timezone (location)            |\n * |  w  | Local week of year             |  W* | Week of month                  |\n * |  x  | Timezone (ISO-8601 w/o Z)      |  X  | Timezone (ISO-8601)            |\n * |  y  | Year (abs)                     |  Y  | Local week-numbering year      |\n * |  z  | Timezone (specific non-locat.) |  Z* | Timezone (aliases)             |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n *   i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n *   `R` is supposed to be used in conjunction with `I` and `i`\n *   for universal ISO week-numbering date, whereas\n *   `Y` is supposed to be used in conjunction with `w` and `e`\n *   for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nconst formatters = {\n  // Era\n  G: function (date, token, localize) {\n    const era = date.getFullYear() > 0 ? 1 : 0;\n    switch (token) {\n      // AD, BC\n      case \"G\":\n      case \"GG\":\n      case \"GGG\":\n        return localize.era(era, {\n          width: \"abbreviated\"\n        });\n      // A, B\n      case \"GGGGG\":\n        return localize.era(era, {\n          width: \"narrow\"\n        });\n      // Anno Domini, Before Christ\n      case \"GGGG\":\n      default:\n        return localize.era(era, {\n          width: \"wide\"\n        });\n    }\n  },\n  // Year\n  y: function (date, token, localize) {\n    // Ordinal number\n    if (token === \"yo\") {\n      const signedYear = date.getFullYear();\n      // Returns 1 for 1 BC (which is year 0 in JavaScript)\n      const year = signedYear > 0 ? signedYear : 1 - signedYear;\n      return localize.ordinalNumber(year, {\n        unit: \"year\"\n      });\n    }\n    return _lightFormatters_js__WEBPACK_IMPORTED_MODULE_6__.lightFormatters.y(date, token);\n  },\n  // Local week-numbering year\n  Y: function (date, token, localize, options) {\n    const signedWeekYear = (0,_getWeekYear_js__WEBPACK_IMPORTED_MODULE_4__.getWeekYear)(date, options);\n    // Returns 1 for 1 BC (which is year 0 in JavaScript)\n    const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n    // Two digit year\n    if (token === \"YY\") {\n      const twoDigitYear = weekYear % 100;\n      return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(twoDigitYear, 2);\n    }\n\n    // Ordinal number\n    if (token === \"Yo\") {\n      return localize.ordinalNumber(weekYear, {\n        unit: \"year\"\n      });\n    }\n\n    // Padding\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(weekYear, token.length);\n  },\n  // ISO week-numbering year\n  R: function (date, token) {\n    const isoWeekYear = (0,_getISOWeekYear_js__WEBPACK_IMPORTED_MODULE_2__.getISOWeekYear)(date);\n\n    // Padding\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(isoWeekYear, token.length);\n  },\n  // Extended year. This is a single number designating the year of this calendar system.\n  // The main difference between `y` and `u` localizers are B.C. years:\n  // | Year | `y` | `u` |\n  // |------|-----|-----|\n  // | AC 1 |   1 |   1 |\n  // | BC 1 |   1 |   0 |\n  // | BC 2 |   2 |  -1 |\n  // Also `yy` always returns the last two digits of a year,\n  // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n  u: function (date, token) {\n    const year = date.getFullYear();\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(year, token.length);\n  },\n  // Quarter\n  Q: function (date, token, localize) {\n    const quarter = Math.ceil((date.getMonth() + 1) / 3);\n    switch (token) {\n      // 1, 2, 3, 4\n      case \"Q\":\n        return String(quarter);\n      // 01, 02, 03, 04\n      case \"QQ\":\n        return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(quarter, 2);\n      // 1st, 2nd, 3rd, 4th\n      case \"Qo\":\n        return localize.ordinalNumber(quarter, {\n          unit: \"quarter\"\n        });\n      // Q1, Q2, Q3, Q4\n      case \"QQQ\":\n        return localize.quarter(quarter, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        });\n      // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n      case \"QQQQQ\":\n        return localize.quarter(quarter, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      // 1st quarter, 2nd quarter, ...\n      case \"QQQQ\":\n      default:\n        return localize.quarter(quarter, {\n          width: \"wide\",\n          context: \"formatting\"\n        });\n    }\n  },\n  // Stand-alone quarter\n  q: function (date, token, localize) {\n    const quarter = Math.ceil((date.getMonth() + 1) / 3);\n    switch (token) {\n      // 1, 2, 3, 4\n      case \"q\":\n        return String(quarter);\n      // 01, 02, 03, 04\n      case \"qq\":\n        return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(quarter, 2);\n      // 1st, 2nd, 3rd, 4th\n      case \"qo\":\n        return localize.ordinalNumber(quarter, {\n          unit: \"quarter\"\n        });\n      // Q1, Q2, Q3, Q4\n      case \"qqq\":\n        return localize.quarter(quarter, {\n          width: \"abbreviated\",\n          context: \"standalone\"\n        });\n      // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n      case \"qqqqq\":\n        return localize.quarter(quarter, {\n          width: \"narrow\",\n          context: \"standalone\"\n        });\n      // 1st quarter, 2nd quarter, ...\n      case \"qqqq\":\n      default:\n        return localize.quarter(quarter, {\n          width: \"wide\",\n          context: \"standalone\"\n        });\n    }\n  },\n  // Month\n  M: function (date, token, localize) {\n    const month = date.getMonth();\n    switch (token) {\n      case \"M\":\n      case \"MM\":\n        return _lightFormatters_js__WEBPACK_IMPORTED_MODULE_6__.lightFormatters.M(date, token);\n      // 1st, 2nd, ..., 12th\n      case \"Mo\":\n        return localize.ordinalNumber(month + 1, {\n          unit: \"month\"\n        });\n      // Jan, Feb, ..., Dec\n      case \"MMM\":\n        return localize.month(month, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        });\n      // J, F, ..., D\n      case \"MMMMM\":\n        return localize.month(month, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      // January, February, ..., December\n      case \"MMMM\":\n      default:\n        return localize.month(month, {\n          width: \"wide\",\n          context: \"formatting\"\n        });\n    }\n  },\n  // Stand-alone month\n  L: function (date, token, localize) {\n    const month = date.getMonth();\n    switch (token) {\n      // 1, 2, ..., 12\n      case \"L\":\n        return String(month + 1);\n      // 01, 02, ..., 12\n      case \"LL\":\n        return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(month + 1, 2);\n      // 1st, 2nd, ..., 12th\n      case \"Lo\":\n        return localize.ordinalNumber(month + 1, {\n          unit: \"month\"\n        });\n      // Jan, Feb, ..., Dec\n      case \"LLL\":\n        return localize.month(month, {\n          width: \"abbreviated\",\n          context: \"standalone\"\n        });\n      // J, F, ..., D\n      case \"LLLLL\":\n        return localize.month(month, {\n          width: \"narrow\",\n          context: \"standalone\"\n        });\n      // January, February, ..., December\n      case \"LLLL\":\n      default:\n        return localize.month(month, {\n          width: \"wide\",\n          context: \"standalone\"\n        });\n    }\n  },\n  // Local week of year\n  w: function (date, token, localize, options) {\n    const week = (0,_getWeek_js__WEBPACK_IMPORTED_MODULE_3__.getWeek)(date, options);\n    if (token === \"wo\") {\n      return localize.ordinalNumber(week, {\n        unit: \"week\"\n      });\n    }\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(week, token.length);\n  },\n  // ISO week of year\n  I: function (date, token, localize) {\n    const isoWeek = (0,_getISOWeek_js__WEBPACK_IMPORTED_MODULE_1__.getISOWeek)(date);\n    if (token === \"Io\") {\n      return localize.ordinalNumber(isoWeek, {\n        unit: \"week\"\n      });\n    }\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(isoWeek, token.length);\n  },\n  // Day of the month\n  d: function (date, token, localize) {\n    if (token === \"do\") {\n      return localize.ordinalNumber(date.getDate(), {\n        unit: \"date\"\n      });\n    }\n    return _lightFormatters_js__WEBPACK_IMPORTED_MODULE_6__.lightFormatters.d(date, token);\n  },\n  // Day of year\n  D: function (date, token, localize) {\n    const dayOfYear = (0,_getDayOfYear_js__WEBPACK_IMPORTED_MODULE_0__.getDayOfYear)(date);\n    if (token === \"Do\") {\n      return localize.ordinalNumber(dayOfYear, {\n        unit: \"dayOfYear\"\n      });\n    }\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(dayOfYear, token.length);\n  },\n  // Day of week\n  E: function (date, token, localize) {\n    const dayOfWeek = date.getDay();\n    switch (token) {\n      // Tue\n      case \"E\":\n      case \"EE\":\n      case \"EEE\":\n        return localize.day(dayOfWeek, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        });\n      // T\n      case \"EEEEE\":\n        return localize.day(dayOfWeek, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      // Tu\n      case \"EEEEEE\":\n        return localize.day(dayOfWeek, {\n          width: \"short\",\n          context: \"formatting\"\n        });\n      // Tuesday\n      case \"EEEE\":\n      default:\n        return localize.day(dayOfWeek, {\n          width: \"wide\",\n          context: \"formatting\"\n        });\n    }\n  },\n  // Local day of week\n  e: function (date, token, localize, options) {\n    const dayOfWeek = date.getDay();\n    const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n    switch (token) {\n      // Numerical value (Nth day of week with current locale or weekStartsOn)\n      case \"e\":\n        return String(localDayOfWeek);\n      // Padded numerical value\n      case \"ee\":\n        return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(localDayOfWeek, 2);\n      // 1st, 2nd, ..., 7th\n      case \"eo\":\n        return localize.ordinalNumber(localDayOfWeek, {\n          unit: \"day\"\n        });\n      case \"eee\":\n        return localize.day(dayOfWeek, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        });\n      // T\n      case \"eeeee\":\n        return localize.day(dayOfWeek, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      // Tu\n      case \"eeeeee\":\n        return localize.day(dayOfWeek, {\n          width: \"short\",\n          context: \"formatting\"\n        });\n      // Tuesday\n      case \"eeee\":\n      default:\n        return localize.day(dayOfWeek, {\n          width: \"wide\",\n          context: \"formatting\"\n        });\n    }\n  },\n  // Stand-alone local day of week\n  c: function (date, token, localize, options) {\n    const dayOfWeek = date.getDay();\n    const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n    switch (token) {\n      // Numerical value (same as in `e`)\n      case \"c\":\n        return String(localDayOfWeek);\n      // Padded numerical value\n      case \"cc\":\n        return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(localDayOfWeek, token.length);\n      // 1st, 2nd, ..., 7th\n      case \"co\":\n        return localize.ordinalNumber(localDayOfWeek, {\n          unit: \"day\"\n        });\n      case \"ccc\":\n        return localize.day(dayOfWeek, {\n          width: \"abbreviated\",\n          context: \"standalone\"\n        });\n      // T\n      case \"ccccc\":\n        return localize.day(dayOfWeek, {\n          width: \"narrow\",\n          context: \"standalone\"\n        });\n      // Tu\n      case \"cccccc\":\n        return localize.day(dayOfWeek, {\n          width: \"short\",\n          context: \"standalone\"\n        });\n      // Tuesday\n      case \"cccc\":\n      default:\n        return localize.day(dayOfWeek, {\n          width: \"wide\",\n          context: \"standalone\"\n        });\n    }\n  },\n  // ISO day of week\n  i: function (date, token, localize) {\n    const dayOfWeek = date.getDay();\n    const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n    switch (token) {\n      // 2\n      case \"i\":\n        return String(isoDayOfWeek);\n      // 02\n      case \"ii\":\n        return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(isoDayOfWeek, token.length);\n      // 2nd\n      case \"io\":\n        return localize.ordinalNumber(isoDayOfWeek, {\n          unit: \"day\"\n        });\n      // Tue\n      case \"iii\":\n        return localize.day(dayOfWeek, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        });\n      // T\n      case \"iiiii\":\n        return localize.day(dayOfWeek, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      // Tu\n      case \"iiiiii\":\n        return localize.day(dayOfWeek, {\n          width: \"short\",\n          context: \"formatting\"\n        });\n      // Tuesday\n      case \"iiii\":\n      default:\n        return localize.day(dayOfWeek, {\n          width: \"wide\",\n          context: \"formatting\"\n        });\n    }\n  },\n  // AM or PM\n  a: function (date, token, localize) {\n    const hours = date.getHours();\n    const dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n    switch (token) {\n      case \"a\":\n      case \"aa\":\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        });\n      case \"aaa\":\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }).toLowerCase();\n      case \"aaaaa\":\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      case \"aaaa\":\n      default:\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: \"wide\",\n          context: \"formatting\"\n        });\n    }\n  },\n  // AM, PM, midnight, noon\n  b: function (date, token, localize) {\n    const hours = date.getHours();\n    let dayPeriodEnumValue;\n    if (hours === 12) {\n      dayPeriodEnumValue = dayPeriodEnum.noon;\n    } else if (hours === 0) {\n      dayPeriodEnumValue = dayPeriodEnum.midnight;\n    } else {\n      dayPeriodEnumValue = hours / 12 >= 1 ? \"pm\" : \"am\";\n    }\n    switch (token) {\n      case \"b\":\n      case \"bb\":\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        });\n      case \"bbb\":\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }).toLowerCase();\n      case \"bbbbb\":\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      case \"bbbb\":\n      default:\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: \"wide\",\n          context: \"formatting\"\n        });\n    }\n  },\n  // in the morning, in the afternoon, in the evening, at night\n  B: function (date, token, localize) {\n    const hours = date.getHours();\n    let dayPeriodEnumValue;\n    if (hours >= 17) {\n      dayPeriodEnumValue = dayPeriodEnum.evening;\n    } else if (hours >= 12) {\n      dayPeriodEnumValue = dayPeriodEnum.afternoon;\n    } else if (hours >= 4) {\n      dayPeriodEnumValue = dayPeriodEnum.morning;\n    } else {\n      dayPeriodEnumValue = dayPeriodEnum.night;\n    }\n    switch (token) {\n      case \"B\":\n      case \"BB\":\n      case \"BBB\":\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        });\n      case \"BBBBB\":\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      case \"BBBB\":\n      default:\n        return localize.dayPeriod(dayPeriodEnumValue, {\n          width: \"wide\",\n          context: \"formatting\"\n        });\n    }\n  },\n  // Hour [1-12]\n  h: function (date, token, localize) {\n    if (token === \"ho\") {\n      let hours = date.getHours() % 12;\n      if (hours === 0) hours = 12;\n      return localize.ordinalNumber(hours, {\n        unit: \"hour\"\n      });\n    }\n    return _lightFormatters_js__WEBPACK_IMPORTED_MODULE_6__.lightFormatters.h(date, token);\n  },\n  // Hour [0-23]\n  H: function (date, token, localize) {\n    if (token === \"Ho\") {\n      return localize.ordinalNumber(date.getHours(), {\n        unit: \"hour\"\n      });\n    }\n    return _lightFormatters_js__WEBPACK_IMPORTED_MODULE_6__.lightFormatters.H(date, token);\n  },\n  // Hour [0-11]\n  K: function (date, token, localize) {\n    const hours = date.getHours() % 12;\n    if (token === \"Ko\") {\n      return localize.ordinalNumber(hours, {\n        unit: \"hour\"\n      });\n    }\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(hours, token.length);\n  },\n  // Hour [1-24]\n  k: function (date, token, localize) {\n    let hours = date.getHours();\n    if (hours === 0) hours = 24;\n    if (token === \"ko\") {\n      return localize.ordinalNumber(hours, {\n        unit: \"hour\"\n      });\n    }\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(hours, token.length);\n  },\n  // Minute\n  m: function (date, token, localize) {\n    if (token === \"mo\") {\n      return localize.ordinalNumber(date.getMinutes(), {\n        unit: \"minute\"\n      });\n    }\n    return _lightFormatters_js__WEBPACK_IMPORTED_MODULE_6__.lightFormatters.m(date, token);\n  },\n  // Second\n  s: function (date, token, localize) {\n    if (token === \"so\") {\n      return localize.ordinalNumber(date.getSeconds(), {\n        unit: \"second\"\n      });\n    }\n    return _lightFormatters_js__WEBPACK_IMPORTED_MODULE_6__.lightFormatters.s(date, token);\n  },\n  // Fraction of second\n  S: function (date, token) {\n    return _lightFormatters_js__WEBPACK_IMPORTED_MODULE_6__.lightFormatters.S(date, token);\n  },\n  // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n  X: function (date, token, _localize) {\n    const timezoneOffset = date.getTimezoneOffset();\n    if (timezoneOffset === 0) {\n      return \"Z\";\n    }\n    switch (token) {\n      // Hours and optional minutes\n      case \"X\":\n        return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n      // Hours, minutes and optional seconds without `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `XX`\n      case \"XXXX\":\n      case \"XX\":\n        // Hours and minutes without `:` delimiter\n        return formatTimezone(timezoneOffset);\n\n      // Hours, minutes and optional seconds with `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `XXX`\n      case \"XXXXX\":\n      case \"XXX\": // Hours and minutes with `:` delimiter\n      default:\n        return formatTimezone(timezoneOffset, \":\");\n    }\n  },\n  // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n  x: function (date, token, _localize) {\n    const timezoneOffset = date.getTimezoneOffset();\n    switch (token) {\n      // Hours and optional minutes\n      case \"x\":\n        return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n      // Hours, minutes and optional seconds without `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `xx`\n      case \"xxxx\":\n      case \"xx\":\n        // Hours and minutes without `:` delimiter\n        return formatTimezone(timezoneOffset);\n\n      // Hours, minutes and optional seconds with `:` delimiter\n      // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n      // so this token always has the same output as `xxx`\n      case \"xxxxx\":\n      case \"xxx\": // Hours and minutes with `:` delimiter\n      default:\n        return formatTimezone(timezoneOffset, \":\");\n    }\n  },\n  // Timezone (GMT)\n  O: function (date, token, _localize) {\n    const timezoneOffset = date.getTimezoneOffset();\n    switch (token) {\n      // Short\n      case \"O\":\n      case \"OO\":\n      case \"OOO\":\n        return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n      // Long\n      case \"OOOO\":\n      default:\n        return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n    }\n  },\n  // Timezone (specific non-location)\n  z: function (date, token, _localize) {\n    const timezoneOffset = date.getTimezoneOffset();\n    switch (token) {\n      // Short\n      case \"z\":\n      case \"zz\":\n      case \"zzz\":\n        return \"GMT\" + formatTimezoneShort(timezoneOffset, \":\");\n      // Long\n      case \"zzzz\":\n      default:\n        return \"GMT\" + formatTimezone(timezoneOffset, \":\");\n    }\n  },\n  // Seconds timestamp\n  t: function (date, token, _localize) {\n    const timestamp = Math.trunc(+date / 1000);\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(timestamp, token.length);\n  },\n  // Milliseconds timestamp\n  T: function (date, token, _localize) {\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(+date, token.length);\n  }\n};\nfunction formatTimezoneShort(offset, delimiter = \"\") {\n  const sign = offset > 0 ? \"-\" : \"+\";\n  const absOffset = Math.abs(offset);\n  const hours = Math.trunc(absOffset / 60);\n  const minutes = absOffset % 60;\n  if (minutes === 0) {\n    return sign + String(hours);\n  }\n  return sign + String(hours) + delimiter + (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, delimiter) {\n  if (offset % 60 === 0) {\n    const sign = offset > 0 ? \"-\" : \"+\";\n    return sign + (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(Math.abs(offset) / 60, 2);\n  }\n  return formatTimezone(offset, delimiter);\n}\nfunction formatTimezone(offset, delimiter = \"\") {\n  const sign = offset > 0 ? \"-\" : \"+\";\n  const absOffset = Math.abs(offset);\n  const hours = (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(Math.trunc(absOffset / 60), 2);\n  const minutes = (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_5__.addLeadingZeros)(absOffset % 60, 2);\n  return sign + hours + delimiter + minutes;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/_lib/format/formatters.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/_lib/format/lightFormatters.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/_lib/format/lightFormatters.js ***!
  \************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   lightFormatters: () => (/* binding */ lightFormatters)\n/* harmony export */ });\n/* harmony import */ var _addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../addLeadingZeros.js */ \"../react-ui/node_modules/date-fns/_lib/addLeadingZeros.js\");\n\n\n/*\n * |     | Unit                           |     | Unit                           |\n * |-----|--------------------------------|-----|--------------------------------|\n * |  a  | AM, PM                         |  A* |                                |\n * |  d  | Day of month                   |  D  |                                |\n * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |\n * |  m  | Minute                         |  M  | Month                          |\n * |  s  | Second                         |  S  | Fraction of second             |\n * |  y  | Year (abs)                     |  Y  |                                |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nconst lightFormatters = {\n  // Year\n  y(date, token) {\n    // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n    // | Year     |     y | yy |   yyy |  yyyy | yyyyy |\n    // |----------|-------|----|-------|-------|-------|\n    // | AD 1     |     1 | 01 |   001 |  0001 | 00001 |\n    // | AD 12    |    12 | 12 |   012 |  0012 | 00012 |\n    // | AD 123   |   123 | 23 |   123 |  0123 | 00123 |\n    // | AD 1234  |  1234 | 34 |  1234 |  1234 | 01234 |\n    // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n    const signedYear = date.getFullYear();\n    // Returns 1 for 1 BC (which is year 0 in JavaScript)\n    const year = signedYear > 0 ? signedYear : 1 - signedYear;\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_0__.addLeadingZeros)(token === \"yy\" ? year % 100 : year, token.length);\n  },\n  // Month\n  M(date, token) {\n    const month = date.getMonth();\n    return token === \"M\" ? String(month + 1) : (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_0__.addLeadingZeros)(month + 1, 2);\n  },\n  // Day of the month\n  d(date, token) {\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_0__.addLeadingZeros)(date.getDate(), token.length);\n  },\n  // AM or PM\n  a(date, token) {\n    const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? \"pm\" : \"am\";\n    switch (token) {\n      case \"a\":\n      case \"aa\":\n        return dayPeriodEnumValue.toUpperCase();\n      case \"aaa\":\n        return dayPeriodEnumValue;\n      case \"aaaaa\":\n        return dayPeriodEnumValue[0];\n      case \"aaaa\":\n      default:\n        return dayPeriodEnumValue === \"am\" ? \"a.m.\" : \"p.m.\";\n    }\n  },\n  // Hour [1-12]\n  h(date, token) {\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_0__.addLeadingZeros)(date.getHours() % 12 || 12, token.length);\n  },\n  // Hour [0-23]\n  H(date, token) {\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_0__.addLeadingZeros)(date.getHours(), token.length);\n  },\n  // Minute\n  m(date, token) {\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_0__.addLeadingZeros)(date.getMinutes(), token.length);\n  },\n  // Second\n  s(date, token) {\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_0__.addLeadingZeros)(date.getSeconds(), token.length);\n  },\n  // Fraction of second\n  S(date, token) {\n    const numberOfDigits = token.length;\n    const milliseconds = date.getMilliseconds();\n    const fractionalSeconds = Math.trunc(milliseconds * Math.pow(10, numberOfDigits - 3));\n    return (0,_addLeadingZeros_js__WEBPACK_IMPORTED_MODULE_0__.addLeadingZeros)(fractionalSeconds, token.length);\n  }\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/_lib/format/lightFormatters.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/_lib/format/longFormatters.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/_lib/format/longFormatters.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   longFormatters: () => (/* binding */ longFormatters)\n/* harmony export */ });\nconst dateLongFormatter = (pattern, formatLong) => {\n  switch (pattern) {\n    case \"P\":\n      return formatLong.date({\n        width: \"short\"\n      });\n    case \"PP\":\n      return formatLong.date({\n        width: \"medium\"\n      });\n    case \"PPP\":\n      return formatLong.date({\n        width: \"long\"\n      });\n    case \"PPPP\":\n    default:\n      return formatLong.date({\n        width: \"full\"\n      });\n  }\n};\nconst timeLongFormatter = (pattern, formatLong) => {\n  switch (pattern) {\n    case \"p\":\n      return formatLong.time({\n        width: \"short\"\n      });\n    case \"pp\":\n      return formatLong.time({\n        width: \"medium\"\n      });\n    case \"ppp\":\n      return formatLong.time({\n        width: \"long\"\n      });\n    case \"pppp\":\n    default:\n      return formatLong.time({\n        width: \"full\"\n      });\n  }\n};\nconst dateTimeLongFormatter = (pattern, formatLong) => {\n  const matchResult = pattern.match(/(P+)(p+)?/) || [];\n  const datePattern = matchResult[1];\n  const timePattern = matchResult[2];\n  if (!timePattern) {\n    return dateLongFormatter(pattern, formatLong);\n  }\n  let dateTimeFormat;\n  switch (datePattern) {\n    case \"P\":\n      dateTimeFormat = formatLong.dateTime({\n        width: \"short\"\n      });\n      break;\n    case \"PP\":\n      dateTimeFormat = formatLong.dateTime({\n        width: \"medium\"\n      });\n      break;\n    case \"PPP\":\n      dateTimeFormat = formatLong.dateTime({\n        width: \"long\"\n      });\n      break;\n    case \"PPPP\":\n    default:\n      dateTimeFormat = formatLong.dateTime({\n        width: \"full\"\n      });\n      break;\n  }\n  return dateTimeFormat.replace(\"{{date}}\", dateLongFormatter(datePattern, formatLong)).replace(\"{{time}}\", timeLongFormatter(timePattern, formatLong));\n};\nconst longFormatters = {\n  p: timeLongFormatter,\n  P: dateTimeLongFormatter\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/_lib/format/longFormatters.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/_lib/getRoundingMethod.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/_lib/getRoundingMethod.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   getRoundingMethod: () => (/* binding */ getRoundingMethod)\n/* harmony export */ });\nfunction getRoundingMethod(method) {\n  return number => {\n    const round = method ? Math[method] : Math.trunc;\n    const result = round(number);\n    // Prevent negative zero\n    return result === 0 ? 0 : result;\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/_lib/getRoundingMethod.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js":
/*!*********************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   getTimezoneOffsetInMilliseconds: () => (/* binding */ getTimezoneOffsetInMilliseconds)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nfunction getTimezoneOffsetInMilliseconds(date) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date);\n  const utcDate = new Date(Date.UTC(_date.getFullYear(), _date.getMonth(), _date.getDate(), _date.getHours(), _date.getMinutes(), _date.getSeconds(), _date.getMilliseconds()));\n  utcDate.setUTCFullYear(_date.getFullYear());\n  return +date - +utcDate;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/_lib/normalizeDates.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/_lib/normalizeDates.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   normalizeDates: () => (/* binding */ normalizeDates)\n/* harmony export */ });\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n\nfunction normalizeDates(context, ...dates) {\n  const normalize = _constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom.bind(null, context || dates.find(date => typeof date === \"object\"));\n  return dates.map(normalize);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/_lib/normalizeDates.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/_lib/protectedTokens.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/_lib/protectedTokens.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   isProtectedDayOfYearToken: () => (/* binding */ isProtectedDayOfYearToken),\n/* harmony export */   isProtectedWeekYearToken: () => (/* binding */ isProtectedWeekYearToken),\n/* harmony export */   warnOrThrowProtectedError: () => (/* binding */ warnOrThrowProtectedError)\n/* harmony export */ });\nconst dayOfYearTokenRE = /^D+$/;\nconst weekYearTokenRE = /^Y+$/;\nconst throwTokens = [\"D\", \"DD\", \"YY\", \"YYYY\"];\nfunction isProtectedDayOfYearToken(token) {\n  return dayOfYearTokenRE.test(token);\n}\nfunction isProtectedWeekYearToken(token) {\n  return weekYearTokenRE.test(token);\n}\nfunction warnOrThrowProtectedError(token, format, input) {\n  const _message = message(token, format, input);\n  console.warn(_message);\n  if (throwTokens.includes(token)) throw new RangeError(_message);\n}\nfunction message(token, format, input) {\n  const subject = token[0] === \"Y\" ? \"years\" : \"days of the month\";\n  return `Use \\`${token.toLowerCase()}\\` instead of \\`${token}\\` (in \\`${format}\\`) for formatting ${subject} to the input \\`${input}\\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/_lib/protectedTokens.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/addDays.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/date-fns/addDays.js ***!
  \****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   addDays: () => (/* binding */ addDays),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n/**\n * The {@link addDays} function options.\n */\n\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be added.\n * @param options - An object with options\n *\n * @returns The new date with the days added\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nfunction addDays(date, amount, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_1__.toDate)(date, options?.in);\n  if (isNaN(amount)) return (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(options?.in || date, NaN);\n\n  // If 0 days, no-op to avoid changing times in the hour before end of DST\n  if (!amount) return _date;\n  _date.setDate(_date.getDate() + amount);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addDays);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/addDays.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/addHours.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/date-fns/addHours.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   addHours: () => (/* binding */ addHours),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _addMilliseconds_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addMilliseconds.js */ \"../react-ui/node_modules/date-fns/addMilliseconds.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants.js */ \"../react-ui/node_modules/date-fns/constants.js\");\n\n\n\n/**\n * The {@link addHours} function options.\n */\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of hours to be added\n * @param options - An object with options\n *\n * @returns The new date with the hours added\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nfunction addHours(date, amount, options) {\n  return (0,_addMilliseconds_js__WEBPACK_IMPORTED_MODULE_0__.addMilliseconds)(date, amount * _constants_js__WEBPACK_IMPORTED_MODULE_1__.millisecondsInHour, options);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addHours);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/addHours.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/addMilliseconds.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/addMilliseconds.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   addMilliseconds: () => (/* binding */ addMilliseconds),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n/**\n * The {@link addMilliseconds} function options.\n */\n\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of milliseconds to be added.\n * @param options - The options object\n *\n * @returns The new date with the milliseconds added\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nfunction addMilliseconds(date, amount, options) {\n  return (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(options?.in || date, +(0,_toDate_js__WEBPACK_IMPORTED_MODULE_1__.toDate)(date) + amount);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addMilliseconds);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/addMilliseconds.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/addMinutes.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/addMinutes.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   addMinutes: () => (/* binding */ addMinutes),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants.js */ \"../react-ui/node_modules/date-fns/constants.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n/**\n * The {@link addMinutes} function options.\n */\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of minutes to be added.\n * @param options - An object with options\n *\n * @returns The new date with the minutes added\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nfunction addMinutes(date, amount, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_1__.toDate)(date, options?.in);\n  _date.setTime(_date.getTime() + amount * _constants_js__WEBPACK_IMPORTED_MODULE_0__.millisecondsInMinute);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addMinutes);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/addMinutes.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/addMonths.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/addMonths.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   addMonths: () => (/* binding */ addMonths),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n/**\n * The {@link addMonths} function options.\n */\n\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be added.\n * @param options - The options object\n *\n * @returns The new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n *\n * // Add one month to 30 January 2023:\n * const result = addMonths(new Date(2023, 0, 30), 1)\n * //=> Tue Feb 28 2023 00:00:00\n */\nfunction addMonths(date, amount, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_1__.toDate)(date, options?.in);\n  if (isNaN(amount)) return (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(options?.in || date, NaN);\n  if (!amount) {\n    // If 0 months, no-op to avoid changing times in the hour before end of DST\n    return _date;\n  }\n  const dayOfMonth = _date.getDate();\n\n  // The JS Date object supports date math by accepting out-of-bounds values for\n  // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n  // new Date(2020, 13, 1) returns 1 Feb 2021.  This is *almost* the behavior we\n  // want except that dates will wrap around the end of a month, meaning that\n  // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n  // we'll default to the end of the desired month by adding 1 to the desired\n  // month and using a date of 0 to back up one day to the end of the desired\n  // month.\n  const endOfDesiredMonth = (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(options?.in || date, _date.getTime());\n  endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);\n  const daysInMonth = endOfDesiredMonth.getDate();\n  if (dayOfMonth >= daysInMonth) {\n    // If we're already at the end of the month, then this is the correct date\n    // and we're done.\n    return endOfDesiredMonth;\n  } else {\n    // Otherwise, we now know that setting the original day-of-month value won't\n    // cause an overflow, so set the desired day-of-month. Note that we can't\n    // just set the date of `endOfDesiredMonth` because that object may have had\n    // its time changed in the unusual case where where a DST transition was on\n    // the last day of the month and its local time was in the hour skipped or\n    // repeated next to a DST transition.  So we use `date` instead which is\n    // guaranteed to still have the original time.\n    _date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n    return _date;\n  }\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addMonths);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/addMonths.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/addQuarters.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/addQuarters.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   addQuarters: () => (/* binding */ addQuarters),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _addMonths_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addMonths.js */ \"../react-ui/node_modules/date-fns/addMonths.js\");\n\n\n/**\n * The {@link addQuarters} function options.\n */\n\n/**\n * @name addQuarters\n * @category Quarter Helpers\n * @summary Add the specified number of year quarters to the given date.\n *\n * @description\n * Add the specified number of year quarters to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of quarters to be added.\n * @param options - An object with options\n *\n * @returns The new date with the quarters added\n *\n * @example\n * // Add 1 quarter to 1 September 2014:\n * const result = addQuarters(new Date(2014, 8, 1), 1)\n * //=; Mon Dec 01 2014 00:00:00\n */\nfunction addQuarters(date, amount, options) {\n  return (0,_addMonths_js__WEBPACK_IMPORTED_MODULE_0__.addMonths)(date, amount * 3, options);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addQuarters);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/addQuarters.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/addSeconds.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/addSeconds.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   addSeconds: () => (/* binding */ addSeconds),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _addMilliseconds_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addMilliseconds.js */ \"../react-ui/node_modules/date-fns/addMilliseconds.js\");\n\n\n/**\n * The {@link addSeconds} function options.\n */\n\n/**\n * @name addSeconds\n * @category Second Helpers\n * @summary Add the specified number of seconds to the given date.\n *\n * @description\n * Add the specified number of seconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of seconds to be added.\n * @param options - An object with options\n *\n * @returns The new date with the seconds added\n *\n * @example\n * // Add 30 seconds to 10 July 2014 12:45:00:\n * const result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:45:30\n */\nfunction addSeconds(date, amount, options) {\n  return (0,_addMilliseconds_js__WEBPACK_IMPORTED_MODULE_0__.addMilliseconds)(date, amount * 1000, options);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addSeconds);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/addSeconds.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/addWeeks.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/date-fns/addWeeks.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   addWeeks: () => (/* binding */ addWeeks),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _addDays_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addDays.js */ \"../react-ui/node_modules/date-fns/addDays.js\");\n\n\n/**\n * The {@link addWeeks} function options.\n */\n\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of weeks to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param amount - The amount of weeks to be added.\n * @param options - An object with options\n *\n * @returns The new date with the weeks added\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nfunction addWeeks(date, amount, options) {\n  return (0,_addDays_js__WEBPACK_IMPORTED_MODULE_0__.addDays)(date, amount * 7, options);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addWeeks);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/addWeeks.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/addYears.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/date-fns/addYears.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   addYears: () => (/* binding */ addYears),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _addMonths_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addMonths.js */ \"../react-ui/node_modules/date-fns/addMonths.js\");\n\n\n/**\n * The {@link addYears} function options.\n */\n\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The date to be changed\n * @param amount - The amount of years to be added.\n * @param options - The options\n *\n * @returns The new date with the years added\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\nfunction addYears(date, amount, options) {\n  return (0,_addMonths_js__WEBPACK_IMPORTED_MODULE_0__.addMonths)(date, amount * 12, options);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (addYears);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/addYears.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/compareAsc.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/compareAsc.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   compareAsc: () => (/* binding */ compareAsc),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n *   new Date(1995, 6, 2),\n *   new Date(1987, 1, 11),\n *   new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * //   Wed Feb 11 1987 00:00:00,\n * //   Mon Jul 10 1989 00:00:00,\n * //   Sun Jul 02 1995 00:00:00\n * // ]\n */\nfunction compareAsc(dateLeft, dateRight) {\n  const diff = +(0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(dateLeft) - +(0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(dateRight);\n  if (diff < 0) return -1;else if (diff > 0) return 1;\n\n  // Return 0 if diff is 0; return NaN if diff is NaN\n  return diff;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (compareAsc);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/compareAsc.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/constants.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/constants.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   constructFromSymbol: () => (/* binding */ constructFromSymbol),\n/* harmony export */   daysInWeek: () => (/* binding */ daysInWeek),\n/* harmony export */   daysInYear: () => (/* binding */ daysInYear),\n/* harmony export */   maxTime: () => (/* binding */ maxTime),\n/* harmony export */   millisecondsInDay: () => (/* binding */ millisecondsInDay),\n/* harmony export */   millisecondsInHour: () => (/* binding */ millisecondsInHour),\n/* harmony export */   millisecondsInMinute: () => (/* binding */ millisecondsInMinute),\n/* harmony export */   millisecondsInSecond: () => (/* binding */ millisecondsInSecond),\n/* harmony export */   millisecondsInWeek: () => (/* binding */ millisecondsInWeek),\n/* harmony export */   minTime: () => (/* binding */ minTime),\n/* harmony export */   minutesInDay: () => (/* binding */ minutesInDay),\n/* harmony export */   minutesInHour: () => (/* binding */ minutesInHour),\n/* harmony export */   minutesInMonth: () => (/* binding */ minutesInMonth),\n/* harmony export */   minutesInYear: () => (/* binding */ minutesInYear),\n/* harmony export */   monthsInQuarter: () => (/* binding */ monthsInQuarter),\n/* harmony export */   monthsInYear: () => (/* binding */ monthsInYear),\n/* harmony export */   quartersInYear: () => (/* binding */ quartersInYear),\n/* harmony export */   secondsInDay: () => (/* binding */ secondsInDay),\n/* harmony export */   secondsInHour: () => (/* binding */ secondsInHour),\n/* harmony export */   secondsInMinute: () => (/* binding */ secondsInMinute),\n/* harmony export */   secondsInMonth: () => (/* binding */ secondsInMonth),\n/* harmony export */   secondsInQuarter: () => (/* binding */ secondsInQuarter),\n/* harmony export */   secondsInWeek: () => (/* binding */ secondsInWeek),\n/* harmony export */   secondsInYear: () => (/* binding */ secondsInYear)\n/* harmony export */ });\n/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n *   return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nconst daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occurs every 4 years, except for years that are divisible by 100 and not divisible by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nconst daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nconst maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nconst minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nconst millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nconst millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nconst millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nconst millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nconst millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nconst minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nconst minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nconst minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nconst minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nconst monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nconst monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nconst quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nconst secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nconst secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nconst secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nconst secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nconst secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nconst secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nconst secondsInQuarter = secondsInMonth * 3;\n\n/**\n * @constant\n * @name constructFromSymbol\n * @summary Symbol enabling Date extensions to inherit properties from the reference date.\n *\n * The symbol is used to enable the `constructFrom` function to construct a date\n * using a reference date and a value. It allows to transfer extra properties\n * from the reference date to the new date. It's useful for extensions like\n * [`TZDate`](https://github.com/date-fns/tz) that accept a time zone as\n * a constructor argument.\n */\nconst constructFromSymbol = Symbol.for(\"constructDateFrom\");\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/constants.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/constructFrom.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/constructFrom.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   constructFrom: () => (/* binding */ constructFrom),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants.js */ \"../react-ui/node_modules/date-fns/constants.js\");\n\n\n/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * Starting from v3.7.0, it allows to construct a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from \"./constructFrom/date-fns\";\n *\n * // A function that clones a date preserving the original type\n * function cloneDate<DateType extends Date>(date: DateType): DateType {\n *   return constructFrom(\n *     date, // Use constructor from the given date\n *     date.getTime() // Use the date value to create a new date\n *   );\n * }\n */\nfunction constructFrom(date, value) {\n  if (typeof date === \"function\") return date(value);\n  if (date && typeof date === \"object\" && _constants_js__WEBPACK_IMPORTED_MODULE_0__.constructFromSymbol in date) return date[_constants_js__WEBPACK_IMPORTED_MODULE_0__.constructFromSymbol](value);\n  if (date instanceof Date) return new date.constructor(value);\n  return new Date(value);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (constructFrom);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/constructFrom.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/differenceInCalendarDays.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/differenceInCalendarDays.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   differenceInCalendarDays: () => (/* binding */ differenceInCalendarDays)\n/* harmony export */ });\n/* harmony import */ var _lib_getTimezoneOffsetInMilliseconds_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/getTimezoneOffsetInMilliseconds.js */ \"../react-ui/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js\");\n/* harmony import */ var _lib_normalizeDates_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_lib/normalizeDates.js */ \"../react-ui/node_modules/date-fns/_lib/normalizeDates.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants.js */ \"../react-ui/node_modules/date-fns/constants.js\");\n/* harmony import */ var _startOfDay_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./startOfDay.js */ \"../react-ui/node_modules/date-fns/startOfDay.js\");\n\n\n\n\n\n/**\n * The {@link differenceInCalendarDays} function options.\n */\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - The options object\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n *   new Date(2012, 6, 2, 0, 0),\n *   new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n *   new Date(2011, 6, 3, 0, 1),\n *   new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nfunction differenceInCalendarDays(laterDate, earlierDate, options) {\n  const [laterDate_, earlierDate_] = (0,_lib_normalizeDates_js__WEBPACK_IMPORTED_MODULE_1__.normalizeDates)(options?.in, laterDate, earlierDate);\n  const laterStartOfDay = (0,_startOfDay_js__WEBPACK_IMPORTED_MODULE_3__.startOfDay)(laterDate_);\n  const earlierStartOfDay = (0,_startOfDay_js__WEBPACK_IMPORTED_MODULE_3__.startOfDay)(earlierDate_);\n  const laterTimestamp = +laterStartOfDay - (0,_lib_getTimezoneOffsetInMilliseconds_js__WEBPACK_IMPORTED_MODULE_0__.getTimezoneOffsetInMilliseconds)(laterStartOfDay);\n  const earlierTimestamp = +earlierStartOfDay - (0,_lib_getTimezoneOffsetInMilliseconds_js__WEBPACK_IMPORTED_MODULE_0__.getTimezoneOffsetInMilliseconds)(earlierStartOfDay);\n\n  // Round the number of days to the nearest integer because the number of\n  // milliseconds in a day is not constant (e.g. it's different in the week of\n  // the daylight saving time clock shift).\n  return Math.round((laterTimestamp - earlierTimestamp) / _constants_js__WEBPACK_IMPORTED_MODULE_2__.millisecondsInDay);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (differenceInCalendarDays);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/differenceInCalendarDays.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/differenceInCalendarMonths.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/differenceInCalendarMonths.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   differenceInCalendarMonths: () => (/* binding */ differenceInCalendarMonths)\n/* harmony export */ });\n/* harmony import */ var _lib_normalizeDates_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/normalizeDates.js */ \"../react-ui/node_modules/date-fns/_lib/normalizeDates.js\");\n\n\n/**\n * The {@link differenceInCalendarMonths} function options.\n */\n\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n *\n * @returns The number of calendar months\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n *   new Date(2014, 8, 1),\n *   new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nfunction differenceInCalendarMonths(laterDate, earlierDate, options) {\n  const [laterDate_, earlierDate_] = (0,_lib_normalizeDates_js__WEBPACK_IMPORTED_MODULE_0__.normalizeDates)(options?.in, laterDate, earlierDate);\n  const yearsDiff = laterDate_.getFullYear() - earlierDate_.getFullYear();\n  const monthsDiff = laterDate_.getMonth() - earlierDate_.getMonth();\n  return yearsDiff * 12 + monthsDiff;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (differenceInCalendarMonths);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/differenceInCalendarMonths.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/differenceInCalendarYears.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/differenceInCalendarYears.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   differenceInCalendarYears: () => (/* binding */ differenceInCalendarYears)\n/* harmony export */ });\n/* harmony import */ var _lib_normalizeDates_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/normalizeDates.js */ \"../react-ui/node_modules/date-fns/_lib/normalizeDates.js\");\n\n\n/**\n * The {@link differenceInCalendarYears} function options.\n */\n\n/**\n * @name differenceInCalendarYears\n * @category Year Helpers\n * @summary Get the number of calendar years between the given dates.\n *\n * @description\n * Get the number of calendar years between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n\n * @returns The number of calendar years\n *\n * @example\n * // How many calendar years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInCalendarYears(\n *   new Date(2015, 1, 11),\n *   new Date(2013, 11, 31)\n * );\n * //=> 2\n */\nfunction differenceInCalendarYears(laterDate, earlierDate, options) {\n  const [laterDate_, earlierDate_] = (0,_lib_normalizeDates_js__WEBPACK_IMPORTED_MODULE_0__.normalizeDates)(options?.in, laterDate, earlierDate);\n  return laterDate_.getFullYear() - earlierDate_.getFullYear();\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (differenceInCalendarYears);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/differenceInCalendarYears.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/differenceInDays.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/differenceInDays.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   differenceInDays: () => (/* binding */ differenceInDays)\n/* harmony export */ });\n/* harmony import */ var _lib_normalizeDates_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/normalizeDates.js */ \"../react-ui/node_modules/date-fns/_lib/normalizeDates.js\");\n/* harmony import */ var _differenceInCalendarDays_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./differenceInCalendarDays.js */ \"../react-ui/node_modules/date-fns/differenceInCalendarDays.js\");\n\n\n\n/**\n * The {@link differenceInDays} function options.\n */\n\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.trunc(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n *\n * @returns The number of full days according to the local timezone\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInDays(\n *   new Date(2012, 6, 2, 0, 0),\n *   new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInDays(\n *   new Date(2011, 6, 3, 0, 1),\n *   new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n *\n * @example\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * const result = differenceInDays(\n *   new Date(2020, 5, 1),\n *   new Date(2020, 2, 1)\n * )\n * //=> 92\n */\nfunction differenceInDays(laterDate, earlierDate, options) {\n  const [laterDate_, earlierDate_] = (0,_lib_normalizeDates_js__WEBPACK_IMPORTED_MODULE_0__.normalizeDates)(options?.in, laterDate, earlierDate);\n  const sign = compareLocalAsc(laterDate_, earlierDate_);\n  const difference = Math.abs((0,_differenceInCalendarDays_js__WEBPACK_IMPORTED_MODULE_1__.differenceInCalendarDays)(laterDate_, earlierDate_));\n  laterDate_.setDate(laterDate_.getDate() - sign * difference);\n\n  // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n  // If so, result must be decreased by 1 in absolute value\n  const isLastDayNotFull = Number(compareLocalAsc(laterDate_, earlierDate_) === -sign);\n  const result = sign * (difference - isLastDayNotFull);\n  // Prevent negative zero\n  return result === 0 ? 0 : result;\n}\n\n// Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\nfunction compareLocalAsc(laterDate, earlierDate) {\n  const diff = laterDate.getFullYear() - earlierDate.getFullYear() || laterDate.getMonth() - earlierDate.getMonth() || laterDate.getDate() - earlierDate.getDate() || laterDate.getHours() - earlierDate.getHours() || laterDate.getMinutes() - earlierDate.getMinutes() || laterDate.getSeconds() - earlierDate.getSeconds() || laterDate.getMilliseconds() - earlierDate.getMilliseconds();\n  if (diff < 0) return -1;\n  if (diff > 0) return 1;\n\n  // Return 0 if diff is 0; return NaN if diff is NaN\n  return diff;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (differenceInDays);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/differenceInDays.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/differenceInHours.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/differenceInHours.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   differenceInHours: () => (/* binding */ differenceInHours)\n/* harmony export */ });\n/* harmony import */ var _lib_getRoundingMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/getRoundingMethod.js */ \"../react-ui/node_modules/date-fns/_lib/getRoundingMethod.js\");\n/* harmony import */ var _lib_normalizeDates_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_lib/normalizeDates.js */ \"../react-ui/node_modules/date-fns/_lib/normalizeDates.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants.js */ \"../react-ui/node_modules/date-fns/constants.js\");\n\n\n\n\n/**\n * The {@link differenceInHours} function options.\n */\n\n/**\n * @name differenceInHours\n * @category Hour Helpers\n * @summary Get the number of hours between the given dates.\n *\n * @description\n * Get the number of hours between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of hours\n *\n * @example\n * // How many hours are between 2 July 2014 06:50:00 and 2 July 2014 19:00:00?\n * const result = differenceInHours(\n *   new Date(2014, 6, 2, 19, 0),\n *   new Date(2014, 6, 2, 6, 50)\n * )\n * //=> 12\n */\nfunction differenceInHours(laterDate, earlierDate, options) {\n  const [laterDate_, earlierDate_] = (0,_lib_normalizeDates_js__WEBPACK_IMPORTED_MODULE_1__.normalizeDates)(options?.in, laterDate, earlierDate);\n  const diff = (+laterDate_ - +earlierDate_) / _constants_js__WEBPACK_IMPORTED_MODULE_2__.millisecondsInHour;\n  return (0,_lib_getRoundingMethod_js__WEBPACK_IMPORTED_MODULE_0__.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (differenceInHours);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/differenceInHours.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/differenceInMilliseconds.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/differenceInMilliseconds.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   differenceInMilliseconds: () => (/* binding */ differenceInMilliseconds)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n *\n * @returns The number of milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n *   new Date(2014, 6, 2, 12, 30, 21, 700),\n *   new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nfunction differenceInMilliseconds(laterDate, earlierDate) {\n  return +(0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(laterDate) - +(0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(earlierDate);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (differenceInMilliseconds);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/differenceInMilliseconds.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/differenceInMinutes.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/differenceInMinutes.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   differenceInMinutes: () => (/* binding */ differenceInMinutes)\n/* harmony export */ });\n/* harmony import */ var _lib_getRoundingMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/getRoundingMethod.js */ \"../react-ui/node_modules/date-fns/_lib/getRoundingMethod.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants.js */ \"../react-ui/node_modules/date-fns/constants.js\");\n/* harmony import */ var _differenceInMilliseconds_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./differenceInMilliseconds.js */ \"../react-ui/node_modules/date-fns/differenceInMilliseconds.js\");\n\n\n\n\n/**\n * The {@link differenceInMinutes} function options.\n */\n\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of minutes\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * const result = differenceInMinutes(\n *   new Date(2014, 6, 2, 12, 20, 0),\n *   new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are between 10:01:59 and 10:00:00\n * const result = differenceInMinutes(\n *   new Date(2000, 0, 1, 10, 0, 0),\n *   new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\nfunction differenceInMinutes(dateLeft, dateRight, options) {\n  const diff = (0,_differenceInMilliseconds_js__WEBPACK_IMPORTED_MODULE_2__.differenceInMilliseconds)(dateLeft, dateRight) / _constants_js__WEBPACK_IMPORTED_MODULE_1__.millisecondsInMinute;\n  return (0,_lib_getRoundingMethod_js__WEBPACK_IMPORTED_MODULE_0__.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (differenceInMinutes);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/differenceInMinutes.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/differenceInMonths.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/differenceInMonths.js ***!
  \***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   differenceInMonths: () => (/* binding */ differenceInMonths)\n/* harmony export */ });\n/* harmony import */ var _lib_normalizeDates_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/normalizeDates.js */ \"../react-ui/node_modules/date-fns/_lib/normalizeDates.js\");\n/* harmony import */ var _compareAsc_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compareAsc.js */ \"../react-ui/node_modules/date-fns/compareAsc.js\");\n/* harmony import */ var _differenceInCalendarMonths_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./differenceInCalendarMonths.js */ \"../react-ui/node_modules/date-fns/differenceInCalendarMonths.js\");\n/* harmony import */ var _isLastDayOfMonth_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isLastDayOfMonth.js */ \"../react-ui/node_modules/date-fns/isLastDayOfMonth.js\");\n\n\n\n\n\n/**\n * The {@link differenceInMonths} function options.\n */\n\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n *\n * @returns The number of full months\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\nfunction differenceInMonths(laterDate, earlierDate, options) {\n  const [laterDate_, workingLaterDate, earlierDate_] = (0,_lib_normalizeDates_js__WEBPACK_IMPORTED_MODULE_0__.normalizeDates)(options?.in, laterDate, laterDate, earlierDate);\n  const sign = (0,_compareAsc_js__WEBPACK_IMPORTED_MODULE_1__.compareAsc)(workingLaterDate, earlierDate_);\n  const difference = Math.abs((0,_differenceInCalendarMonths_js__WEBPACK_IMPORTED_MODULE_2__.differenceInCalendarMonths)(workingLaterDate, earlierDate_));\n  if (difference < 1) return 0;\n  if (workingLaterDate.getMonth() === 1 && workingLaterDate.getDate() > 27) workingLaterDate.setDate(30);\n  workingLaterDate.setMonth(workingLaterDate.getMonth() - sign * difference);\n  let isLastMonthNotFull = (0,_compareAsc_js__WEBPACK_IMPORTED_MODULE_1__.compareAsc)(workingLaterDate, earlierDate_) === -sign;\n  if ((0,_isLastDayOfMonth_js__WEBPACK_IMPORTED_MODULE_3__.isLastDayOfMonth)(laterDate_) && difference === 1 && (0,_compareAsc_js__WEBPACK_IMPORTED_MODULE_1__.compareAsc)(laterDate_, earlierDate_) === 1) {\n    isLastMonthNotFull = false;\n  }\n  const result = sign * (difference - +isLastMonthNotFull);\n  return result === 0 ? 0 : result;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (differenceInMonths);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/differenceInMonths.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/differenceInQuarters.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/differenceInQuarters.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   differenceInQuarters: () => (/* binding */ differenceInQuarters)\n/* harmony export */ });\n/* harmony import */ var _lib_getRoundingMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/getRoundingMethod.js */ \"../react-ui/node_modules/date-fns/_lib/getRoundingMethod.js\");\n/* harmony import */ var _differenceInMonths_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./differenceInMonths.js */ \"../react-ui/node_modules/date-fns/differenceInMonths.js\");\n\n\n\n/**\n * The {@link differenceInQuarters} function options.\n */\n\n/**\n * @name differenceInQuarters\n * @category Quarter Helpers\n * @summary Get the number of quarters between the given dates.\n *\n * @description\n * Get the number of quarters between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of full quarters\n *\n * @example\n * // How many full quarters are between 31 December 2013 and 2 July 2014?\n * const result = differenceInQuarters(new Date(2014, 6, 2), new Date(2013, 11, 31))\n * //=> 2\n */\nfunction differenceInQuarters(laterDate, earlierDate, options) {\n  const diff = (0,_differenceInMonths_js__WEBPACK_IMPORTED_MODULE_1__.differenceInMonths)(laterDate, earlierDate, options) / 3;\n  return (0,_lib_getRoundingMethod_js__WEBPACK_IMPORTED_MODULE_0__.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (differenceInQuarters);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/differenceInQuarters.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/differenceInSeconds.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/differenceInSeconds.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   differenceInSeconds: () => (/* binding */ differenceInSeconds)\n/* harmony export */ });\n/* harmony import */ var _lib_getRoundingMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/getRoundingMethod.js */ \"../react-ui/node_modules/date-fns/_lib/getRoundingMethod.js\");\n/* harmony import */ var _differenceInMilliseconds_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./differenceInMilliseconds.js */ \"../react-ui/node_modules/date-fns/differenceInMilliseconds.js\");\n\n\n\n/**\n * The {@link differenceInSeconds} function options.\n */\n\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n *   new Date(2014, 6, 2, 12, 30, 20, 0),\n *   new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nfunction differenceInSeconds(laterDate, earlierDate, options) {\n  const diff = (0,_differenceInMilliseconds_js__WEBPACK_IMPORTED_MODULE_1__.differenceInMilliseconds)(laterDate, earlierDate) / 1000;\n  return (0,_lib_getRoundingMethod_js__WEBPACK_IMPORTED_MODULE_0__.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (differenceInSeconds);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/differenceInSeconds.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/differenceInWeeks.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/differenceInWeeks.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   differenceInWeeks: () => (/* binding */ differenceInWeeks)\n/* harmony export */ });\n/* harmony import */ var _lib_getRoundingMethod_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/getRoundingMethod.js */ \"../react-ui/node_modules/date-fns/_lib/getRoundingMethod.js\");\n/* harmony import */ var _differenceInDays_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./differenceInDays.js */ \"../react-ui/node_modules/date-fns/differenceInDays.js\");\n\n\n\n/**\n * The {@link differenceInWeeks} function options.\n */\n\n/**\n * @name differenceInWeeks\n * @category Week Helpers\n * @summary Get the number of full weeks between the given dates.\n *\n * @description\n * Get the number of full weeks between two dates. Fractional weeks are\n * truncated towards zero by default.\n *\n * One \"full week\" is the distance between a local time in one day to the same\n * local time 7 days earlier or later. A full week can sometimes be less than\n * or more than 7*24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 7*24-hour periods, use this instead:\n * `Math.trunc(differenceInHours(dateLeft, dateRight)/(7*24))|0`.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n *\n * @returns The number of full weeks\n *\n * @example\n * // How many full weeks are between 5 July 2014 and 20 July 2014?\n * const result = differenceInWeeks(new Date(2014, 6, 20), new Date(2014, 6, 5))\n * //=> 2\n *\n * @example\n * // How many full weeks are between\n * // 1 March 2020 0:00 and 6 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 8 weeks (54 days),\n * // even if DST starts and the period has\n * // only 54*24-1 hours.\n * const result = differenceInWeeks(\n *   new Date(2020, 5, 1),\n *   new Date(2020, 2, 6)\n * )\n * //=> 8\n */\nfunction differenceInWeeks(laterDate, earlierDate, options) {\n  const diff = (0,_differenceInDays_js__WEBPACK_IMPORTED_MODULE_1__.differenceInDays)(laterDate, earlierDate, options) / 7;\n  return (0,_lib_getRoundingMethod_js__WEBPACK_IMPORTED_MODULE_0__.getRoundingMethod)(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (differenceInWeeks);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/differenceInWeeks.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/differenceInYears.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/differenceInYears.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   differenceInYears: () => (/* binding */ differenceInYears)\n/* harmony export */ });\n/* harmony import */ var _lib_normalizeDates_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/normalizeDates.js */ \"../react-ui/node_modules/date-fns/_lib/normalizeDates.js\");\n/* harmony import */ var _compareAsc_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./compareAsc.js */ \"../react-ui/node_modules/date-fns/compareAsc.js\");\n/* harmony import */ var _differenceInCalendarYears_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./differenceInCalendarYears.js */ \"../react-ui/node_modules/date-fns/differenceInCalendarYears.js\");\n\n\n\n\n/**\n * The {@link differenceInYears} function options.\n */\n\n/**\n * @name differenceInYears\n * @category Year Helpers\n * @summary Get the number of full years between the given dates.\n *\n * @description\n * Get the number of full years between the given dates.\n *\n * @param laterDate - The later date\n * @param earlierDate - The earlier date\n * @param options - An object with options\n *\n * @returns The number of full years\n *\n * @example\n * // How many full years are between 31 December 2013 and 11 February 2015?\n * const result = differenceInYears(new Date(2015, 1, 11), new Date(2013, 11, 31))\n * //=> 1\n */\nfunction differenceInYears(laterDate, earlierDate, options) {\n  const [laterDate_, earlierDate_] = (0,_lib_normalizeDates_js__WEBPACK_IMPORTED_MODULE_0__.normalizeDates)(options?.in, laterDate, earlierDate);\n\n  // -1 if the left date is earlier than the right date\n  // 2023-12-31 - 2024-01-01 = -1\n  const sign = (0,_compareAsc_js__WEBPACK_IMPORTED_MODULE_1__.compareAsc)(laterDate_, earlierDate_);\n\n  // First calculate the difference in calendar years\n  // 2024-01-01 - 2023-12-31 = 1 year\n  const diff = Math.abs((0,_differenceInCalendarYears_js__WEBPACK_IMPORTED_MODULE_2__.differenceInCalendarYears)(laterDate_, earlierDate_));\n\n  // Now we need to calculate if the difference is full. To do that we set\n  // both dates to the same year and check if the both date's month and day\n  // form a full year.\n  laterDate_.setFullYear(1584);\n  earlierDate_.setFullYear(1584);\n\n  // For it to be true, when the later date is indeed later than the earlier date\n  // (2026-02-01 - 2023-12-10 = 3 years), the difference is full if\n  // the normalized later date is also later than the normalized earlier date.\n  // In our example, 1584-02-01 is earlier than 1584-12-10, so the difference\n  // is partial, hence we need to subtract 1 from the difference 3 - 1 = 2.\n  const partial = (0,_compareAsc_js__WEBPACK_IMPORTED_MODULE_1__.compareAsc)(laterDate_, earlierDate_) === -sign;\n  const result = sign * (diff - +partial);\n\n  // Prevent negative zero\n  return result === 0 ? 0 : result;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (differenceInYears);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/differenceInYears.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/endOfDay.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/date-fns/endOfDay.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   endOfDay: () => (/* binding */ endOfDay)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link endOfDay} function options.\n */\n\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nfunction endOfDay(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in);\n  _date.setHours(23, 59, 59, 999);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (endOfDay);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/endOfDay.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/endOfHour.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/endOfHour.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   endOfHour: () => (/* binding */ endOfHour)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link endOfHour} function options.\n */\n\n/**\n * @name endOfHour\n * @category Hour Helpers\n * @summary Return the end of an hour for the given date.\n *\n * @description\n * Return the end of an hour for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of an hour\n *\n * @example\n * // The end of an hour for 2 September 2014 11:55:00:\n * const result = endOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:59:59.999\n */\nfunction endOfHour(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in);\n  _date.setMinutes(59, 59, 999);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (endOfHour);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/endOfHour.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/endOfMinute.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/endOfMinute.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   endOfMinute: () => (/* binding */ endOfMinute)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link endOfMinute} function options.\n */\n\n/**\n * @name endOfMinute\n * @category Minute Helpers\n * @summary Return the end of a minute for the given date.\n *\n * @description\n * Return the end of a minute for the given date.\n * The result will be in the local timezone or the provided context.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a minute\n *\n * @example\n * // The end of a minute for 1 December 2014 22:15:45.400:\n * const result = endOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:59.999\n */\nfunction endOfMinute(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in);\n  _date.setSeconds(59, 999);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (endOfMinute);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/endOfMinute.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/endOfMonth.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/endOfMonth.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   endOfMonth: () => (/* binding */ endOfMonth)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link endOfMonth} function options.\n */\n\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nfunction endOfMonth(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in);\n  const month = _date.getMonth();\n  _date.setFullYear(_date.getFullYear(), month + 1, 0);\n  _date.setHours(23, 59, 59, 999);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (endOfMonth);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/endOfMonth.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/endOfQuarter.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/endOfQuarter.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   endOfQuarter: () => (/* binding */ endOfQuarter)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link endOfQuarter} function options.\n */\n\n/**\n * @name endOfQuarter\n * @category Quarter Helpers\n * @summary Return the end of a year quarter for the given date.\n *\n * @description\n * Return the end of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a quarter\n *\n * @example\n * // The end of a quarter for 2 September 2014 11:55:00:\n * const result = endOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nfunction endOfQuarter(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in);\n  const currentMonth = _date.getMonth();\n  const month = currentMonth - currentMonth % 3 + 3;\n  _date.setMonth(month, 0);\n  _date.setHours(23, 59, 59, 999);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (endOfQuarter);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/endOfQuarter.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/endOfSecond.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/endOfSecond.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   endOfSecond: () => (/* binding */ endOfSecond)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link endOfSecond} function options.\n */\n\n/**\n * @name endOfSecond\n * @category Second Helpers\n * @summary Return the end of a second for the given date.\n *\n * @description\n * Return the end of a second for the given date.\n * The result will be in the local timezone if no `in` option is specified.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a second\n *\n * @example\n * // The end of a second for 1 December 2014 22:15:45.400:\n * const result = endOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.999\n */\nfunction endOfSecond(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in);\n  _date.setMilliseconds(999);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (endOfSecond);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/endOfSecond.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/endOfWeek.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/endOfWeek.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   endOfWeek: () => (/* binding */ endOfWeek)\n/* harmony export */ });\n/* harmony import */ var _lib_defaultOptions_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/defaultOptions.js */ \"../react-ui/node_modules/date-fns/_lib/defaultOptions.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n/**\n * The {@link endOfWeek} function options.\n */\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nfunction endOfWeek(date, options) {\n  const defaultOptions = (0,_lib_defaultOptions_js__WEBPACK_IMPORTED_MODULE_0__.getDefaultOptions)();\n  const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions.weekStartsOn ?? defaultOptions.locale?.options?.weekStartsOn ?? 0;\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_1__.toDate)(date, options?.in);\n  const day = _date.getDay();\n  const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n  _date.setDate(_date.getDate() + diff);\n  _date.setHours(23, 59, 59, 999);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (endOfWeek);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/endOfWeek.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/endOfYear.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/endOfYear.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   endOfYear: () => (/* binding */ endOfYear)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link endOfYear} function options.\n */\n\n/**\n * @name endOfYear\n * @category Year Helpers\n * @summary Return the end of a year for the given date.\n *\n * @description\n * Return the end of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The end of a year\n *\n * @example\n * // The end of a year for 2 September 2014 11:55:00:\n * const result = endOfYear(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Wed Dec 31 2014 23:59:59.999\n */\nfunction endOfYear(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in);\n  const year = _date.getFullYear();\n  _date.setFullYear(year + 1, 0, 0);\n  _date.setHours(23, 59, 59, 999);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (endOfYear);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/endOfYear.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/format.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/date-fns/format.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   format: () => (/* binding */ format),\n/* harmony export */   formatDate: () => (/* binding */ format),\n/* harmony export */   formatters: () => (/* reexport safe */ _lib_format_formatters_js__WEBPACK_IMPORTED_MODULE_2__.formatters),\n/* harmony export */   longFormatters: () => (/* reexport safe */ _lib_format_longFormatters_js__WEBPACK_IMPORTED_MODULE_3__.longFormatters)\n/* harmony export */ });\n/* harmony import */ var _lib_defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/defaultLocale.js */ \"../react-ui/node_modules/date-fns/locale/en-US.js\");\n/* harmony import */ var _lib_defaultOptions_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_lib/defaultOptions.js */ \"../react-ui/node_modules/date-fns/_lib/defaultOptions.js\");\n/* harmony import */ var _lib_format_formatters_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_lib/format/formatters.js */ \"../react-ui/node_modules/date-fns/_lib/format/formatters.js\");\n/* harmony import */ var _lib_format_longFormatters_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_lib/format/longFormatters.js */ \"../react-ui/node_modules/date-fns/_lib/format/longFormatters.js\");\n/* harmony import */ var _lib_protectedTokens_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_lib/protectedTokens.js */ \"../react-ui/node_modules/date-fns/_lib/protectedTokens.js\");\n/* harmony import */ var _isValid_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isValid.js */ \"../react-ui/node_modules/date-fns/isValid.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n\n\n\n\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\n\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n//   (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n//   except a single quote symbol, which ends the sequence.\n//   Two quote characters do not end the sequence.\n//   If there is no matching single quote\n//   then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n\n/**\n * The {@link format} function options.\n */\n\n/**\n * @name format\n * @alias formatDate\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit                            | Pattern | Result examples                   | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era                             | G..GGG  | AD, BC                            |       |\n * |                                 | GGGG    | Anno Domini, Before Christ        | 2     |\n * |                                 | GGGGG   | A, B                              |       |\n * | Calendar year                   | y       | 44, 1, 1900, 2017                 | 5     |\n * |                                 | yo      | 44th, 1st, 0th, 17th              | 5,7   |\n * |                                 | yy      | 44, 01, 00, 17                    | 5     |\n * |                                 | yyy     | 044, 001, 1900, 2017              | 5     |\n * |                                 | yyyy    | 0044, 0001, 1900, 2017            | 5     |\n * |                                 | yyyyy   | ...                               | 3,5   |\n * | Local week-numbering year       | Y       | 44, 1, 1900, 2017                 | 5     |\n * |                                 | Yo      | 44th, 1st, 1900th, 2017th         | 5,7   |\n * |                                 | YY      | 44, 01, 00, 17                    | 5,8   |\n * |                                 | YYY     | 044, 001, 1900, 2017              | 5     |\n * |                                 | YYYY    | 0044, 0001, 1900, 2017            | 5,8   |\n * |                                 | YYYYY   | ...                               | 3,5   |\n * | ISO week-numbering year         | R       | -43, 0, 1, 1900, 2017             | 5,7   |\n * |                                 | RR      | -43, 00, 01, 1900, 2017           | 5,7   |\n * |                                 | RRR     | -043, 000, 001, 1900, 2017        | 5,7   |\n * |                                 | RRRR    | -0043, 0000, 0001, 1900, 2017     | 5,7   |\n * |                                 | RRRRR   | ...                               | 3,5,7 |\n * | Extended year                   | u       | -43, 0, 1, 1900, 2017             | 5     |\n * |                                 | uu      | -43, 01, 1900, 2017               | 5     |\n * |                                 | uuu     | -043, 001, 1900, 2017             | 5     |\n * |                                 | uuuu    | -0043, 0001, 1900, 2017           | 5     |\n * |                                 | uuuuu   | ...                               | 3,5   |\n * | Quarter (formatting)            | Q       | 1, 2, 3, 4                        |       |\n * |                                 | Qo      | 1st, 2nd, 3rd, 4th                | 7     |\n * |                                 | QQ      | 01, 02, 03, 04                    |       |\n * |                                 | QQQ     | Q1, Q2, Q3, Q4                    |       |\n * |                                 | QQQQ    | 1st quarter, 2nd quarter, ...     | 2     |\n * |                                 | QQQQQ   | 1, 2, 3, 4                        | 4     |\n * | Quarter (stand-alone)           | q       | 1, 2, 3, 4                        |       |\n * |                                 | qo      | 1st, 2nd, 3rd, 4th                | 7     |\n * |                                 | qq      | 01, 02, 03, 04                    |       |\n * |                                 | qqq     | Q1, Q2, Q3, Q4                    |       |\n * |                                 | qqqq    | 1st quarter, 2nd quarter, ...     | 2     |\n * |                                 | qqqqq   | 1, 2, 3, 4                        | 4     |\n * | Month (formatting)              | M       | 1, 2, ..., 12                     |       |\n * |                                 | Mo      | 1st, 2nd, ..., 12th               | 7     |\n * |                                 | MM      | 01, 02, ..., 12                   |       |\n * |                                 | MMM     | Jan, Feb, ..., Dec                |       |\n * |                                 | MMMM    | January, February, ..., December  | 2     |\n * |                                 | MMMMM   | J, F, ..., D                      |       |\n * | Month (stand-alone)             | L       | 1, 2, ..., 12                     |       |\n * |                                 | Lo      | 1st, 2nd, ..., 12th               | 7     |\n * |                                 | LL      | 01, 02, ..., 12                   |       |\n * |                                 | LLL     | Jan, Feb, ..., Dec                |       |\n * |                                 | LLLL    | January, February, ..., December  | 2     |\n * |                                 | LLLLL   | J, F, ..., D                      |       |\n * | Local week of year              | w       | 1, 2, ..., 53                     |       |\n * |                                 | wo      | 1st, 2nd, ..., 53th               | 7     |\n * |                                 | ww      | 01, 02, ..., 53                   |       |\n * | ISO week of year                | I       | 1, 2, ..., 53                     | 7     |\n * |                                 | Io      | 1st, 2nd, ..., 53th               | 7     |\n * |                                 | II      | 01, 02, ..., 53                   | 7     |\n * | Day of month                    | d       | 1, 2, ..., 31                     |       |\n * |                                 | do      | 1st, 2nd, ..., 31st               | 7     |\n * |                                 | dd      | 01, 02, ..., 31                   |       |\n * | Day of year                     | D       | 1, 2, ..., 365, 366               | 9     |\n * |                                 | Do      | 1st, 2nd, ..., 365th, 366th       | 7     |\n * |                                 | DD      | 01, 02, ..., 365, 366             | 9     |\n * |                                 | DDD     | 001, 002, ..., 365, 366           |       |\n * |                                 | DDDD    | ...                               | 3     |\n * | Day of week (formatting)        | E..EEE  | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 | EEEE    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | EEEEE   | M, T, W, T, F, S, S               |       |\n * |                                 | EEEEEE  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | ISO day of week (formatting)    | i       | 1, 2, 3, ..., 7                   | 7     |\n * |                                 | io      | 1st, 2nd, ..., 7th                | 7     |\n * |                                 | ii      | 01, 02, ..., 07                   | 7     |\n * |                                 | iii     | Mon, Tue, Wed, ..., Sun           | 7     |\n * |                                 | iiii    | Monday, Tuesday, ..., Sunday      | 2,7   |\n * |                                 | iiiii   | M, T, W, T, F, S, S               | 7     |\n * |                                 | iiiiii  | Mo, Tu, We, Th, Fr, Sa, Su        | 7     |\n * | Local day of week (formatting)  | e       | 2, 3, 4, ..., 1                   |       |\n * |                                 | eo      | 2nd, 3rd, ..., 1st                | 7     |\n * |                                 | ee      | 02, 03, ..., 01                   |       |\n * |                                 | eee     | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 | eeee    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | eeeee   | M, T, W, T, F, S, S               |       |\n * |                                 | eeeeee  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | Local day of week (stand-alone) | c       | 2, 3, 4, ..., 1                   |       |\n * |                                 | co      | 2nd, 3rd, ..., 1st                | 7     |\n * |                                 | cc      | 02, 03, ..., 01                   |       |\n * |                                 | ccc     | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 | cccc    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | ccccc   | M, T, W, T, F, S, S               |       |\n * |                                 | cccccc  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | AM, PM                          | a..aa   | AM, PM                            |       |\n * |                                 | aaa     | am, pm                            |       |\n * |                                 | aaaa    | a.m., p.m.                        | 2     |\n * |                                 | aaaaa   | a, p                              |       |\n * | AM, PM, noon, midnight          | b..bb   | AM, PM, noon, midnight            |       |\n * |                                 | bbb     | am, pm, noon, midnight            |       |\n * |                                 | bbbb    | a.m., p.m., noon, midnight        | 2     |\n * |                                 | bbbbb   | a, p, n, mi                       |       |\n * | Flexible day period             | B..BBB  | at night, in the morning, ...     |       |\n * |                                 | BBBB    | at night, in the morning, ...     | 2     |\n * |                                 | BBBBB   | at night, in the morning, ...     |       |\n * | Hour [1-12]                     | h       | 1, 2, ..., 11, 12                 |       |\n * |                                 | ho      | 1st, 2nd, ..., 11th, 12th         | 7     |\n * |                                 | hh      | 01, 02, ..., 11, 12               |       |\n * | Hour [0-23]                     | H       | 0, 1, 2, ..., 23                  |       |\n * |                                 | Ho      | 0th, 1st, 2nd, ..., 23rd          | 7     |\n * |                                 | HH      | 00, 01, 02, ..., 23               |       |\n * | Hour [0-11]                     | K       | 1, 2, ..., 11, 0                  |       |\n * |                                 | Ko      | 1st, 2nd, ..., 11th, 0th          | 7     |\n * |                                 | KK      | 01, 02, ..., 11, 00               |       |\n * | Hour [1-24]                     | k       | 24, 1, 2, ..., 23                 |       |\n * |                                 | ko      | 24th, 1st, 2nd, ..., 23rd         | 7     |\n * |                                 | kk      | 24, 01, 02, ..., 23               |       |\n * | Minute                          | m       | 0, 1, ..., 59                     |       |\n * |                                 | mo      | 0th, 1st, ..., 59th               | 7     |\n * |                                 | mm      | 00, 01, ..., 59                   |       |\n * | Second                          | s       | 0, 1, ..., 59                     |       |\n * |                                 | so      | 0th, 1st, ..., 59th               | 7     |\n * |                                 | ss      | 00, 01, ..., 59                   |       |\n * | Fraction of second              | S       | 0, 1, ..., 9                      |       |\n * |                                 | SS      | 00, 01, ..., 99                   |       |\n * |                                 | SSS     | 000, 001, ..., 999                |       |\n * |                                 | SSSS    | ...                               | 3     |\n * | Timezone (ISO-8601 w/ Z)        | X       | -08, +0530, Z                     |       |\n * |                                 | XX      | -0800, +0530, Z                   |       |\n * |                                 | XXX     | -08:00, +05:30, Z                 |       |\n * |                                 | XXXX    | -0800, +0530, Z, +123456          | 2     |\n * |                                 | XXXXX   | -08:00, +05:30, Z, +12:34:56      |       |\n * | Timezone (ISO-8601 w/o Z)       | x       | -08, +0530, +00                   |       |\n * |                                 | xx      | -0800, +0530, +0000               |       |\n * |                                 | xxx     | -08:00, +05:30, +00:00            | 2     |\n * |                                 | xxxx    | -0800, +0530, +0000, +123456      |       |\n * |                                 | xxxxx   | -08:00, +05:30, +00:00, +12:34:56 |       |\n * | Timezone (GMT)                  | O...OOO | GMT-8, GMT+5:30, GMT+0            |       |\n * |                                 | OOOO    | GMT-08:00, GMT+05:30, GMT+00:00   | 2     |\n * | Timezone (specific non-locat.)  | z...zzz | GMT-8, GMT+5:30, GMT+0            | 6     |\n * |                                 | zzzz    | GMT-08:00, GMT+05:30, GMT+00:00   | 2,6   |\n * | Seconds timestamp               | t       | 512969520                         | 7     |\n * |                                 | tt      | ...                               | 3,7   |\n * | Milliseconds timestamp          | T       | 512969520900                      | 7     |\n * |                                 | TT      | ...                               | 3,7   |\n * | Long localized date             | P       | 04/29/1453                        | 7     |\n * |                                 | PP      | Apr 29, 1453                      | 7     |\n * |                                 | PPP     | April 29th, 1453                  | 7     |\n * |                                 | PPPP    | Friday, April 29th, 1453          | 2,7   |\n * | Long localized time             | p       | 12:00 AM                          | 7     |\n * |                                 | pp      | 12:00:00 AM                       | 7     |\n * |                                 | ppp     | 12:00:00 AM GMT+2                 | 7     |\n * |                                 | pppp    | 12:00:00 AM GMT+02:00             | 2,7   |\n * | Combination of date and time    | Pp      | 04/29/1453, 12:00 AM              | 7     |\n * |                                 | PPpp    | Apr 29, 1453, 12:00:00 AM         | 7     |\n * |                                 | PPPppp  | April 29th, 1453 at ...           | 7     |\n * |                                 | PPPPpppp| Friday, April 29th, 1453 at ...   | 2,7   |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n *    are the same as \"stand-alone\" units, but are different in some languages.\n *    \"Formatting\" units are declined according to the rules of the language\n *    in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n *    `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n *    `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n *    the single quote characters (see below).\n *    If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n *    the output will be the same as default pattern for this unit, usually\n *    the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n *    are marked with \"2\" in the last column of the table.\n *\n *    `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n *    `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n *    The output will be padded with zeros to match the length of the pattern.\n *\n *    `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n *    These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n *    | Year | `y` | `u` |\n *    |------|-----|-----|\n *    | AC 1 |   1 |   1 |\n *    | BC 1 |   1 |   0 |\n *    | BC 2 |   2 |  -1 |\n *\n *    Also `yy` always returns the last two digits of a year,\n *    while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n *    | Year | `yy` | `uu` |\n *    |------|------|------|\n *    | 1    |   01 |   01 |\n *    | 14   |   14 |   14 |\n *    | 376  |   76 |  376 |\n *    | 1453 |   53 | 1453 |\n *\n *    The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n *    except local week-numbering years are dependent on `options.weekStartsOn`\n *    and `options.firstWeekContainsDate` (compare [getISOWeekYear](https://date-fns.org/docs/getISOWeekYear)\n *    and [getWeekYear](https://date-fns.org/docs/getWeekYear)).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n *    so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n *    - `i`: ISO day of week\n *    - `I`: ISO week of year\n *    - `R`: ISO week-numbering year\n *    - `t`: seconds timestamp\n *    - `T`: milliseconds timestamp\n *    - `o`: ordinal number modifier\n *    - `P`: long localized date\n *    - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n *    You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n *    You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param date - The original date\n * @param format - The string of tokens\n * @param options - An object with options\n *\n * @returns The formatted date string\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `localize` property\n * @throws `options.locale` must contain `formatLong` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n *   locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\nfunction format(date, formatStr, options) {\n  const defaultOptions = (0,_lib_defaultOptions_js__WEBPACK_IMPORTED_MODULE_1__.getDefaultOptions)();\n  const locale = options?.locale ?? defaultOptions.locale ?? _lib_defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__.enUS;\n  const firstWeekContainsDate = options?.firstWeekContainsDate ?? options?.locale?.options?.firstWeekContainsDate ?? defaultOptions.firstWeekContainsDate ?? defaultOptions.locale?.options?.firstWeekContainsDate ?? 1;\n  const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions.weekStartsOn ?? defaultOptions.locale?.options?.weekStartsOn ?? 0;\n  const originalDate = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_6__.toDate)(date, options?.in);\n  if (!(0,_isValid_js__WEBPACK_IMPORTED_MODULE_5__.isValid)(originalDate)) {\n    throw new RangeError(\"Invalid time value\");\n  }\n  let parts = formatStr.match(longFormattingTokensRegExp).map(substring => {\n    const firstCharacter = substring[0];\n    if (firstCharacter === \"p\" || firstCharacter === \"P\") {\n      const longFormatter = _lib_format_longFormatters_js__WEBPACK_IMPORTED_MODULE_3__.longFormatters[firstCharacter];\n      return longFormatter(substring, locale.formatLong);\n    }\n    return substring;\n  }).join(\"\").match(formattingTokensRegExp).map(substring => {\n    // Replace two single quote characters with one single quote character\n    if (substring === \"''\") {\n      return {\n        isToken: false,\n        value: \"'\"\n      };\n    }\n    const firstCharacter = substring[0];\n    if (firstCharacter === \"'\") {\n      return {\n        isToken: false,\n        value: cleanEscapedString(substring)\n      };\n    }\n    if (_lib_format_formatters_js__WEBPACK_IMPORTED_MODULE_2__.formatters[firstCharacter]) {\n      return {\n        isToken: true,\n        value: substring\n      };\n    }\n    if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n      throw new RangeError(\"Format string contains an unescaped latin alphabet character `\" + firstCharacter + \"`\");\n    }\n    return {\n      isToken: false,\n      value: substring\n    };\n  });\n\n  // invoke localize preprocessor (only for french locales at the moment)\n  if (locale.localize.preprocessor) {\n    parts = locale.localize.preprocessor(originalDate, parts);\n  }\n  const formatterOptions = {\n    firstWeekContainsDate,\n    weekStartsOn,\n    locale\n  };\n  return parts.map(part => {\n    if (!part.isToken) return part.value;\n    const token = part.value;\n    if (!options?.useAdditionalWeekYearTokens && (0,_lib_protectedTokens_js__WEBPACK_IMPORTED_MODULE_4__.isProtectedWeekYearToken)(token) || !options?.useAdditionalDayOfYearTokens && (0,_lib_protectedTokens_js__WEBPACK_IMPORTED_MODULE_4__.isProtectedDayOfYearToken)(token)) {\n      (0,_lib_protectedTokens_js__WEBPACK_IMPORTED_MODULE_4__.warnOrThrowProtectedError)(token, formatStr, String(date));\n    }\n    const formatter = _lib_format_formatters_js__WEBPACK_IMPORTED_MODULE_2__.formatters[token[0]];\n    return formatter(originalDate, token, locale.localize, formatterOptions);\n  }).join(\"\");\n}\nfunction cleanEscapedString(input) {\n  const matched = input.match(escapedStringRegExp);\n  if (!matched) {\n    return input;\n  }\n  return matched[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (format);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/format.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/getDayOfYear.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/getDayOfYear.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   getDayOfYear: () => (/* binding */ getDayOfYear)\n/* harmony export */ });\n/* harmony import */ var _differenceInCalendarDays_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./differenceInCalendarDays.js */ \"../react-ui/node_modules/date-fns/differenceInCalendarDays.js\");\n/* harmony import */ var _startOfYear_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./startOfYear.js */ \"../react-ui/node_modules/date-fns/startOfYear.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n\n/**\n * The {@link getDayOfYear} function options.\n */\n\n/**\n * @name getDayOfYear\n * @category Day Helpers\n * @summary Get the day of the year of the given date.\n *\n * @description\n * Get the day of the year of the given date.\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The day of year\n *\n * @example\n * // Which day of the year is 2 July 2014?\n * const result = getDayOfYear(new Date(2014, 6, 2))\n * //=> 183\n */\nfunction getDayOfYear(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_2__.toDate)(date, options?.in);\n  const diff = (0,_differenceInCalendarDays_js__WEBPACK_IMPORTED_MODULE_0__.differenceInCalendarDays)(_date, (0,_startOfYear_js__WEBPACK_IMPORTED_MODULE_1__.startOfYear)(_date));\n  const dayOfYear = diff + 1;\n  return dayOfYear;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getDayOfYear);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/getDayOfYear.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/getDefaultOptions.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/getDefaultOptions.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   getDefaultOptions: () => (/* binding */ getDefaultOptions)\n/* harmony export */ });\n/* harmony import */ var _lib_defaultOptions_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/defaultOptions.js */ \"../react-ui/node_modules/date-fns/_lib/defaultOptions.js\");\n\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nfunction getDefaultOptions() {\n  return Object.assign({}, (0,_lib_defaultOptions_js__WEBPACK_IMPORTED_MODULE_0__.getDefaultOptions)());\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getDefaultOptions);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/getDefaultOptions.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/getISODay.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/getISODay.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   getISODay: () => (/* binding */ getISODay)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link getISODay} function options.\n */\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nfunction getISODay(date, options) {\n  const day = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in).getDay();\n  return day === 0 ? 7 : day;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getISODay);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/getISODay.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/getISOWeek.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/getISOWeek.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   getISOWeek: () => (/* binding */ getISOWeek)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants.js */ \"../react-ui/node_modules/date-fns/constants.js\");\n/* harmony import */ var _startOfISOWeek_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./startOfISOWeek.js */ \"../react-ui/node_modules/date-fns/startOfISOWeek.js\");\n/* harmony import */ var _startOfISOWeekYear_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./startOfISOWeekYear.js */ \"../react-ui/node_modules/date-fns/startOfISOWeekYear.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n\n\n/**\n * The {@link getISOWeek} function options.\n */\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - The options\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nfunction getISOWeek(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_3__.toDate)(date, options?.in);\n  const diff = +(0,_startOfISOWeek_js__WEBPACK_IMPORTED_MODULE_1__.startOfISOWeek)(_date) - +(0,_startOfISOWeekYear_js__WEBPACK_IMPORTED_MODULE_2__.startOfISOWeekYear)(_date);\n\n  // Round the number of weeks to the nearest integer because the number of\n  // milliseconds in a week is not constant (e.g. it's different in the week of\n  // the daylight saving time clock shift).\n  return Math.round(diff / _constants_js__WEBPACK_IMPORTED_MODULE_0__.millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getISOWeek);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/getISOWeek.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/getISOWeekYear.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/getISOWeekYear.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   getISOWeekYear: () => (/* binding */ getISOWeekYear)\n/* harmony export */ });\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _startOfISOWeek_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./startOfISOWeek.js */ \"../react-ui/node_modules/date-fns/startOfISOWeek.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n\n/**\n * The {@link getISOWeekYear} function options.\n */\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nfunction getISOWeekYear(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_2__.toDate)(date, options?.in);\n  const year = _date.getFullYear();\n  const fourthOfJanuaryOfNextYear = (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(_date, 0);\n  fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n  fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n  const startOfNextYear = (0,_startOfISOWeek_js__WEBPACK_IMPORTED_MODULE_1__.startOfISOWeek)(fourthOfJanuaryOfNextYear);\n  const fourthOfJanuaryOfThisYear = (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(_date, 0);\n  fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n  fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n  const startOfThisYear = (0,_startOfISOWeek_js__WEBPACK_IMPORTED_MODULE_1__.startOfISOWeek)(fourthOfJanuaryOfThisYear);\n  if (_date.getTime() >= startOfNextYear.getTime()) {\n    return year + 1;\n  } else if (_date.getTime() >= startOfThisYear.getTime()) {\n    return year;\n  } else {\n    return year - 1;\n  }\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getISOWeekYear);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/getISOWeekYear.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/getWeek.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/date-fns/getWeek.js ***!
  \****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   getWeek: () => (/* binding */ getWeek)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants.js */ \"../react-ui/node_modules/date-fns/constants.js\");\n/* harmony import */ var _startOfWeek_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./startOfWeek.js */ \"../react-ui/node_modules/date-fns/startOfWeek.js\");\n/* harmony import */ var _startOfWeekYear_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./startOfWeekYear.js */ \"../react-ui/node_modules/date-fns/startOfWeekYear.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n\n\n/**\n * The {@link getWeek} function options.\n */\n\n/**\n * @name getWeek\n * @category Week Helpers\n * @summary Get the local week index of the given date.\n *\n * @description\n * Get the local week index of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The week\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005 with default options?\n * const result = getWeek(new Date(2005, 0, 2))\n * //=> 2\n *\n * @example\n * // Which week of the local week numbering year is 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January?\n * const result = getWeek(new Date(2005, 0, 2), {\n *   weekStartsOn: 1,\n *   firstWeekContainsDate: 4\n * })\n * //=> 53\n */\nfunction getWeek(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_3__.toDate)(date, options?.in);\n  const diff = +(0,_startOfWeek_js__WEBPACK_IMPORTED_MODULE_1__.startOfWeek)(_date, options) - +(0,_startOfWeekYear_js__WEBPACK_IMPORTED_MODULE_2__.startOfWeekYear)(_date, options);\n\n  // Round the number of weeks to the nearest integer because the number of\n  // milliseconds in a week is not constant (e.g. it's different in the week of\n  // the daylight saving time clock shift).\n  return Math.round(diff / _constants_js__WEBPACK_IMPORTED_MODULE_0__.millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getWeek);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/getWeek.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/getWeekYear.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/getWeekYear.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   getWeekYear: () => (/* binding */ getWeekYear)\n/* harmony export */ });\n/* harmony import */ var _lib_defaultOptions_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/defaultOptions.js */ \"../react-ui/node_modules/date-fns/_lib/defaultOptions.js\");\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _startOfWeek_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./startOfWeek.js */ \"../react-ui/node_modules/date-fns/startOfWeek.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n\n\n/**\n * The {@link getWeekYear} function options.\n */\n\n/**\n * @name getWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Get the local week-numbering year of the given date.\n *\n * @description\n * Get the local week-numbering year of the given date.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The local week-numbering year\n *\n * @example\n * // Which week numbering year is 26 December 2004 with the default settings?\n * const result = getWeekYear(new Date(2004, 11, 26))\n * //=> 2005\n *\n * @example\n * // Which week numbering year is 26 December 2004 if week starts on Saturday?\n * const result = getWeekYear(new Date(2004, 11, 26), { weekStartsOn: 6 })\n * //=> 2004\n *\n * @example\n * // Which week numbering year is 26 December 2004 if the first week contains 4 January?\n * const result = getWeekYear(new Date(2004, 11, 26), { firstWeekContainsDate: 4 })\n * //=> 2004\n */\nfunction getWeekYear(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_3__.toDate)(date, options?.in);\n  const year = _date.getFullYear();\n  const defaultOptions = (0,_lib_defaultOptions_js__WEBPACK_IMPORTED_MODULE_0__.getDefaultOptions)();\n  const firstWeekContainsDate = options?.firstWeekContainsDate ?? options?.locale?.options?.firstWeekContainsDate ?? defaultOptions.firstWeekContainsDate ?? defaultOptions.locale?.options?.firstWeekContainsDate ?? 1;\n  const firstWeekOfNextYear = (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_1__.constructFrom)(options?.in || date, 0);\n  firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);\n  firstWeekOfNextYear.setHours(0, 0, 0, 0);\n  const startOfNextYear = (0,_startOfWeek_js__WEBPACK_IMPORTED_MODULE_2__.startOfWeek)(firstWeekOfNextYear, options);\n  const firstWeekOfThisYear = (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_1__.constructFrom)(options?.in || date, 0);\n  firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);\n  firstWeekOfThisYear.setHours(0, 0, 0, 0);\n  const startOfThisYear = (0,_startOfWeek_js__WEBPACK_IMPORTED_MODULE_2__.startOfWeek)(firstWeekOfThisYear, options);\n  if (+_date >= +startOfNextYear) {\n    return year + 1;\n  } else if (+_date >= +startOfThisYear) {\n    return year;\n  } else {\n    return year - 1;\n  }\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getWeekYear);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/getWeekYear.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/isDate.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/date-fns/isDate.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   isDate: () => (/* binding */ isDate)\n/* harmony export */ });\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param value - The value to check\n *\n * @returns True if the given value is a date\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nfunction isDate(value) {\n  return value instanceof Date || typeof value === \"object\" && Object.prototype.toString.call(value) === \"[object Date]\";\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isDate);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/isDate.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/isLastDayOfMonth.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/isLastDayOfMonth.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   isLastDayOfMonth: () => (/* binding */ isLastDayOfMonth)\n/* harmony export */ });\n/* harmony import */ var _endOfDay_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./endOfDay.js */ \"../react-ui/node_modules/date-fns/endOfDay.js\");\n/* harmony import */ var _endOfMonth_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./endOfMonth.js */ \"../react-ui/node_modules/date-fns/endOfMonth.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * @param date - The date to check\n * @param options - An object with options\n *\n * @returns The date is the last day of a month\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * const result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\nfunction isLastDayOfMonth(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_2__.toDate)(date, options?.in);\n  return +(0,_endOfDay_js__WEBPACK_IMPORTED_MODULE_0__.endOfDay)(_date, options) === +(0,_endOfMonth_js__WEBPACK_IMPORTED_MODULE_1__.endOfMonth)(_date, options);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isLastDayOfMonth);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/isLastDayOfMonth.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/isValid.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/date-fns/isValid.js ***!
  \****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   isValid: () => (/* binding */ isValid)\n/* harmony export */ });\n/* harmony import */ var _isDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isDate.js */ \"../react-ui/node_modules/date-fns/isDate.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate](https://date-fns.org/docs/toDate)\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param date - The date to check\n *\n * @returns The date is valid\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertible into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nfunction isValid(date) {\n  return !(!(0,_isDate_js__WEBPACK_IMPORTED_MODULE_0__.isDate)(date) && typeof date !== \"number\" || isNaN(+(0,_toDate_js__WEBPACK_IMPORTED_MODULE_1__.toDate)(date)));\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isValid);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/isValid.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/locale/_lib/buildFormatLongFn.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/locale/_lib/buildFormatLongFn.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   buildFormatLongFn: () => (/* binding */ buildFormatLongFn)\n/* harmony export */ });\nfunction buildFormatLongFn(args) {\n  return (options = {}) => {\n    // TODO: Remove String()\n    const width = options.width ? String(options.width) : args.defaultWidth;\n    const format = args.formats[width] || args.formats[args.defaultWidth];\n    return format;\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/locale/_lib/buildFormatLongFn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/locale/_lib/buildLocalizeFn.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/locale/_lib/buildLocalizeFn.js ***!
  \************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   buildLocalizeFn: () => (/* binding */ buildLocalizeFn)\n/* harmony export */ });\n/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nfunction buildLocalizeFn(args) {\n  return (value, options) => {\n    const context = options?.context ? String(options.context) : \"standalone\";\n    let valuesArray;\n    if (context === \"formatting\" && args.formattingValues) {\n      const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n      const width = options?.width ? String(options.width) : defaultWidth;\n      valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n    } else {\n      const defaultWidth = args.defaultWidth;\n      const width = options?.width ? String(options.width) : args.defaultWidth;\n      valuesArray = args.values[width] || args.values[defaultWidth];\n    }\n    const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n    // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n    return valuesArray[index];\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/locale/_lib/buildLocalizeFn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/locale/_lib/buildMatchFn.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/locale/_lib/buildMatchFn.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   buildMatchFn: () => (/* binding */ buildMatchFn)\n/* harmony export */ });\nfunction buildMatchFn(args) {\n  return (string, options = {}) => {\n    const width = options.width;\n    const matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n    const matchResult = string.match(matchPattern);\n    if (!matchResult) {\n      return null;\n    }\n    const matchedString = matchResult[0];\n    const parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n    const key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, pattern => pattern.test(matchedString)) :\n    // [TODO] -- I challenge you to fix the type\n    findKey(parsePatterns, pattern => pattern.test(matchedString));\n    let value;\n    value = args.valueCallback ? args.valueCallback(key) : key;\n    value = options.valueCallback ?\n    // [TODO] -- I challenge you to fix the type\n    options.valueCallback(value) : value;\n    const rest = string.slice(matchedString.length);\n    return {\n      value,\n      rest\n    };\n  };\n}\nfunction findKey(object, predicate) {\n  for (const key in object) {\n    if (Object.prototype.hasOwnProperty.call(object, key) && predicate(object[key])) {\n      return key;\n    }\n  }\n  return undefined;\n}\nfunction findIndex(array, predicate) {\n  for (let key = 0; key < array.length; key++) {\n    if (predicate(array[key])) {\n      return key;\n    }\n  }\n  return undefined;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/locale/_lib/buildMatchFn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   buildMatchPatternFn: () => (/* binding */ buildMatchPatternFn)\n/* harmony export */ });\nfunction buildMatchPatternFn(args) {\n  return (string, options = {}) => {\n    const matchResult = string.match(args.matchPattern);\n    if (!matchResult) return null;\n    const matchedString = matchResult[0];\n    const parseResult = string.match(args.parsePattern);\n    if (!parseResult) return null;\n    let value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n\n    // [TODO] I challenge you to fix the type\n    value = options.valueCallback ? options.valueCallback(value) : value;\n    const rest = string.slice(matchedString.length);\n    return {\n      value,\n      rest\n    };\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/locale/en-US.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/locale/en-US.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   enUS: () => (/* binding */ enUS)\n/* harmony export */ });\n/* harmony import */ var _en_US_lib_formatDistance_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./en-US/_lib/formatDistance.js */ \"../react-ui/node_modules/date-fns/locale/en-US/_lib/formatDistance.js\");\n/* harmony import */ var _en_US_lib_formatLong_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./en-US/_lib/formatLong.js */ \"../react-ui/node_modules/date-fns/locale/en-US/_lib/formatLong.js\");\n/* harmony import */ var _en_US_lib_formatRelative_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./en-US/_lib/formatRelative.js */ \"../react-ui/node_modules/date-fns/locale/en-US/_lib/formatRelative.js\");\n/* harmony import */ var _en_US_lib_localize_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./en-US/_lib/localize.js */ \"../react-ui/node_modules/date-fns/locale/en-US/_lib/localize.js\");\n/* harmony import */ var _en_US_lib_match_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./en-US/_lib/match.js */ \"../react-ui/node_modules/date-fns/locale/en-US/_lib/match.js\");\n\n\n\n\n\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nconst enUS = {\n  code: \"en-US\",\n  formatDistance: _en_US_lib_formatDistance_js__WEBPACK_IMPORTED_MODULE_0__.formatDistance,\n  formatLong: _en_US_lib_formatLong_js__WEBPACK_IMPORTED_MODULE_1__.formatLong,\n  formatRelative: _en_US_lib_formatRelative_js__WEBPACK_IMPORTED_MODULE_2__.formatRelative,\n  localize: _en_US_lib_localize_js__WEBPACK_IMPORTED_MODULE_3__.localize,\n  match: _en_US_lib_match_js__WEBPACK_IMPORTED_MODULE_4__.match,\n  options: {\n    weekStartsOn: 0 /* Sunday */,\n    firstWeekContainsDate: 1\n  }\n};\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (enUS);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/locale/en-US.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/locale/en-US/_lib/formatDistance.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/locale/en-US/_lib/formatDistance.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   formatDistance: () => (/* binding */ formatDistance)\n/* harmony export */ });\nconst formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"less than a second\",\n    other: \"less than {{count}} seconds\"\n  },\n  xSeconds: {\n    one: \"1 second\",\n    other: \"{{count}} seconds\"\n  },\n  halfAMinute: \"half a minute\",\n  lessThanXMinutes: {\n    one: \"less than a minute\",\n    other: \"less than {{count}} minutes\"\n  },\n  xMinutes: {\n    one: \"1 minute\",\n    other: \"{{count}} minutes\"\n  },\n  aboutXHours: {\n    one: \"about 1 hour\",\n    other: \"about {{count}} hours\"\n  },\n  xHours: {\n    one: \"1 hour\",\n    other: \"{{count}} hours\"\n  },\n  xDays: {\n    one: \"1 day\",\n    other: \"{{count}} days\"\n  },\n  aboutXWeeks: {\n    one: \"about 1 week\",\n    other: \"about {{count}} weeks\"\n  },\n  xWeeks: {\n    one: \"1 week\",\n    other: \"{{count}} weeks\"\n  },\n  aboutXMonths: {\n    one: \"about 1 month\",\n    other: \"about {{count}} months\"\n  },\n  xMonths: {\n    one: \"1 month\",\n    other: \"{{count}} months\"\n  },\n  aboutXYears: {\n    one: \"about 1 year\",\n    other: \"about {{count}} years\"\n  },\n  xYears: {\n    one: \"1 year\",\n    other: \"{{count}} years\"\n  },\n  overXYears: {\n    one: \"over 1 year\",\n    other: \"over {{count}} years\"\n  },\n  almostXYears: {\n    one: \"almost 1 year\",\n    other: \"almost {{count}} years\"\n  }\n};\nconst formatDistance = (token, count, options) => {\n  let result;\n  const tokenValue = formatDistanceLocale[token];\n  if (typeof tokenValue === \"string\") {\n    result = tokenValue;\n  } else if (count === 1) {\n    result = tokenValue.one;\n  } else {\n    result = tokenValue.other.replace(\"{{count}}\", count.toString());\n  }\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"in \" + result;\n    } else {\n      return result + \" ago\";\n    }\n  }\n  return result;\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/locale/en-US/_lib/formatDistance.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/locale/en-US/_lib/formatLong.js":
/*!*************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/locale/en-US/_lib/formatLong.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   formatLong: () => (/* binding */ formatLong)\n/* harmony export */ });\n/* harmony import */ var _lib_buildFormatLongFn_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../_lib/buildFormatLongFn.js */ \"../react-ui/node_modules/date-fns/locale/_lib/buildFormatLongFn.js\");\n\nconst dateFormats = {\n  full: \"EEEE, MMMM do, y\",\n  long: \"MMMM do, y\",\n  medium: \"MMM d, y\",\n  short: \"MM/dd/yyyy\"\n};\nconst timeFormats = {\n  full: \"h:mm:ss a zzzz\",\n  long: \"h:mm:ss a z\",\n  medium: \"h:mm:ss a\",\n  short: \"h:mm a\"\n};\nconst dateTimeFormats = {\n  full: \"{{date}} 'at' {{time}}\",\n  long: \"{{date}} 'at' {{time}}\",\n  medium: \"{{date}}, {{time}}\",\n  short: \"{{date}}, {{time}}\"\n};\nconst formatLong = {\n  date: (0,_lib_buildFormatLongFn_js__WEBPACK_IMPORTED_MODULE_0__.buildFormatLongFn)({\n    formats: dateFormats,\n    defaultWidth: \"full\"\n  }),\n  time: (0,_lib_buildFormatLongFn_js__WEBPACK_IMPORTED_MODULE_0__.buildFormatLongFn)({\n    formats: timeFormats,\n    defaultWidth: \"full\"\n  }),\n  dateTime: (0,_lib_buildFormatLongFn_js__WEBPACK_IMPORTED_MODULE_0__.buildFormatLongFn)({\n    formats: dateTimeFormats,\n    defaultWidth: \"full\"\n  })\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/locale/en-US/_lib/formatLong.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/locale/en-US/_lib/formatRelative.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/locale/en-US/_lib/formatRelative.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   formatRelative: () => (/* binding */ formatRelative)\n/* harmony export */ });\nconst formatRelativeLocale = {\n  lastWeek: \"'last' eeee 'at' p\",\n  yesterday: \"'yesterday at' p\",\n  today: \"'today at' p\",\n  tomorrow: \"'tomorrow at' p\",\n  nextWeek: \"eeee 'at' p\",\n  other: \"P\"\n};\nconst formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale[token];\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/locale/en-US/_lib/formatRelative.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/locale/en-US/_lib/localize.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/locale/en-US/_lib/localize.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   localize: () => (/* binding */ localize)\n/* harmony export */ });\n/* harmony import */ var _lib_buildLocalizeFn_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../_lib/buildLocalizeFn.js */ \"../react-ui/node_modules/date-fns/locale/_lib/buildLocalizeFn.js\");\n\nconst eraValues = {\n  narrow: [\"B\", \"A\"],\n  abbreviated: [\"BC\", \"AD\"],\n  wide: [\"Before Christ\", \"Anno Domini\"]\n};\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"]\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n  narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n  wide: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\n};\nconst dayValues = {\n  narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n  short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n  abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n  wide: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]\n};\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"mi\",\n    noon: \"n\",\n    morning: \"morning\",\n    afternoon: \"afternoon\",\n    evening: \"evening\",\n    night: \"night\"\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"midnight\",\n    noon: \"noon\",\n    morning: \"morning\",\n    afternoon: \"afternoon\",\n    evening: \"evening\",\n    night: \"night\"\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"midnight\",\n    noon: \"noon\",\n    morning: \"morning\",\n    afternoon: \"afternoon\",\n    evening: \"evening\",\n    night: \"night\"\n  }\n};\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"mi\",\n    noon: \"n\",\n    morning: \"in the morning\",\n    afternoon: \"in the afternoon\",\n    evening: \"in the evening\",\n    night: \"at night\"\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"midnight\",\n    noon: \"noon\",\n    morning: \"in the morning\",\n    afternoon: \"in the afternoon\",\n    evening: \"in the evening\",\n    night: \"at night\"\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"midnight\",\n    noon: \"noon\",\n    morning: \"in the morning\",\n    afternoon: \"in the afternoon\",\n    evening: \"in the evening\",\n    night: \"at night\"\n  }\n};\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n\n  // If ordinal numbers depend on context, for example,\n  // if they are different for different grammatical genders,\n  // use `options.unit`.\n  //\n  // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n  // 'day', 'hour', 'minute', 'second'.\n\n  const rem100 = number % 100;\n  if (rem100 > 20 || rem100 < 10) {\n    switch (rem100 % 10) {\n      case 1:\n        return number + \"st\";\n      case 2:\n        return number + \"nd\";\n      case 3:\n        return number + \"rd\";\n    }\n  }\n  return number + \"th\";\n};\nconst localize = {\n  ordinalNumber,\n  era: (0,_lib_buildLocalizeFn_js__WEBPACK_IMPORTED_MODULE_0__.buildLocalizeFn)({\n    values: eraValues,\n    defaultWidth: \"wide\"\n  }),\n  quarter: (0,_lib_buildLocalizeFn_js__WEBPACK_IMPORTED_MODULE_0__.buildLocalizeFn)({\n    values: quarterValues,\n    defaultWidth: \"wide\",\n    argumentCallback: quarter => quarter - 1\n  }),\n  month: (0,_lib_buildLocalizeFn_js__WEBPACK_IMPORTED_MODULE_0__.buildLocalizeFn)({\n    values: monthValues,\n    defaultWidth: \"wide\"\n  }),\n  day: (0,_lib_buildLocalizeFn_js__WEBPACK_IMPORTED_MODULE_0__.buildLocalizeFn)({\n    values: dayValues,\n    defaultWidth: \"wide\"\n  }),\n  dayPeriod: (0,_lib_buildLocalizeFn_js__WEBPACK_IMPORTED_MODULE_0__.buildLocalizeFn)({\n    values: dayPeriodValues,\n    defaultWidth: \"wide\",\n    formattingValues: formattingDayPeriodValues,\n    defaultFormattingWidth: \"wide\"\n  })\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/locale/en-US/_lib/localize.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/locale/en-US/_lib/match.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/locale/en-US/_lib/match.js ***!
  \********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   match: () => (/* binding */ match)\n/* harmony export */ });\n/* harmony import */ var _lib_buildMatchFn_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../_lib/buildMatchFn.js */ \"../react-ui/node_modules/date-fns/locale/_lib/buildMatchFn.js\");\n/* harmony import */ var _lib_buildMatchPatternFn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../_lib/buildMatchPatternFn.js */ \"../react-ui/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js\");\n\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\nconst matchEraPatterns = {\n  narrow: /^(b|a)/i,\n  abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n  wide: /^(before christ|before common era|anno domini|common era)/i\n};\nconst parseEraPatterns = {\n  any: [/^b/i, /^(a|c)/i]\n};\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i]\n};\nconst matchMonthPatterns = {\n  narrow: /^[jfmasond]/i,\n  abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n  wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nconst parseMonthPatterns = {\n  narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n  any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nconst matchDayPatterns = {\n  narrow: /^[smtwf]/i,\n  short: /^(su|mo|tu|we|th|fr|sa)/i,\n  abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n  wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nconst parseDayPatterns = {\n  narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n  any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n  any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^mi/i,\n    noon: /^no/i,\n    morning: /morning/i,\n    afternoon: /afternoon/i,\n    evening: /evening/i,\n    night: /night/i\n  }\n};\nconst match = {\n  ordinalNumber: (0,_lib_buildMatchPatternFn_js__WEBPACK_IMPORTED_MODULE_1__.buildMatchPatternFn)({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: value => parseInt(value, 10)\n  }),\n  era: (0,_lib_buildMatchFn_js__WEBPACK_IMPORTED_MODULE_0__.buildMatchFn)({\n    matchPatterns: matchEraPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseEraPatterns,\n    defaultParseWidth: \"any\"\n  }),\n  quarter: (0,_lib_buildMatchFn_js__WEBPACK_IMPORTED_MODULE_0__.buildMatchFn)({\n    matchPatterns: matchQuarterPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseQuarterPatterns,\n    defaultParseWidth: \"any\",\n    valueCallback: index => index + 1\n  }),\n  month: (0,_lib_buildMatchFn_js__WEBPACK_IMPORTED_MODULE_0__.buildMatchFn)({\n    matchPatterns: matchMonthPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseMonthPatterns,\n    defaultParseWidth: \"any\"\n  }),\n  day: (0,_lib_buildMatchFn_js__WEBPACK_IMPORTED_MODULE_0__.buildMatchFn)({\n    matchPatterns: matchDayPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseDayPatterns,\n    defaultParseWidth: \"any\"\n  }),\n  dayPeriod: (0,_lib_buildMatchFn_js__WEBPACK_IMPORTED_MODULE_0__.buildMatchFn)({\n    matchPatterns: matchDayPeriodPatterns,\n    defaultMatchWidth: \"any\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\"\n  })\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/locale/en-US/_lib/match.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse.js":
/*!**************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse.js ***!
  \**************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   longFormatters: () => (/* reexport safe */ _lib_format_longFormatters_js__WEBPACK_IMPORTED_MODULE_1__.longFormatters),\n/* harmony export */   parse: () => (/* binding */ parse),\n/* harmony export */   parsers: () => (/* reexport safe */ _parse_lib_parsers_js__WEBPACK_IMPORTED_MODULE_7__.parsers)\n/* harmony export */ });\n/* harmony import */ var _lib_defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/defaultLocale.js */ \"../react-ui/node_modules/date-fns/locale/en-US.js\");\n/* harmony import */ var _lib_format_longFormatters_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_lib/format/longFormatters.js */ \"../react-ui/node_modules/date-fns/_lib/format/longFormatters.js\");\n/* harmony import */ var _lib_protectedTokens_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_lib/protectedTokens.js */ \"../react-ui/node_modules/date-fns/_lib/protectedTokens.js\");\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _getDefaultOptions_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getDefaultOptions.js */ \"../react-ui/node_modules/date-fns/getDefaultOptions.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n/* harmony import */ var _parse_lib_Setter_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./parse/_lib/Setter.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Setter.js\");\n/* harmony import */ var _parse_lib_parsers_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./parse/_lib/parsers.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers.js\");\n\n\n\n\n\n\n\n\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\n\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n//   (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n//   except a single quote symbol, which ends the sequence.\n//   Two quote characters do not end the sequence.\n//   If there is no matching single quote\n//   then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit                            |Prior| Pattern | Result examples                   | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era                             | 140 | G..GGG  | AD, BC                            |       |\n * |                                 |     | GGGG    | Anno Domini, Before Christ        | 2     |\n * |                                 |     | GGGGG   | A, B                              |       |\n * | Calendar year                   | 130 | y       | 44, 1, 1900, 2017, 9999           | 4     |\n * |                                 |     | yo      | 44th, 1st, 1900th, 9999999th      | 4,5   |\n * |                                 |     | yy      | 44, 01, 00, 17                    | 4     |\n * |                                 |     | yyy     | 044, 001, 123, 999                | 4     |\n * |                                 |     | yyyy    | 0044, 0001, 1900, 2017            | 4     |\n * |                                 |     | yyyyy   | ...                               | 2,4   |\n * | Local week-numbering year       | 130 | Y       | 44, 1, 1900, 2017, 9000           | 4     |\n * |                                 |     | Yo      | 44th, 1st, 1900th, 9999999th      | 4,5   |\n * |                                 |     | YY      | 44, 01, 00, 17                    | 4,6   |\n * |                                 |     | YYY     | 044, 001, 123, 999                | 4     |\n * |                                 |     | YYYY    | 0044, 0001, 1900, 2017            | 4,6   |\n * |                                 |     | YYYYY   | ...                               | 2,4   |\n * | ISO week-numbering year         | 130 | R       | -43, 1, 1900, 2017, 9999, -9999   | 4,5   |\n * |                                 |     | RR      | -43, 01, 00, 17                   | 4,5   |\n * |                                 |     | RRR     | -043, 001, 123, 999, -999         | 4,5   |\n * |                                 |     | RRRR    | -0043, 0001, 2017, 9999, -9999    | 4,5   |\n * |                                 |     | RRRRR   | ...                               | 2,4,5 |\n * | Extended year                   | 130 | u       | -43, 1, 1900, 2017, 9999, -999    | 4     |\n * |                                 |     | uu      | -43, 01, 99, -99                  | 4     |\n * |                                 |     | uuu     | -043, 001, 123, 999, -999         | 4     |\n * |                                 |     | uuuu    | -0043, 0001, 2017, 9999, -9999    | 4     |\n * |                                 |     | uuuuu   | ...                               | 2,4   |\n * | Quarter (formatting)            | 120 | Q       | 1, 2, 3, 4                        |       |\n * |                                 |     | Qo      | 1st, 2nd, 3rd, 4th                | 5     |\n * |                                 |     | QQ      | 01, 02, 03, 04                    |       |\n * |                                 |     | QQQ     | Q1, Q2, Q3, Q4                    |       |\n * |                                 |     | QQQQ    | 1st quarter, 2nd quarter, ...     | 2     |\n * |                                 |     | QQQQQ   | 1, 2, 3, 4                        | 4     |\n * | Quarter (stand-alone)           | 120 | q       | 1, 2, 3, 4                        |       |\n * |                                 |     | qo      | 1st, 2nd, 3rd, 4th                | 5     |\n * |                                 |     | qq      | 01, 02, 03, 04                    |       |\n * |                                 |     | qqq     | Q1, Q2, Q3, Q4                    |       |\n * |                                 |     | qqqq    | 1st quarter, 2nd quarter, ...     | 2     |\n * |                                 |     | qqqqq   | 1, 2, 3, 4                        | 3     |\n * | Month (formatting)              | 110 | M       | 1, 2, ..., 12                     |       |\n * |                                 |     | Mo      | 1st, 2nd, ..., 12th               | 5     |\n * |                                 |     | MM      | 01, 02, ..., 12                   |       |\n * |                                 |     | MMM     | Jan, Feb, ..., Dec                |       |\n * |                                 |     | MMMM    | January, February, ..., December  | 2     |\n * |                                 |     | MMMMM   | J, F, ..., D                      |       |\n * | Month (stand-alone)             | 110 | L       | 1, 2, ..., 12                     |       |\n * |                                 |     | Lo      | 1st, 2nd, ..., 12th               | 5     |\n * |                                 |     | LL      | 01, 02, ..., 12                   |       |\n * |                                 |     | LLL     | Jan, Feb, ..., Dec                |       |\n * |                                 |     | LLLL    | January, February, ..., December  | 2     |\n * |                                 |     | LLLLL   | J, F, ..., D                      |       |\n * | Local week of year              | 100 | w       | 1, 2, ..., 53                     |       |\n * |                                 |     | wo      | 1st, 2nd, ..., 53th               | 5     |\n * |                                 |     | ww      | 01, 02, ..., 53                   |       |\n * | ISO week of year                | 100 | I       | 1, 2, ..., 53                     | 5     |\n * |                                 |     | Io      | 1st, 2nd, ..., 53th               | 5     |\n * |                                 |     | II      | 01, 02, ..., 53                   | 5     |\n * | Day of month                    |  90 | d       | 1, 2, ..., 31                     |       |\n * |                                 |     | do      | 1st, 2nd, ..., 31st               | 5     |\n * |                                 |     | dd      | 01, 02, ..., 31                   |       |\n * | Day of year                     |  90 | D       | 1, 2, ..., 365, 366               | 7     |\n * |                                 |     | Do      | 1st, 2nd, ..., 365th, 366th       | 5     |\n * |                                 |     | DD      | 01, 02, ..., 365, 366             | 7     |\n * |                                 |     | DDD     | 001, 002, ..., 365, 366           |       |\n * |                                 |     | DDDD    | ...                               | 2     |\n * | Day of week (formatting)        |  90 | E..EEE  | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 |     | EEEE    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 |     | EEEEE   | M, T, W, T, F, S, S               |       |\n * |                                 |     | EEEEEE  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | ISO day of week (formatting)    |  90 | i       | 1, 2, 3, ..., 7                   | 5     |\n * |                                 |     | io      | 1st, 2nd, ..., 7th                | 5     |\n * |                                 |     | ii      | 01, 02, ..., 07                   | 5     |\n * |                                 |     | iii     | Mon, Tue, Wed, ..., Sun           | 5     |\n * |                                 |     | iiii    | Monday, Tuesday, ..., Sunday      | 2,5   |\n * |                                 |     | iiiii   | M, T, W, T, F, S, S               | 5     |\n * |                                 |     | iiiiii  | Mo, Tu, We, Th, Fr, Sa, Su        | 5     |\n * | Local day of week (formatting)  |  90 | e       | 2, 3, 4, ..., 1                   |       |\n * |                                 |     | eo      | 2nd, 3rd, ..., 1st                | 5     |\n * |                                 |     | ee      | 02, 03, ..., 01                   |       |\n * |                                 |     | eee     | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 |     | eeee    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 |     | eeeee   | M, T, W, T, F, S, S               |       |\n * |                                 |     | eeeeee  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | Local day of week (stand-alone) |  90 | c       | 2, 3, 4, ..., 1                   |       |\n * |                                 |     | co      | 2nd, 3rd, ..., 1st                | 5     |\n * |                                 |     | cc      | 02, 03, ..., 01                   |       |\n * |                                 |     | ccc     | Mon, Tue, Wed, ..., Sun           |       |\n * |                                 |     | cccc    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 |     | ccccc   | M, T, W, T, F, S, S               |       |\n * |                                 |     | cccccc  | Mo, Tu, We, Th, Fr, Sa, Su        |       |\n * | AM, PM                          |  80 | a..aaa  | AM, PM                            |       |\n * |                                 |     | aaaa    | a.m., p.m.                        | 2     |\n * |                                 |     | aaaaa   | a, p                              |       |\n * | AM, PM, noon, midnight          |  80 | b..bbb  | AM, PM, noon, midnight            |       |\n * |                                 |     | bbbb    | a.m., p.m., noon, midnight        | 2     |\n * |                                 |     | bbbbb   | a, p, n, mi                       |       |\n * | Flexible day period             |  80 | B..BBB  | at night, in the morning, ...     |       |\n * |                                 |     | BBBB    | at night, in the morning, ...     | 2     |\n * |                                 |     | BBBBB   | at night, in the morning, ...     |       |\n * | Hour [1-12]                     |  70 | h       | 1, 2, ..., 11, 12                 |       |\n * |                                 |     | ho      | 1st, 2nd, ..., 11th, 12th         | 5     |\n * |                                 |     | hh      | 01, 02, ..., 11, 12               |       |\n * | Hour [0-23]                     |  70 | H       | 0, 1, 2, ..., 23                  |       |\n * |                                 |     | Ho      | 0th, 1st, 2nd, ..., 23rd          | 5     |\n * |                                 |     | HH      | 00, 01, 02, ..., 23               |       |\n * | Hour [0-11]                     |  70 | K       | 1, 2, ..., 11, 0                  |       |\n * |                                 |     | Ko      | 1st, 2nd, ..., 11th, 0th          | 5     |\n * |                                 |     | KK      | 01, 02, ..., 11, 00               |       |\n * | Hour [1-24]                     |  70 | k       | 24, 1, 2, ..., 23                 |       |\n * |                                 |     | ko      | 24th, 1st, 2nd, ..., 23rd         | 5     |\n * |                                 |     | kk      | 24, 01, 02, ..., 23               |       |\n * | Minute                          |  60 | m       | 0, 1, ..., 59                     |       |\n * |                                 |     | mo      | 0th, 1st, ..., 59th               | 5     |\n * |                                 |     | mm      | 00, 01, ..., 59                   |       |\n * | Second                          |  50 | s       | 0, 1, ..., 59                     |       |\n * |                                 |     | so      | 0th, 1st, ..., 59th               | 5     |\n * |                                 |     | ss      | 00, 01, ..., 59                   |       |\n * | Seconds timestamp               |  40 | t       | 512969520                         |       |\n * |                                 |     | tt      | ...                               | 2     |\n * | Fraction of second              |  30 | S       | 0, 1, ..., 9                      |       |\n * |                                 |     | SS      | 00, 01, ..., 99                   |       |\n * |                                 |     | SSS     | 000, 001, ..., 999                |       |\n * |                                 |     | SSSS    | ...                               | 2     |\n * | Milliseconds timestamp          |  20 | T       | 512969520900                      |       |\n * |                                 |     | TT      | ...                               | 2     |\n * | Timezone (ISO-8601 w/ Z)        |  10 | X       | -08, +0530, Z                     |       |\n * |                                 |     | XX      | -0800, +0530, Z                   |       |\n * |                                 |     | XXX     | -08:00, +05:30, Z                 |       |\n * |                                 |     | XXXX    | -0800, +0530, Z, +123456          | 2     |\n * |                                 |     | XXXXX   | -08:00, +05:30, Z, +12:34:56      |       |\n * | Timezone (ISO-8601 w/o Z)       |  10 | x       | -08, +0530, +00                   |       |\n * |                                 |     | xx      | -0800, +0530, +0000               |       |\n * |                                 |     | xxx     | -08:00, +05:30, +00:00            | 2     |\n * |                                 |     | xxxx    | -0800, +0530, +0000, +123456      |       |\n * |                                 |     | xxxxx   | -08:00, +05:30, +00:00, +12:34:56 |       |\n * | Long localized date             |  NA | P       | 05/29/1453                        | 5,8   |\n * |                                 |     | PP      | May 29, 1453                      |       |\n * |                                 |     | PPP     | May 29th, 1453                    |       |\n * |                                 |     | PPPP    | Sunday, May 29th, 1453            | 2,5,8 |\n * | Long localized time             |  NA | p       | 12:00 AM                          | 5,8   |\n * |                                 |     | pp      | 12:00:00 AM                       |       |\n * | Combination of date and time    |  NA | Pp      | 05/29/1453, 12:00 AM              |       |\n * |                                 |     | PPpp    | May 29, 1453, 12:00:00 AM         |       |\n * |                                 |     | PPPpp   | May 29th, 1453 at ...             |       |\n * |                                 |     | PPPPpp  | Sunday, May 29th, 1453 at ...     | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n *    are the same as \"stand-alone\" units, but are different in some languages.\n *    \"Formatting\" units are declined according to the rules of the language\n *    in the context of a date. \"Stand-alone\" units are always nominative singular.\n *    In `format` function, they will produce different result:\n *\n *    `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n *    `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n *    `parse` will try to match both formatting and stand-alone units interchangeably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n *    the single quote characters (see below).\n *    If the sequence is longer than listed in table:\n *    - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n *      as wide as the sequence\n *    - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n *      These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n *    These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n *    | Year | `y` | `u` |\n *    |------|-----|-----|\n *    | AC 1 |   1 |   1 |\n *    | BC 1 |   1 |   0 |\n *    | BC 2 |   2 |  -1 |\n *\n *    Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n *    `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n *    `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n *    while `uu` will just assign the year as is:\n *\n *    `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n *    `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n *    The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n *    except local week-numbering years are dependent on `options.weekStartsOn`\n *    and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n *    and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n *    - `i`: ISO day of week\n *    - `I`: ISO week of year\n *    - `R`: ISO week-numbering year\n *    - `o`: ordinal number modifier\n *    - `P`: long localized date\n *    - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n *    You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n *    You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n *    on the given locale.\n *\n *    using `en-US` locale: `P` => `MM/dd/yyyy`\n *    using `en-US` locale: `p` => `hh:mm a`\n *    using `pt-BR` locale: `P` => `dd/MM/yyyy`\n *    using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n *   see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *   see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n *   locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nfunction parse(dateStr, formatStr, referenceDate, options) {\n  const invalidDate = () => (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_3__.constructFrom)(options?.in || referenceDate, NaN);\n  const defaultOptions = (0,_getDefaultOptions_js__WEBPACK_IMPORTED_MODULE_4__.getDefaultOptions)();\n  const locale = options?.locale ?? defaultOptions.locale ?? _lib_defaultLocale_js__WEBPACK_IMPORTED_MODULE_0__.enUS;\n  const firstWeekContainsDate = options?.firstWeekContainsDate ?? options?.locale?.options?.firstWeekContainsDate ?? defaultOptions.firstWeekContainsDate ?? defaultOptions.locale?.options?.firstWeekContainsDate ?? 1;\n  const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions.weekStartsOn ?? defaultOptions.locale?.options?.weekStartsOn ?? 0;\n  if (!formatStr) return dateStr ? invalidDate() : (0,_toDate_js__WEBPACK_IMPORTED_MODULE_5__.toDate)(referenceDate, options?.in);\n  const subFnOptions = {\n    firstWeekContainsDate,\n    weekStartsOn,\n    locale\n  };\n\n  // If timezone isn't specified, it will try to use the context or\n  // the reference date and fallback to the system time zone.\n  const setters = [new _parse_lib_Setter_js__WEBPACK_IMPORTED_MODULE_6__.DateTimezoneSetter(options?.in, referenceDate)];\n  const tokens = formatStr.match(longFormattingTokensRegExp).map(substring => {\n    const firstCharacter = substring[0];\n    if (firstCharacter in _lib_format_longFormatters_js__WEBPACK_IMPORTED_MODULE_1__.longFormatters) {\n      const longFormatter = _lib_format_longFormatters_js__WEBPACK_IMPORTED_MODULE_1__.longFormatters[firstCharacter];\n      return longFormatter(substring, locale.formatLong);\n    }\n    return substring;\n  }).join(\"\").match(formattingTokensRegExp);\n  const usedTokens = [];\n  for (let token of tokens) {\n    if (!options?.useAdditionalWeekYearTokens && (0,_lib_protectedTokens_js__WEBPACK_IMPORTED_MODULE_2__.isProtectedWeekYearToken)(token)) {\n      (0,_lib_protectedTokens_js__WEBPACK_IMPORTED_MODULE_2__.warnOrThrowProtectedError)(token, formatStr, dateStr);\n    }\n    if (!options?.useAdditionalDayOfYearTokens && (0,_lib_protectedTokens_js__WEBPACK_IMPORTED_MODULE_2__.isProtectedDayOfYearToken)(token)) {\n      (0,_lib_protectedTokens_js__WEBPACK_IMPORTED_MODULE_2__.warnOrThrowProtectedError)(token, formatStr, dateStr);\n    }\n    const firstCharacter = token[0];\n    const parser = _parse_lib_parsers_js__WEBPACK_IMPORTED_MODULE_7__.parsers[firstCharacter];\n    if (parser) {\n      const {\n        incompatibleTokens\n      } = parser;\n      if (Array.isArray(incompatibleTokens)) {\n        const incompatibleToken = usedTokens.find(usedToken => incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter);\n        if (incompatibleToken) {\n          throw new RangeError(`The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`);\n        }\n      } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n        throw new RangeError(`The format string mustn't contain \\`${token}\\` and any other token at the same time`);\n      }\n      usedTokens.push({\n        token: firstCharacter,\n        fullToken: token\n      });\n      const parseResult = parser.run(dateStr, token, locale.match, subFnOptions);\n      if (!parseResult) {\n        return invalidDate();\n      }\n      setters.push(parseResult.setter);\n      dateStr = parseResult.rest;\n    } else {\n      if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n        throw new RangeError(\"Format string contains an unescaped latin alphabet character `\" + firstCharacter + \"`\");\n      }\n\n      // Replace two single quote characters with one single quote character\n      if (token === \"''\") {\n        token = \"'\";\n      } else if (firstCharacter === \"'\") {\n        token = cleanEscapedString(token);\n      }\n\n      // Cut token from string, or, if string doesn't match the token, return Invalid Date\n      if (dateStr.indexOf(token) === 0) {\n        dateStr = dateStr.slice(token.length);\n      } else {\n        return invalidDate();\n      }\n    }\n  }\n\n  // Check if the remaining input contains something other than whitespace\n  if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n    return invalidDate();\n  }\n  const uniquePrioritySetters = setters.map(setter => setter.priority).sort((a, b) => b - a).filter((priority, index, array) => array.indexOf(priority) === index).map(priority => setters.filter(setter => setter.priority === priority).sort((a, b) => b.subPriority - a.subPriority)).map(setterArray => setterArray[0]);\n  let date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_5__.toDate)(referenceDate, options?.in);\n  if (isNaN(+date)) return invalidDate();\n  const flags = {};\n  for (const setter of uniquePrioritySetters) {\n    if (!setter.validate(date, subFnOptions)) {\n      return invalidDate();\n    }\n    const result = setter.set(date, flags, subFnOptions);\n    // Result is tuple (date, flags)\n    if (Array.isArray(result)) {\n      date = result[0];\n      Object.assign(flags, result[1]);\n      // Result is date\n    } else {\n      date = result;\n    }\n  }\n  return date;\n}\nfunction cleanEscapedString(input) {\n  return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (parse);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/Parser.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/Parser.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Parser: () => (/* binding */ Parser)\n/* harmony export */ });\n/* harmony import */ var _Setter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Setter.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Setter.js\");\n\nclass Parser {\n  run(dateString, token, match, options) {\n    const result = this.parse(dateString, token, match, options);\n    if (!result) {\n      return null;\n    }\n    return {\n      setter: new _Setter_js__WEBPACK_IMPORTED_MODULE_0__.ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n      rest: result.rest\n    };\n  }\n  validate(_utcDate, _value, _options) {\n    return true;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/Parser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/Setter.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/Setter.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DateTimezoneSetter: () => (/* binding */ DateTimezoneSetter),\n/* harmony export */   Setter: () => (/* binding */ Setter),\n/* harmony export */   ValueSetter: () => (/* binding */ ValueSetter)\n/* harmony export */ });\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _transpose_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../transpose.js */ \"../react-ui/node_modules/date-fns/transpose.js\");\n\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\nclass Setter {\n  subPriority = 0;\n  validate(_utcDate, _options) {\n    return true;\n  }\n}\nclass ValueSetter extends Setter {\n  constructor(value, validateValue, setValue, priority, subPriority) {\n    super();\n    this.value = value;\n    this.validateValue = validateValue;\n    this.setValue = setValue;\n    this.priority = priority;\n    if (subPriority) {\n      this.subPriority = subPriority;\n    }\n  }\n  validate(date, options) {\n    return this.validateValue(date, this.value, options);\n  }\n  set(date, flags, options) {\n    return this.setValue(date, flags, this.value, options);\n  }\n}\nclass DateTimezoneSetter extends Setter {\n  priority = TIMEZONE_UNIT_PRIORITY;\n  subPriority = -1;\n  constructor(context, reference) {\n    super();\n    this.context = context || (date => (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(reference, date));\n  }\n  set(date, flags) {\n    if (flags.timestampIsSet) return date;\n    return (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(date, (0,_transpose_js__WEBPACK_IMPORTED_MODULE_1__.transpose)(date, this.context));\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/Setter.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/constants.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/constants.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   numericPatterns: () => (/* binding */ numericPatterns),\n/* harmony export */   timezonePatterns: () => (/* binding */ timezonePatterns)\n/* harmony export */ });\nconst numericPatterns = {\n  month: /^(1[0-2]|0?\\d)/,\n  // 0 to 12\n  date: /^(3[0-1]|[0-2]?\\d)/,\n  // 0 to 31\n  dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n  // 0 to 366\n  week: /^(5[0-3]|[0-4]?\\d)/,\n  // 0 to 53\n  hour23h: /^(2[0-3]|[0-1]?\\d)/,\n  // 0 to 23\n  hour24h: /^(2[0-4]|[0-1]?\\d)/,\n  // 0 to 24\n  hour11h: /^(1[0-1]|0?\\d)/,\n  // 0 to 11\n  hour12h: /^(1[0-2]|0?\\d)/,\n  // 0 to 12\n  minute: /^[0-5]?\\d/,\n  // 0 to 59\n  second: /^[0-5]?\\d/,\n  // 0 to 59\n\n  singleDigit: /^\\d/,\n  // 0 to 9\n  twoDigits: /^\\d{1,2}/,\n  // 0 to 99\n  threeDigits: /^\\d{1,3}/,\n  // 0 to 999\n  fourDigits: /^\\d{1,4}/,\n  // 0 to 9999\n\n  anyDigitsSigned: /^-?\\d+/,\n  singleDigitSigned: /^-?\\d/,\n  // 0 to 9, -0 to -9\n  twoDigitsSigned: /^-?\\d{1,2}/,\n  // 0 to 99, -0 to -99\n  threeDigitsSigned: /^-?\\d{1,3}/,\n  // 0 to 999, -0 to -999\n  fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\nconst timezonePatterns = {\n  basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n  basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n  basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n  extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n  extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/constants.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers.js ***!
  \***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   parsers: () => (/* binding */ parsers)\n/* harmony export */ });\n/* harmony import */ var _parsers_EraParser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parsers/EraParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/EraParser.js\");\n/* harmony import */ var _parsers_YearParser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./parsers/YearParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/YearParser.js\");\n/* harmony import */ var _parsers_LocalWeekYearParser_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./parsers/LocalWeekYearParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js\");\n/* harmony import */ var _parsers_ISOWeekYearParser_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./parsers/ISOWeekYearParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js\");\n/* harmony import */ var _parsers_ExtendedYearParser_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./parsers/ExtendedYearParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js\");\n/* harmony import */ var _parsers_QuarterParser_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./parsers/QuarterParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js\");\n/* harmony import */ var _parsers_StandAloneQuarterParser_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./parsers/StandAloneQuarterParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js\");\n/* harmony import */ var _parsers_MonthParser_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./parsers/MonthParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/MonthParser.js\");\n/* harmony import */ var _parsers_StandAloneMonthParser_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./parsers/StandAloneMonthParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js\");\n/* harmony import */ var _parsers_LocalWeekParser_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./parsers/LocalWeekParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js\");\n/* harmony import */ var _parsers_ISOWeekParser_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./parsers/ISOWeekParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js\");\n/* harmony import */ var _parsers_DateParser_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./parsers/DateParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/DateParser.js\");\n/* harmony import */ var _parsers_DayOfYearParser_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./parsers/DayOfYearParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js\");\n/* harmony import */ var _parsers_DayParser_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./parsers/DayParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/DayParser.js\");\n/* harmony import */ var _parsers_LocalDayParser_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./parsers/LocalDayParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js\");\n/* harmony import */ var _parsers_StandAloneLocalDayParser_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./parsers/StandAloneLocalDayParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js\");\n/* harmony import */ var _parsers_ISODayParser_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./parsers/ISODayParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js\");\n/* harmony import */ var _parsers_AMPMParser_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./parsers/AMPMParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js\");\n/* harmony import */ var _parsers_AMPMMidnightParser_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./parsers/AMPMMidnightParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js\");\n/* harmony import */ var _parsers_DayPeriodParser_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./parsers/DayPeriodParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js\");\n/* harmony import */ var _parsers_Hour1to12Parser_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./parsers/Hour1to12Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js\");\n/* harmony import */ var _parsers_Hour0to23Parser_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./parsers/Hour0to23Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js\");\n/* harmony import */ var _parsers_Hour0To11Parser_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./parsers/Hour0To11Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js\");\n/* harmony import */ var _parsers_Hour1To24Parser_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./parsers/Hour1To24Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js\");\n/* harmony import */ var _parsers_MinuteParser_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./parsers/MinuteParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js\");\n/* harmony import */ var _parsers_SecondParser_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./parsers/SecondParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/SecondParser.js\");\n/* harmony import */ var _parsers_FractionOfSecondParser_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./parsers/FractionOfSecondParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js\");\n/* harmony import */ var _parsers_ISOTimezoneWithZParser_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./parsers/ISOTimezoneWithZParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js\");\n/* harmony import */ var _parsers_ISOTimezoneParser_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./parsers/ISOTimezoneParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js\");\n/* harmony import */ var _parsers_TimestampSecondsParser_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./parsers/TimestampSecondsParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js\");\n/* harmony import */ var _parsers_TimestampMillisecondsParser_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./parsers/TimestampMillisecondsParser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/*\n * |     | Unit                           |     | Unit                           |\n * |-----|--------------------------------|-----|--------------------------------|\n * |  a  | AM, PM                         |  A* | Milliseconds in day            |\n * |  b  | AM, PM, noon, midnight         |  B  | Flexible day period            |\n * |  c  | Stand-alone local day of week  |  C* | Localized hour w/ day period   |\n * |  d  | Day of month                   |  D  | Day of year                    |\n * |  e  | Local day of week              |  E  | Day of week                    |\n * |  f  |                                |  F* | Day of week in month           |\n * |  g* | Modified Julian day            |  G  | Era                            |\n * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |\n * |  i! | ISO day of week                |  I! | ISO week of year               |\n * |  j* | Localized hour w/ day period   |  J* | Localized hour w/o day period  |\n * |  k  | Hour [1-24]                    |  K  | Hour [0-11]                    |\n * |  l* | (deprecated)                   |  L  | Stand-alone month              |\n * |  m  | Minute                         |  M  | Month                          |\n * |  n  |                                |  N  |                                |\n * |  o! | Ordinal number modifier        |  O* | Timezone (GMT)                 |\n * |  p  |                                |  P  |                                |\n * |  q  | Stand-alone quarter            |  Q  | Quarter                        |\n * |  r* | Related Gregorian year         |  R! | ISO week-numbering year        |\n * |  s  | Second                         |  S  | Fraction of second             |\n * |  t! | Seconds timestamp              |  T! | Milliseconds timestamp         |\n * |  u  | Extended year                  |  U* | Cyclic year                    |\n * |  v* | Timezone (generic non-locat.)  |  V* | Timezone (location)            |\n * |  w  | Local week of year             |  W* | Week of month                  |\n * |  x  | Timezone (ISO-8601 w/o Z)      |  X  | Timezone (ISO-8601)            |\n * |  y  | Year (abs)                     |  Y  | Local week-numbering year      |\n * |  z* | Timezone (specific non-locat.) |  Z* | Timezone (aliases)             |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n *   i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n *   `R` is supposed to be used in conjunction with `I` and `i`\n *   for universal ISO week-numbering date, whereas\n *   `Y` is supposed to be used in conjunction with `w` and `e`\n *   for week-numbering date specific to the locale.\n */\nconst parsers = {\n  G: new _parsers_EraParser_js__WEBPACK_IMPORTED_MODULE_0__.EraParser(),\n  y: new _parsers_YearParser_js__WEBPACK_IMPORTED_MODULE_1__.YearParser(),\n  Y: new _parsers_LocalWeekYearParser_js__WEBPACK_IMPORTED_MODULE_2__.LocalWeekYearParser(),\n  R: new _parsers_ISOWeekYearParser_js__WEBPACK_IMPORTED_MODULE_3__.ISOWeekYearParser(),\n  u: new _parsers_ExtendedYearParser_js__WEBPACK_IMPORTED_MODULE_4__.ExtendedYearParser(),\n  Q: new _parsers_QuarterParser_js__WEBPACK_IMPORTED_MODULE_5__.QuarterParser(),\n  q: new _parsers_StandAloneQuarterParser_js__WEBPACK_IMPORTED_MODULE_6__.StandAloneQuarterParser(),\n  M: new _parsers_MonthParser_js__WEBPACK_IMPORTED_MODULE_7__.MonthParser(),\n  L: new _parsers_StandAloneMonthParser_js__WEBPACK_IMPORTED_MODULE_8__.StandAloneMonthParser(),\n  w: new _parsers_LocalWeekParser_js__WEBPACK_IMPORTED_MODULE_9__.LocalWeekParser(),\n  I: new _parsers_ISOWeekParser_js__WEBPACK_IMPORTED_MODULE_10__.ISOWeekParser(),\n  d: new _parsers_DateParser_js__WEBPACK_IMPORTED_MODULE_11__.DateParser(),\n  D: new _parsers_DayOfYearParser_js__WEBPACK_IMPORTED_MODULE_12__.DayOfYearParser(),\n  E: new _parsers_DayParser_js__WEBPACK_IMPORTED_MODULE_13__.DayParser(),\n  e: new _parsers_LocalDayParser_js__WEBPACK_IMPORTED_MODULE_14__.LocalDayParser(),\n  c: new _parsers_StandAloneLocalDayParser_js__WEBPACK_IMPORTED_MODULE_15__.StandAloneLocalDayParser(),\n  i: new _parsers_ISODayParser_js__WEBPACK_IMPORTED_MODULE_16__.ISODayParser(),\n  a: new _parsers_AMPMParser_js__WEBPACK_IMPORTED_MODULE_17__.AMPMParser(),\n  b: new _parsers_AMPMMidnightParser_js__WEBPACK_IMPORTED_MODULE_18__.AMPMMidnightParser(),\n  B: new _parsers_DayPeriodParser_js__WEBPACK_IMPORTED_MODULE_19__.DayPeriodParser(),\n  h: new _parsers_Hour1to12Parser_js__WEBPACK_IMPORTED_MODULE_20__.Hour1to12Parser(),\n  H: new _parsers_Hour0to23Parser_js__WEBPACK_IMPORTED_MODULE_21__.Hour0to23Parser(),\n  K: new _parsers_Hour0To11Parser_js__WEBPACK_IMPORTED_MODULE_22__.Hour0To11Parser(),\n  k: new _parsers_Hour1To24Parser_js__WEBPACK_IMPORTED_MODULE_23__.Hour1To24Parser(),\n  m: new _parsers_MinuteParser_js__WEBPACK_IMPORTED_MODULE_24__.MinuteParser(),\n  s: new _parsers_SecondParser_js__WEBPACK_IMPORTED_MODULE_25__.SecondParser(),\n  S: new _parsers_FractionOfSecondParser_js__WEBPACK_IMPORTED_MODULE_26__.FractionOfSecondParser(),\n  X: new _parsers_ISOTimezoneWithZParser_js__WEBPACK_IMPORTED_MODULE_27__.ISOTimezoneWithZParser(),\n  x: new _parsers_ISOTimezoneParser_js__WEBPACK_IMPORTED_MODULE_28__.ISOTimezoneParser(),\n  t: new _parsers_TimestampSecondsParser_js__WEBPACK_IMPORTED_MODULE_29__.TimestampSecondsParser(),\n  T: new _parsers_TimestampMillisecondsParser_js__WEBPACK_IMPORTED_MODULE_30__.TimestampMillisecondsParser()\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js":
/*!**********************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   AMPMMidnightParser: () => (/* binding */ AMPMMidnightParser)\n/* harmony export */ });\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\nclass AMPMMidnightParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_0__.Parser {\n  priority = 80;\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"b\":\n      case \"bb\":\n      case \"bbb\":\n        return match.dayPeriod(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.dayPeriod(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      case \"bbbbb\":\n        return match.dayPeriod(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      case \"bbbb\":\n      default:\n        return match.dayPeriod(dateString, {\n          width: \"wide\",\n          context: \"formatting\"\n        }) || match.dayPeriod(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.dayPeriod(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n    }\n  }\n  set(date, _flags, value) {\n    date.setHours((0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.dayPeriodEnumToHours)(value), 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   AMPMParser: () => (/* binding */ AMPMParser)\n/* harmony export */ });\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\nclass AMPMParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_0__.Parser {\n  priority = 80;\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"a\":\n      case \"aa\":\n      case \"aaa\":\n        return match.dayPeriod(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.dayPeriod(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      case \"aaaaa\":\n        return match.dayPeriod(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      case \"aaaa\":\n      default:\n        return match.dayPeriod(dateString, {\n          width: \"wide\",\n          context: \"formatting\"\n        }) || match.dayPeriod(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.dayPeriod(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n    }\n  }\n  set(date, _flags, value) {\n    date.setHours((0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.dayPeriodEnumToHours)(value), 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/DateParser.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/DateParser.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DateParser: () => (/* binding */ DateParser)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// Day of the month\nclass DateParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 90;\n  subPriority = 1;\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"d\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNumericPattern)(_constants_js__WEBPACK_IMPORTED_MODULE_0__.numericPatterns.date, dateString);\n      case \"do\":\n        return match.ordinalNumber(dateString, {\n          unit: \"date\"\n        });\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNDigits)(token.length, dateString);\n    }\n  }\n  validate(date, value) {\n    const year = date.getFullYear();\n    const isLeapYear = (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.isLeapYearIndex)(year);\n    const month = date.getMonth();\n    if (isLeapYear) {\n      return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n    } else {\n      return value >= 1 && value <= DAYS_IN_MONTH[month];\n    }\n  }\n  set(date, _flags, value) {\n    date.setDate(value);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"Y\", \"R\", \"q\", \"Q\", \"w\", \"I\", \"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/DateParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DayOfYearParser: () => (/* binding */ DayOfYearParser)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\nclass DayOfYearParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 90;\n  subpriority = 1;\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"D\":\n      case \"DD\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNumericPattern)(_constants_js__WEBPACK_IMPORTED_MODULE_0__.numericPatterns.dayOfYear, dateString);\n      case \"Do\":\n        return match.ordinalNumber(dateString, {\n          unit: \"date\"\n        });\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNDigits)(token.length, dateString);\n    }\n  }\n  validate(date, value) {\n    const year = date.getFullYear();\n    const isLeapYear = (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.isLeapYearIndex)(year);\n    if (isLeapYear) {\n      return value >= 1 && value <= 366;\n    } else {\n      return value >= 1 && value <= 365;\n    }\n  }\n  set(date, _flags, value) {\n    date.setMonth(0, value);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"Y\", \"R\", \"q\", \"Q\", \"M\", \"L\", \"w\", \"I\", \"d\", \"E\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/DayParser.js":
/*!*************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/DayParser.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DayParser: () => (/* binding */ DayParser)\n/* harmony export */ });\n/* harmony import */ var _setDay_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../setDay.js */ \"../react-ui/node_modules/date-fns/setDay.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n\n\n\n// Day of week\nclass DayParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 90;\n  parse(dateString, token, match) {\n    switch (token) {\n      // Tue\n      case \"E\":\n      case \"EE\":\n      case \"EEE\":\n        return match.day(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"short\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n\n      // T\n      case \"EEEEE\":\n        return match.day(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      // Tu\n      case \"EEEEEE\":\n        return match.day(dateString, {\n          width: \"short\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n\n      // Tuesday\n      case \"EEEE\":\n      default:\n        return match.day(dateString, {\n          width: \"wide\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"short\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n    }\n  }\n  validate(_date, value) {\n    return value >= 0 && value <= 6;\n  }\n  set(date, _flags, value, options) {\n    date = (0,_setDay_js__WEBPACK_IMPORTED_MODULE_0__.setDay)(date, value, options);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/DayParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DayPeriodParser: () => (/* binding */ DayPeriodParser)\n/* harmony export */ });\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\n// in the morning, in the afternoon, in the evening, at night\nclass DayPeriodParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_0__.Parser {\n  priority = 80;\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"B\":\n      case \"BB\":\n      case \"BBB\":\n        return match.dayPeriod(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.dayPeriod(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      case \"BBBBB\":\n        return match.dayPeriod(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      case \"BBBB\":\n      default:\n        return match.dayPeriod(dateString, {\n          width: \"wide\",\n          context: \"formatting\"\n        }) || match.dayPeriod(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.dayPeriod(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n    }\n  }\n  set(date, _flags, value) {\n    date.setHours((0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.dayPeriodEnumToHours)(value), 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/EraParser.js":
/*!*************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/EraParser.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   EraParser: () => (/* binding */ EraParser)\n/* harmony export */ });\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n\nclass EraParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_0__.Parser {\n  priority = 140;\n  parse(dateString, token, match) {\n    switch (token) {\n      // AD, BC\n      case \"G\":\n      case \"GG\":\n      case \"GGG\":\n        return match.era(dateString, {\n          width: \"abbreviated\"\n        }) || match.era(dateString, {\n          width: \"narrow\"\n        });\n\n      // A, B\n      case \"GGGGG\":\n        return match.era(dateString, {\n          width: \"narrow\"\n        });\n      // Anno Domini, Before Christ\n      case \"GGGG\":\n      default:\n        return match.era(dateString, {\n          width: \"wide\"\n        }) || match.era(dateString, {\n          width: \"abbreviated\"\n        }) || match.era(dateString, {\n          width: \"narrow\"\n        });\n    }\n  }\n  set(date, flags, value) {\n    flags.era = value;\n    date.setFullYear(value, 0, 1);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/EraParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js":
/*!**********************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ExtendedYearParser: () => (/* binding */ ExtendedYearParser)\n/* harmony export */ });\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\nclass ExtendedYearParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_0__.Parser {\n  priority = 130;\n  parse(dateString, token) {\n    if (token === \"u\") {\n      return (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.parseNDigitsSigned)(4, dateString);\n    }\n    return (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.parseNDigitsSigned)(token.length, dateString);\n  }\n  set(date, _flags, value) {\n    date.setFullYear(value, 0, 1);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js":
/*!**************************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   FractionOfSecondParser: () => (/* binding */ FractionOfSecondParser)\n/* harmony export */ });\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\nclass FractionOfSecondParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_0__.Parser {\n  priority = 30;\n  parse(dateString, token) {\n    const valueCallback = value => Math.trunc(value * Math.pow(10, -token.length + 3));\n    return (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.mapValue)((0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.parseNDigits)(token.length, dateString), valueCallback);\n  }\n  set(date, _flags, value) {\n    date.setMilliseconds(value);\n    return date;\n  }\n  incompatibleTokens = [\"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Hour0To11Parser: () => (/* binding */ Hour0To11Parser)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\nclass Hour0To11Parser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 70;\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"K\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNumericPattern)(_constants_js__WEBPACK_IMPORTED_MODULE_0__.numericPatterns.hour11h, dateString);\n      case \"Ko\":\n        return match.ordinalNumber(dateString, {\n          unit: \"hour\"\n        });\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNDigits)(token.length, dateString);\n    }\n  }\n  validate(_date, value) {\n    return value >= 0 && value <= 11;\n  }\n  set(date, _flags, value) {\n    const isPM = date.getHours() >= 12;\n    if (isPM && value < 12) {\n      date.setHours(value + 12, 0, 0, 0);\n    } else {\n      date.setHours(value, 0, 0, 0);\n    }\n    return date;\n  }\n  incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Hour0to23Parser: () => (/* binding */ Hour0to23Parser)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\nclass Hour0to23Parser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 70;\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"H\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNumericPattern)(_constants_js__WEBPACK_IMPORTED_MODULE_0__.numericPatterns.hour23h, dateString);\n      case \"Ho\":\n        return match.ordinalNumber(dateString, {\n          unit: \"hour\"\n        });\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNDigits)(token.length, dateString);\n    }\n  }\n  validate(_date, value) {\n    return value >= 0 && value <= 23;\n  }\n  set(date, _flags, value) {\n    date.setHours(value, 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Hour1To24Parser: () => (/* binding */ Hour1To24Parser)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\nclass Hour1To24Parser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 70;\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"k\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNumericPattern)(_constants_js__WEBPACK_IMPORTED_MODULE_0__.numericPatterns.hour24h, dateString);\n      case \"ko\":\n        return match.ordinalNumber(dateString, {\n          unit: \"hour\"\n        });\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNDigits)(token.length, dateString);\n    }\n  }\n  validate(_date, value) {\n    return value >= 1 && value <= 24;\n  }\n  set(date, _flags, value) {\n    const hours = value <= 24 ? value % 24 : value;\n    date.setHours(hours, 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Hour1to12Parser: () => (/* binding */ Hour1to12Parser)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\nclass Hour1to12Parser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 70;\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"h\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNumericPattern)(_constants_js__WEBPACK_IMPORTED_MODULE_0__.numericPatterns.hour12h, dateString);\n      case \"ho\":\n        return match.ordinalNumber(dateString, {\n          unit: \"hour\"\n        });\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNDigits)(token.length, dateString);\n    }\n  }\n  validate(_date, value) {\n    return value >= 1 && value <= 12;\n  }\n  set(date, _flags, value) {\n    const isPM = date.getHours() >= 12;\n    if (isPM && value < 12) {\n      date.setHours(value + 12, 0, 0, 0);\n    } else if (!isPM && value === 12) {\n      date.setHours(0, 0, 0, 0);\n    } else {\n      date.setHours(value, 0, 0, 0);\n    }\n    return date;\n  }\n  incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ISODayParser: () => (/* binding */ ISODayParser)\n/* harmony export */ });\n/* harmony import */ var _setISODay_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../setISODay.js */ \"../react-ui/node_modules/date-fns/setISODay.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\n\n// ISO day of week\nclass ISODayParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 90;\n  parse(dateString, token, match) {\n    const valueCallback = value => {\n      if (value === 0) {\n        return 7;\n      }\n      return value;\n    };\n    switch (token) {\n      // 2\n      case \"i\":\n      case \"ii\":\n        // 02\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNDigits)(token.length, dateString);\n      // 2nd\n      case \"io\":\n        return match.ordinalNumber(dateString, {\n          unit: \"day\"\n        });\n      // Tue\n      case \"iii\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.mapValue)(match.day(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"short\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        }), valueCallback);\n      // T\n      case \"iiiii\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.mapValue)(match.day(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        }), valueCallback);\n      // Tu\n      case \"iiiiii\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.mapValue)(match.day(dateString, {\n          width: \"short\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        }), valueCallback);\n      // Tuesday\n      case \"iiii\":\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.mapValue)(match.day(dateString, {\n          width: \"wide\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"short\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        }), valueCallback);\n    }\n  }\n  validate(_date, value) {\n    return value >= 1 && value <= 7;\n  }\n  set(date, _flags, value) {\n    date = (0,_setISODay_js__WEBPACK_IMPORTED_MODULE_0__.setISODay)(date, value);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"y\", \"Y\", \"u\", \"q\", \"Q\", \"M\", \"L\", \"w\", \"d\", \"D\", \"E\", \"e\", \"c\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js":
/*!*********************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ISOTimezoneParser: () => (/* binding */ ISOTimezoneParser)\n/* harmony export */ });\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _lib_getTimezoneOffsetInMilliseconds_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../_lib/getTimezoneOffsetInMilliseconds.js */ \"../react-ui/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\n\n\n\n// Timezone (ISO-8601)\nclass ISOTimezoneParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_3__.Parser {\n  priority = 10;\n  parse(dateString, token) {\n    switch (token) {\n      case \"x\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.parseTimezonePattern)(_constants_js__WEBPACK_IMPORTED_MODULE_2__.timezonePatterns.basicOptionalMinutes, dateString);\n      case \"xx\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.parseTimezonePattern)(_constants_js__WEBPACK_IMPORTED_MODULE_2__.timezonePatterns.basic, dateString);\n      case \"xxxx\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.parseTimezonePattern)(_constants_js__WEBPACK_IMPORTED_MODULE_2__.timezonePatterns.basicOptionalSeconds, dateString);\n      case \"xxxxx\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.parseTimezonePattern)(_constants_js__WEBPACK_IMPORTED_MODULE_2__.timezonePatterns.extendedOptionalSeconds, dateString);\n      case \"xxx\":\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.parseTimezonePattern)(_constants_js__WEBPACK_IMPORTED_MODULE_2__.timezonePatterns.extended, dateString);\n    }\n  }\n  set(date, flags, value) {\n    if (flags.timestampIsSet) return date;\n    return (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(date, date.getTime() - (0,_lib_getTimezoneOffsetInMilliseconds_js__WEBPACK_IMPORTED_MODULE_1__.getTimezoneOffsetInMilliseconds)(date) - value);\n  }\n  incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js":
/*!**************************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ISOTimezoneWithZParser: () => (/* binding */ ISOTimezoneWithZParser)\n/* harmony export */ });\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _lib_getTimezoneOffsetInMilliseconds_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../_lib/getTimezoneOffsetInMilliseconds.js */ \"../react-ui/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\n\n\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nclass ISOTimezoneWithZParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_3__.Parser {\n  priority = 10;\n  parse(dateString, token) {\n    switch (token) {\n      case \"X\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.parseTimezonePattern)(_constants_js__WEBPACK_IMPORTED_MODULE_2__.timezonePatterns.basicOptionalMinutes, dateString);\n      case \"XX\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.parseTimezonePattern)(_constants_js__WEBPACK_IMPORTED_MODULE_2__.timezonePatterns.basic, dateString);\n      case \"XXXX\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.parseTimezonePattern)(_constants_js__WEBPACK_IMPORTED_MODULE_2__.timezonePatterns.basicOptionalSeconds, dateString);\n      case \"XXXXX\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.parseTimezonePattern)(_constants_js__WEBPACK_IMPORTED_MODULE_2__.timezonePatterns.extendedOptionalSeconds, dateString);\n      case \"XXX\":\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.parseTimezonePattern)(_constants_js__WEBPACK_IMPORTED_MODULE_2__.timezonePatterns.extended, dateString);\n    }\n  }\n  set(date, flags, value) {\n    if (flags.timestampIsSet) return date;\n    return (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(date, date.getTime() - (0,_lib_getTimezoneOffsetInMilliseconds_js__WEBPACK_IMPORTED_MODULE_1__.getTimezoneOffsetInMilliseconds)(date) - value);\n  }\n  incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ISOWeekParser: () => (/* binding */ ISOWeekParser)\n/* harmony export */ });\n/* harmony import */ var _setISOWeek_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../setISOWeek.js */ \"../react-ui/node_modules/date-fns/setISOWeek.js\");\n/* harmony import */ var _startOfISOWeek_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../startOfISOWeek.js */ \"../react-ui/node_modules/date-fns/startOfISOWeek.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\n\n\n\n// ISO week of year\nclass ISOWeekParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_3__.Parser {\n  priority = 100;\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"I\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.parseNumericPattern)(_constants_js__WEBPACK_IMPORTED_MODULE_2__.numericPatterns.week, dateString);\n      case \"Io\":\n        return match.ordinalNumber(dateString, {\n          unit: \"week\"\n        });\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.parseNDigits)(token.length, dateString);\n    }\n  }\n  validate(_date, value) {\n    return value >= 1 && value <= 53;\n  }\n  set(date, _flags, value) {\n    return (0,_startOfISOWeek_js__WEBPACK_IMPORTED_MODULE_1__.startOfISOWeek)((0,_setISOWeek_js__WEBPACK_IMPORTED_MODULE_0__.setISOWeek)(date, value));\n  }\n  incompatibleTokens = [\"y\", \"Y\", \"u\", \"q\", \"Q\", \"M\", \"L\", \"w\", \"d\", \"D\", \"e\", \"c\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js":
/*!*********************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ISOWeekYearParser: () => (/* binding */ ISOWeekYearParser)\n/* harmony export */ });\n/* harmony import */ var _startOfISOWeek_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../startOfISOWeek.js */ \"../react-ui/node_modules/date-fns/startOfISOWeek.js\");\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\n\n\n// ISO week-numbering year\nclass ISOWeekYearParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_2__.Parser {\n  priority = 130;\n  parse(dateString, token) {\n    if (token === \"R\") {\n      return (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.parseNDigitsSigned)(4, dateString);\n    }\n    return (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.parseNDigitsSigned)(token.length, dateString);\n  }\n  set(date, _flags, value) {\n    const firstWeekOfYear = (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_1__.constructFrom)(date, 0);\n    firstWeekOfYear.setFullYear(value, 0, 4);\n    firstWeekOfYear.setHours(0, 0, 0, 0);\n    return (0,_startOfISOWeek_js__WEBPACK_IMPORTED_MODULE_0__.startOfISOWeek)(firstWeekOfYear);\n  }\n  incompatibleTokens = [\"G\", \"y\", \"Y\", \"u\", \"Q\", \"q\", \"M\", \"L\", \"w\", \"d\", \"D\", \"e\", \"c\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js":
/*!******************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   LocalDayParser: () => (/* binding */ LocalDayParser)\n/* harmony export */ });\n/* harmony import */ var _setDay_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../setDay.js */ \"../react-ui/node_modules/date-fns/setDay.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\n\n// Local day of week\nclass LocalDayParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 90;\n  parse(dateString, token, match, options) {\n    const valueCallback = value => {\n      // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n      const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n      return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n    };\n    switch (token) {\n      // 3\n      case \"e\":\n      case \"ee\":\n        // 03\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.mapValue)((0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNDigits)(token.length, dateString), valueCallback);\n      // 3rd\n      case \"eo\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.mapValue)(match.ordinalNumber(dateString, {\n          unit: \"day\"\n        }), valueCallback);\n      // Tue\n      case \"eee\":\n        return match.day(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"short\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n\n      // T\n      case \"eeeee\":\n        return match.day(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      // Tu\n      case \"eeeeee\":\n        return match.day(dateString, {\n          width: \"short\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n\n      // Tuesday\n      case \"eeee\":\n      default:\n        return match.day(dateString, {\n          width: \"wide\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"short\",\n          context: \"formatting\"\n        }) || match.day(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n    }\n  }\n  validate(_date, value) {\n    return value >= 0 && value <= 6;\n  }\n  set(date, _flags, value, options) {\n    date = (0,_setDay_js__WEBPACK_IMPORTED_MODULE_0__.setDay)(date, value, options);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"y\", \"R\", \"u\", \"q\", \"Q\", \"M\", \"L\", \"I\", \"d\", \"D\", \"E\", \"i\", \"c\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   LocalWeekParser: () => (/* binding */ LocalWeekParser)\n/* harmony export */ });\n/* harmony import */ var _setWeek_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../setWeek.js */ \"../react-ui/node_modules/date-fns/setWeek.js\");\n/* harmony import */ var _startOfWeek_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../startOfWeek.js */ \"../react-ui/node_modules/date-fns/startOfWeek.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\n\n\n\n// Local week of year\nclass LocalWeekParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_3__.Parser {\n  priority = 100;\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"w\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.parseNumericPattern)(_constants_js__WEBPACK_IMPORTED_MODULE_2__.numericPatterns.week, dateString);\n      case \"wo\":\n        return match.ordinalNumber(dateString, {\n          unit: \"week\"\n        });\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_4__.parseNDigits)(token.length, dateString);\n    }\n  }\n  validate(_date, value) {\n    return value >= 1 && value <= 53;\n  }\n  set(date, _flags, value, options) {\n    return (0,_startOfWeek_js__WEBPACK_IMPORTED_MODULE_1__.startOfWeek)((0,_setWeek_js__WEBPACK_IMPORTED_MODULE_0__.setWeek)(date, value, options), options);\n  }\n  incompatibleTokens = [\"y\", \"R\", \"u\", \"q\", \"Q\", \"M\", \"L\", \"I\", \"d\", \"D\", \"i\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js":
/*!***********************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js ***!
  \***********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   LocalWeekYearParser: () => (/* binding */ LocalWeekYearParser)\n/* harmony export */ });\n/* harmony import */ var _getWeekYear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../getWeekYear.js */ \"../react-ui/node_modules/date-fns/getWeekYear.js\");\n/* harmony import */ var _startOfWeek_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../startOfWeek.js */ \"../react-ui/node_modules/date-fns/startOfWeek.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\n\n\n// Local week-numbering year\nclass LocalWeekYearParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_2__.Parser {\n  priority = 130;\n  parse(dateString, token, match) {\n    const valueCallback = year => ({\n      year,\n      isTwoDigitYear: token === \"YY\"\n    });\n    switch (token) {\n      case \"Y\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.mapValue)((0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.parseNDigits)(4, dateString), valueCallback);\n      case \"Yo\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.mapValue)(match.ordinalNumber(dateString, {\n          unit: \"year\"\n        }), valueCallback);\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.mapValue)((0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.parseNDigits)(token.length, dateString), valueCallback);\n    }\n  }\n  validate(_date, value) {\n    return value.isTwoDigitYear || value.year > 0;\n  }\n  set(date, flags, value, options) {\n    const currentYear = (0,_getWeekYear_js__WEBPACK_IMPORTED_MODULE_0__.getWeekYear)(date, options);\n    if (value.isTwoDigitYear) {\n      const normalizedTwoDigitYear = (0,_utils_js__WEBPACK_IMPORTED_MODULE_3__.normalizeTwoDigitYear)(value.year, currentYear);\n      date.setFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n      date.setHours(0, 0, 0, 0);\n      return (0,_startOfWeek_js__WEBPACK_IMPORTED_MODULE_1__.startOfWeek)(date, options);\n    }\n    const year = !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n    date.setFullYear(year, 0, options.firstWeekContainsDate);\n    date.setHours(0, 0, 0, 0);\n    return (0,_startOfWeek_js__WEBPACK_IMPORTED_MODULE_1__.startOfWeek)(date, options);\n  }\n  incompatibleTokens = [\"y\", \"R\", \"u\", \"Q\", \"q\", \"M\", \"L\", \"I\", \"d\", \"D\", \"i\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   MinuteParser: () => (/* binding */ MinuteParser)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\nclass MinuteParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 60;\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"m\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNumericPattern)(_constants_js__WEBPACK_IMPORTED_MODULE_0__.numericPatterns.minute, dateString);\n      case \"mo\":\n        return match.ordinalNumber(dateString, {\n          unit: \"minute\"\n        });\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNDigits)(token.length, dateString);\n    }\n  }\n  validate(_date, value) {\n    return value >= 0 && value <= 59;\n  }\n  set(date, _flags, value) {\n    date.setMinutes(value, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/MonthParser.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/MonthParser.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   MonthParser: () => (/* binding */ MonthParser)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\nclass MonthParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  incompatibleTokens = [\"Y\", \"R\", \"q\", \"Q\", \"L\", \"w\", \"I\", \"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n  priority = 110;\n  parse(dateString, token, match) {\n    const valueCallback = value => value - 1;\n    switch (token) {\n      // 1, 2, ..., 12\n      case \"M\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.mapValue)((0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNumericPattern)(_constants_js__WEBPACK_IMPORTED_MODULE_0__.numericPatterns.month, dateString), valueCallback);\n      // 01, 02, ..., 12\n      case \"MM\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.mapValue)((0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNDigits)(2, dateString), valueCallback);\n      // 1st, 2nd, ..., 12th\n      case \"Mo\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.mapValue)(match.ordinalNumber(dateString, {\n          unit: \"month\"\n        }), valueCallback);\n      // Jan, Feb, ..., Dec\n      case \"MMM\":\n        return match.month(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.month(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n\n      // J, F, ..., D\n      case \"MMMMM\":\n        return match.month(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      // January, February, ..., December\n      case \"MMMM\":\n      default:\n        return match.month(dateString, {\n          width: \"wide\",\n          context: \"formatting\"\n        }) || match.month(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.month(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n    }\n  }\n  validate(_date, value) {\n    return value >= 0 && value <= 11;\n  }\n  set(date, _flags, value) {\n    date.setMonth(value, 1);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/MonthParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   QuarterParser: () => (/* binding */ QuarterParser)\n/* harmony export */ });\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\nclass QuarterParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_0__.Parser {\n  priority = 120;\n  parse(dateString, token, match) {\n    switch (token) {\n      // 1, 2, 3, 4\n      case \"Q\":\n      case \"QQ\":\n        // 01, 02, 03, 04\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.parseNDigits)(token.length, dateString);\n      // 1st, 2nd, 3rd, 4th\n      case \"Qo\":\n        return match.ordinalNumber(dateString, {\n          unit: \"quarter\"\n        });\n      // Q1, Q2, Q3, Q4\n      case \"QQQ\":\n        return match.quarter(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.quarter(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n\n      // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n      case \"QQQQQ\":\n        return match.quarter(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n      // 1st quarter, 2nd quarter, ...\n      case \"QQQQ\":\n      default:\n        return match.quarter(dateString, {\n          width: \"wide\",\n          context: \"formatting\"\n        }) || match.quarter(dateString, {\n          width: \"abbreviated\",\n          context: \"formatting\"\n        }) || match.quarter(dateString, {\n          width: \"narrow\",\n          context: \"formatting\"\n        });\n    }\n  }\n  validate(_date, value) {\n    return value >= 1 && value <= 4;\n  }\n  set(date, _flags, value) {\n    date.setMonth((value - 1) * 3, 1);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"Y\", \"R\", \"q\", \"M\", \"L\", \"w\", \"I\", \"d\", \"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/SecondParser.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/SecondParser.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   SecondParser: () => (/* binding */ SecondParser)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\nclass SecondParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 50;\n  parse(dateString, token, match) {\n    switch (token) {\n      case \"s\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNumericPattern)(_constants_js__WEBPACK_IMPORTED_MODULE_0__.numericPatterns.second, dateString);\n      case \"so\":\n        return match.ordinalNumber(dateString, {\n          unit: \"second\"\n        });\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNDigits)(token.length, dateString);\n    }\n  }\n  validate(_date, value) {\n    return value >= 0 && value <= 59;\n  }\n  set(date, _flags, value) {\n    date.setSeconds(value, 0);\n    return date;\n  }\n  incompatibleTokens = [\"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/SecondParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js":
/*!****************************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   StandAloneLocalDayParser: () => (/* binding */ StandAloneLocalDayParser)\n/* harmony export */ });\n/* harmony import */ var _setDay_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../setDay.js */ \"../react-ui/node_modules/date-fns/setDay.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\n\n// Stand-alone local day of week\nclass StandAloneLocalDayParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 90;\n  parse(dateString, token, match, options) {\n    const valueCallback = value => {\n      // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n      const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n      return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n    };\n    switch (token) {\n      // 3\n      case \"c\":\n      case \"cc\":\n        // 03\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.mapValue)((0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNDigits)(token.length, dateString), valueCallback);\n      // 3rd\n      case \"co\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.mapValue)(match.ordinalNumber(dateString, {\n          unit: \"day\"\n        }), valueCallback);\n      // Tue\n      case \"ccc\":\n        return match.day(dateString, {\n          width: \"abbreviated\",\n          context: \"standalone\"\n        }) || match.day(dateString, {\n          width: \"short\",\n          context: \"standalone\"\n        }) || match.day(dateString, {\n          width: \"narrow\",\n          context: \"standalone\"\n        });\n\n      // T\n      case \"ccccc\":\n        return match.day(dateString, {\n          width: \"narrow\",\n          context: \"standalone\"\n        });\n      // Tu\n      case \"cccccc\":\n        return match.day(dateString, {\n          width: \"short\",\n          context: \"standalone\"\n        }) || match.day(dateString, {\n          width: \"narrow\",\n          context: \"standalone\"\n        });\n\n      // Tuesday\n      case \"cccc\":\n      default:\n        return match.day(dateString, {\n          width: \"wide\",\n          context: \"standalone\"\n        }) || match.day(dateString, {\n          width: \"abbreviated\",\n          context: \"standalone\"\n        }) || match.day(dateString, {\n          width: \"short\",\n          context: \"standalone\"\n        }) || match.day(dateString, {\n          width: \"narrow\",\n          context: \"standalone\"\n        });\n    }\n  }\n  validate(_date, value) {\n    return value >= 0 && value <= 6;\n  }\n  set(date, _flags, value, options) {\n    date = (0,_setDay_js__WEBPACK_IMPORTED_MODULE_0__.setDay)(date, value, options);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"y\", \"R\", \"u\", \"q\", \"Q\", \"M\", \"L\", \"I\", \"d\", \"D\", \"E\", \"i\", \"e\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js":
/*!*************************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   StandAloneMonthParser: () => (/* binding */ StandAloneMonthParser)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\nclass StandAloneMonthParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 110;\n  parse(dateString, token, match) {\n    const valueCallback = value => value - 1;\n    switch (token) {\n      // 1, 2, ..., 12\n      case \"L\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.mapValue)((0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNumericPattern)(_constants_js__WEBPACK_IMPORTED_MODULE_0__.numericPatterns.month, dateString), valueCallback);\n      // 01, 02, ..., 12\n      case \"LL\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.mapValue)((0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseNDigits)(2, dateString), valueCallback);\n      // 1st, 2nd, ..., 12th\n      case \"Lo\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.mapValue)(match.ordinalNumber(dateString, {\n          unit: \"month\"\n        }), valueCallback);\n      // Jan, Feb, ..., Dec\n      case \"LLL\":\n        return match.month(dateString, {\n          width: \"abbreviated\",\n          context: \"standalone\"\n        }) || match.month(dateString, {\n          width: \"narrow\",\n          context: \"standalone\"\n        });\n\n      // J, F, ..., D\n      case \"LLLLL\":\n        return match.month(dateString, {\n          width: \"narrow\",\n          context: \"standalone\"\n        });\n      // January, February, ..., December\n      case \"LLLL\":\n      default:\n        return match.month(dateString, {\n          width: \"wide\",\n          context: \"standalone\"\n        }) || match.month(dateString, {\n          width: \"abbreviated\",\n          context: \"standalone\"\n        }) || match.month(dateString, {\n          width: \"narrow\",\n          context: \"standalone\"\n        });\n    }\n  }\n  validate(_date, value) {\n    return value >= 0 && value <= 11;\n  }\n  set(date, _flags, value) {\n    date.setMonth(value, 1);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"Y\", \"R\", \"q\", \"Q\", \"M\", \"w\", \"I\", \"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js":
/*!***************************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   StandAloneQuarterParser: () => (/* binding */ StandAloneQuarterParser)\n/* harmony export */ });\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\nclass StandAloneQuarterParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_0__.Parser {\n  priority = 120;\n  parse(dateString, token, match) {\n    switch (token) {\n      // 1, 2, 3, 4\n      case \"q\":\n      case \"qq\":\n        // 01, 02, 03, 04\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.parseNDigits)(token.length, dateString);\n      // 1st, 2nd, 3rd, 4th\n      case \"qo\":\n        return match.ordinalNumber(dateString, {\n          unit: \"quarter\"\n        });\n      // Q1, Q2, Q3, Q4\n      case \"qqq\":\n        return match.quarter(dateString, {\n          width: \"abbreviated\",\n          context: \"standalone\"\n        }) || match.quarter(dateString, {\n          width: \"narrow\",\n          context: \"standalone\"\n        });\n\n      // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n      case \"qqqqq\":\n        return match.quarter(dateString, {\n          width: \"narrow\",\n          context: \"standalone\"\n        });\n      // 1st quarter, 2nd quarter, ...\n      case \"qqqq\":\n      default:\n        return match.quarter(dateString, {\n          width: \"wide\",\n          context: \"standalone\"\n        }) || match.quarter(dateString, {\n          width: \"abbreviated\",\n          context: \"standalone\"\n        }) || match.quarter(dateString, {\n          width: \"narrow\",\n          context: \"standalone\"\n        });\n    }\n  }\n  validate(_date, value) {\n    return value >= 1 && value <= 4;\n  }\n  set(date, _flags, value) {\n    date.setMonth((value - 1) * 3, 1);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"Y\", \"R\", \"Q\", \"M\", \"L\", \"w\", \"I\", \"d\", \"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js":
/*!*******************************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js ***!
  \*******************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   TimestampMillisecondsParser: () => (/* binding */ TimestampMillisecondsParser)\n/* harmony export */ });\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\nclass TimestampMillisecondsParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 20;\n  parse(dateString) {\n    return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseAnyDigitsSigned)(dateString);\n  }\n  set(date, _flags, value) {\n    return [(0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(date, value), {\n      timestampIsSet: true\n    }];\n  }\n  incompatibleTokens = \"*\";\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js":
/*!**************************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   TimestampSecondsParser: () => (/* binding */ TimestampSecondsParser)\n/* harmony export */ });\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\nclass TimestampSecondsParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_1__.Parser {\n  priority = 40;\n  parse(dateString) {\n    return (0,_utils_js__WEBPACK_IMPORTED_MODULE_2__.parseAnyDigitsSigned)(dateString);\n  }\n  set(date, _flags, value) {\n    return [(0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(date, value * 1000), {\n      timestampIsSet: true\n    }];\n  }\n  incompatibleTokens = \"*\";\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/parsers/YearParser.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/parsers/YearParser.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   YearParser: () => (/* binding */ YearParser)\n/* harmony export */ });\n/* harmony import */ var _Parser_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Parser.js */ \"../react-ui/node_modules/date-fns/parse/_lib/Parser.js\");\n/* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils.js */ \"../react-ui/node_modules/date-fns/parse/_lib/utils.js\");\n\n\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year     |     y | yy |   yyy |  yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1     |     1 | 01 |   001 |  0001 | 00001 |\n// | AD 12    |    12 | 12 |   012 |  0012 | 00012 |\n// | AD 123   |   123 | 23 |   123 |  0123 | 00123 |\n// | AD 1234  |  1234 | 34 |  1234 |  1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nclass YearParser extends _Parser_js__WEBPACK_IMPORTED_MODULE_0__.Parser {\n  priority = 130;\n  incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n  parse(dateString, token, match) {\n    const valueCallback = year => ({\n      year,\n      isTwoDigitYear: token === \"yy\"\n    });\n    switch (token) {\n      case \"y\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.mapValue)((0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.parseNDigits)(4, dateString), valueCallback);\n      case \"yo\":\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.mapValue)(match.ordinalNumber(dateString, {\n          unit: \"year\"\n        }), valueCallback);\n      default:\n        return (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.mapValue)((0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.parseNDigits)(token.length, dateString), valueCallback);\n    }\n  }\n  validate(_date, value) {\n    return value.isTwoDigitYear || value.year > 0;\n  }\n  set(date, flags, value) {\n    const currentYear = date.getFullYear();\n    if (value.isTwoDigitYear) {\n      const normalizedTwoDigitYear = (0,_utils_js__WEBPACK_IMPORTED_MODULE_1__.normalizeTwoDigitYear)(value.year, currentYear);\n      date.setFullYear(normalizedTwoDigitYear, 0, 1);\n      date.setHours(0, 0, 0, 0);\n      return date;\n    }\n    const year = !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n    date.setFullYear(year, 0, 1);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/parsers/YearParser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parse/_lib/utils.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parse/_lib/utils.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   dayPeriodEnumToHours: () => (/* binding */ dayPeriodEnumToHours),\n/* harmony export */   isLeapYearIndex: () => (/* binding */ isLeapYearIndex),\n/* harmony export */   mapValue: () => (/* binding */ mapValue),\n/* harmony export */   normalizeTwoDigitYear: () => (/* binding */ normalizeTwoDigitYear),\n/* harmony export */   parseAnyDigitsSigned: () => (/* binding */ parseAnyDigitsSigned),\n/* harmony export */   parseNDigits: () => (/* binding */ parseNDigits),\n/* harmony export */   parseNDigitsSigned: () => (/* binding */ parseNDigitsSigned),\n/* harmony export */   parseNumericPattern: () => (/* binding */ parseNumericPattern),\n/* harmony export */   parseTimezonePattern: () => (/* binding */ parseTimezonePattern)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../constants.js */ \"../react-ui/node_modules/date-fns/constants.js\");\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants.js */ \"../react-ui/node_modules/date-fns/parse/_lib/constants.js\");\n\n\nfunction mapValue(parseFnResult, mapFn) {\n  if (!parseFnResult) {\n    return parseFnResult;\n  }\n  return {\n    value: mapFn(parseFnResult.value),\n    rest: parseFnResult.rest\n  };\n}\nfunction parseNumericPattern(pattern, dateString) {\n  const matchResult = dateString.match(pattern);\n  if (!matchResult) {\n    return null;\n  }\n  return {\n    value: parseInt(matchResult[0], 10),\n    rest: dateString.slice(matchResult[0].length)\n  };\n}\nfunction parseTimezonePattern(pattern, dateString) {\n  const matchResult = dateString.match(pattern);\n  if (!matchResult) {\n    return null;\n  }\n\n  // Input is 'Z'\n  if (matchResult[0] === \"Z\") {\n    return {\n      value: 0,\n      rest: dateString.slice(1)\n    };\n  }\n  const sign = matchResult[1] === \"+\" ? 1 : -1;\n  const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n  const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n  const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n  return {\n    value: sign * (hours * _constants_js__WEBPACK_IMPORTED_MODULE_0__.millisecondsInHour + minutes * _constants_js__WEBPACK_IMPORTED_MODULE_0__.millisecondsInMinute + seconds * _constants_js__WEBPACK_IMPORTED_MODULE_0__.millisecondsInSecond),\n    rest: dateString.slice(matchResult[0].length)\n  };\n}\nfunction parseAnyDigitsSigned(dateString) {\n  return parseNumericPattern(_constants_js__WEBPACK_IMPORTED_MODULE_1__.numericPatterns.anyDigitsSigned, dateString);\n}\nfunction parseNDigits(n, dateString) {\n  switch (n) {\n    case 1:\n      return parseNumericPattern(_constants_js__WEBPACK_IMPORTED_MODULE_1__.numericPatterns.singleDigit, dateString);\n    case 2:\n      return parseNumericPattern(_constants_js__WEBPACK_IMPORTED_MODULE_1__.numericPatterns.twoDigits, dateString);\n    case 3:\n      return parseNumericPattern(_constants_js__WEBPACK_IMPORTED_MODULE_1__.numericPatterns.threeDigits, dateString);\n    case 4:\n      return parseNumericPattern(_constants_js__WEBPACK_IMPORTED_MODULE_1__.numericPatterns.fourDigits, dateString);\n    default:\n      return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n  }\n}\nfunction parseNDigitsSigned(n, dateString) {\n  switch (n) {\n    case 1:\n      return parseNumericPattern(_constants_js__WEBPACK_IMPORTED_MODULE_1__.numericPatterns.singleDigitSigned, dateString);\n    case 2:\n      return parseNumericPattern(_constants_js__WEBPACK_IMPORTED_MODULE_1__.numericPatterns.twoDigitsSigned, dateString);\n    case 3:\n      return parseNumericPattern(_constants_js__WEBPACK_IMPORTED_MODULE_1__.numericPatterns.threeDigitsSigned, dateString);\n    case 4:\n      return parseNumericPattern(_constants_js__WEBPACK_IMPORTED_MODULE_1__.numericPatterns.fourDigitsSigned, dateString);\n    default:\n      return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n  }\n}\nfunction dayPeriodEnumToHours(dayPeriod) {\n  switch (dayPeriod) {\n    case \"morning\":\n      return 4;\n    case \"evening\":\n      return 17;\n    case \"pm\":\n    case \"noon\":\n    case \"afternoon\":\n      return 12;\n    case \"am\":\n    case \"midnight\":\n    case \"night\":\n    default:\n      return 0;\n  }\n}\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n  const isCommonEra = currentYear > 0;\n  // Absolute number of the current year:\n  // 1 -> 1 AC\n  // 0 -> 1 BC\n  // -1 -> 2 BC\n  const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n  let result;\n  if (absCurrentYear <= 50) {\n    result = twoDigitYear || 100;\n  } else {\n    const rangeEnd = absCurrentYear + 50;\n    const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n    const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n    result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n  }\n  return isCommonEra ? result : 1 - result;\n}\nfunction isLeapYearIndex(year) {\n  return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parse/_lib/utils.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/parseISO.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/date-fns/parseISO.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   parseISO: () => (/* binding */ parseISO)\n/* harmony export */ });\n/* harmony import */ var _constants_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants.js */ \"../react-ui/node_modules/date-fns/constants.js\");\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n\n/**\n * The {@link parseISO} function options.\n */\n\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n * @param options - An object with options\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nfunction parseISO(argument, options) {\n  const invalidDate = () => (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_1__.constructFrom)(options?.in, NaN);\n  const additionalDigits = options?.additionalDigits ?? 2;\n  const dateStrings = splitDateString(argument);\n  let date;\n  if (dateStrings.date) {\n    const parseYearResult = parseYear(dateStrings.date, additionalDigits);\n    date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n  }\n  if (!date || isNaN(+date)) return invalidDate();\n  const timestamp = +date;\n  let time = 0;\n  let offset;\n  if (dateStrings.time) {\n    time = parseTime(dateStrings.time);\n    if (isNaN(time)) return invalidDate();\n  }\n  if (dateStrings.timezone) {\n    offset = parseTimezone(dateStrings.timezone);\n    if (isNaN(offset)) return invalidDate();\n  } else {\n    const tmpDate = new Date(timestamp + time);\n    const result = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_2__.toDate)(0, options?.in);\n    result.setFullYear(tmpDate.getUTCFullYear(), tmpDate.getUTCMonth(), tmpDate.getUTCDate());\n    result.setHours(tmpDate.getUTCHours(), tmpDate.getUTCMinutes(), tmpDate.getUTCSeconds(), tmpDate.getUTCMilliseconds());\n    return result;\n  }\n  return (0,_toDate_js__WEBPACK_IMPORTED_MODULE_2__.toDate)(timestamp + time + offset, options?.in);\n}\nconst patterns = {\n  dateTimeDelimiter: /[T ]/,\n  timeZoneDelimiter: /[Z ]/i,\n  timezone: /([Z+-].*)$/\n};\nconst dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nconst timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nconst timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\nfunction splitDateString(dateString) {\n  const dateStrings = {};\n  const array = dateString.split(patterns.dateTimeDelimiter);\n  let timeString;\n\n  // The regex match should only return at maximum two array elements.\n  // [date], [time], or [date, time].\n  if (array.length > 2) {\n    return dateStrings;\n  }\n  if (/:/.test(array[0])) {\n    timeString = array[0];\n  } else {\n    dateStrings.date = array[0];\n    timeString = array[1];\n    if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n      dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n      timeString = dateString.substr(dateStrings.date.length, dateString.length);\n    }\n  }\n  if (timeString) {\n    const token = patterns.timezone.exec(timeString);\n    if (token) {\n      dateStrings.time = timeString.replace(token[1], \"\");\n      dateStrings.timezone = token[1];\n    } else {\n      dateStrings.time = timeString;\n    }\n  }\n  return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n  const regex = new RegExp(\"^(?:(\\\\d{4}|[+-]\\\\d{\" + (4 + additionalDigits) + \"})|(\\\\d{2}|[+-]\\\\d{\" + (2 + additionalDigits) + \"})$)\");\n  const captures = dateString.match(regex);\n  // Invalid ISO-formatted year\n  if (!captures) return {\n    year: NaN,\n    restDateString: \"\"\n  };\n  const year = captures[1] ? parseInt(captures[1]) : null;\n  const century = captures[2] ? parseInt(captures[2]) : null;\n\n  // either year or century is null, not both\n  return {\n    year: century === null ? year : century * 100,\n    restDateString: dateString.slice((captures[1] || captures[2]).length)\n  };\n}\nfunction parseDate(dateString, year) {\n  // Invalid ISO-formatted year\n  if (year === null) return new Date(NaN);\n  const captures = dateString.match(dateRegex);\n  // Invalid ISO-formatted string\n  if (!captures) return new Date(NaN);\n  const isWeekDate = !!captures[4];\n  const dayOfYear = parseDateUnit(captures[1]);\n  const month = parseDateUnit(captures[2]) - 1;\n  const day = parseDateUnit(captures[3]);\n  const week = parseDateUnit(captures[4]);\n  const dayOfWeek = parseDateUnit(captures[5]) - 1;\n  if (isWeekDate) {\n    if (!validateWeekDate(year, week, dayOfWeek)) {\n      return new Date(NaN);\n    }\n    return dayOfISOWeekYear(year, week, dayOfWeek);\n  } else {\n    const date = new Date(0);\n    if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n      return new Date(NaN);\n    }\n    date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n    return date;\n  }\n}\nfunction parseDateUnit(value) {\n  return value ? parseInt(value) : 1;\n}\nfunction parseTime(timeString) {\n  const captures = timeString.match(timeRegex);\n  if (!captures) return NaN; // Invalid ISO-formatted time\n\n  const hours = parseTimeUnit(captures[1]);\n  const minutes = parseTimeUnit(captures[2]);\n  const seconds = parseTimeUnit(captures[3]);\n  if (!validateTime(hours, minutes, seconds)) {\n    return NaN;\n  }\n  return hours * _constants_js__WEBPACK_IMPORTED_MODULE_0__.millisecondsInHour + minutes * _constants_js__WEBPACK_IMPORTED_MODULE_0__.millisecondsInMinute + seconds * 1000;\n}\nfunction parseTimeUnit(value) {\n  return value && parseFloat(value.replace(\",\", \".\")) || 0;\n}\nfunction parseTimezone(timezoneString) {\n  if (timezoneString === \"Z\") return 0;\n  const captures = timezoneString.match(timezoneRegex);\n  if (!captures) return 0;\n  const sign = captures[1] === \"+\" ? -1 : 1;\n  const hours = parseInt(captures[2]);\n  const minutes = captures[3] && parseInt(captures[3]) || 0;\n  if (!validateTimezone(hours, minutes)) {\n    return NaN;\n  }\n  return sign * (hours * _constants_js__WEBPACK_IMPORTED_MODULE_0__.millisecondsInHour + minutes * _constants_js__WEBPACK_IMPORTED_MODULE_0__.millisecondsInMinute);\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n  const date = new Date(0);\n  date.setUTCFullYear(isoWeekYear, 0, 4);\n  const fourthOfJanuaryDay = date.getUTCDay() || 7;\n  const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n  date.setUTCDate(date.getUTCDate() + diff);\n  return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nconst daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n  return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\nfunction validateDate(year, month, date) {\n  return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n  return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\nfunction validateWeekDate(_year, week, day) {\n  return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\nfunction validateTime(hours, minutes, seconds) {\n  if (hours === 24) {\n    return minutes === 0 && seconds === 0;\n  }\n  return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\nfunction validateTimezone(_hours, minutes) {\n  return minutes >= 0 && minutes <= 59;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (parseISO);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/parseISO.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/setDay.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/date-fns/setDay.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   setDay: () => (/* binding */ setDay)\n/* harmony export */ });\n/* harmony import */ var _lib_defaultOptions_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/defaultOptions.js */ \"../react-ui/node_modules/date-fns/_lib/defaultOptions.js\");\n/* harmony import */ var _addDays_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./addDays.js */ \"../react-ui/node_modules/date-fns/addDays.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction setDay(date, day, options) {\n  const defaultOptions = (0,_lib_defaultOptions_js__WEBPACK_IMPORTED_MODULE_0__.getDefaultOptions)();\n  const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions.weekStartsOn ?? defaultOptions.locale?.options?.weekStartsOn ?? 0;\n  const date_ = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_2__.toDate)(date, options?.in);\n  const currentDay = date_.getDay();\n  const remainder = day % 7;\n  const dayIndex = (remainder + 7) % 7;\n  const delta = 7 - weekStartsOn;\n  const diff = day < 0 || day > 6 ? day - (currentDay + delta) % 7 : (dayIndex + delta) % 7 - (currentDay + delta) % 7;\n  return (0,_addDays_js__WEBPACK_IMPORTED_MODULE_1__.addDays)(date_, diff, options);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setDay);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/setDay.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/setISODay.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/setISODay.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   setISODay: () => (/* binding */ setISODay)\n/* harmony export */ });\n/* harmony import */ var _addDays_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addDays.js */ \"../react-ui/node_modules/date-fns/addDays.js\");\n/* harmony import */ var _getISODay_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getISODay.js */ \"../react-ui/node_modules/date-fns/getISODay.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n\n/**\n * The {@link setISODay} function options.\n */\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday, etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nfunction setISODay(date, day, options) {\n  const date_ = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_2__.toDate)(date, options?.in);\n  const currentDay = (0,_getISODay_js__WEBPACK_IMPORTED_MODULE_1__.getISODay)(date_, options);\n  const diff = day - currentDay;\n  return (0,_addDays_js__WEBPACK_IMPORTED_MODULE_0__.addDays)(date_, diff, options);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setISODay);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/setISODay.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/setISOWeek.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/setISOWeek.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   setISOWeek: () => (/* binding */ setISOWeek)\n/* harmony export */ });\n/* harmony import */ var _getISOWeek_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getISOWeek.js */ \"../react-ui/node_modules/date-fns/getISOWeek.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n/**\n * The {@link setISOWeek} function options.\n */\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The `Date` type of the context function.\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nfunction setISOWeek(date, week, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_1__.toDate)(date, options?.in);\n  const diff = (0,_getISOWeek_js__WEBPACK_IMPORTED_MODULE_0__.getISOWeek)(_date, options) - week;\n  _date.setDate(_date.getDate() - diff * 7);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setISOWeek);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/setISOWeek.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/setWeek.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/date-fns/setWeek.js ***!
  \****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   setWeek: () => (/* binding */ setWeek)\n/* harmony export */ });\n/* harmony import */ var _getWeek_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWeek.js */ \"../react-ui/node_modules/date-fns/getWeek.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n *   weekStartsOn: 1,\n *   firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nfunction setWeek(date, week, options) {\n  const date_ = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_1__.toDate)(date, options?.in);\n  const diff = (0,_getWeek_js__WEBPACK_IMPORTED_MODULE_0__.getWeek)(date_, options) - week;\n  date_.setDate(date_.getDate() - diff * 7);\n  return (0,_toDate_js__WEBPACK_IMPORTED_MODULE_1__.toDate)(date_, options?.in);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setWeek);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/setWeek.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/startOfDay.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/startOfDay.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   startOfDay: () => (/* binding */ startOfDay)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link startOfDay} function options.\n */\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nfunction startOfDay(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in);\n  _date.setHours(0, 0, 0, 0);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (startOfDay);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/startOfDay.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/startOfHour.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/startOfHour.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   startOfHour: () => (/* binding */ startOfHour)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link startOfHour} function options.\n */\n\n/**\n * @name startOfHour\n * @category Hour Helpers\n * @summary Return the start of an hour for the given date.\n *\n * @description\n * Return the start of an hour for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an hour\n *\n * @example\n * // The start of an hour for 2 September 2014 11:55:00:\n * const result = startOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:00:00\n */\nfunction startOfHour(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in);\n  _date.setMinutes(0, 0, 0);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (startOfHour);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/startOfHour.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/startOfISOWeek.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/startOfISOWeek.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   startOfISOWeek: () => (/* binding */ startOfISOWeek)\n/* harmony export */ });\n/* harmony import */ var _startOfWeek_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./startOfWeek.js */ \"../react-ui/node_modules/date-fns/startOfWeek.js\");\n\n\n/**\n * The {@link startOfISOWeek} function options.\n */\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfISOWeek(date, options) {\n  return (0,_startOfWeek_js__WEBPACK_IMPORTED_MODULE_0__.startOfWeek)(date, {\n    ...options,\n    weekStartsOn: 1\n  });\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (startOfISOWeek);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/startOfISOWeek.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/startOfISOWeekYear.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/startOfISOWeekYear.js ***!
  \***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   startOfISOWeekYear: () => (/* binding */ startOfISOWeekYear)\n/* harmony export */ });\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _getISOWeekYear_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getISOWeekYear.js */ \"../react-ui/node_modules/date-fns/getISOWeekYear.js\");\n/* harmony import */ var _startOfISOWeek_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./startOfISOWeek.js */ \"../react-ui/node_modules/date-fns/startOfISOWeek.js\");\n\n\n\n\n/**\n * The {@link startOfISOWeekYear} function options.\n */\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nfunction startOfISOWeekYear(date, options) {\n  const year = (0,_getISOWeekYear_js__WEBPACK_IMPORTED_MODULE_1__.getISOWeekYear)(date, options);\n  const fourthOfJanuary = (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(options?.in || date, 0);\n  fourthOfJanuary.setFullYear(year, 0, 4);\n  fourthOfJanuary.setHours(0, 0, 0, 0);\n  return (0,_startOfISOWeek_js__WEBPACK_IMPORTED_MODULE_2__.startOfISOWeek)(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (startOfISOWeekYear);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/startOfISOWeekYear.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/startOfMinute.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/startOfMinute.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   startOfMinute: () => (/* binding */ startOfMinute)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link startOfMinute} function options.\n */\n\n/**\n * @name startOfMinute\n * @category Minute Helpers\n * @summary Return the start of a minute for the given date.\n *\n * @description\n * Return the start of a minute for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a minute\n *\n * @example\n * // The start of a minute for 1 December 2014 22:15:45.400:\n * const result = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:00\n */\nfunction startOfMinute(date, options) {\n  const date_ = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in);\n  date_.setSeconds(0, 0);\n  return date_;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (startOfMinute);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/startOfMinute.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/startOfMonth.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/startOfMonth.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   startOfMonth: () => (/* binding */ startOfMonth)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link startOfMonth} function options.\n */\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date. The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments.\n * Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed,\n * or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfMonth(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in);\n  _date.setDate(1);\n  _date.setHours(0, 0, 0, 0);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (startOfMonth);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/startOfMonth.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/startOfQuarter.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/startOfQuarter.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   startOfQuarter: () => (/* binding */ startOfQuarter)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link startOfQuarter} function options.\n */\n\n/**\n * @name startOfQuarter\n * @category Quarter Helpers\n * @summary Return the start of a year quarter for the given date.\n *\n * @description\n * Return the start of a year quarter for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a quarter\n *\n * @example\n * // The start of a quarter for 2 September 2014 11:55:00:\n * const result = startOfQuarter(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Jul 01 2014 00:00:00\n */\nfunction startOfQuarter(date, options) {\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in);\n  const currentMonth = _date.getMonth();\n  const month = currentMonth - currentMonth % 3;\n  _date.setMonth(month, 1);\n  _date.setHours(0, 0, 0, 0);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (startOfQuarter);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/startOfQuarter.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/startOfSecond.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/startOfSecond.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   startOfSecond: () => (/* binding */ startOfSecond)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link startOfSecond} function options.\n */\n\n/**\n * @name startOfSecond\n * @category Second Helpers\n * @summary Return the start of a second for the given date.\n *\n * @description\n * Return the start of a second for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a second\n *\n * @example\n * // The start of a second for 1 December 2014 22:15:45.400:\n * const result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.000\n */\nfunction startOfSecond(date, options) {\n  const date_ = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in);\n  date_.setMilliseconds(0);\n  return date_;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (startOfSecond);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/startOfSecond.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/startOfWeek.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/startOfWeek.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   startOfWeek: () => (/* binding */ startOfWeek)\n/* harmony export */ });\n/* harmony import */ var _lib_defaultOptions_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/defaultOptions.js */ \"../react-ui/node_modules/date-fns/_lib/defaultOptions.js\");\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nfunction startOfWeek(date, options) {\n  const defaultOptions = (0,_lib_defaultOptions_js__WEBPACK_IMPORTED_MODULE_0__.getDefaultOptions)();\n  const weekStartsOn = options?.weekStartsOn ?? options?.locale?.options?.weekStartsOn ?? defaultOptions.weekStartsOn ?? defaultOptions.locale?.options?.weekStartsOn ?? 0;\n  const _date = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_1__.toDate)(date, options?.in);\n  const day = _date.getDay();\n  const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n  _date.setDate(_date.getDate() - diff);\n  _date.setHours(0, 0, 0, 0);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (startOfWeek);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/startOfWeek.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/startOfWeekYear.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/date-fns/startOfWeekYear.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   startOfWeekYear: () => (/* binding */ startOfWeekYear)\n/* harmony export */ });\n/* harmony import */ var _lib_defaultOptions_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_lib/defaultOptions.js */ \"../react-ui/node_modules/date-fns/_lib/defaultOptions.js\");\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n/* harmony import */ var _getWeekYear_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWeekYear.js */ \"../react-ui/node_modules/date-fns/getWeekYear.js\");\n/* harmony import */ var _startOfWeek_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./startOfWeek.js */ \"../react-ui/node_modules/date-fns/startOfWeek.js\");\n\n\n\n\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n *   weekStartsOn: 1,\n *   firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nfunction startOfWeekYear(date, options) {\n  const defaultOptions = (0,_lib_defaultOptions_js__WEBPACK_IMPORTED_MODULE_0__.getDefaultOptions)();\n  const firstWeekContainsDate = options?.firstWeekContainsDate ?? options?.locale?.options?.firstWeekContainsDate ?? defaultOptions.firstWeekContainsDate ?? defaultOptions.locale?.options?.firstWeekContainsDate ?? 1;\n  const year = (0,_getWeekYear_js__WEBPACK_IMPORTED_MODULE_2__.getWeekYear)(date, options);\n  const firstWeek = (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_1__.constructFrom)(options?.in || date, 0);\n  firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n  firstWeek.setHours(0, 0, 0, 0);\n  const _date = (0,_startOfWeek_js__WEBPACK_IMPORTED_MODULE_3__.startOfWeek)(firstWeek, options);\n  return _date;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (startOfWeekYear);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/startOfWeekYear.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/startOfYear.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/date-fns/startOfYear.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   startOfYear: () => (/* binding */ startOfYear)\n/* harmony export */ });\n/* harmony import */ var _toDate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toDate.js */ \"../react-ui/node_modules/date-fns/toDate.js\");\n\n\n/**\n * The {@link startOfYear} function options.\n */\n\n/**\n * @name startOfYear\n * @category Year Helpers\n * @summary Return the start of a year for the given date.\n *\n * @description\n * Return the start of a year for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - The options\n *\n * @returns The start of a year\n *\n * @example\n * // The start of a year for 2 September 2014 11:55:00:\n * const result = startOfYear(new Date(2014, 8, 2, 11, 55, 00))\n * //=> Wed Jan 01 2014 00:00:00\n */\nfunction startOfYear(date, options) {\n  const date_ = (0,_toDate_js__WEBPACK_IMPORTED_MODULE_0__.toDate)(date, options?.in);\n  date_.setFullYear(date_.getFullYear(), 0, 1);\n  date_.setHours(0, 0, 0, 0);\n  return date_;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (startOfYear);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/startOfYear.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/toDate.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/date-fns/toDate.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   toDate: () => (/* binding */ toDate)\n/* harmony export */ });\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n\n\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * Starting from v3.7.0, it clones a date using `[Symbol.for(\"constructDateFrom\")]`\n * enabling to transfer extra properties from the reference date to the new date.\n * It's useful for extensions like [`TZDate`](https://github.com/date-fns/tz)\n * that accept a time zone as a constructor argument.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nfunction toDate(argument, context) {\n  // [TODO] Get rid of `toDate` or `constructFrom`?\n  return (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(context || argument, argument);\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (toDate);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/toDate.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/date-fns/transpose.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/date-fns/transpose.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   transpose: () => (/* binding */ transpose)\n/* harmony export */ });\n/* harmony import */ var _constructFrom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constructFrom.js */ \"../react-ui/node_modules/date-fns/constructFrom.js\");\n\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam InputDate - The input `Date` type derived from the passed argument.\n * @typeParam ResultDate - The result `Date` type derived from the passed constructor.\n *\n * @param date - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nfunction transpose(date, constructor) {\n  const date_ = isConstructor(constructor) ? new constructor(0) : (0,_constructFrom_js__WEBPACK_IMPORTED_MODULE_0__.constructFrom)(constructor, 0);\n  date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n  date_.setHours(date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n  return date_;\n}\nfunction isConstructor(constructor) {\n  return typeof constructor === \"function\" && constructor.prototype?.constructor === constructor;\n}\n\n// Fallback for modularized imports:\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (transpose);\n\n//# sourceURL=webpack:///../react-ui/node_modules/date-fns/transpose.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/actions/dragDrop/beginDrag.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/actions/dragDrop/beginDrag.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   createBeginDrag: () => (/* binding */ createBeginDrag)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/invariant */ \"../react-ui/node_modules/@react-dnd/invariant/dist/index.js\");\n/* harmony import */ var _utils_js_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/js_utils.js */ \"../react-ui/node_modules/dnd-core/dist/utils/js_utils.js\");\n/* harmony import */ var _local_setClientOffset_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./local/setClientOffset.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/local/setClientOffset.js\");\n/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./types.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/types.js\");\n\n\n\n\nconst ResetCoordinatesAction = {\n  type: _types_js__WEBPACK_IMPORTED_MODULE_3__.INIT_COORDS,\n  payload: {\n    clientOffset: null,\n    sourceClientOffset: null\n  }\n};\nfunction createBeginDrag(manager) {\n  return function beginDrag(sourceIds = [], options = {\n    publishSource: true\n  }) {\n    const {\n      publishSource = true,\n      clientOffset,\n      getSourceClientOffset\n    } = options;\n    const monitor = manager.getMonitor();\n    const registry = manager.getRegistry();\n    // Initialize the coordinates using the client offset\n    manager.dispatch((0,_local_setClientOffset_js__WEBPACK_IMPORTED_MODULE_2__.setClientOffset)(clientOffset));\n    verifyInvariants(sourceIds, monitor, registry);\n    // Get the draggable source\n    const sourceId = getDraggableSource(sourceIds, monitor);\n    if (sourceId == null) {\n      manager.dispatch(ResetCoordinatesAction);\n      return;\n    }\n    // Get the source client offset\n    let sourceClientOffset = null;\n    if (clientOffset) {\n      if (!getSourceClientOffset) {\n        throw new Error('getSourceClientOffset must be defined');\n      }\n      verifyGetSourceClientOffsetIsFunction(getSourceClientOffset);\n      sourceClientOffset = getSourceClientOffset(sourceId);\n    }\n    // Initialize the full coordinates\n    manager.dispatch((0,_local_setClientOffset_js__WEBPACK_IMPORTED_MODULE_2__.setClientOffset)(clientOffset, sourceClientOffset));\n    const source = registry.getSource(sourceId);\n    const item = source.beginDrag(monitor, sourceId);\n    // If source.beginDrag returns null, this is an indicator to cancel the drag\n    if (item == null) {\n      return undefined;\n    }\n    verifyItemIsObject(item);\n    registry.pinSource(sourceId);\n    const itemType = registry.getSourceType(sourceId);\n    return {\n      type: _types_js__WEBPACK_IMPORTED_MODULE_3__.BEGIN_DRAG,\n      payload: {\n        itemType,\n        item,\n        sourceId,\n        clientOffset: clientOffset || null,\n        sourceClientOffset: sourceClientOffset || null,\n        isSourcePublic: !!publishSource\n      }\n    };\n  };\n}\nfunction verifyInvariants(sourceIds, monitor, registry) {\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(!monitor.isDragging(), 'Cannot call beginDrag while dragging.');\n  sourceIds.forEach(function (sourceId) {\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(registry.getSource(sourceId), 'Expected sourceIds to be registered.');\n  });\n}\nfunction verifyGetSourceClientOffsetIsFunction(getSourceClientOffset) {\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(typeof getSourceClientOffset === 'function', 'When clientOffset is provided, getSourceClientOffset must be a function.');\n}\nfunction verifyItemIsObject(item) {\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)((0,_utils_js_utils_js__WEBPACK_IMPORTED_MODULE_1__.isObject)(item), 'Item must be an object.');\n}\nfunction getDraggableSource(sourceIds, monitor) {\n  let sourceId = null;\n  for (let i = sourceIds.length - 1; i >= 0; i--) {\n    if (monitor.canDragSource(sourceIds[i])) {\n      sourceId = sourceIds[i];\n      break;\n    }\n  }\n  return sourceId;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/actions/dragDrop/beginDrag.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/actions/dragDrop/drop.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/actions/dragDrop/drop.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   createDrop: () => (/* binding */ createDrop)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/invariant */ \"../react-ui/node_modules/@react-dnd/invariant/dist/index.js\");\n/* harmony import */ var _utils_js_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/js_utils.js */ \"../react-ui/node_modules/dnd-core/dist/utils/js_utils.js\");\n/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/types.js\");\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n    var ownKeys = Object.keys(source);\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n      }));\n    }\n    ownKeys.forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    });\n  }\n  return target;\n}\n\n\n\nfunction createDrop(manager) {\n  return function drop(options = {}) {\n    const monitor = manager.getMonitor();\n    const registry = manager.getRegistry();\n    verifyInvariants(monitor);\n    const targetIds = getDroppableTargets(monitor);\n    // Multiple actions are dispatched here, which is why this doesn't return an action\n    targetIds.forEach((targetId, index) => {\n      const dropResult = determineDropResult(targetId, index, registry, monitor);\n      const action = {\n        type: _types_js__WEBPACK_IMPORTED_MODULE_2__.DROP,\n        payload: {\n          dropResult: _objectSpread({}, options, dropResult)\n        }\n      };\n      manager.dispatch(action);\n    });\n  };\n}\nfunction verifyInvariants(monitor) {\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(monitor.isDragging(), 'Cannot call drop while not dragging.');\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(!monitor.didDrop(), 'Cannot call drop twice during one drag operation.');\n}\nfunction determineDropResult(targetId, index, registry, monitor) {\n  const target = registry.getTarget(targetId);\n  let dropResult = target ? target.drop(monitor, targetId) : undefined;\n  verifyDropResultType(dropResult);\n  if (typeof dropResult === 'undefined') {\n    dropResult = index === 0 ? {} : monitor.getDropResult();\n  }\n  return dropResult;\n}\nfunction verifyDropResultType(dropResult) {\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(typeof dropResult === 'undefined' || (0,_utils_js_utils_js__WEBPACK_IMPORTED_MODULE_1__.isObject)(dropResult), 'Drop result must either be an object or undefined.');\n}\nfunction getDroppableTargets(monitor) {\n  const targetIds = monitor.getTargetIds().filter(monitor.canDropOnTarget, monitor);\n  targetIds.reverse();\n  return targetIds;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/actions/dragDrop/drop.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/actions/dragDrop/endDrag.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/actions/dragDrop/endDrag.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   createEndDrag: () => (/* binding */ createEndDrag)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/invariant */ \"../react-ui/node_modules/@react-dnd/invariant/dist/index.js\");\n/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/types.js\");\n\n\nfunction createEndDrag(manager) {\n  return function endDrag() {\n    const monitor = manager.getMonitor();\n    const registry = manager.getRegistry();\n    verifyIsDragging(monitor);\n    const sourceId = monitor.getSourceId();\n    if (sourceId != null) {\n      const source = registry.getSource(sourceId, true);\n      source.endDrag(monitor, sourceId);\n      registry.unpinSource();\n    }\n    return {\n      type: _types_js__WEBPACK_IMPORTED_MODULE_1__.END_DRAG\n    };\n  };\n}\nfunction verifyIsDragging(monitor) {\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(monitor.isDragging(), 'Cannot call endDrag while not dragging.');\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/actions/dragDrop/endDrag.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/actions/dragDrop/hover.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/actions/dragDrop/hover.js ***!
  \************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   createHover: () => (/* binding */ createHover)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/invariant */ \"../react-ui/node_modules/@react-dnd/invariant/dist/index.js\");\n/* harmony import */ var _utils_matchesType_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../utils/matchesType.js */ \"../react-ui/node_modules/dnd-core/dist/utils/matchesType.js\");\n/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/types.js\");\n\n\n\nfunction createHover(manager) {\n  return function hover(targetIdsArg, {\n    clientOffset\n  } = {}) {\n    verifyTargetIdsIsArray(targetIdsArg);\n    const targetIds = targetIdsArg.slice(0);\n    const monitor = manager.getMonitor();\n    const registry = manager.getRegistry();\n    const draggedItemType = monitor.getItemType();\n    removeNonMatchingTargetIds(targetIds, registry, draggedItemType);\n    checkInvariants(targetIds, monitor, registry);\n    hoverAllTargets(targetIds, monitor, registry);\n    return {\n      type: _types_js__WEBPACK_IMPORTED_MODULE_2__.HOVER,\n      payload: {\n        targetIds,\n        clientOffset: clientOffset || null\n      }\n    };\n  };\n}\nfunction verifyTargetIdsIsArray(targetIdsArg) {\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.');\n}\nfunction checkInvariants(targetIds, monitor, registry) {\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(monitor.isDragging(), 'Cannot call hover while not dragging.');\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(!monitor.didDrop(), 'Cannot call hover after drop.');\n  for (let i = 0; i < targetIds.length; i++) {\n    const targetId = targetIds[i];\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(targetIds.lastIndexOf(targetId) === i, 'Expected targetIds to be unique in the passed array.');\n    const target = registry.getTarget(targetId);\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(target, 'Expected targetIds to be registered.');\n  }\n}\nfunction removeNonMatchingTargetIds(targetIds, registry, draggedItemType) {\n  // Remove those targetIds that don't match the targetType.  This\n  // fixes shallow isOver which would only be non-shallow because of\n  // non-matching targets.\n  for (let i = targetIds.length - 1; i >= 0; i--) {\n    const targetId = targetIds[i];\n    const targetType = registry.getTargetType(targetId);\n    if (!(0,_utils_matchesType_js__WEBPACK_IMPORTED_MODULE_1__.matchesType)(targetType, draggedItemType)) {\n      targetIds.splice(i, 1);\n    }\n  }\n}\nfunction hoverAllTargets(targetIds, monitor, registry) {\n  // Finally call hover on all matching targets.\n  targetIds.forEach(function (targetId) {\n    const target = registry.getTarget(targetId);\n    target.hover(monitor, targetId);\n  });\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/actions/dragDrop/hover.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/actions/dragDrop/index.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/actions/dragDrop/index.js ***!
  \************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   BEGIN_DRAG: () => (/* reexport safe */ _types_js__WEBPACK_IMPORTED_MODULE_5__.BEGIN_DRAG),\n/* harmony export */   DROP: () => (/* reexport safe */ _types_js__WEBPACK_IMPORTED_MODULE_5__.DROP),\n/* harmony export */   END_DRAG: () => (/* reexport safe */ _types_js__WEBPACK_IMPORTED_MODULE_5__.END_DRAG),\n/* harmony export */   HOVER: () => (/* reexport safe */ _types_js__WEBPACK_IMPORTED_MODULE_5__.HOVER),\n/* harmony export */   INIT_COORDS: () => (/* reexport safe */ _types_js__WEBPACK_IMPORTED_MODULE_5__.INIT_COORDS),\n/* harmony export */   PUBLISH_DRAG_SOURCE: () => (/* reexport safe */ _types_js__WEBPACK_IMPORTED_MODULE_5__.PUBLISH_DRAG_SOURCE),\n/* harmony export */   createDragDropActions: () => (/* binding */ createDragDropActions)\n/* harmony export */ });\n/* harmony import */ var _beginDrag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./beginDrag.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/beginDrag.js\");\n/* harmony import */ var _drop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./drop.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/drop.js\");\n/* harmony import */ var _endDrag_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./endDrag.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/endDrag.js\");\n/* harmony import */ var _hover_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./hover.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/hover.js\");\n/* harmony import */ var _publishDragSource_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./publishDragSource.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/publishDragSource.js\");\n/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./types.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/types.js\");\n\n\n\n\n\n\nfunction createDragDropActions(manager) {\n  return {\n    beginDrag: (0,_beginDrag_js__WEBPACK_IMPORTED_MODULE_0__.createBeginDrag)(manager),\n    publishDragSource: (0,_publishDragSource_js__WEBPACK_IMPORTED_MODULE_4__.createPublishDragSource)(manager),\n    hover: (0,_hover_js__WEBPACK_IMPORTED_MODULE_3__.createHover)(manager),\n    drop: (0,_drop_js__WEBPACK_IMPORTED_MODULE_1__.createDrop)(manager),\n    endDrag: (0,_endDrag_js__WEBPACK_IMPORTED_MODULE_2__.createEndDrag)(manager)\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/actions/dragDrop/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/actions/dragDrop/local/setClientOffset.js":
/*!****************************************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/actions/dragDrop/local/setClientOffset.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   setClientOffset: () => (/* binding */ setClientOffset)\n/* harmony export */ });\n/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../types.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/types.js\");\n\nfunction setClientOffset(clientOffset, sourceClientOffset) {\n  return {\n    type: _types_js__WEBPACK_IMPORTED_MODULE_0__.INIT_COORDS,\n    payload: {\n      sourceClientOffset: sourceClientOffset || null,\n      clientOffset: clientOffset || null\n    }\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/actions/dragDrop/local/setClientOffset.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/actions/dragDrop/publishDragSource.js":
/*!************************************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/actions/dragDrop/publishDragSource.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   createPublishDragSource: () => (/* binding */ createPublishDragSource)\n/* harmony export */ });\n/* harmony import */ var _types_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/types.js\");\n\nfunction createPublishDragSource(manager) {\n  return function publishDragSource() {\n    const monitor = manager.getMonitor();\n    if (monitor.isDragging()) {\n      return {\n        type: _types_js__WEBPACK_IMPORTED_MODULE_0__.PUBLISH_DRAG_SOURCE\n      };\n    }\n    return;\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/actions/dragDrop/publishDragSource.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/actions/dragDrop/types.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/actions/dragDrop/types.js ***!
  \************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   BEGIN_DRAG: () => (/* binding */ BEGIN_DRAG),\n/* harmony export */   DROP: () => (/* binding */ DROP),\n/* harmony export */   END_DRAG: () => (/* binding */ END_DRAG),\n/* harmony export */   HOVER: () => (/* binding */ HOVER),\n/* harmony export */   INIT_COORDS: () => (/* binding */ INIT_COORDS),\n/* harmony export */   PUBLISH_DRAG_SOURCE: () => (/* binding */ PUBLISH_DRAG_SOURCE)\n/* harmony export */ });\nconst INIT_COORDS = 'dnd-core/INIT_COORDS';\nconst BEGIN_DRAG = 'dnd-core/BEGIN_DRAG';\nconst PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE';\nconst HOVER = 'dnd-core/HOVER';\nconst DROP = 'dnd-core/DROP';\nconst END_DRAG = 'dnd-core/END_DRAG';\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/actions/dragDrop/types.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/actions/registry.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/actions/registry.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ADD_SOURCE: () => (/* binding */ ADD_SOURCE),\n/* harmony export */   ADD_TARGET: () => (/* binding */ ADD_TARGET),\n/* harmony export */   REMOVE_SOURCE: () => (/* binding */ REMOVE_SOURCE),\n/* harmony export */   REMOVE_TARGET: () => (/* binding */ REMOVE_TARGET),\n/* harmony export */   addSource: () => (/* binding */ addSource),\n/* harmony export */   addTarget: () => (/* binding */ addTarget),\n/* harmony export */   removeSource: () => (/* binding */ removeSource),\n/* harmony export */   removeTarget: () => (/* binding */ removeTarget)\n/* harmony export */ });\nconst ADD_SOURCE = 'dnd-core/ADD_SOURCE';\nconst ADD_TARGET = 'dnd-core/ADD_TARGET';\nconst REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE';\nconst REMOVE_TARGET = 'dnd-core/REMOVE_TARGET';\nfunction addSource(sourceId) {\n  return {\n    type: ADD_SOURCE,\n    payload: {\n      sourceId\n    }\n  };\n}\nfunction addTarget(targetId) {\n  return {\n    type: ADD_TARGET,\n    payload: {\n      targetId\n    }\n  };\n}\nfunction removeSource(sourceId) {\n  return {\n    type: REMOVE_SOURCE,\n    payload: {\n      sourceId\n    }\n  };\n}\nfunction removeTarget(targetId) {\n  return {\n    type: REMOVE_TARGET,\n    payload: {\n      targetId\n    }\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/actions/registry.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/classes/DragDropManagerImpl.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/classes/DragDropManagerImpl.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DragDropManagerImpl: () => (/* binding */ DragDropManagerImpl)\n/* harmony export */ });\n/* harmony import */ var _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../actions/dragDrop/index.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/index.js\");\n\nclass DragDropManagerImpl {\n  receiveBackend(backend) {\n    this.backend = backend;\n  }\n  getMonitor() {\n    return this.monitor;\n  }\n  getBackend() {\n    return this.backend;\n  }\n  getRegistry() {\n    return this.monitor.registry;\n  }\n  getActions() {\n    /* eslint-disable-next-line @typescript-eslint/no-this-alias */const manager = this;\n    const {\n      dispatch\n    } = this.store;\n    function bindActionCreator(actionCreator) {\n      return (...args) => {\n        const action = actionCreator.apply(manager, args);\n        if (typeof action !== 'undefined') {\n          dispatch(action);\n        }\n      };\n    }\n    const actions = (0,_actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.createDragDropActions)(this);\n    return Object.keys(actions).reduce((boundActions, key) => {\n      const action = actions[key];\n      boundActions[key] = bindActionCreator(action);\n      return boundActions;\n    }, {});\n  }\n  dispatch(action) {\n    this.store.dispatch(action);\n  }\n  constructor(store, monitor) {\n    this.isSetUp = false;\n    this.handleRefCountChange = () => {\n      const shouldSetUp = this.store.getState().refCount > 0;\n      if (this.backend) {\n        if (shouldSetUp && !this.isSetUp) {\n          this.backend.setup();\n          this.isSetUp = true;\n        } else if (!shouldSetUp && this.isSetUp) {\n          this.backend.teardown();\n          this.isSetUp = false;\n        }\n      }\n    };\n    this.store = store;\n    this.monitor = monitor;\n    store.subscribe(this.handleRefCountChange);\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/classes/DragDropManagerImpl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/classes/DragDropMonitorImpl.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/classes/DragDropMonitorImpl.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DragDropMonitorImpl: () => (/* binding */ DragDropMonitorImpl)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/invariant */ \"../react-ui/node_modules/@react-dnd/invariant/dist/index.js\");\n/* harmony import */ var _utils_coords_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/coords.js */ \"../react-ui/node_modules/dnd-core/dist/utils/coords.js\");\n/* harmony import */ var _utils_dirtiness_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/dirtiness.js */ \"../react-ui/node_modules/dnd-core/dist/utils/dirtiness.js\");\n/* harmony import */ var _utils_matchesType_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/matchesType.js */ \"../react-ui/node_modules/dnd-core/dist/utils/matchesType.js\");\n\n\n\n\nclass DragDropMonitorImpl {\n  subscribeToStateChange(listener, options = {}) {\n    const {\n      handlerIds\n    } = options;\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(typeof listener === 'function', 'listener must be a function.');\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(typeof handlerIds === 'undefined' || Array.isArray(handlerIds), 'handlerIds, when specified, must be an array of strings.');\n    let prevStateId = this.store.getState().stateId;\n    const handleChange = () => {\n      const state = this.store.getState();\n      const currentStateId = state.stateId;\n      try {\n        const canSkipListener = currentStateId === prevStateId || currentStateId === prevStateId + 1 && !(0,_utils_dirtiness_js__WEBPACK_IMPORTED_MODULE_2__.areDirty)(state.dirtyHandlerIds, handlerIds);\n        if (!canSkipListener) {\n          listener();\n        }\n      } finally {\n        prevStateId = currentStateId;\n      }\n    };\n    return this.store.subscribe(handleChange);\n  }\n  subscribeToOffsetChange(listener) {\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(typeof listener === 'function', 'listener must be a function.');\n    let previousState = this.store.getState().dragOffset;\n    const handleChange = () => {\n      const nextState = this.store.getState().dragOffset;\n      if (nextState === previousState) {\n        return;\n      }\n      previousState = nextState;\n      listener();\n    };\n    return this.store.subscribe(handleChange);\n  }\n  canDragSource(sourceId) {\n    if (!sourceId) {\n      return false;\n    }\n    const source = this.registry.getSource(sourceId);\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(source, `Expected to find a valid source. sourceId=${sourceId}`);\n    if (this.isDragging()) {\n      return false;\n    }\n    return source.canDrag(this, sourceId);\n  }\n  canDropOnTarget(targetId) {\n    // undefined on initial render\n    if (!targetId) {\n      return false;\n    }\n    const target = this.registry.getTarget(targetId);\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(target, `Expected to find a valid target. targetId=${targetId}`);\n    if (!this.isDragging() || this.didDrop()) {\n      return false;\n    }\n    const targetType = this.registry.getTargetType(targetId);\n    const draggedItemType = this.getItemType();\n    return (0,_utils_matchesType_js__WEBPACK_IMPORTED_MODULE_3__.matchesType)(targetType, draggedItemType) && target.canDrop(this, targetId);\n  }\n  isDragging() {\n    return Boolean(this.getItemType());\n  }\n  isDraggingSource(sourceId) {\n    // undefined on initial render\n    if (!sourceId) {\n      return false;\n    }\n    const source = this.registry.getSource(sourceId, true);\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(source, `Expected to find a valid source. sourceId=${sourceId}`);\n    if (!this.isDragging() || !this.isSourcePublic()) {\n      return false;\n    }\n    const sourceType = this.registry.getSourceType(sourceId);\n    const draggedItemType = this.getItemType();\n    if (sourceType !== draggedItemType) {\n      return false;\n    }\n    return source.isDragging(this, sourceId);\n  }\n  isOverTarget(targetId, options = {\n    shallow: false\n  }) {\n    // undefined on initial render\n    if (!targetId) {\n      return false;\n    }\n    const {\n      shallow\n    } = options;\n    if (!this.isDragging()) {\n      return false;\n    }\n    const targetType = this.registry.getTargetType(targetId);\n    const draggedItemType = this.getItemType();\n    if (draggedItemType && !(0,_utils_matchesType_js__WEBPACK_IMPORTED_MODULE_3__.matchesType)(targetType, draggedItemType)) {\n      return false;\n    }\n    const targetIds = this.getTargetIds();\n    if (!targetIds.length) {\n      return false;\n    }\n    const index = targetIds.indexOf(targetId);\n    if (shallow) {\n      return index === targetIds.length - 1;\n    } else {\n      return index > -1;\n    }\n  }\n  getItemType() {\n    return this.store.getState().dragOperation.itemType;\n  }\n  getItem() {\n    return this.store.getState().dragOperation.item;\n  }\n  getSourceId() {\n    return this.store.getState().dragOperation.sourceId;\n  }\n  getTargetIds() {\n    return this.store.getState().dragOperation.targetIds;\n  }\n  getDropResult() {\n    return this.store.getState().dragOperation.dropResult;\n  }\n  didDrop() {\n    return this.store.getState().dragOperation.didDrop;\n  }\n  isSourcePublic() {\n    return Boolean(this.store.getState().dragOperation.isSourcePublic);\n  }\n  getInitialClientOffset() {\n    return this.store.getState().dragOffset.initialClientOffset;\n  }\n  getInitialSourceClientOffset() {\n    return this.store.getState().dragOffset.initialSourceClientOffset;\n  }\n  getClientOffset() {\n    return this.store.getState().dragOffset.clientOffset;\n  }\n  getSourceClientOffset() {\n    return (0,_utils_coords_js__WEBPACK_IMPORTED_MODULE_1__.getSourceClientOffset)(this.store.getState().dragOffset);\n  }\n  getDifferenceFromInitialOffset() {\n    return (0,_utils_coords_js__WEBPACK_IMPORTED_MODULE_1__.getDifferenceFromInitialOffset)(this.store.getState().dragOffset);\n  }\n  constructor(store, registry) {\n    this.store = store;\n    this.registry = registry;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/classes/DragDropMonitorImpl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/classes/HandlerRegistryImpl.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/classes/HandlerRegistryImpl.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   HandlerRegistryImpl: () => (/* binding */ HandlerRegistryImpl)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_asap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/asap */ \"../react-ui/node_modules/@react-dnd/asap/dist/index.js\");\n/* harmony import */ var _react_dnd_invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @react-dnd/invariant */ \"../react-ui/node_modules/@react-dnd/invariant/dist/index.js\");\n/* harmony import */ var _actions_registry_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../actions/registry.js */ \"../react-ui/node_modules/dnd-core/dist/actions/registry.js\");\n/* harmony import */ var _contracts_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../contracts.js */ \"../react-ui/node_modules/dnd-core/dist/contracts.js\");\n/* harmony import */ var _interfaces_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../interfaces.js */ \"../react-ui/node_modules/dnd-core/dist/interfaces.js\");\n/* harmony import */ var _utils_getNextUniqueId_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/getNextUniqueId.js */ \"../react-ui/node_modules/dnd-core/dist/utils/getNextUniqueId.js\");\n\n\n\n\n\n\nfunction getNextHandlerId(role) {\n  const id = (0,_utils_getNextUniqueId_js__WEBPACK_IMPORTED_MODULE_5__.getNextUniqueId)().toString();\n  switch (role) {\n    case _interfaces_js__WEBPACK_IMPORTED_MODULE_4__.HandlerRole.SOURCE:\n      return `S${id}`;\n    case _interfaces_js__WEBPACK_IMPORTED_MODULE_4__.HandlerRole.TARGET:\n      return `T${id}`;\n    default:\n      throw new Error(`Unknown Handler Role: ${role}`);\n  }\n}\nfunction parseRoleFromHandlerId(handlerId) {\n  switch (handlerId[0]) {\n    case 'S':\n      return _interfaces_js__WEBPACK_IMPORTED_MODULE_4__.HandlerRole.SOURCE;\n    case 'T':\n      return _interfaces_js__WEBPACK_IMPORTED_MODULE_4__.HandlerRole.TARGET;\n    default:\n      throw new Error(`Cannot parse handler ID: ${handlerId}`);\n  }\n}\nfunction mapContainsValue(map, searchValue) {\n  const entries = map.entries();\n  let isDone = false;\n  do {\n    const {\n      done,\n      value: [, value]\n    } = entries.next();\n    if (value === searchValue) {\n      return true;\n    }\n    isDone = !!done;\n  } while (!isDone);\n  return false;\n}\nclass HandlerRegistryImpl {\n  addSource(type, source) {\n    (0,_contracts_js__WEBPACK_IMPORTED_MODULE_3__.validateType)(type);\n    (0,_contracts_js__WEBPACK_IMPORTED_MODULE_3__.validateSourceContract)(source);\n    const sourceId = this.addHandler(_interfaces_js__WEBPACK_IMPORTED_MODULE_4__.HandlerRole.SOURCE, type, source);\n    this.store.dispatch((0,_actions_registry_js__WEBPACK_IMPORTED_MODULE_2__.addSource)(sourceId));\n    return sourceId;\n  }\n  addTarget(type, target) {\n    (0,_contracts_js__WEBPACK_IMPORTED_MODULE_3__.validateType)(type, true);\n    (0,_contracts_js__WEBPACK_IMPORTED_MODULE_3__.validateTargetContract)(target);\n    const targetId = this.addHandler(_interfaces_js__WEBPACK_IMPORTED_MODULE_4__.HandlerRole.TARGET, type, target);\n    this.store.dispatch((0,_actions_registry_js__WEBPACK_IMPORTED_MODULE_2__.addTarget)(targetId));\n    return targetId;\n  }\n  containsHandler(handler) {\n    return mapContainsValue(this.dragSources, handler) || mapContainsValue(this.dropTargets, handler);\n  }\n  getSource(sourceId, includePinned = false) {\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_1__.invariant)(this.isSourceId(sourceId), 'Expected a valid source ID.');\n    const isPinned = includePinned && sourceId === this.pinnedSourceId;\n    const source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId);\n    return source;\n  }\n  getTarget(targetId) {\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_1__.invariant)(this.isTargetId(targetId), 'Expected a valid target ID.');\n    return this.dropTargets.get(targetId);\n  }\n  getSourceType(sourceId) {\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_1__.invariant)(this.isSourceId(sourceId), 'Expected a valid source ID.');\n    return this.types.get(sourceId);\n  }\n  getTargetType(targetId) {\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_1__.invariant)(this.isTargetId(targetId), 'Expected a valid target ID.');\n    return this.types.get(targetId);\n  }\n  isSourceId(handlerId) {\n    const role = parseRoleFromHandlerId(handlerId);\n    return role === _interfaces_js__WEBPACK_IMPORTED_MODULE_4__.HandlerRole.SOURCE;\n  }\n  isTargetId(handlerId) {\n    const role = parseRoleFromHandlerId(handlerId);\n    return role === _interfaces_js__WEBPACK_IMPORTED_MODULE_4__.HandlerRole.TARGET;\n  }\n  removeSource(sourceId) {\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_1__.invariant)(this.getSource(sourceId), 'Expected an existing source.');\n    this.store.dispatch((0,_actions_registry_js__WEBPACK_IMPORTED_MODULE_2__.removeSource)(sourceId));\n    (0,_react_dnd_asap__WEBPACK_IMPORTED_MODULE_0__.asap)(() => {\n      this.dragSources.delete(sourceId);\n      this.types.delete(sourceId);\n    });\n  }\n  removeTarget(targetId) {\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_1__.invariant)(this.getTarget(targetId), 'Expected an existing target.');\n    this.store.dispatch((0,_actions_registry_js__WEBPACK_IMPORTED_MODULE_2__.removeTarget)(targetId));\n    this.dropTargets.delete(targetId);\n    this.types.delete(targetId);\n  }\n  pinSource(sourceId) {\n    const source = this.getSource(sourceId);\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_1__.invariant)(source, 'Expected an existing source.');\n    this.pinnedSourceId = sourceId;\n    this.pinnedSource = source;\n  }\n  unpinSource() {\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_1__.invariant)(this.pinnedSource, 'No source is pinned at the time.');\n    this.pinnedSourceId = null;\n    this.pinnedSource = null;\n  }\n  addHandler(role, type, handler) {\n    const id = getNextHandlerId(role);\n    this.types.set(id, type);\n    if (role === _interfaces_js__WEBPACK_IMPORTED_MODULE_4__.HandlerRole.SOURCE) {\n      this.dragSources.set(id, handler);\n    } else if (role === _interfaces_js__WEBPACK_IMPORTED_MODULE_4__.HandlerRole.TARGET) {\n      this.dropTargets.set(id, handler);\n    }\n    return id;\n  }\n  constructor(store) {\n    this.types = new Map();\n    this.dragSources = new Map();\n    this.dropTargets = new Map();\n    this.pinnedSourceId = null;\n    this.pinnedSource = null;\n    this.store = store;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/classes/HandlerRegistryImpl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/contracts.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/contracts.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   validateSourceContract: () => (/* binding */ validateSourceContract),\n/* harmony export */   validateTargetContract: () => (/* binding */ validateTargetContract),\n/* harmony export */   validateType: () => (/* binding */ validateType)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/invariant */ \"../react-ui/node_modules/@react-dnd/invariant/dist/index.js\");\n\nfunction validateSourceContract(source) {\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(typeof source.canDrag === 'function', 'Expected canDrag to be a function.');\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(typeof source.beginDrag === 'function', 'Expected beginDrag to be a function.');\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(typeof source.endDrag === 'function', 'Expected endDrag to be a function.');\n}\nfunction validateTargetContract(target) {\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(typeof target.canDrop === 'function', 'Expected canDrop to be a function.');\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(typeof target.hover === 'function', 'Expected hover to be a function.');\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(typeof target.drop === 'function', 'Expected beginDrag to be a function.');\n}\nfunction validateType(type, allowArray) {\n  if (allowArray && Array.isArray(type)) {\n    type.forEach(t => validateType(t, false));\n    return;\n  }\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(typeof type === 'string' || typeof type === 'symbol', allowArray ? 'Type can only be a string, a symbol, or an array of either.' : 'Type can only be a string or a symbol.');\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/contracts.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/createDragDropManager.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/createDragDropManager.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   createDragDropManager: () => (/* binding */ createDragDropManager)\n/* harmony export */ });\n/* harmony import */ var redux__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! redux */ \"../react-ui/node_modules/redux/dist/redux.mjs\");\n/* harmony import */ var _classes_DragDropManagerImpl_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./classes/DragDropManagerImpl.js */ \"../react-ui/node_modules/dnd-core/dist/classes/DragDropManagerImpl.js\");\n/* harmony import */ var _classes_DragDropMonitorImpl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./classes/DragDropMonitorImpl.js */ \"../react-ui/node_modules/dnd-core/dist/classes/DragDropMonitorImpl.js\");\n/* harmony import */ var _classes_HandlerRegistryImpl_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./classes/HandlerRegistryImpl.js */ \"../react-ui/node_modules/dnd-core/dist/classes/HandlerRegistryImpl.js\");\n/* harmony import */ var _reducers_index_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./reducers/index.js */ \"../react-ui/node_modules/dnd-core/dist/reducers/index.js\");\n\n\n\n\n\nfunction createDragDropManager(backendFactory, globalContext = undefined, backendOptions = {}, debugMode = false) {\n  const store = makeStoreInstance(debugMode);\n  const monitor = new _classes_DragDropMonitorImpl_js__WEBPACK_IMPORTED_MODULE_2__.DragDropMonitorImpl(store, new _classes_HandlerRegistryImpl_js__WEBPACK_IMPORTED_MODULE_3__.HandlerRegistryImpl(store));\n  const manager = new _classes_DragDropManagerImpl_js__WEBPACK_IMPORTED_MODULE_1__.DragDropManagerImpl(store, monitor);\n  const backend = backendFactory(manager, globalContext, backendOptions);\n  manager.receiveBackend(backend);\n  return manager;\n}\nfunction makeStoreInstance(debugMode) {\n  // TODO: if we ever make a react-native version of this,\n  // we'll need to consider how to pull off dev-tooling\n  const reduxDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__;\n  return (0,redux__WEBPACK_IMPORTED_MODULE_0__.createStore)(_reducers_index_js__WEBPACK_IMPORTED_MODULE_4__.reduce, debugMode && reduxDevTools && reduxDevTools({\n    name: 'dnd-core',\n    instanceId: 'dnd-core'\n  }));\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/createDragDropManager.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/interfaces.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/interfaces.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   HandlerRole: () => (/* binding */ HandlerRole)\n/* harmony export */ });\nvar HandlerRole;\n(function (HandlerRole) {\n  HandlerRole[\"SOURCE\"] = \"SOURCE\";\n  HandlerRole[\"TARGET\"] = \"TARGET\";\n})(HandlerRole || (HandlerRole = {}));\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/interfaces.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/reducers/dirtyHandlerIds.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/reducers/dirtyHandlerIds.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   reduce: () => (/* binding */ reduce)\n/* harmony export */ });\n/* harmony import */ var _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../actions/dragDrop/index.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/types.js\");\n/* harmony import */ var _actions_registry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../actions/registry.js */ \"../react-ui/node_modules/dnd-core/dist/actions/registry.js\");\n/* harmony import */ var _utils_dirtiness_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/dirtiness.js */ \"../react-ui/node_modules/dnd-core/dist/utils/dirtiness.js\");\n/* harmony import */ var _utils_equality_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/equality.js */ \"../react-ui/node_modules/dnd-core/dist/utils/equality.js\");\n/* harmony import */ var _utils_js_utils_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/js_utils.js */ \"../react-ui/node_modules/dnd-core/dist/utils/js_utils.js\");\n\n\n\n\n\nfunction reduce(\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n_state = _utils_dirtiness_js__WEBPACK_IMPORTED_MODULE_2__.NONE, action) {\n  switch (action.type) {\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.HOVER:\n      break;\n    case _actions_registry_js__WEBPACK_IMPORTED_MODULE_1__.ADD_SOURCE:\n    case _actions_registry_js__WEBPACK_IMPORTED_MODULE_1__.ADD_TARGET:\n    case _actions_registry_js__WEBPACK_IMPORTED_MODULE_1__.REMOVE_TARGET:\n    case _actions_registry_js__WEBPACK_IMPORTED_MODULE_1__.REMOVE_SOURCE:\n      return _utils_dirtiness_js__WEBPACK_IMPORTED_MODULE_2__.NONE;\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.BEGIN_DRAG:\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.PUBLISH_DRAG_SOURCE:\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.END_DRAG:\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.DROP:\n    default:\n      return _utils_dirtiness_js__WEBPACK_IMPORTED_MODULE_2__.ALL;\n  }\n  const {\n    targetIds = [],\n    prevTargetIds = []\n  } = action.payload;\n  const result = (0,_utils_js_utils_js__WEBPACK_IMPORTED_MODULE_4__.xor)(targetIds, prevTargetIds);\n  const didChange = result.length > 0 || !(0,_utils_equality_js__WEBPACK_IMPORTED_MODULE_3__.areArraysEqual)(targetIds, prevTargetIds);\n  if (!didChange) {\n    return _utils_dirtiness_js__WEBPACK_IMPORTED_MODULE_2__.NONE;\n  }\n  // Check the target ids at the innermost position. If they are valid, add them\n  // to the result\n  const prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1];\n  const innermostTargetId = targetIds[targetIds.length - 1];\n  if (prevInnermostTargetId !== innermostTargetId) {\n    if (prevInnermostTargetId) {\n      result.push(prevInnermostTargetId);\n    }\n    if (innermostTargetId) {\n      result.push(innermostTargetId);\n    }\n  }\n  return result;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/reducers/dirtyHandlerIds.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/reducers/dragOffset.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/reducers/dragOffset.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   reduce: () => (/* binding */ reduce)\n/* harmony export */ });\n/* harmony import */ var _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../actions/dragDrop/index.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/types.js\");\n/* harmony import */ var _utils_equality_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/equality.js */ \"../react-ui/node_modules/dnd-core/dist/utils/equality.js\");\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n    var ownKeys = Object.keys(source);\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n      }));\n    }\n    ownKeys.forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    });\n  }\n  return target;\n}\n\n\nconst initialState = {\n  initialSourceClientOffset: null,\n  initialClientOffset: null,\n  clientOffset: null\n};\nfunction reduce(state = initialState, action) {\n  const {\n    payload\n  } = action;\n  switch (action.type) {\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.INIT_COORDS:\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.BEGIN_DRAG:\n      return {\n        initialSourceClientOffset: payload.sourceClientOffset,\n        initialClientOffset: payload.clientOffset,\n        clientOffset: payload.clientOffset\n      };\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.HOVER:\n      if ((0,_utils_equality_js__WEBPACK_IMPORTED_MODULE_1__.areCoordsEqual)(state.clientOffset, payload.clientOffset)) {\n        return state;\n      }\n      return _objectSpread({}, state, {\n        clientOffset: payload.clientOffset\n      });\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.END_DRAG:\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.DROP:\n      return initialState;\n    default:\n      return state;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/reducers/dragOffset.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/reducers/dragOperation.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/reducers/dragOperation.js ***!
  \************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   reduce: () => (/* binding */ reduce)\n/* harmony export */ });\n/* harmony import */ var _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../actions/dragDrop/index.js */ \"../react-ui/node_modules/dnd-core/dist/actions/dragDrop/types.js\");\n/* harmony import */ var _actions_registry_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../actions/registry.js */ \"../react-ui/node_modules/dnd-core/dist/actions/registry.js\");\n/* harmony import */ var _utils_js_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/js_utils.js */ \"../react-ui/node_modules/dnd-core/dist/utils/js_utils.js\");\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n    var ownKeys = Object.keys(source);\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n      }));\n    }\n    ownKeys.forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    });\n  }\n  return target;\n}\n\n\n\nconst initialState = {\n  itemType: null,\n  item: null,\n  sourceId: null,\n  targetIds: [],\n  dropResult: null,\n  didDrop: false,\n  isSourcePublic: null\n};\nfunction reduce(state = initialState, action) {\n  const {\n    payload\n  } = action;\n  switch (action.type) {\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.BEGIN_DRAG:\n      return _objectSpread({}, state, {\n        itemType: payload.itemType,\n        item: payload.item,\n        sourceId: payload.sourceId,\n        isSourcePublic: payload.isSourcePublic,\n        dropResult: null,\n        didDrop: false\n      });\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.PUBLISH_DRAG_SOURCE:\n      return _objectSpread({}, state, {\n        isSourcePublic: true\n      });\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.HOVER:\n      return _objectSpread({}, state, {\n        targetIds: payload.targetIds\n      });\n    case _actions_registry_js__WEBPACK_IMPORTED_MODULE_1__.REMOVE_TARGET:\n      if (state.targetIds.indexOf(payload.targetId) === -1) {\n        return state;\n      }\n      return _objectSpread({}, state, {\n        targetIds: (0,_utils_js_utils_js__WEBPACK_IMPORTED_MODULE_2__.without)(state.targetIds, payload.targetId)\n      });\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.DROP:\n      return _objectSpread({}, state, {\n        dropResult: payload.dropResult,\n        didDrop: true,\n        targetIds: []\n      });\n    case _actions_dragDrop_index_js__WEBPACK_IMPORTED_MODULE_0__.END_DRAG:\n      return _objectSpread({}, state, {\n        itemType: null,\n        item: null,\n        sourceId: null,\n        dropResult: null,\n        didDrop: false,\n        isSourcePublic: null,\n        targetIds: []\n      });\n    default:\n      return state;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/reducers/dragOperation.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/reducers/index.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/reducers/index.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   reduce: () => (/* binding */ reduce)\n/* harmony export */ });\n/* harmony import */ var _utils_js_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/js_utils.js */ \"../react-ui/node_modules/dnd-core/dist/utils/js_utils.js\");\n/* harmony import */ var _dirtyHandlerIds_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dirtyHandlerIds.js */ \"../react-ui/node_modules/dnd-core/dist/reducers/dirtyHandlerIds.js\");\n/* harmony import */ var _dragOffset_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dragOffset.js */ \"../react-ui/node_modules/dnd-core/dist/reducers/dragOffset.js\");\n/* harmony import */ var _dragOperation_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dragOperation.js */ \"../react-ui/node_modules/dnd-core/dist/reducers/dragOperation.js\");\n/* harmony import */ var _refCount_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./refCount.js */ \"../react-ui/node_modules/dnd-core/dist/reducers/refCount.js\");\n/* harmony import */ var _stateId_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./stateId.js */ \"../react-ui/node_modules/dnd-core/dist/reducers/stateId.js\");\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n    var ownKeys = Object.keys(source);\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n      }));\n    }\n    ownKeys.forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    });\n  }\n  return target;\n}\n\n\n\n\n\n\nfunction reduce(state = {}, action) {\n  return {\n    dirtyHandlerIds: (0,_dirtyHandlerIds_js__WEBPACK_IMPORTED_MODULE_1__.reduce)(state.dirtyHandlerIds, {\n      type: action.type,\n      payload: _objectSpread({}, action.payload, {\n        prevTargetIds: (0,_utils_js_utils_js__WEBPACK_IMPORTED_MODULE_0__.get)(state, 'dragOperation.targetIds', [])\n      })\n    }),\n    dragOffset: (0,_dragOffset_js__WEBPACK_IMPORTED_MODULE_2__.reduce)(state.dragOffset, action),\n    refCount: (0,_refCount_js__WEBPACK_IMPORTED_MODULE_4__.reduce)(state.refCount, action),\n    dragOperation: (0,_dragOperation_js__WEBPACK_IMPORTED_MODULE_3__.reduce)(state.dragOperation, action),\n    stateId: (0,_stateId_js__WEBPACK_IMPORTED_MODULE_5__.reduce)(state.stateId)\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/reducers/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/reducers/refCount.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/reducers/refCount.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   reduce: () => (/* binding */ reduce)\n/* harmony export */ });\n/* harmony import */ var _actions_registry_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../actions/registry.js */ \"../react-ui/node_modules/dnd-core/dist/actions/registry.js\");\n\nfunction reduce(state = 0, action) {\n  switch (action.type) {\n    case _actions_registry_js__WEBPACK_IMPORTED_MODULE_0__.ADD_SOURCE:\n    case _actions_registry_js__WEBPACK_IMPORTED_MODULE_0__.ADD_TARGET:\n      return state + 1;\n    case _actions_registry_js__WEBPACK_IMPORTED_MODULE_0__.REMOVE_SOURCE:\n    case _actions_registry_js__WEBPACK_IMPORTED_MODULE_0__.REMOVE_TARGET:\n      return state - 1;\n    default:\n      return state;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/reducers/refCount.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/reducers/stateId.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/reducers/stateId.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   reduce: () => (/* binding */ reduce)\n/* harmony export */ });\nfunction reduce(state = 0) {\n  return state + 1;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/reducers/stateId.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/utils/coords.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/utils/coords.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   add: () => (/* binding */ add),\n/* harmony export */   getDifferenceFromInitialOffset: () => (/* binding */ getDifferenceFromInitialOffset),\n/* harmony export */   getSourceClientOffset: () => (/* binding */ getSourceClientOffset),\n/* harmony export */   subtract: () => (/* binding */ subtract)\n/* harmony export */ });\n/**\n * Coordinate addition\n * @param a The first coordinate\n * @param b The second coordinate\n */function add(a, b) {\n  return {\n    x: a.x + b.x,\n    y: a.y + b.y\n  };\n}\n/**\n * Coordinate subtraction\n * @param a The first coordinate\n * @param b The second coordinate\n */\nfunction subtract(a, b) {\n  return {\n    x: a.x - b.x,\n    y: a.y - b.y\n  };\n}\n/**\n * Returns the cartesian distance of the drag source component's position, based on its position\n * at the time when the current drag operation has started, and the movement difference.\n *\n * Returns null if no item is being dragged.\n *\n * @param state The offset state to compute from\n */\nfunction getSourceClientOffset(state) {\n  const {\n    clientOffset,\n    initialClientOffset,\n    initialSourceClientOffset\n  } = state;\n  if (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {\n    return null;\n  }\n  return subtract(add(clientOffset, initialSourceClientOffset), initialClientOffset);\n}\n/**\n * Determines the x,y offset between the client offset and the initial client offset\n *\n * @param state The offset state to compute from\n */\nfunction getDifferenceFromInitialOffset(state) {\n  const {\n    clientOffset,\n    initialClientOffset\n  } = state;\n  if (!clientOffset || !initialClientOffset) {\n    return null;\n  }\n  return subtract(clientOffset, initialClientOffset);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/utils/coords.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/utils/dirtiness.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/utils/dirtiness.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ALL: () => (/* binding */ ALL),\n/* harmony export */   NONE: () => (/* binding */ NONE),\n/* harmony export */   areDirty: () => (/* binding */ areDirty)\n/* harmony export */ });\n/* harmony import */ var _js_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./js_utils.js */ \"../react-ui/node_modules/dnd-core/dist/utils/js_utils.js\");\n\nconst NONE = [];\nconst ALL = [];\nNONE.__IS_NONE__ = true;\nALL.__IS_ALL__ = true;\n/**\n * Determines if the given handler IDs are dirty or not.\n *\n * @param dirtyIds The set of dirty handler ids\n * @param handlerIds The set of handler ids to check\n */\nfunction areDirty(dirtyIds, handlerIds) {\n  if (dirtyIds === NONE) {\n    return false;\n  }\n  if (dirtyIds === ALL || typeof handlerIds === 'undefined') {\n    return true;\n  }\n  const commonIds = (0,_js_utils_js__WEBPACK_IMPORTED_MODULE_0__.intersection)(handlerIds, dirtyIds);\n  return commonIds.length > 0;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/utils/dirtiness.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/utils/equality.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/utils/equality.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   areArraysEqual: () => (/* binding */ areArraysEqual),\n/* harmony export */   areCoordsEqual: () => (/* binding */ areCoordsEqual),\n/* harmony export */   strictEquality: () => (/* binding */ strictEquality)\n/* harmony export */ });\nconst strictEquality = (a, b) => a === b;\n/**\n * Determine if two cartesian coordinate offsets are equal\n * @param offsetA\n * @param offsetB\n */\nfunction areCoordsEqual(offsetA, offsetB) {\n  if (!offsetA && !offsetB) {\n    return true;\n  } else if (!offsetA || !offsetB) {\n    return false;\n  } else {\n    return offsetA.x === offsetB.x && offsetA.y === offsetB.y;\n  }\n}\n/**\n * Determines if two arrays of items are equal\n * @param a The first array of items\n * @param b The second array of items\n */\nfunction areArraysEqual(a, b, isEqual = strictEquality) {\n  if (a.length !== b.length) {\n    return false;\n  }\n  for (let i = 0; i < a.length; ++i) {\n    if (!isEqual(a[i], b[i])) {\n      return false;\n    }\n  }\n  return true;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/utils/equality.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/utils/getNextUniqueId.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/utils/getNextUniqueId.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   getNextUniqueId: () => (/* binding */ getNextUniqueId)\n/* harmony export */ });\nlet nextUniqueId = 0;\nfunction getNextUniqueId() {\n  return nextUniqueId++;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/utils/getNextUniqueId.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/utils/js_utils.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/utils/js_utils.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   get: () => (/* binding */ get),\n/* harmony export */   intersection: () => (/* binding */ intersection),\n/* harmony export */   isObject: () => (/* binding */ isObject),\n/* harmony export */   isString: () => (/* binding */ isString),\n/* harmony export */   without: () => (/* binding */ without),\n/* harmony export */   xor: () => (/* binding */ xor)\n/* harmony export */ });\n// cheap lodash replacements\n/**\n * drop-in replacement for _.get\n * @param obj\n * @param path\n * @param defaultValue\n */function get(obj, path, defaultValue) {\n  return path.split('.').reduce((a, c) => a && a[c] ? a[c] : defaultValue || null, obj);\n}\n/**\n * drop-in replacement for _.without\n */\nfunction without(items, item) {\n  return items.filter(i => i !== item);\n}\n/**\n * drop-in replacement for _.isString\n * @param input\n */\nfunction isString(input) {\n  return typeof input === 'string';\n}\n/**\n * drop-in replacement for _.isString\n * @param input\n */\nfunction isObject(input) {\n  return typeof input === 'object';\n}\n/**\n * replacement for _.xor\n * @param itemsA\n * @param itemsB\n */\nfunction xor(itemsA, itemsB) {\n  const map = new Map();\n  const insertItem = item => {\n    map.set(item, map.has(item) ? map.get(item) + 1 : 1);\n  };\n  itemsA.forEach(insertItem);\n  itemsB.forEach(insertItem);\n  const result = [];\n  map.forEach((count, key) => {\n    if (count === 1) {\n      result.push(key);\n    }\n  });\n  return result;\n}\n/**\n * replacement for _.intersection\n * @param itemsA\n * @param itemsB\n */\nfunction intersection(itemsA, itemsB) {\n  return itemsA.filter(t => itemsB.indexOf(t) > -1);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/utils/js_utils.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dnd-core/dist/utils/matchesType.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/dnd-core/dist/utils/matchesType.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   matchesType: () => (/* binding */ matchesType)\n/* harmony export */ });\nfunction matchesType(targetType, draggedItemType) {\n  if (draggedItemType === null) {\n    return targetType === null;\n  }\n  return Array.isArray(targetType) ? targetType.some(t => t === draggedItemType) : targetType === draggedItemType;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dnd-core/dist/utils/matchesType.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dom-helpers/esm/addClass.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/dom-helpers/esm/addClass.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ addClass)\n/* harmony export */ });\n/* harmony import */ var _hasClass__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./hasClass */ \"../react-ui/node_modules/dom-helpers/esm/hasClass.js\");\n\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nfunction addClass(element, className) {\n  if (element.classList) element.classList.add(className);else if (!(0,_hasClass__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dom-helpers/esm/addClass.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dom-helpers/esm/hasClass.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/dom-helpers/esm/hasClass.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ hasClass)\n/* harmony export */ });\n/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nfunction hasClass(element, className) {\n  if (element.classList) return !!className && element.classList.contains(className);\n  return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dom-helpers/esm/hasClass.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/dom-helpers/esm/removeClass.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/dom-helpers/esm/removeClass.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ removeClass)\n/* harmony export */ });\nfunction replaceClassName(origClass, classToRemove) {\n  return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nfunction removeClass(element, className) {\n  if (element.classList) {\n    element.classList.remove(className);\n  } else if (typeof element.className === 'string') {\n    element.className = replaceClassName(element.className, className);\n  } else {\n    element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/dom-helpers/esm/removeClass.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/eventemitter3/index.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/eventemitter3/index.js ***!
  \*******************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\nvar has = Object.prototype.hasOwnProperty,\n  prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n  Events.prototype = Object.create(null);\n\n  //\n  // This hack is needed because the `__proto__` property is still inherited in\n  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n  //\n  if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n  this.fn = fn;\n  this.context = context;\n  this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('The listener must be a function');\n  }\n  var listener = new EE(fn, context || emitter, once),\n    evt = prefix ? prefix + event : event;\n  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);else emitter._events[evt] = [emitter._events[evt], listener];\n  return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n  if (--emitter._eventsCount === 0) emitter._events = new Events();else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n  this._events = new Events();\n  this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n  var names = [],\n    events,\n    name;\n  if (this._eventsCount === 0) return names;\n  for (name in events = this._events) {\n    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n  }\n  if (Object.getOwnPropertySymbols) {\n    return names.concat(Object.getOwnPropertySymbols(events));\n  }\n  return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n  var evt = prefix ? prefix + event : event,\n    handlers = this._events[evt];\n  if (!handlers) return [];\n  if (handlers.fn) return [handlers.fn];\n  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n    ee[i] = handlers[i].fn;\n  }\n  return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n  var evt = prefix ? prefix + event : event,\n    listeners = this._events[evt];\n  if (!listeners) return 0;\n  if (listeners.fn) return 1;\n  return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n  var evt = prefix ? prefix + event : event;\n  if (!this._events[evt]) return false;\n  var listeners = this._events[evt],\n    len = arguments.length,\n    args,\n    i;\n  if (listeners.fn) {\n    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n    switch (len) {\n      case 1:\n        return listeners.fn.call(listeners.context), true;\n      case 2:\n        return listeners.fn.call(listeners.context, a1), true;\n      case 3:\n        return listeners.fn.call(listeners.context, a1, a2), true;\n      case 4:\n        return listeners.fn.call(listeners.context, a1, a2, a3), true;\n      case 5:\n        return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n      case 6:\n        return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n    }\n    for (i = 1, args = new Array(len - 1); i < len; i++) {\n      args[i - 1] = arguments[i];\n    }\n    listeners.fn.apply(listeners.context, args);\n  } else {\n    var length = listeners.length,\n      j;\n    for (i = 0; i < length; i++) {\n      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n      switch (len) {\n        case 1:\n          listeners[i].fn.call(listeners[i].context);\n          break;\n        case 2:\n          listeners[i].fn.call(listeners[i].context, a1);\n          break;\n        case 3:\n          listeners[i].fn.call(listeners[i].context, a1, a2);\n          break;\n        case 4:\n          listeners[i].fn.call(listeners[i].context, a1, a2, a3);\n          break;\n        default:\n          if (!args) for (j = 1, args = new Array(len - 1); j < len; j++) {\n            args[j - 1] = arguments[j];\n          }\n          listeners[i].fn.apply(listeners[i].context, args);\n      }\n    }\n  }\n  return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n  return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n  return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n  var evt = prefix ? prefix + event : event;\n  if (!this._events[evt]) return this;\n  if (!fn) {\n    clearEvent(this, evt);\n    return this;\n  }\n  var listeners = this._events[evt];\n  if (listeners.fn) {\n    if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {\n      clearEvent(this, evt);\n    }\n  } else {\n    for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n      if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {\n        events.push(listeners[i]);\n      }\n    }\n\n    //\n    // Reset the array, or remove it completely if we have no more listeners.\n    //\n    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;else clearEvent(this, evt);\n  }\n  return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n  var evt;\n  if (event) {\n    evt = prefix ? prefix + event : event;\n    if (this._events[evt]) clearEvent(this, evt);\n  } else {\n    this._events = new Events();\n    this._eventsCount = 0;\n  }\n  return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif (true) {\n  module.exports = EventEmitter;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/eventemitter3/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/eventemitter3/index.mjs":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/eventemitter3/index.mjs ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   EventEmitter: () => (/* reexport default export from named module */ _index_js__WEBPACK_IMPORTED_MODULE_0__),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./index.js */ \"../react-ui/node_modules/eventemitter3/index.js\");\n\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_index_js__WEBPACK_IMPORTED_MODULE_0__);\n\n//# sourceURL=webpack:///../react-ui/node_modules/eventemitter3/index.mjs?\n}");

/***/ }),

/***/ "../react-ui/node_modules/fast-diff/diff.js":
/*!**************************************************!*\
  !*** ../react-ui/node_modules/fast-diff/diff.js ***!
  \**************************************************/
/***/ ((module) => {

eval("{/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n/**\n * Find the differences between two texts.  Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int|Object} [cursor_pos] Edit position in text1 or object with more info\n * @param {boolean} [cleanup] Apply semantic cleanup before returning.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos, cleanup, _fix_unicode) {\n  // Check for equality\n  if (text1 === text2) {\n    if (text1) {\n      return [[DIFF_EQUAL, text1]];\n    }\n    return [];\n  }\n  if (cursor_pos != null) {\n    var editdiff = find_cursor_edit_diff(text1, text2, cursor_pos);\n    if (editdiff) {\n      return editdiff;\n    }\n  }\n\n  // Trim off common prefix (speedup).\n  var commonlength = diff_commonPrefix(text1, text2);\n  var commonprefix = text1.substring(0, commonlength);\n  text1 = text1.substring(commonlength);\n  text2 = text2.substring(commonlength);\n\n  // Trim off common suffix (speedup).\n  commonlength = diff_commonSuffix(text1, text2);\n  var commonsuffix = text1.substring(text1.length - commonlength);\n  text1 = text1.substring(0, text1.length - commonlength);\n  text2 = text2.substring(0, text2.length - commonlength);\n\n  // Compute the diff on the middle block.\n  var diffs = diff_compute_(text1, text2);\n\n  // Restore the prefix and suffix.\n  if (commonprefix) {\n    diffs.unshift([DIFF_EQUAL, commonprefix]);\n  }\n  if (commonsuffix) {\n    diffs.push([DIFF_EQUAL, commonsuffix]);\n  }\n  diff_cleanupMerge(diffs, _fix_unicode);\n  if (cleanup) {\n    diff_cleanupSemantic(diffs);\n  }\n  return diffs;\n}\n\n/**\n * Find the differences between two texts.  Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n  var diffs;\n  if (!text1) {\n    // Just add some text (speedup).\n    return [[DIFF_INSERT, text2]];\n  }\n  if (!text2) {\n    // Just delete some text (speedup).\n    return [[DIFF_DELETE, text1]];\n  }\n  var longtext = text1.length > text2.length ? text1 : text2;\n  var shorttext = text1.length > text2.length ? text2 : text1;\n  var i = longtext.indexOf(shorttext);\n  if (i !== -1) {\n    // Shorter text is inside the longer text (speedup).\n    diffs = [[DIFF_INSERT, longtext.substring(0, i)], [DIFF_EQUAL, shorttext], [DIFF_INSERT, longtext.substring(i + shorttext.length)]];\n    // Swap insertions for deletions if diff is reversed.\n    if (text1.length > text2.length) {\n      diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n    }\n    return diffs;\n  }\n  if (shorttext.length === 1) {\n    // Single character string.\n    // After the previous speedup, the character can't be an equality.\n    return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n  }\n\n  // Check to see if the problem can be split in two.\n  var hm = diff_halfMatch_(text1, text2);\n  if (hm) {\n    // A half-match was found, sort out the return data.\n    var text1_a = hm[0];\n    var text1_b = hm[1];\n    var text2_a = hm[2];\n    var text2_b = hm[3];\n    var mid_common = hm[4];\n    // Send both pairs off for separate processing.\n    var diffs_a = diff_main(text1_a, text2_a);\n    var diffs_b = diff_main(text1_b, text2_b);\n    // Merge the results.\n    return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n  }\n  return diff_bisect_(text1, text2);\n}\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n  // Cache the text lengths to prevent multiple calls.\n  var text1_length = text1.length;\n  var text2_length = text2.length;\n  var max_d = Math.ceil((text1_length + text2_length) / 2);\n  var v_offset = max_d;\n  var v_length = 2 * max_d;\n  var v1 = new Array(v_length);\n  var v2 = new Array(v_length);\n  // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n  // integers and undefined.\n  for (var x = 0; x < v_length; x++) {\n    v1[x] = -1;\n    v2[x] = -1;\n  }\n  v1[v_offset + 1] = 0;\n  v2[v_offset + 1] = 0;\n  var delta = text1_length - text2_length;\n  // If the total number of characters is odd, then the front path will collide\n  // with the reverse path.\n  var front = delta % 2 !== 0;\n  // Offsets for start and end of k loop.\n  // Prevents mapping of space beyond the grid.\n  var k1start = 0;\n  var k1end = 0;\n  var k2start = 0;\n  var k2end = 0;\n  for (var d = 0; d < max_d; d++) {\n    // Walk the front path one step.\n    for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n      var k1_offset = v_offset + k1;\n      var x1;\n      if (k1 === -d || k1 !== d && v1[k1_offset - 1] < v1[k1_offset + 1]) {\n        x1 = v1[k1_offset + 1];\n      } else {\n        x1 = v1[k1_offset - 1] + 1;\n      }\n      var y1 = x1 - k1;\n      while (x1 < text1_length && y1 < text2_length && text1.charAt(x1) === text2.charAt(y1)) {\n        x1++;\n        y1++;\n      }\n      v1[k1_offset] = x1;\n      if (x1 > text1_length) {\n        // Ran off the right of the graph.\n        k1end += 2;\n      } else if (y1 > text2_length) {\n        // Ran off the bottom of the graph.\n        k1start += 2;\n      } else if (front) {\n        var k2_offset = v_offset + delta - k1;\n        if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] !== -1) {\n          // Mirror x2 onto top-left coordinate system.\n          var x2 = text1_length - v2[k2_offset];\n          if (x1 >= x2) {\n            // Overlap detected.\n            return diff_bisectSplit_(text1, text2, x1, y1);\n          }\n        }\n      }\n    }\n\n    // Walk the reverse path one step.\n    for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n      var k2_offset = v_offset + k2;\n      var x2;\n      if (k2 === -d || k2 !== d && v2[k2_offset - 1] < v2[k2_offset + 1]) {\n        x2 = v2[k2_offset + 1];\n      } else {\n        x2 = v2[k2_offset - 1] + 1;\n      }\n      var y2 = x2 - k2;\n      while (x2 < text1_length && y2 < text2_length && text1.charAt(text1_length - x2 - 1) === text2.charAt(text2_length - y2 - 1)) {\n        x2++;\n        y2++;\n      }\n      v2[k2_offset] = x2;\n      if (x2 > text1_length) {\n        // Ran off the left of the graph.\n        k2end += 2;\n      } else if (y2 > text2_length) {\n        // Ran off the top of the graph.\n        k2start += 2;\n      } else if (!front) {\n        var k1_offset = v_offset + delta - k2;\n        if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] !== -1) {\n          var x1 = v1[k1_offset];\n          var y1 = v_offset + x1 - k1_offset;\n          // Mirror x2 onto top-left coordinate system.\n          x2 = text1_length - x2;\n          if (x1 >= x2) {\n            // Overlap detected.\n            return diff_bisectSplit_(text1, text2, x1, y1);\n          }\n        }\n      }\n    }\n  }\n  // Diff took too long and hit the deadline or\n  // number of diffs equals number of characters, no commonality at all.\n  return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n}\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n  var text1a = text1.substring(0, x);\n  var text2a = text2.substring(0, y);\n  var text1b = text1.substring(x);\n  var text2b = text2.substring(y);\n\n  // Compute both diffs serially.\n  var diffs = diff_main(text1a, text2a);\n  var diffsb = diff_main(text1b, text2b);\n  return diffs.concat(diffsb);\n}\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n *     string.\n */\nfunction diff_commonPrefix(text1, text2) {\n  // Quick check for common null cases.\n  if (!text1 || !text2 || text1.charAt(0) !== text2.charAt(0)) {\n    return 0;\n  }\n  // Binary search.\n  // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n  var pointermin = 0;\n  var pointermax = Math.min(text1.length, text2.length);\n  var pointermid = pointermax;\n  var pointerstart = 0;\n  while (pointermin < pointermid) {\n    if (text1.substring(pointerstart, pointermid) == text2.substring(pointerstart, pointermid)) {\n      pointermin = pointermid;\n      pointerstart = pointermin;\n    } else {\n      pointermax = pointermid;\n    }\n    pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n  }\n  if (is_surrogate_pair_start(text1.charCodeAt(pointermid - 1))) {\n    pointermid--;\n  }\n  return pointermid;\n}\n\n/**\n * Determine if the suffix of one string is the prefix of another.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of the first\n *     string and the start of the second string.\n * @private\n */\nfunction diff_commonOverlap_(text1, text2) {\n  // Cache the text lengths to prevent multiple calls.\n  var text1_length = text1.length;\n  var text2_length = text2.length;\n  // Eliminate the null case.\n  if (text1_length == 0 || text2_length == 0) {\n    return 0;\n  }\n  // Truncate the longer string.\n  if (text1_length > text2_length) {\n    text1 = text1.substring(text1_length - text2_length);\n  } else if (text1_length < text2_length) {\n    text2 = text2.substring(0, text1_length);\n  }\n  var text_length = Math.min(text1_length, text2_length);\n  // Quick check for the worst case.\n  if (text1 == text2) {\n    return text_length;\n  }\n\n  // Start by looking for a single character match\n  // and increase length until no match is found.\n  // Performance analysis: http://neil.fraser.name/news/2010/11/04/\n  var best = 0;\n  var length = 1;\n  while (true) {\n    var pattern = text1.substring(text_length - length);\n    var found = text2.indexOf(pattern);\n    if (found == -1) {\n      return best;\n    }\n    length += found;\n    if (found == 0 || text1.substring(text_length - length) == text2.substring(0, length)) {\n      best = length;\n      length++;\n    }\n  }\n}\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n  // Quick check for common null cases.\n  if (!text1 || !text2 || text1.slice(-1) !== text2.slice(-1)) {\n    return 0;\n  }\n  // Binary search.\n  // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n  var pointermin = 0;\n  var pointermax = Math.min(text1.length, text2.length);\n  var pointermid = pointermax;\n  var pointerend = 0;\n  while (pointermin < pointermid) {\n    if (text1.substring(text1.length - pointermid, text1.length - pointerend) == text2.substring(text2.length - pointermid, text2.length - pointerend)) {\n      pointermin = pointermid;\n      pointerend = pointermin;\n    } else {\n      pointermax = pointermid;\n    }\n    pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n  }\n  if (is_surrogate_pair_end(text1.charCodeAt(text1.length - pointermid))) {\n    pointermid--;\n  }\n  return pointermid;\n}\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.<string>} Five element Array, containing the prefix of\n *     text1, the suffix of text1, the prefix of text2, the suffix of\n *     text2 and the common middle.  Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n  var longtext = text1.length > text2.length ? text1 : text2;\n  var shorttext = text1.length > text2.length ? text2 : text1;\n  if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n    return null; // Pointless.\n  }\n\n  /**\n   * Does a substring of shorttext exist within longtext such that the substring\n   * is at least half the length of longtext?\n   * Closure, but does not reference any external variables.\n   * @param {string} longtext Longer string.\n   * @param {string} shorttext Shorter string.\n   * @param {number} i Start index of quarter length substring within longtext.\n   * @return {Array.<string>} Five element Array, containing the prefix of\n   *     longtext, the suffix of longtext, the prefix of shorttext, the suffix\n   *     of shorttext and the common middle.  Or null if there was no match.\n   * @private\n   */\n  function diff_halfMatchI_(longtext, shorttext, i) {\n    // Start with a 1/4 length substring at position i as a seed.\n    var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n    var j = -1;\n    var best_common = \"\";\n    var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n    while ((j = shorttext.indexOf(seed, j + 1)) !== -1) {\n      var prefixLength = diff_commonPrefix(longtext.substring(i), shorttext.substring(j));\n      var suffixLength = diff_commonSuffix(longtext.substring(0, i), shorttext.substring(0, j));\n      if (best_common.length < suffixLength + prefixLength) {\n        best_common = shorttext.substring(j - suffixLength, j) + shorttext.substring(j, j + prefixLength);\n        best_longtext_a = longtext.substring(0, i - suffixLength);\n        best_longtext_b = longtext.substring(i + prefixLength);\n        best_shorttext_a = shorttext.substring(0, j - suffixLength);\n        best_shorttext_b = shorttext.substring(j + prefixLength);\n      }\n    }\n    if (best_common.length * 2 >= longtext.length) {\n      return [best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b, best_common];\n    } else {\n      return null;\n    }\n  }\n\n  // First check if the second quarter is the seed for a half-match.\n  var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4));\n  // Check again based on the third quarter.\n  var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2));\n  var hm;\n  if (!hm1 && !hm2) {\n    return null;\n  } else if (!hm2) {\n    hm = hm1;\n  } else if (!hm1) {\n    hm = hm2;\n  } else {\n    // Both matched.  Select the longest.\n    hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n  }\n\n  // A half-match was found, sort out the return data.\n  var text1_a, text1_b, text2_a, text2_b;\n  if (text1.length > text2.length) {\n    text1_a = hm[0];\n    text1_b = hm[1];\n    text2_a = hm[2];\n    text2_b = hm[3];\n  } else {\n    text2_a = hm[0];\n    text2_b = hm[1];\n    text1_a = hm[2];\n    text1_b = hm[3];\n  }\n  var mid_common = hm[4];\n  return [text1_a, text1_b, text2_a, text2_b, mid_common];\n}\n\n/**\n * Reduce the number of edits by eliminating semantically trivial equalities.\n * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.\n */\nfunction diff_cleanupSemantic(diffs) {\n  var changes = false;\n  var equalities = []; // Stack of indices where equalities are found.\n  var equalitiesLength = 0; // Keeping our own length var is faster in JS.\n  /** @type {?string} */\n  var lastequality = null;\n  // Always equal to diffs[equalities[equalitiesLength - 1]][1]\n  var pointer = 0; // Index of current position.\n  // Number of characters that changed prior to the equality.\n  var length_insertions1 = 0;\n  var length_deletions1 = 0;\n  // Number of characters that changed after the equality.\n  var length_insertions2 = 0;\n  var length_deletions2 = 0;\n  while (pointer < diffs.length) {\n    if (diffs[pointer][0] == DIFF_EQUAL) {\n      // Equality found.\n      equalities[equalitiesLength++] = pointer;\n      length_insertions1 = length_insertions2;\n      length_deletions1 = length_deletions2;\n      length_insertions2 = 0;\n      length_deletions2 = 0;\n      lastequality = diffs[pointer][1];\n    } else {\n      // An insertion or deletion.\n      if (diffs[pointer][0] == DIFF_INSERT) {\n        length_insertions2 += diffs[pointer][1].length;\n      } else {\n        length_deletions2 += diffs[pointer][1].length;\n      }\n      // Eliminate an equality that is smaller or equal to the edits on both\n      // sides of it.\n      if (lastequality && lastequality.length <= Math.max(length_insertions1, length_deletions1) && lastequality.length <= Math.max(length_insertions2, length_deletions2)) {\n        // Duplicate record.\n        diffs.splice(equalities[equalitiesLength - 1], 0, [DIFF_DELETE, lastequality]);\n        // Change second copy to insert.\n        diffs[equalities[equalitiesLength - 1] + 1][0] = DIFF_INSERT;\n        // Throw away the equality we just deleted.\n        equalitiesLength--;\n        // Throw away the previous equality (it needs to be reevaluated).\n        equalitiesLength--;\n        pointer = equalitiesLength > 0 ? equalities[equalitiesLength - 1] : -1;\n        length_insertions1 = 0; // Reset the counters.\n        length_deletions1 = 0;\n        length_insertions2 = 0;\n        length_deletions2 = 0;\n        lastequality = null;\n        changes = true;\n      }\n    }\n    pointer++;\n  }\n\n  // Normalize the diff.\n  if (changes) {\n    diff_cleanupMerge(diffs);\n  }\n  diff_cleanupSemanticLossless(diffs);\n\n  // Find any overlaps between deletions and insertions.\n  // e.g: <del>abcxxx</del><ins>xxxdef</ins>\n  //   -> <del>abc</del>xxx<ins>def</ins>\n  // e.g: <del>xxxabc</del><ins>defxxx</ins>\n  //   -> <ins>def</ins>xxx<del>abc</del>\n  // Only extract an overlap if it is as big as the edit ahead or behind it.\n  pointer = 1;\n  while (pointer < diffs.length) {\n    if (diffs[pointer - 1][0] == DIFF_DELETE && diffs[pointer][0] == DIFF_INSERT) {\n      var deletion = diffs[pointer - 1][1];\n      var insertion = diffs[pointer][1];\n      var overlap_length1 = diff_commonOverlap_(deletion, insertion);\n      var overlap_length2 = diff_commonOverlap_(insertion, deletion);\n      if (overlap_length1 >= overlap_length2) {\n        if (overlap_length1 >= deletion.length / 2 || overlap_length1 >= insertion.length / 2) {\n          // Overlap found.  Insert an equality and trim the surrounding edits.\n          diffs.splice(pointer, 0, [DIFF_EQUAL, insertion.substring(0, overlap_length1)]);\n          diffs[pointer - 1][1] = deletion.substring(0, deletion.length - overlap_length1);\n          diffs[pointer + 1][1] = insertion.substring(overlap_length1);\n          pointer++;\n        }\n      } else {\n        if (overlap_length2 >= deletion.length / 2 || overlap_length2 >= insertion.length / 2) {\n          // Reverse overlap found.\n          // Insert an equality and swap and trim the surrounding edits.\n          diffs.splice(pointer, 0, [DIFF_EQUAL, deletion.substring(0, overlap_length2)]);\n          diffs[pointer - 1][0] = DIFF_INSERT;\n          diffs[pointer - 1][1] = insertion.substring(0, insertion.length - overlap_length2);\n          diffs[pointer + 1][0] = DIFF_DELETE;\n          diffs[pointer + 1][1] = deletion.substring(overlap_length2);\n          pointer++;\n        }\n      }\n      pointer++;\n    }\n    pointer++;\n  }\n}\nvar nonAlphaNumericRegex_ = /[^a-zA-Z0-9]/;\nvar whitespaceRegex_ = /\\s/;\nvar linebreakRegex_ = /[\\r\\n]/;\nvar blanklineEndRegex_ = /\\n\\r?\\n$/;\nvar blanklineStartRegex_ = /^\\r?\\n\\r?\\n/;\n\n/**\n * Look for single edits surrounded on both sides by equalities\n * which can be shifted sideways to align the edit to a word boundary.\n * e.g: The c<ins>at c</ins>ame. -> The <ins>cat </ins>came.\n * @param {!Array.<!diff_match_patch.Diff>} diffs Array of diff tuples.\n */\nfunction diff_cleanupSemanticLossless(diffs) {\n  /**\n   * Given two strings, compute a score representing whether the internal\n   * boundary falls on logical boundaries.\n   * Scores range from 6 (best) to 0 (worst).\n   * Closure, but does not reference any external variables.\n   * @param {string} one First string.\n   * @param {string} two Second string.\n   * @return {number} The score.\n   * @private\n   */\n  function diff_cleanupSemanticScore_(one, two) {\n    if (!one || !two) {\n      // Edges are the best.\n      return 6;\n    }\n\n    // Each port of this function behaves slightly differently due to\n    // subtle differences in each language's definition of things like\n    // 'whitespace'.  Since this function's purpose is largely cosmetic,\n    // the choice has been made to use each language's native features\n    // rather than force total conformity.\n    var char1 = one.charAt(one.length - 1);\n    var char2 = two.charAt(0);\n    var nonAlphaNumeric1 = char1.match(nonAlphaNumericRegex_);\n    var nonAlphaNumeric2 = char2.match(nonAlphaNumericRegex_);\n    var whitespace1 = nonAlphaNumeric1 && char1.match(whitespaceRegex_);\n    var whitespace2 = nonAlphaNumeric2 && char2.match(whitespaceRegex_);\n    var lineBreak1 = whitespace1 && char1.match(linebreakRegex_);\n    var lineBreak2 = whitespace2 && char2.match(linebreakRegex_);\n    var blankLine1 = lineBreak1 && one.match(blanklineEndRegex_);\n    var blankLine2 = lineBreak2 && two.match(blanklineStartRegex_);\n    if (blankLine1 || blankLine2) {\n      // Five points for blank lines.\n      return 5;\n    } else if (lineBreak1 || lineBreak2) {\n      // Four points for line breaks.\n      return 4;\n    } else if (nonAlphaNumeric1 && !whitespace1 && whitespace2) {\n      // Three points for end of sentences.\n      return 3;\n    } else if (whitespace1 || whitespace2) {\n      // Two points for whitespace.\n      return 2;\n    } else if (nonAlphaNumeric1 || nonAlphaNumeric2) {\n      // One point for non-alphanumeric.\n      return 1;\n    }\n    return 0;\n  }\n  var pointer = 1;\n  // Intentionally ignore the first and last element (don't need checking).\n  while (pointer < diffs.length - 1) {\n    if (diffs[pointer - 1][0] == DIFF_EQUAL && diffs[pointer + 1][0] == DIFF_EQUAL) {\n      // This is a single edit surrounded by equalities.\n      var equality1 = diffs[pointer - 1][1];\n      var edit = diffs[pointer][1];\n      var equality2 = diffs[pointer + 1][1];\n\n      // First, shift the edit as far left as possible.\n      var commonOffset = diff_commonSuffix(equality1, edit);\n      if (commonOffset) {\n        var commonString = edit.substring(edit.length - commonOffset);\n        equality1 = equality1.substring(0, equality1.length - commonOffset);\n        edit = commonString + edit.substring(0, edit.length - commonOffset);\n        equality2 = commonString + equality2;\n      }\n\n      // Second, step character by character right, looking for the best fit.\n      var bestEquality1 = equality1;\n      var bestEdit = edit;\n      var bestEquality2 = equality2;\n      var bestScore = diff_cleanupSemanticScore_(equality1, edit) + diff_cleanupSemanticScore_(edit, equality2);\n      while (edit.charAt(0) === equality2.charAt(0)) {\n        equality1 += edit.charAt(0);\n        edit = edit.substring(1) + equality2.charAt(0);\n        equality2 = equality2.substring(1);\n        var score = diff_cleanupSemanticScore_(equality1, edit) + diff_cleanupSemanticScore_(edit, equality2);\n        // The >= encourages trailing rather than leading whitespace on edits.\n        if (score >= bestScore) {\n          bestScore = score;\n          bestEquality1 = equality1;\n          bestEdit = edit;\n          bestEquality2 = equality2;\n        }\n      }\n      if (diffs[pointer - 1][1] != bestEquality1) {\n        // We have an improvement, save it back to the diff.\n        if (bestEquality1) {\n          diffs[pointer - 1][1] = bestEquality1;\n        } else {\n          diffs.splice(pointer - 1, 1);\n          pointer--;\n        }\n        diffs[pointer][1] = bestEdit;\n        if (bestEquality2) {\n          diffs[pointer + 1][1] = bestEquality2;\n        } else {\n          diffs.splice(pointer + 1, 1);\n          pointer--;\n        }\n      }\n    }\n    pointer++;\n  }\n}\n\n/**\n * Reorder and merge like edit sections.  Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n * @param {boolean} fix_unicode Whether to normalize to a unicode-correct diff\n */\nfunction diff_cleanupMerge(diffs, fix_unicode) {\n  diffs.push([DIFF_EQUAL, \"\"]); // Add a dummy entry at the end.\n  var pointer = 0;\n  var count_delete = 0;\n  var count_insert = 0;\n  var text_delete = \"\";\n  var text_insert = \"\";\n  var commonlength;\n  while (pointer < diffs.length) {\n    if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n      diffs.splice(pointer, 1);\n      continue;\n    }\n    switch (diffs[pointer][0]) {\n      case DIFF_INSERT:\n        count_insert++;\n        text_insert += diffs[pointer][1];\n        pointer++;\n        break;\n      case DIFF_DELETE:\n        count_delete++;\n        text_delete += diffs[pointer][1];\n        pointer++;\n        break;\n      case DIFF_EQUAL:\n        var previous_equality = pointer - count_insert - count_delete - 1;\n        if (fix_unicode) {\n          // prevent splitting of unicode surrogate pairs.  when fix_unicode is true,\n          // we assume that the old and new text in the diff are complete and correct\n          // unicode-encoded JS strings, but the tuple boundaries may fall between\n          // surrogate pairs.  we fix this by shaving off stray surrogates from the end\n          // of the previous equality and the beginning of this equality.  this may create\n          // empty equalities or a common prefix or suffix.  for example, if AB and AC are\n          // emojis, `[[0, 'A'], [-1, 'BA'], [0, 'C']]` would turn into deleting 'ABAC' and\n          // inserting 'AC', and then the common suffix 'AC' will be eliminated.  in this\n          // particular case, both equalities go away, we absorb any previous inequalities,\n          // and we keep scanning for the next equality before rewriting the tuples.\n          if (previous_equality >= 0 && ends_with_pair_start(diffs[previous_equality][1])) {\n            var stray = diffs[previous_equality][1].slice(-1);\n            diffs[previous_equality][1] = diffs[previous_equality][1].slice(0, -1);\n            text_delete = stray + text_delete;\n            text_insert = stray + text_insert;\n            if (!diffs[previous_equality][1]) {\n              // emptied out previous equality, so delete it and include previous delete/insert\n              diffs.splice(previous_equality, 1);\n              pointer--;\n              var k = previous_equality - 1;\n              if (diffs[k] && diffs[k][0] === DIFF_INSERT) {\n                count_insert++;\n                text_insert = diffs[k][1] + text_insert;\n                k--;\n              }\n              if (diffs[k] && diffs[k][0] === DIFF_DELETE) {\n                count_delete++;\n                text_delete = diffs[k][1] + text_delete;\n                k--;\n              }\n              previous_equality = k;\n            }\n          }\n          if (starts_with_pair_end(diffs[pointer][1])) {\n            var stray = diffs[pointer][1].charAt(0);\n            diffs[pointer][1] = diffs[pointer][1].slice(1);\n            text_delete += stray;\n            text_insert += stray;\n          }\n        }\n        if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n          // for empty equality not at end, wait for next equality\n          diffs.splice(pointer, 1);\n          break;\n        }\n        if (text_delete.length > 0 || text_insert.length > 0) {\n          // note that diff_commonPrefix and diff_commonSuffix are unicode-aware\n          if (text_delete.length > 0 && text_insert.length > 0) {\n            // Factor out any common prefixes.\n            commonlength = diff_commonPrefix(text_insert, text_delete);\n            if (commonlength !== 0) {\n              if (previous_equality >= 0) {\n                diffs[previous_equality][1] += text_insert.substring(0, commonlength);\n              } else {\n                diffs.splice(0, 0, [DIFF_EQUAL, text_insert.substring(0, commonlength)]);\n                pointer++;\n              }\n              text_insert = text_insert.substring(commonlength);\n              text_delete = text_delete.substring(commonlength);\n            }\n            // Factor out any common suffixes.\n            commonlength = diff_commonSuffix(text_insert, text_delete);\n            if (commonlength !== 0) {\n              diffs[pointer][1] = text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1];\n              text_insert = text_insert.substring(0, text_insert.length - commonlength);\n              text_delete = text_delete.substring(0, text_delete.length - commonlength);\n            }\n          }\n          // Delete the offending records and add the merged ones.\n          var n = count_insert + count_delete;\n          if (text_delete.length === 0 && text_insert.length === 0) {\n            diffs.splice(pointer - n, n);\n            pointer = pointer - n;\n          } else if (text_delete.length === 0) {\n            diffs.splice(pointer - n, n, [DIFF_INSERT, text_insert]);\n            pointer = pointer - n + 1;\n          } else if (text_insert.length === 0) {\n            diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete]);\n            pointer = pointer - n + 1;\n          } else {\n            diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert]);\n            pointer = pointer - n + 2;\n          }\n        }\n        if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) {\n          // Merge this equality with the previous one.\n          diffs[pointer - 1][1] += diffs[pointer][1];\n          diffs.splice(pointer, 1);\n        } else {\n          pointer++;\n        }\n        count_insert = 0;\n        count_delete = 0;\n        text_delete = \"\";\n        text_insert = \"\";\n        break;\n    }\n  }\n  if (diffs[diffs.length - 1][1] === \"\") {\n    diffs.pop(); // Remove the dummy entry at the end.\n  }\n\n  // Second pass: look for single edits surrounded on both sides by equalities\n  // which can be shifted sideways to eliminate an equality.\n  // e.g: A<ins>BA</ins>C -> <ins>AB</ins>AC\n  var changes = false;\n  pointer = 1;\n  // Intentionally ignore the first and last element (don't need checking).\n  while (pointer < diffs.length - 1) {\n    if (diffs[pointer - 1][0] === DIFF_EQUAL && diffs[pointer + 1][0] === DIFF_EQUAL) {\n      // This is a single edit surrounded by equalities.\n      if (diffs[pointer][1].substring(diffs[pointer][1].length - diffs[pointer - 1][1].length) === diffs[pointer - 1][1]) {\n        // Shift the edit over the previous equality.\n        diffs[pointer][1] = diffs[pointer - 1][1] + diffs[pointer][1].substring(0, diffs[pointer][1].length - diffs[pointer - 1][1].length);\n        diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n        diffs.splice(pointer - 1, 1);\n        changes = true;\n      } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) == diffs[pointer + 1][1]) {\n        // Shift the edit over the next equality.\n        diffs[pointer - 1][1] += diffs[pointer + 1][1];\n        diffs[pointer][1] = diffs[pointer][1].substring(diffs[pointer + 1][1].length) + diffs[pointer + 1][1];\n        diffs.splice(pointer + 1, 1);\n        changes = true;\n      }\n    }\n    pointer++;\n  }\n  // If shifts were made, the diff needs reordering and another shift sweep.\n  if (changes) {\n    diff_cleanupMerge(diffs, fix_unicode);\n  }\n}\nfunction is_surrogate_pair_start(charCode) {\n  return charCode >= 0xd800 && charCode <= 0xdbff;\n}\nfunction is_surrogate_pair_end(charCode) {\n  return charCode >= 0xdc00 && charCode <= 0xdfff;\n}\nfunction starts_with_pair_end(str) {\n  return is_surrogate_pair_end(str.charCodeAt(0));\n}\nfunction ends_with_pair_start(str) {\n  return is_surrogate_pair_start(str.charCodeAt(str.length - 1));\n}\nfunction remove_empty_tuples(tuples) {\n  var ret = [];\n  for (var i = 0; i < tuples.length; i++) {\n    if (tuples[i][1].length > 0) {\n      ret.push(tuples[i]);\n    }\n  }\n  return ret;\n}\nfunction make_edit_splice(before, oldMiddle, newMiddle, after) {\n  if (ends_with_pair_start(before) || starts_with_pair_end(after)) {\n    return null;\n  }\n  return remove_empty_tuples([[DIFF_EQUAL, before], [DIFF_DELETE, oldMiddle], [DIFF_INSERT, newMiddle], [DIFF_EQUAL, after]]);\n}\nfunction find_cursor_edit_diff(oldText, newText, cursor_pos) {\n  // note: this runs after equality check has ruled out exact equality\n  var oldRange = typeof cursor_pos === \"number\" ? {\n    index: cursor_pos,\n    length: 0\n  } : cursor_pos.oldRange;\n  var newRange = typeof cursor_pos === \"number\" ? null : cursor_pos.newRange;\n  // take into account the old and new selection to generate the best diff\n  // possible for a text edit.  for example, a text change from \"xxx\" to \"xx\"\n  // could be a delete or forwards-delete of any one of the x's, or the\n  // result of selecting two of the x's and typing \"x\".\n  var oldLength = oldText.length;\n  var newLength = newText.length;\n  if (oldRange.length === 0 && (newRange === null || newRange.length === 0)) {\n    // see if we have an insert or delete before or after cursor\n    var oldCursor = oldRange.index;\n    var oldBefore = oldText.slice(0, oldCursor);\n    var oldAfter = oldText.slice(oldCursor);\n    var maybeNewCursor = newRange ? newRange.index : null;\n    editBefore: {\n      // is this an insert or delete right before oldCursor?\n      var newCursor = oldCursor + newLength - oldLength;\n      if (maybeNewCursor !== null && maybeNewCursor !== newCursor) {\n        break editBefore;\n      }\n      if (newCursor < 0 || newCursor > newLength) {\n        break editBefore;\n      }\n      var newBefore = newText.slice(0, newCursor);\n      var newAfter = newText.slice(newCursor);\n      if (newAfter !== oldAfter) {\n        break editBefore;\n      }\n      var prefixLength = Math.min(oldCursor, newCursor);\n      var oldPrefix = oldBefore.slice(0, prefixLength);\n      var newPrefix = newBefore.slice(0, prefixLength);\n      if (oldPrefix !== newPrefix) {\n        break editBefore;\n      }\n      var oldMiddle = oldBefore.slice(prefixLength);\n      var newMiddle = newBefore.slice(prefixLength);\n      return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldAfter);\n    }\n    editAfter: {\n      // is this an insert or delete right after oldCursor?\n      if (maybeNewCursor !== null && maybeNewCursor !== oldCursor) {\n        break editAfter;\n      }\n      var cursor = oldCursor;\n      var newBefore = newText.slice(0, cursor);\n      var newAfter = newText.slice(cursor);\n      if (newBefore !== oldBefore) {\n        break editAfter;\n      }\n      var suffixLength = Math.min(oldLength - cursor, newLength - cursor);\n      var oldSuffix = oldAfter.slice(oldAfter.length - suffixLength);\n      var newSuffix = newAfter.slice(newAfter.length - suffixLength);\n      if (oldSuffix !== newSuffix) {\n        break editAfter;\n      }\n      var oldMiddle = oldAfter.slice(0, oldAfter.length - suffixLength);\n      var newMiddle = newAfter.slice(0, newAfter.length - suffixLength);\n      return make_edit_splice(oldBefore, oldMiddle, newMiddle, oldSuffix);\n    }\n  }\n  if (oldRange.length > 0 && newRange && newRange.length === 0) {\n    replaceRange: {\n      // see if diff could be a splice of the old selection range\n      var oldPrefix = oldText.slice(0, oldRange.index);\n      var oldSuffix = oldText.slice(oldRange.index + oldRange.length);\n      var prefixLength = oldPrefix.length;\n      var suffixLength = oldSuffix.length;\n      if (newLength < prefixLength + suffixLength) {\n        break replaceRange;\n      }\n      var newPrefix = newText.slice(0, prefixLength);\n      var newSuffix = newText.slice(newLength - suffixLength);\n      if (oldPrefix !== newPrefix || oldSuffix !== newSuffix) {\n        break replaceRange;\n      }\n      var oldMiddle = oldText.slice(prefixLength, oldLength - suffixLength);\n      var newMiddle = newText.slice(prefixLength, newLength - suffixLength);\n      return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldSuffix);\n    }\n  }\n  return null;\n}\nfunction diff(text1, text2, cursor_pos, cleanup) {\n  // only pass fix_unicode=true at the top level, not when diff_main is\n  // recursively invoked\n  return diff_main(text1, text2, cursor_pos, cleanup, true);\n}\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\nmodule.exports = diff;\n\n//# sourceURL=webpack:///../react-ui/node_modules/fast-diff/diff.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/flatpickr/dist/esm/index.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/flatpickr/dist/esm/index.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _types_options__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./types/options */ \"../react-ui/node_modules/flatpickr/dist/esm/types/options.js\");\n/* harmony import */ var _l10n_default__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./l10n/default */ \"../react-ui/node_modules/flatpickr/dist/esm/l10n/default.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ \"../react-ui/node_modules/flatpickr/dist/esm/utils/index.js\");\n/* harmony import */ var _utils_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/dom */ \"../react-ui/node_modules/flatpickr/dist/esm/utils/dom.js\");\n/* harmony import */ var _utils_dates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils/dates */ \"../react-ui/node_modules/flatpickr/dist/esm/utils/dates.js\");\n/* harmony import */ var _utils_formatting__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/formatting */ \"../react-ui/node_modules/flatpickr/dist/esm/utils/formatting.js\");\n/* harmony import */ var _utils_polyfills__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/polyfills */ \"../react-ui/node_modules/flatpickr/dist/esm/utils/polyfills.js\");\n/* harmony import */ var _utils_polyfills__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_utils_polyfills__WEBPACK_IMPORTED_MODULE_6__);\nvar __assign = undefined && undefined.__assign || function () {\n  __assign = Object.assign || function (t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n      s = arguments[i];\n      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n    }\n    return t;\n  };\n  return __assign.apply(this, arguments);\n};\nvar __spreadArrays = undefined && undefined.__spreadArrays || function () {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  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];\n  return r;\n};\n\n\n\n\n\n\n\nvar DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n  var self = {\n    config: __assign(__assign({}, _types_options__WEBPACK_IMPORTED_MODULE_0__.defaults), flatpickr.defaultConfig),\n    l10n: _l10n_default__WEBPACK_IMPORTED_MODULE_1__[\"default\"]\n  };\n  self.parseDate = (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.createDateParser)({\n    config: self.config,\n    l10n: self.l10n\n  });\n  self._handlers = [];\n  self.pluginElements = [];\n  self.loadedPlugins = [];\n  self._bind = bind;\n  self._setHoursFromDate = setHoursFromDate;\n  self._positionCalendar = positionCalendar;\n  self.changeMonth = changeMonth;\n  self.changeYear = changeYear;\n  self.clear = clear;\n  self.close = close;\n  self.onMouseOver = onMouseOver;\n  self._createElement = _utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement;\n  self.createDay = createDay;\n  self.destroy = destroy;\n  self.isEnabled = isEnabled;\n  self.jumpToDate = jumpToDate;\n  self.updateValue = updateValue;\n  self.open = open;\n  self.redraw = redraw;\n  self.set = set;\n  self.setDate = setDate;\n  self.toggle = toggle;\n  function setupHelperFunctions() {\n    self.utils = {\n      getDaysInMonth: function (month, yr) {\n        if (month === void 0) {\n          month = self.currentMonth;\n        }\n        if (yr === void 0) {\n          yr = self.currentYear;\n        }\n        if (month === 1 && (yr % 4 === 0 && yr % 100 !== 0 || yr % 400 === 0)) return 29;\n        return self.l10n.daysInMonth[month];\n      }\n    };\n  }\n  function init() {\n    self.element = self.input = element;\n    self.isOpen = false;\n    parseConfig();\n    setupLocale();\n    setupInputs();\n    setupDates();\n    setupHelperFunctions();\n    if (!self.isMobile) build();\n    bindEvents();\n    if (self.selectedDates.length || self.config.noCalendar) {\n      if (self.config.enableTime) {\n        setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n      }\n      updateValue(false);\n    }\n    setCalendarWidth();\n    var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n    if (!self.isMobile && isSafari) {\n      positionCalendar();\n    }\n    triggerEvent(\"onReady\");\n  }\n  function getClosestActiveElement() {\n    var _a;\n    return ((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode()).activeElement || document.activeElement;\n  }\n  function bindToInstance(fn) {\n    return fn.bind(self);\n  }\n  function setCalendarWidth() {\n    var config = self.config;\n    if (config.weekNumbers === false && config.showMonths === 1) {\n      return;\n    } else if (config.noCalendar !== true) {\n      window.requestAnimationFrame(function () {\n        if (self.calendarContainer !== undefined) {\n          self.calendarContainer.style.visibility = \"hidden\";\n          self.calendarContainer.style.display = \"block\";\n        }\n        if (self.daysContainer !== undefined) {\n          var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n          self.daysContainer.style.width = daysWidth + \"px\";\n          self.calendarContainer.style.width = daysWidth + (self.weekWrapper !== undefined ? self.weekWrapper.offsetWidth : 0) + \"px\";\n          self.calendarContainer.style.removeProperty(\"visibility\");\n          self.calendarContainer.style.removeProperty(\"display\");\n        }\n      });\n    }\n  }\n  function updateTime(e) {\n    if (self.selectedDates.length === 0) {\n      var defaultDate = self.config.minDate === undefined || (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.compareDates)(new Date(), self.config.minDate) >= 0 ? new Date() : new Date(self.config.minDate.getTime());\n      var defaults = (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.getDefaultHours)(self.config);\n      defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n      self.selectedDates = [defaultDate];\n      self.latestSelectedDateObj = defaultDate;\n    }\n    if (e !== undefined && e.type !== \"blur\") {\n      timeWrapper(e);\n    }\n    var prevValue = self._input.value;\n    setHoursFromInputs();\n    updateValue();\n    if (self._input.value !== prevValue) {\n      self._debouncedChange();\n    }\n  }\n  function ampm2military(hour, amPM) {\n    return hour % 12 + 12 * (0,_utils__WEBPACK_IMPORTED_MODULE_2__.int)(amPM === self.l10n.amPM[1]);\n  }\n  function military2ampm(hour) {\n    switch (hour % 24) {\n      case 0:\n      case 12:\n        return 12;\n      default:\n        return hour % 12;\n    }\n  }\n  function setHoursFromInputs() {\n    if (self.hourElement === undefined || self.minuteElement === undefined) return;\n    var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24,\n      minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60,\n      seconds = self.secondElement !== undefined ? (parseInt(self.secondElement.value, 10) || 0) % 60 : 0;\n    if (self.amPM !== undefined) {\n      hours = ampm2military(hours, self.amPM.textContent);\n    }\n    var limitMinHours = self.config.minTime !== undefined || self.config.minDate && self.minDateHasTime && self.latestSelectedDateObj && (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.compareDates)(self.latestSelectedDateObj, self.config.minDate, true) === 0;\n    var limitMaxHours = self.config.maxTime !== undefined || self.config.maxDate && self.maxDateHasTime && self.latestSelectedDateObj && (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.compareDates)(self.latestSelectedDateObj, self.config.maxDate, true) === 0;\n    if (self.config.maxTime !== undefined && self.config.minTime !== undefined && self.config.minTime > self.config.maxTime) {\n      var minBound = (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.calculateSecondsSinceMidnight)(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());\n      var maxBound = (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.calculateSecondsSinceMidnight)(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());\n      var currentTime = (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.calculateSecondsSinceMidnight)(hours, minutes, seconds);\n      if (currentTime > maxBound && currentTime < minBound) {\n        var result = (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.parseSeconds)(minBound);\n        hours = result[0];\n        minutes = result[1];\n        seconds = result[2];\n      }\n    } else {\n      if (limitMaxHours) {\n        var maxTime = self.config.maxTime !== undefined ? self.config.maxTime : self.config.maxDate;\n        hours = Math.min(hours, maxTime.getHours());\n        if (hours === maxTime.getHours()) minutes = Math.min(minutes, maxTime.getMinutes());\n        if (minutes === maxTime.getMinutes()) seconds = Math.min(seconds, maxTime.getSeconds());\n      }\n      if (limitMinHours) {\n        var minTime = self.config.minTime !== undefined ? self.config.minTime : self.config.minDate;\n        hours = Math.max(hours, minTime.getHours());\n        if (hours === minTime.getHours() && minutes < minTime.getMinutes()) minutes = minTime.getMinutes();\n        if (minutes === minTime.getMinutes()) seconds = Math.max(seconds, minTime.getSeconds());\n      }\n    }\n    setHours(hours, minutes, seconds);\n  }\n  function setHoursFromDate(dateObj) {\n    var date = dateObj || self.latestSelectedDateObj;\n    if (date && date instanceof Date) {\n      setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n    }\n  }\n  function setHours(hours, minutes, seconds) {\n    if (self.latestSelectedDateObj !== undefined) {\n      self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n    }\n    if (!self.hourElement || !self.minuteElement || self.isMobile) return;\n    self.hourElement.value = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.pad)(!self.config.time_24hr ? (12 + hours) % 12 + 12 * (0,_utils__WEBPACK_IMPORTED_MODULE_2__.int)(hours % 12 === 0) : hours);\n    self.minuteElement.value = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.pad)(minutes);\n    if (self.amPM !== undefined) self.amPM.textContent = self.l10n.amPM[(0,_utils__WEBPACK_IMPORTED_MODULE_2__.int)(hours >= 12)];\n    if (self.secondElement !== undefined) self.secondElement.value = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.pad)(seconds);\n  }\n  function onYearInput(event) {\n    var eventTarget = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.getEventTarget)(event);\n    var year = parseInt(eventTarget.value) + (event.delta || 0);\n    if (year / 1000 > 1 || event.key === \"Enter\" && !/[^\\d]/.test(year.toString())) {\n      changeYear(year);\n    }\n  }\n  function bind(element, event, handler, options) {\n    if (event instanceof Array) return event.forEach(function (ev) {\n      return bind(element, ev, handler, options);\n    });\n    if (element instanceof Array) return element.forEach(function (el) {\n      return bind(el, event, handler, options);\n    });\n    element.addEventListener(event, handler, options);\n    self._handlers.push({\n      remove: function () {\n        return element.removeEventListener(event, handler, options);\n      }\n    });\n  }\n  function triggerChange() {\n    triggerEvent(\"onChange\");\n  }\n  function bindEvents() {\n    if (self.config.wrap) {\n      [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n        Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n          return bind(el, \"click\", self[evt]);\n        });\n      });\n    }\n    if (self.isMobile) {\n      setupMobile();\n      return;\n    }\n    var debouncedResize = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.debounce)(onResize, 50);\n    self._debouncedChange = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.debounce)(triggerChange, DEBOUNCED_CHANGE_MS);\n    if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent)) bind(self.daysContainer, \"mouseover\", function (e) {\n      if (self.config.mode === \"range\") onMouseOver((0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.getEventTarget)(e));\n    });\n    bind(self._input, \"keydown\", onKeyDown);\n    if (self.calendarContainer !== undefined) {\n      bind(self.calendarContainer, \"keydown\", onKeyDown);\n    }\n    if (!self.config.inline && !self.config.static) bind(window, \"resize\", debouncedResize);\n    if (window.ontouchstart !== undefined) bind(window.document, \"touchstart\", documentClick);else bind(window.document, \"mousedown\", documentClick);\n    bind(window.document, \"focus\", documentClick, {\n      capture: true\n    });\n    if (self.config.clickOpens === true) {\n      bind(self._input, \"focus\", self.open);\n      bind(self._input, \"click\", self.open);\n    }\n    if (self.daysContainer !== undefined) {\n      bind(self.monthNav, \"click\", onMonthNavClick);\n      bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n      bind(self.daysContainer, \"click\", selectDate);\n    }\n    if (self.timeContainer !== undefined && self.minuteElement !== undefined && self.hourElement !== undefined) {\n      var selText = function (e) {\n        return (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.getEventTarget)(e).select();\n      };\n      bind(self.timeContainer, [\"increment\"], updateTime);\n      bind(self.timeContainer, \"blur\", updateTime, {\n        capture: true\n      });\n      bind(self.timeContainer, \"click\", timeIncrement);\n      bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n      if (self.secondElement !== undefined) bind(self.secondElement, \"focus\", function () {\n        return self.secondElement && self.secondElement.select();\n      });\n      if (self.amPM !== undefined) {\n        bind(self.amPM, \"click\", function (e) {\n          updateTime(e);\n        });\n      }\n    }\n    if (self.config.allowInput) {\n      bind(self._input, \"blur\", onBlur);\n    }\n  }\n  function jumpToDate(jumpDate, triggerChange) {\n    var jumpTo = jumpDate !== undefined ? self.parseDate(jumpDate) : self.latestSelectedDateObj || (self.config.minDate && self.config.minDate > self.now ? self.config.minDate : self.config.maxDate && self.config.maxDate < self.now ? self.config.maxDate : self.now);\n    var oldYear = self.currentYear;\n    var oldMonth = self.currentMonth;\n    try {\n      if (jumpTo !== undefined) {\n        self.currentYear = jumpTo.getFullYear();\n        self.currentMonth = jumpTo.getMonth();\n      }\n    } catch (e) {\n      e.message = \"Invalid date supplied: \" + jumpTo;\n      self.config.errorHandler(e);\n    }\n    if (triggerChange && self.currentYear !== oldYear) {\n      triggerEvent(\"onYearChange\");\n      buildMonthSwitch();\n    }\n    if (triggerChange && (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n      triggerEvent(\"onMonthChange\");\n    }\n    self.redraw();\n  }\n  function timeIncrement(e) {\n    var eventTarget = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.getEventTarget)(e);\n    if (~eventTarget.className.indexOf(\"arrow\")) incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n  }\n  function incrementNumInput(e, delta, inputElem) {\n    var target = e && (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.getEventTarget)(e);\n    var input = inputElem || target && target.parentNode && target.parentNode.firstChild;\n    var event = createEvent(\"increment\");\n    event.delta = delta;\n    input && input.dispatchEvent(event);\n  }\n  function build() {\n    var fragment = window.document.createDocumentFragment();\n    self.calendarContainer = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"div\", \"flatpickr-calendar\");\n    self.calendarContainer.tabIndex = -1;\n    if (!self.config.noCalendar) {\n      fragment.appendChild(buildMonthNav());\n      self.innerContainer = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"div\", \"flatpickr-innerContainer\");\n      if (self.config.weekNumbers) {\n        var _a = buildWeeks(),\n          weekWrapper = _a.weekWrapper,\n          weekNumbers = _a.weekNumbers;\n        self.innerContainer.appendChild(weekWrapper);\n        self.weekNumbers = weekNumbers;\n        self.weekWrapper = weekWrapper;\n      }\n      self.rContainer = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"div\", \"flatpickr-rContainer\");\n      self.rContainer.appendChild(buildWeekdays());\n      if (!self.daysContainer) {\n        self.daysContainer = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"div\", \"flatpickr-days\");\n        self.daysContainer.tabIndex = -1;\n      }\n      buildDays();\n      self.rContainer.appendChild(self.daysContainer);\n      self.innerContainer.appendChild(self.rContainer);\n      fragment.appendChild(self.innerContainer);\n    }\n    if (self.config.enableTime) {\n      fragment.appendChild(buildTime());\n    }\n    (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n    (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(self.calendarContainer, \"animate\", self.config.animate === true);\n    (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n    self.calendarContainer.appendChild(fragment);\n    var customAppend = self.config.appendTo !== undefined && self.config.appendTo.nodeType !== undefined;\n    if (self.config.inline || self.config.static) {\n      self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n      if (self.config.inline) {\n        if (!customAppend && self.element.parentNode) self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);else if (self.config.appendTo !== undefined) self.config.appendTo.appendChild(self.calendarContainer);\n      }\n      if (self.config.static) {\n        var wrapper = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"div\", \"flatpickr-wrapper\");\n        if (self.element.parentNode) self.element.parentNode.insertBefore(wrapper, self.element);\n        wrapper.appendChild(self.element);\n        if (self.altInput) wrapper.appendChild(self.altInput);\n        wrapper.appendChild(self.calendarContainer);\n      }\n    }\n    if (!self.config.static && !self.config.inline) (self.config.appendTo !== undefined ? self.config.appendTo : window.document.body).appendChild(self.calendarContainer);\n  }\n  function createDay(className, date, _dayNumber, i) {\n    var dateIsEnabled = isEnabled(date, true),\n      dayElement = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"span\", className, date.getDate().toString());\n    dayElement.dateObj = date;\n    dayElement.$i = i;\n    dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n    if (className.indexOf(\"hidden\") === -1 && (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.compareDates)(date, self.now) === 0) {\n      self.todayDateElem = dayElement;\n      dayElement.classList.add(\"today\");\n      dayElement.setAttribute(\"aria-current\", \"date\");\n    }\n    if (dateIsEnabled) {\n      dayElement.tabIndex = -1;\n      if (isDateSelected(date)) {\n        dayElement.classList.add(\"selected\");\n        self.selectedDateElem = dayElement;\n        if (self.config.mode === \"range\") {\n          (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(dayElement, \"startRange\", self.selectedDates[0] && (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.compareDates)(date, self.selectedDates[0], true) === 0);\n          (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(dayElement, \"endRange\", self.selectedDates[1] && (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.compareDates)(date, self.selectedDates[1], true) === 0);\n          if (className === \"nextMonthDay\") dayElement.classList.add(\"inRange\");\n        }\n      }\n    } else {\n      dayElement.classList.add(\"flatpickr-disabled\");\n    }\n    if (self.config.mode === \"range\") {\n      if (isDateInRange(date) && !isDateSelected(date)) dayElement.classList.add(\"inRange\");\n    }\n    if (self.weekNumbers && self.config.showMonths === 1 && className !== \"prevMonthDay\" && i % 7 === 6) {\n      self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"<span class='flatpickr-day'>\" + self.config.getWeek(date) + \"</span>\");\n    }\n    triggerEvent(\"onDayCreate\", dayElement);\n    return dayElement;\n  }\n  function focusOnDayElem(targetNode) {\n    targetNode.focus();\n    if (self.config.mode === \"range\") onMouseOver(targetNode);\n  }\n  function getFirstAvailableDay(delta) {\n    var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n    var endMonth = delta > 0 ? self.config.showMonths : -1;\n    for (var m = startMonth; m != endMonth; m += delta) {\n      var month = self.daysContainer.children[m];\n      var startIndex = delta > 0 ? 0 : month.children.length - 1;\n      var endIndex = delta > 0 ? month.children.length : -1;\n      for (var i = startIndex; i != endIndex; i += delta) {\n        var c = month.children[i];\n        if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj)) return c;\n      }\n    }\n    return undefined;\n  }\n  function getNextAvailableDay(current, delta) {\n    var givenMonth = current.className.indexOf(\"Month\") === -1 ? current.dateObj.getMonth() : self.currentMonth;\n    var endMonth = delta > 0 ? self.config.showMonths : -1;\n    var loopDelta = delta > 0 ? 1 : -1;\n    for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n      var month = self.daysContainer.children[m];\n      var startIndex = givenMonth - self.currentMonth === m ? current.$i + delta : delta < 0 ? month.children.length - 1 : 0;\n      var numMonthDays = month.children.length;\n      for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n        var c = month.children[i];\n        if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj) && Math.abs(current.$i - i) >= Math.abs(delta)) return focusOnDayElem(c);\n      }\n    }\n    self.changeMonth(loopDelta);\n    focusOnDay(getFirstAvailableDay(loopDelta), 0);\n    return undefined;\n  }\n  function focusOnDay(current, offset) {\n    var activeElement = getClosestActiveElement();\n    var dayFocused = isInView(activeElement || document.body);\n    var startElem = current !== undefined ? current : dayFocused ? activeElement : self.selectedDateElem !== undefined && isInView(self.selectedDateElem) ? self.selectedDateElem : self.todayDateElem !== undefined && isInView(self.todayDateElem) ? self.todayDateElem : getFirstAvailableDay(offset > 0 ? 1 : -1);\n    if (startElem === undefined) {\n      self._input.focus();\n    } else if (!dayFocused) {\n      focusOnDayElem(startElem);\n    } else {\n      getNextAvailableDay(startElem, offset);\n    }\n  }\n  function buildMonthDays(year, month) {\n    var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n    var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n    var daysInMonth = self.utils.getDaysInMonth(month, year),\n      days = window.document.createDocumentFragment(),\n      isMultiMonth = self.config.showMonths > 1,\n      prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\",\n      nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n    var dayNumber = prevMonthDays + 1 - firstOfMonth,\n      dayIndex = 0;\n    for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n      days.appendChild(createDay(\"flatpickr-day \" + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n    }\n    for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n      days.appendChild(createDay(\"flatpickr-day\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n    }\n    for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth && (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n      days.appendChild(createDay(\"flatpickr-day \" + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n    }\n    var dayContainer = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"div\", \"dayContainer\");\n    dayContainer.appendChild(days);\n    return dayContainer;\n  }\n  function buildDays() {\n    if (self.daysContainer === undefined) {\n      return;\n    }\n    (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.clearNode)(self.daysContainer);\n    if (self.weekNumbers) (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.clearNode)(self.weekNumbers);\n    var frag = document.createDocumentFragment();\n    for (var i = 0; i < self.config.showMonths; i++) {\n      var d = new Date(self.currentYear, self.currentMonth, 1);\n      d.setMonth(self.currentMonth + i);\n      frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n    }\n    self.daysContainer.appendChild(frag);\n    self.days = self.daysContainer.firstChild;\n    if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n      onMouseOver();\n    }\n  }\n  function buildMonthSwitch() {\n    if (self.config.showMonths > 1 || self.config.monthSelectorType !== \"dropdown\") return;\n    var shouldBuildMonth = function (month) {\n      if (self.config.minDate !== undefined && self.currentYear === self.config.minDate.getFullYear() && month < self.config.minDate.getMonth()) {\n        return false;\n      }\n      return !(self.config.maxDate !== undefined && self.currentYear === self.config.maxDate.getFullYear() && month > self.config.maxDate.getMonth());\n    };\n    self.monthsDropdownContainer.tabIndex = -1;\n    self.monthsDropdownContainer.innerHTML = \"\";\n    for (var i = 0; i < 12; i++) {\n      if (!shouldBuildMonth(i)) continue;\n      var month = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"option\", \"flatpickr-monthDropdown-month\");\n      month.value = new Date(self.currentYear, i).getMonth().toString();\n      month.textContent = (0,_utils_formatting__WEBPACK_IMPORTED_MODULE_5__.monthToStr)(i, self.config.shorthandCurrentMonth, self.l10n);\n      month.tabIndex = -1;\n      if (self.currentMonth === i) {\n        month.selected = true;\n      }\n      self.monthsDropdownContainer.appendChild(month);\n    }\n  }\n  function buildMonth() {\n    var container = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"div\", \"flatpickr-month\");\n    var monthNavFragment = window.document.createDocumentFragment();\n    var monthElement;\n    if (self.config.showMonths > 1 || self.config.monthSelectorType === \"static\") {\n      monthElement = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"span\", \"cur-month\");\n    } else {\n      self.monthsDropdownContainer = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"select\", \"flatpickr-monthDropdown-months\");\n      self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n      bind(self.monthsDropdownContainer, \"change\", function (e) {\n        var target = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.getEventTarget)(e);\n        var selectedMonth = parseInt(target.value, 10);\n        self.changeMonth(selectedMonth - self.currentMonth);\n        triggerEvent(\"onMonthChange\");\n      });\n      buildMonthSwitch();\n      monthElement = self.monthsDropdownContainer;\n    }\n    var yearInput = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createNumberInput)(\"cur-year\", {\n      tabindex: \"-1\"\n    });\n    var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n    yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n    if (self.config.minDate) {\n      yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n    }\n    if (self.config.maxDate) {\n      yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n      yearElement.disabled = !!self.config.minDate && self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n    }\n    var currentMonth = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"div\", \"flatpickr-current-month\");\n    currentMonth.appendChild(monthElement);\n    currentMonth.appendChild(yearInput);\n    monthNavFragment.appendChild(currentMonth);\n    container.appendChild(monthNavFragment);\n    return {\n      container: container,\n      yearElement: yearElement,\n      monthElement: monthElement\n    };\n  }\n  function buildMonths() {\n    (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.clearNode)(self.monthNav);\n    self.monthNav.appendChild(self.prevMonthNav);\n    if (self.config.showMonths) {\n      self.yearElements = [];\n      self.monthElements = [];\n    }\n    for (var m = self.config.showMonths; m--;) {\n      var month = buildMonth();\n      self.yearElements.push(month.yearElement);\n      self.monthElements.push(month.monthElement);\n      self.monthNav.appendChild(month.container);\n    }\n    self.monthNav.appendChild(self.nextMonthNav);\n  }\n  function buildMonthNav() {\n    self.monthNav = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"div\", \"flatpickr-months\");\n    self.yearElements = [];\n    self.monthElements = [];\n    self.prevMonthNav = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"span\", \"flatpickr-prev-month\");\n    self.prevMonthNav.innerHTML = self.config.prevArrow;\n    self.nextMonthNav = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"span\", \"flatpickr-next-month\");\n    self.nextMonthNav.innerHTML = self.config.nextArrow;\n    buildMonths();\n    Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n      get: function () {\n        return self.__hidePrevMonthArrow;\n      },\n      set: function (bool) {\n        if (self.__hidePrevMonthArrow !== bool) {\n          (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(self.prevMonthNav, \"flatpickr-disabled\", bool);\n          self.__hidePrevMonthArrow = bool;\n        }\n      }\n    });\n    Object.defineProperty(self, \"_hideNextMonthArrow\", {\n      get: function () {\n        return self.__hideNextMonthArrow;\n      },\n      set: function (bool) {\n        if (self.__hideNextMonthArrow !== bool) {\n          (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(self.nextMonthNav, \"flatpickr-disabled\", bool);\n          self.__hideNextMonthArrow = bool;\n        }\n      }\n    });\n    self.currentYearElement = self.yearElements[0];\n    updateNavigationCurrentMonth();\n    return self.monthNav;\n  }\n  function buildTime() {\n    self.calendarContainer.classList.add(\"hasTime\");\n    if (self.config.noCalendar) self.calendarContainer.classList.add(\"noCalendar\");\n    var defaults = (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.getDefaultHours)(self.config);\n    self.timeContainer = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"div\", \"flatpickr-time\");\n    self.timeContainer.tabIndex = -1;\n    var separator = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"span\", \"flatpickr-time-separator\", \":\");\n    var hourInput = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createNumberInput)(\"flatpickr-hour\", {\n      \"aria-label\": self.l10n.hourAriaLabel\n    });\n    self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n    var minuteInput = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createNumberInput)(\"flatpickr-minute\", {\n      \"aria-label\": self.l10n.minuteAriaLabel\n    });\n    self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n    self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n    self.hourElement.value = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.pad)(self.latestSelectedDateObj ? self.latestSelectedDateObj.getHours() : self.config.time_24hr ? defaults.hours : military2ampm(defaults.hours));\n    self.minuteElement.value = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.pad)(self.latestSelectedDateObj ? self.latestSelectedDateObj.getMinutes() : defaults.minutes);\n    self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n    self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n    self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n    self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n    self.hourElement.setAttribute(\"maxlength\", \"2\");\n    self.minuteElement.setAttribute(\"min\", \"0\");\n    self.minuteElement.setAttribute(\"max\", \"59\");\n    self.minuteElement.setAttribute(\"maxlength\", \"2\");\n    self.timeContainer.appendChild(hourInput);\n    self.timeContainer.appendChild(separator);\n    self.timeContainer.appendChild(minuteInput);\n    if (self.config.time_24hr) self.timeContainer.classList.add(\"time24hr\");\n    if (self.config.enableSeconds) {\n      self.timeContainer.classList.add(\"hasSeconds\");\n      var secondInput = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createNumberInput)(\"flatpickr-second\");\n      self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n      self.secondElement.value = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.pad)(self.latestSelectedDateObj ? self.latestSelectedDateObj.getSeconds() : defaults.seconds);\n      self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n      self.secondElement.setAttribute(\"min\", \"0\");\n      self.secondElement.setAttribute(\"max\", \"59\");\n      self.secondElement.setAttribute(\"maxlength\", \"2\");\n      self.timeContainer.appendChild((0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"span\", \"flatpickr-time-separator\", \":\"));\n      self.timeContainer.appendChild(secondInput);\n    }\n    if (!self.config.time_24hr) {\n      self.amPM = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[(0,_utils__WEBPACK_IMPORTED_MODULE_2__.int)((self.latestSelectedDateObj ? self.hourElement.value : self.config.defaultHour) > 11)]);\n      self.amPM.title = self.l10n.toggleTitle;\n      self.amPM.tabIndex = -1;\n      self.timeContainer.appendChild(self.amPM);\n    }\n    return self.timeContainer;\n  }\n  function buildWeekdays() {\n    if (!self.weekdayContainer) self.weekdayContainer = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"div\", \"flatpickr-weekdays\");else (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.clearNode)(self.weekdayContainer);\n    for (var i = self.config.showMonths; i--;) {\n      var container = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"div\", \"flatpickr-weekdaycontainer\");\n      self.weekdayContainer.appendChild(container);\n    }\n    updateWeekdays();\n    return self.weekdayContainer;\n  }\n  function updateWeekdays() {\n    if (!self.weekdayContainer) {\n      return;\n    }\n    var firstDayOfWeek = self.l10n.firstDayOfWeek;\n    var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n    if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n      weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n    }\n    for (var i = self.config.showMonths; i--;) {\n      self.weekdayContainer.children[i].innerHTML = \"\\n      <span class='flatpickr-weekday'>\\n        \" + weekdays.join(\"</span><span class='flatpickr-weekday'>\") + \"\\n      </span>\\n      \";\n    }\n  }\n  function buildWeeks() {\n    self.calendarContainer.classList.add(\"hasWeeks\");\n    var weekWrapper = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"div\", \"flatpickr-weekwrapper\");\n    weekWrapper.appendChild((0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n    var weekNumbers = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"div\", \"flatpickr-weeks\");\n    weekWrapper.appendChild(weekNumbers);\n    return {\n      weekWrapper: weekWrapper,\n      weekNumbers: weekNumbers\n    };\n  }\n  function changeMonth(value, isOffset) {\n    if (isOffset === void 0) {\n      isOffset = true;\n    }\n    var delta = isOffset ? value : value - self.currentMonth;\n    if (delta < 0 && self._hidePrevMonthArrow === true || delta > 0 && self._hideNextMonthArrow === true) return;\n    self.currentMonth += delta;\n    if (self.currentMonth < 0 || self.currentMonth > 11) {\n      self.currentYear += self.currentMonth > 11 ? 1 : -1;\n      self.currentMonth = (self.currentMonth + 12) % 12;\n      triggerEvent(\"onYearChange\");\n      buildMonthSwitch();\n    }\n    buildDays();\n    triggerEvent(\"onMonthChange\");\n    updateNavigationCurrentMonth();\n  }\n  function clear(triggerChangeEvent, toInitial) {\n    if (triggerChangeEvent === void 0) {\n      triggerChangeEvent = true;\n    }\n    if (toInitial === void 0) {\n      toInitial = true;\n    }\n    self.input.value = \"\";\n    if (self.altInput !== undefined) self.altInput.value = \"\";\n    if (self.mobileInput !== undefined) self.mobileInput.value = \"\";\n    self.selectedDates = [];\n    self.latestSelectedDateObj = undefined;\n    if (toInitial === true) {\n      self.currentYear = self._initialDate.getFullYear();\n      self.currentMonth = self._initialDate.getMonth();\n    }\n    if (self.config.enableTime === true) {\n      var _a = (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.getDefaultHours)(self.config),\n        hours = _a.hours,\n        minutes = _a.minutes,\n        seconds = _a.seconds;\n      setHours(hours, minutes, seconds);\n    }\n    self.redraw();\n    if (triggerChangeEvent) triggerEvent(\"onChange\");\n  }\n  function close() {\n    self.isOpen = false;\n    if (!self.isMobile) {\n      if (self.calendarContainer !== undefined) {\n        self.calendarContainer.classList.remove(\"open\");\n      }\n      if (self._input !== undefined) {\n        self._input.classList.remove(\"active\");\n      }\n    }\n    triggerEvent(\"onClose\");\n  }\n  function destroy() {\n    if (self.config !== undefined) triggerEvent(\"onDestroy\");\n    for (var i = self._handlers.length; i--;) {\n      self._handlers[i].remove();\n    }\n    self._handlers = [];\n    if (self.mobileInput) {\n      if (self.mobileInput.parentNode) self.mobileInput.parentNode.removeChild(self.mobileInput);\n      self.mobileInput = undefined;\n    } else if (self.calendarContainer && self.calendarContainer.parentNode) {\n      if (self.config.static && self.calendarContainer.parentNode) {\n        var wrapper = self.calendarContainer.parentNode;\n        wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n        if (wrapper.parentNode) {\n          while (wrapper.firstChild) wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n          wrapper.parentNode.removeChild(wrapper);\n        }\n      } else self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n    }\n    if (self.altInput) {\n      self.input.type = \"text\";\n      if (self.altInput.parentNode) self.altInput.parentNode.removeChild(self.altInput);\n      delete self.altInput;\n    }\n    if (self.input) {\n      self.input.type = self.input._type;\n      self.input.classList.remove(\"flatpickr-input\");\n      self.input.removeAttribute(\"readonly\");\n    }\n    [\"_showTimeInput\", \"latestSelectedDateObj\", \"_hideNextMonthArrow\", \"_hidePrevMonthArrow\", \"__hideNextMonthArrow\", \"__hidePrevMonthArrow\", \"isMobile\", \"isOpen\", \"selectedDateElem\", \"minDateHasTime\", \"maxDateHasTime\", \"days\", \"daysContainer\", \"_input\", \"_positionElement\", \"innerContainer\", \"rContainer\", \"monthNav\", \"todayDateElem\", \"calendarContainer\", \"weekdayContainer\", \"prevMonthNav\", \"nextMonthNav\", \"monthsDropdownContainer\", \"currentMonthElement\", \"currentYearElement\", \"navigationCurrentMonth\", \"selectedDateElem\", \"config\"].forEach(function (k) {\n      try {\n        delete self[k];\n      } catch (_) {}\n    });\n  }\n  function isCalendarElem(elem) {\n    return self.calendarContainer.contains(elem);\n  }\n  function documentClick(e) {\n    if (self.isOpen && !self.config.inline) {\n      var eventTarget_1 = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.getEventTarget)(e);\n      var isCalendarElement = isCalendarElem(eventTarget_1);\n      var isInput = eventTarget_1 === self.input || eventTarget_1 === self.altInput || self.element.contains(eventTarget_1) || e.path && e.path.indexOf && (~e.path.indexOf(self.input) || ~e.path.indexOf(self.altInput));\n      var lostFocus = !isInput && !isCalendarElement && !isCalendarElem(e.relatedTarget);\n      var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n        return elem.contains(eventTarget_1);\n      });\n      if (lostFocus && isIgnored) {\n        if (self.config.allowInput) {\n          self.setDate(self._input.value, false, self.config.altInput ? self.config.altFormat : self.config.dateFormat);\n        }\n        if (self.timeContainer !== undefined && self.minuteElement !== undefined && self.hourElement !== undefined && self.input.value !== \"\" && self.input.value !== undefined) {\n          updateTime();\n        }\n        self.close();\n        if (self.config && self.config.mode === \"range\" && self.selectedDates.length === 1) self.clear(false);\n      }\n    }\n  }\n  function changeYear(newYear) {\n    if (!newYear || self.config.minDate && newYear < self.config.minDate.getFullYear() || self.config.maxDate && newYear > self.config.maxDate.getFullYear()) return;\n    var newYearNum = newYear,\n      isNewYear = self.currentYear !== newYearNum;\n    self.currentYear = newYearNum || self.currentYear;\n    if (self.config.maxDate && self.currentYear === self.config.maxDate.getFullYear()) {\n      self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n    } else if (self.config.minDate && self.currentYear === self.config.minDate.getFullYear()) {\n      self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n    }\n    if (isNewYear) {\n      self.redraw();\n      triggerEvent(\"onYearChange\");\n      buildMonthSwitch();\n    }\n  }\n  function isEnabled(date, timeless) {\n    var _a;\n    if (timeless === void 0) {\n      timeless = true;\n    }\n    var dateToCheck = self.parseDate(date, undefined, timeless);\n    if (self.config.minDate && dateToCheck && (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.compareDates)(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0 || self.config.maxDate && dateToCheck && (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.compareDates)(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0) return false;\n    if (!self.config.enable && self.config.disable.length === 0) return true;\n    if (dateToCheck === undefined) return false;\n    var bool = !!self.config.enable,\n      array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n    for (var i = 0, d = void 0; i < array.length; i++) {\n      d = array[i];\n      if (typeof d === \"function\" && d(dateToCheck)) return bool;else if (d instanceof Date && dateToCheck !== undefined && d.getTime() === dateToCheck.getTime()) return bool;else if (typeof d === \"string\") {\n        var parsed = self.parseDate(d, undefined, true);\n        return parsed && parsed.getTime() === dateToCheck.getTime() ? bool : !bool;\n      } else if (typeof d === \"object\" && dateToCheck !== undefined && d.from && d.to && dateToCheck.getTime() >= d.from.getTime() && dateToCheck.getTime() <= d.to.getTime()) return bool;\n    }\n    return !bool;\n  }\n  function isInView(elem) {\n    if (self.daysContainer !== undefined) return elem.className.indexOf(\"hidden\") === -1 && elem.className.indexOf(\"flatpickr-disabled\") === -1 && self.daysContainer.contains(elem);\n    return false;\n  }\n  function onBlur(e) {\n    var isInput = e.target === self._input;\n    var valueChanged = self._input.value.trimEnd() !== getDateStr();\n    if (isInput && valueChanged && !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n      self.setDate(self._input.value, true, e.target === self.altInput ? self.config.altFormat : self.config.dateFormat);\n    }\n  }\n  function onKeyDown(e) {\n    var eventTarget = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.getEventTarget)(e);\n    var isInput = self.config.wrap ? element.contains(eventTarget) : eventTarget === self._input;\n    var allowInput = self.config.allowInput;\n    var allowKeydown = self.isOpen && (!allowInput || !isInput);\n    var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n    if (e.keyCode === 13 && isInput) {\n      if (allowInput) {\n        self.setDate(self._input.value, true, eventTarget === self.altInput ? self.config.altFormat : self.config.dateFormat);\n        self.close();\n        return eventTarget.blur();\n      } else {\n        self.open();\n      }\n    } else if (isCalendarElem(eventTarget) || allowKeydown || allowInlineKeydown) {\n      var isTimeObj = !!self.timeContainer && self.timeContainer.contains(eventTarget);\n      switch (e.keyCode) {\n        case 13:\n          if (isTimeObj) {\n            e.preventDefault();\n            updateTime();\n            focusAndClose();\n          } else selectDate(e);\n          break;\n        case 27:\n          e.preventDefault();\n          focusAndClose();\n          break;\n        case 8:\n        case 46:\n          if (isInput && !self.config.allowInput) {\n            e.preventDefault();\n            self.clear();\n          }\n          break;\n        case 37:\n        case 39:\n          if (!isTimeObj && !isInput) {\n            e.preventDefault();\n            var activeElement = getClosestActiveElement();\n            if (self.daysContainer !== undefined && (allowInput === false || activeElement && isInView(activeElement))) {\n              var delta_1 = e.keyCode === 39 ? 1 : -1;\n              if (!e.ctrlKey) focusOnDay(undefined, delta_1);else {\n                e.stopPropagation();\n                changeMonth(delta_1);\n                focusOnDay(getFirstAvailableDay(1), 0);\n              }\n            }\n          } else if (self.hourElement) self.hourElement.focus();\n          break;\n        case 38:\n        case 40:\n          e.preventDefault();\n          var delta = e.keyCode === 40 ? 1 : -1;\n          if (self.daysContainer && eventTarget.$i !== undefined || eventTarget === self.input || eventTarget === self.altInput) {\n            if (e.ctrlKey) {\n              e.stopPropagation();\n              changeYear(self.currentYear - delta);\n              focusOnDay(getFirstAvailableDay(1), 0);\n            } else if (!isTimeObj) focusOnDay(undefined, delta * 7);\n          } else if (eventTarget === self.currentYearElement) {\n            changeYear(self.currentYear - delta);\n          } else if (self.config.enableTime) {\n            if (!isTimeObj && self.hourElement) self.hourElement.focus();\n            updateTime(e);\n            self._debouncedChange();\n          }\n          break;\n        case 9:\n          if (isTimeObj) {\n            var elems = [self.hourElement, self.minuteElement, self.secondElement, self.amPM].concat(self.pluginElements).filter(function (x) {\n              return x;\n            });\n            var i = elems.indexOf(eventTarget);\n            if (i !== -1) {\n              var target = elems[i + (e.shiftKey ? -1 : 1)];\n              e.preventDefault();\n              (target || self._input).focus();\n            }\n          } else if (!self.config.noCalendar && self.daysContainer && self.daysContainer.contains(eventTarget) && e.shiftKey) {\n            e.preventDefault();\n            self._input.focus();\n          }\n          break;\n        default:\n          break;\n      }\n    }\n    if (self.amPM !== undefined && eventTarget === self.amPM) {\n      switch (e.key) {\n        case self.l10n.amPM[0].charAt(0):\n        case self.l10n.amPM[0].charAt(0).toLowerCase():\n          self.amPM.textContent = self.l10n.amPM[0];\n          setHoursFromInputs();\n          updateValue();\n          break;\n        case self.l10n.amPM[1].charAt(0):\n        case self.l10n.amPM[1].charAt(0).toLowerCase():\n          self.amPM.textContent = self.l10n.amPM[1];\n          setHoursFromInputs();\n          updateValue();\n          break;\n      }\n    }\n    if (isInput || isCalendarElem(eventTarget)) {\n      triggerEvent(\"onKeyDown\", e);\n    }\n  }\n  function onMouseOver(elem, cellClass) {\n    if (cellClass === void 0) {\n      cellClass = \"flatpickr-day\";\n    }\n    if (self.selectedDates.length !== 1 || elem && (!elem.classList.contains(cellClass) || elem.classList.contains(\"flatpickr-disabled\"))) return;\n    var hoverDate = elem ? elem.dateObj.getTime() : self.days.firstElementChild.dateObj.getTime(),\n      initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(),\n      rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()),\n      rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n    var containsDisabled = false;\n    var minRange = 0,\n      maxRange = 0;\n    for (var t = rangeStartDate; t < rangeEndDate; t += _utils_dates__WEBPACK_IMPORTED_MODULE_4__.duration.DAY) {\n      if (!isEnabled(new Date(t), true)) {\n        containsDisabled = containsDisabled || t > rangeStartDate && t < rangeEndDate;\n        if (t < initialDate && (!minRange || t > minRange)) minRange = t;else if (t > initialDate && (!maxRange || t < maxRange)) maxRange = t;\n      }\n    }\n    var hoverableCells = Array.from(self.rContainer.querySelectorAll(\"*:nth-child(-n+\" + self.config.showMonths + \") > .\" + cellClass));\n    hoverableCells.forEach(function (dayElem) {\n      var date = dayElem.dateObj;\n      var timestamp = date.getTime();\n      var outOfRange = minRange > 0 && timestamp < minRange || maxRange > 0 && timestamp > maxRange;\n      if (outOfRange) {\n        dayElem.classList.add(\"notAllowed\");\n        [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n          dayElem.classList.remove(c);\n        });\n        return;\n      } else if (containsDisabled && !outOfRange) return;\n      [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n        dayElem.classList.remove(c);\n      });\n      if (elem !== undefined) {\n        elem.classList.add(hoverDate <= self.selectedDates[0].getTime() ? \"startRange\" : \"endRange\");\n        if (initialDate < hoverDate && timestamp === initialDate) dayElem.classList.add(\"startRange\");else if (initialDate > hoverDate && timestamp === initialDate) dayElem.classList.add(\"endRange\");\n        if (timestamp >= minRange && (maxRange === 0 || timestamp <= maxRange) && (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.isBetween)(timestamp, initialDate, hoverDate)) dayElem.classList.add(\"inRange\");\n      }\n    });\n  }\n  function onResize() {\n    if (self.isOpen && !self.config.static && !self.config.inline) positionCalendar();\n  }\n  function open(e, positionElement) {\n    if (positionElement === void 0) {\n      positionElement = self._positionElement;\n    }\n    if (self.isMobile === true) {\n      if (e) {\n        e.preventDefault();\n        var eventTarget = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.getEventTarget)(e);\n        if (eventTarget) {\n          eventTarget.blur();\n        }\n      }\n      if (self.mobileInput !== undefined) {\n        self.mobileInput.focus();\n        self.mobileInput.click();\n      }\n      triggerEvent(\"onOpen\");\n      return;\n    } else if (self._input.disabled || self.config.inline) {\n      return;\n    }\n    var wasOpen = self.isOpen;\n    self.isOpen = true;\n    if (!wasOpen) {\n      self.calendarContainer.classList.add(\"open\");\n      self._input.classList.add(\"active\");\n      triggerEvent(\"onOpen\");\n      positionCalendar(positionElement);\n    }\n    if (self.config.enableTime === true && self.config.noCalendar === true) {\n      if (self.config.allowInput === false && (e === undefined || !self.timeContainer.contains(e.relatedTarget))) {\n        setTimeout(function () {\n          return self.hourElement.select();\n        }, 50);\n      }\n    }\n  }\n  function minMaxDateSetter(type) {\n    return function (date) {\n      var dateObj = self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat);\n      var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n      if (dateObj !== undefined) {\n        self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] = dateObj.getHours() > 0 || dateObj.getMinutes() > 0 || dateObj.getSeconds() > 0;\n      }\n      if (self.selectedDates) {\n        self.selectedDates = self.selectedDates.filter(function (d) {\n          return isEnabled(d);\n        });\n        if (!self.selectedDates.length && type === \"min\") setHoursFromDate(dateObj);\n        updateValue();\n      }\n      if (self.daysContainer) {\n        redraw();\n        if (dateObj !== undefined) self.currentYearElement[type] = dateObj.getFullYear().toString();else self.currentYearElement.removeAttribute(type);\n        self.currentYearElement.disabled = !!inverseDateObj && dateObj !== undefined && inverseDateObj.getFullYear() === dateObj.getFullYear();\n      }\n    };\n  }\n  function parseConfig() {\n    var boolOpts = [\"wrap\", \"weekNumbers\", \"allowInput\", \"allowInvalidPreload\", \"clickOpens\", \"time_24hr\", \"enableTime\", \"noCalendar\", \"altInput\", \"shorthandCurrentMonth\", \"inline\", \"static\", \"enableSeconds\", \"disableMobile\"];\n    var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n    var formats = {};\n    self.config.parseDate = userConfig.parseDate;\n    self.config.formatDate = userConfig.formatDate;\n    Object.defineProperty(self.config, \"enable\", {\n      get: function () {\n        return self.config._enable;\n      },\n      set: function (dates) {\n        self.config._enable = parseDateRules(dates);\n      }\n    });\n    Object.defineProperty(self.config, \"disable\", {\n      get: function () {\n        return self.config._disable;\n      },\n      set: function (dates) {\n        self.config._disable = parseDateRules(dates);\n      }\n    });\n    var timeMode = userConfig.mode === \"time\";\n    if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n      var defaultDateFormat = flatpickr.defaultConfig.dateFormat || _types_options__WEBPACK_IMPORTED_MODULE_0__.defaults.dateFormat;\n      formats.dateFormat = userConfig.noCalendar || timeMode ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\") : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n    }\n    if (userConfig.altInput && (userConfig.enableTime || timeMode) && !userConfig.altFormat) {\n      var defaultAltFormat = flatpickr.defaultConfig.altFormat || _types_options__WEBPACK_IMPORTED_MODULE_0__.defaults.altFormat;\n      formats.altFormat = userConfig.noCalendar || timeMode ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\") : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n    }\n    Object.defineProperty(self.config, \"minDate\", {\n      get: function () {\n        return self.config._minDate;\n      },\n      set: minMaxDateSetter(\"min\")\n    });\n    Object.defineProperty(self.config, \"maxDate\", {\n      get: function () {\n        return self.config._maxDate;\n      },\n      set: minMaxDateSetter(\"max\")\n    });\n    var minMaxTimeSetter = function (type) {\n      return function (val) {\n        self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n      };\n    };\n    Object.defineProperty(self.config, \"minTime\", {\n      get: function () {\n        return self.config._minTime;\n      },\n      set: minMaxTimeSetter(\"min\")\n    });\n    Object.defineProperty(self.config, \"maxTime\", {\n      get: function () {\n        return self.config._maxTime;\n      },\n      set: minMaxTimeSetter(\"max\")\n    });\n    if (userConfig.mode === \"time\") {\n      self.config.noCalendar = true;\n      self.config.enableTime = true;\n    }\n    Object.assign(self.config, formats, userConfig);\n    for (var i = 0; i < boolOpts.length; i++) self.config[boolOpts[i]] = self.config[boolOpts[i]] === true || self.config[boolOpts[i]] === \"true\";\n    _types_options__WEBPACK_IMPORTED_MODULE_0__.HOOKS.filter(function (hook) {\n      return self.config[hook] !== undefined;\n    }).forEach(function (hook) {\n      self.config[hook] = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.arrayify)(self.config[hook] || []).map(bindToInstance);\n    });\n    self.isMobile = !self.config.disableMobile && !self.config.inline && self.config.mode === \"single\" && !self.config.disable.length && !self.config.enable && !self.config.weekNumbers && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n    for (var i = 0; i < self.config.plugins.length; i++) {\n      var pluginConf = self.config.plugins[i](self) || {};\n      for (var key in pluginConf) {\n        if (_types_options__WEBPACK_IMPORTED_MODULE_0__.HOOKS.indexOf(key) > -1) {\n          self.config[key] = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.arrayify)(pluginConf[key]).map(bindToInstance).concat(self.config[key]);\n        } else if (typeof userConfig[key] === \"undefined\") self.config[key] = pluginConf[key];\n      }\n    }\n    if (!userConfig.altInputClass) {\n      self.config.altInputClass = getInputElem().className + \" \" + self.config.altInputClass;\n    }\n    triggerEvent(\"onParseConfig\");\n  }\n  function getInputElem() {\n    return self.config.wrap ? element.querySelector(\"[data-input]\") : element;\n  }\n  function setupLocale() {\n    if (typeof self.config.locale !== \"object\" && typeof flatpickr.l10ns[self.config.locale] === \"undefined\") self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n    self.l10n = __assign(__assign({}, flatpickr.l10ns.default), typeof self.config.locale === \"object\" ? self.config.locale : self.config.locale !== \"default\" ? flatpickr.l10ns[self.config.locale] : undefined);\n    _utils_formatting__WEBPACK_IMPORTED_MODULE_5__.tokenRegex.D = \"(\" + self.l10n.weekdays.shorthand.join(\"|\") + \")\";\n    _utils_formatting__WEBPACK_IMPORTED_MODULE_5__.tokenRegex.l = \"(\" + self.l10n.weekdays.longhand.join(\"|\") + \")\";\n    _utils_formatting__WEBPACK_IMPORTED_MODULE_5__.tokenRegex.M = \"(\" + self.l10n.months.shorthand.join(\"|\") + \")\";\n    _utils_formatting__WEBPACK_IMPORTED_MODULE_5__.tokenRegex.F = \"(\" + self.l10n.months.longhand.join(\"|\") + \")\";\n    _utils_formatting__WEBPACK_IMPORTED_MODULE_5__.tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n    var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n    if (userConfig.time_24hr === undefined && flatpickr.defaultConfig.time_24hr === undefined) {\n      self.config.time_24hr = self.l10n.time_24hr;\n    }\n    self.formatDate = (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.createDateFormatter)(self);\n    self.parseDate = (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.createDateParser)({\n      config: self.config,\n      l10n: self.l10n\n    });\n  }\n  function positionCalendar(customPositionElement) {\n    if (typeof self.config.position === \"function\") {\n      return void self.config.position(self, customPositionElement);\n    }\n    if (self.calendarContainer === undefined) return;\n    triggerEvent(\"onPreCalendarPosition\");\n    var positionElement = customPositionElement || self._positionElement;\n    var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, function (acc, child) {\n        return acc + child.offsetHeight;\n      }, 0),\n      calendarWidth = self.calendarContainer.offsetWidth,\n      configPos = self.config.position.split(\" \"),\n      configPosVertical = configPos[0],\n      configPosHorizontal = configPos.length > 1 ? configPos[1] : null,\n      inputBounds = positionElement.getBoundingClientRect(),\n      distanceFromBottom = window.innerHeight - inputBounds.bottom,\n      showOnTop = configPosVertical === \"above\" || configPosVertical !== \"below\" && distanceFromBottom < calendarHeight && inputBounds.top > calendarHeight;\n    var top = window.pageYOffset + inputBounds.top + (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n    (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(self.calendarContainer, \"arrowTop\", !showOnTop);\n    (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(self.calendarContainer, \"arrowBottom\", showOnTop);\n    if (self.config.inline) return;\n    var left = window.pageXOffset + inputBounds.left;\n    var isCenter = false;\n    var isRight = false;\n    if (configPosHorizontal === \"center\") {\n      left -= (calendarWidth - inputBounds.width) / 2;\n      isCenter = true;\n    } else if (configPosHorizontal === \"right\") {\n      left -= calendarWidth - inputBounds.width;\n      isRight = true;\n    }\n    (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n    (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(self.calendarContainer, \"arrowCenter\", isCenter);\n    (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(self.calendarContainer, \"arrowRight\", isRight);\n    var right = window.document.body.offsetWidth - (window.pageXOffset + inputBounds.right);\n    var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n    var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n    (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(self.calendarContainer, \"rightMost\", rightMost);\n    if (self.config.static) return;\n    self.calendarContainer.style.top = top + \"px\";\n    if (!rightMost) {\n      self.calendarContainer.style.left = left + \"px\";\n      self.calendarContainer.style.right = \"auto\";\n    } else if (!centerMost) {\n      self.calendarContainer.style.left = \"auto\";\n      self.calendarContainer.style.right = right + \"px\";\n    } else {\n      var doc = getDocumentStyleSheet();\n      if (doc === undefined) return;\n      var bodyWidth = window.document.body.offsetWidth;\n      var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n      var centerBefore = \".flatpickr-calendar.centerMost:before\";\n      var centerAfter = \".flatpickr-calendar.centerMost:after\";\n      var centerIndex = doc.cssRules.length;\n      var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n      (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(self.calendarContainer, \"rightMost\", false);\n      (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.toggleClass)(self.calendarContainer, \"centerMost\", true);\n      doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n      self.calendarContainer.style.left = centerLeft + \"px\";\n      self.calendarContainer.style.right = \"auto\";\n    }\n  }\n  function getDocumentStyleSheet() {\n    var editableSheet = null;\n    for (var i = 0; i < document.styleSheets.length; i++) {\n      var sheet = document.styleSheets[i];\n      if (!sheet.cssRules) continue;\n      try {\n        sheet.cssRules;\n      } catch (err) {\n        continue;\n      }\n      editableSheet = sheet;\n      break;\n    }\n    return editableSheet != null ? editableSheet : createStyleSheet();\n  }\n  function createStyleSheet() {\n    var style = document.createElement(\"style\");\n    document.head.appendChild(style);\n    return style.sheet;\n  }\n  function redraw() {\n    if (self.config.noCalendar || self.isMobile) return;\n    buildMonthSwitch();\n    updateNavigationCurrentMonth();\n    buildDays();\n  }\n  function focusAndClose() {\n    self._input.focus();\n    if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 || navigator.msMaxTouchPoints !== undefined) {\n      setTimeout(self.close, 0);\n    } else {\n      self.close();\n    }\n  }\n  function selectDate(e) {\n    e.preventDefault();\n    e.stopPropagation();\n    var isSelectable = function (day) {\n      return day.classList && day.classList.contains(\"flatpickr-day\") && !day.classList.contains(\"flatpickr-disabled\") && !day.classList.contains(\"notAllowed\");\n    };\n    var t = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.findParent)((0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.getEventTarget)(e), isSelectable);\n    if (t === undefined) return;\n    var target = t;\n    var selectedDate = self.latestSelectedDateObj = new Date(target.dateObj.getTime());\n    var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth || selectedDate.getMonth() > self.currentMonth + self.config.showMonths - 1) && self.config.mode !== \"range\";\n    self.selectedDateElem = target;\n    if (self.config.mode === \"single\") self.selectedDates = [selectedDate];else if (self.config.mode === \"multiple\") {\n      var selectedIndex = isDateSelected(selectedDate);\n      if (selectedIndex) self.selectedDates.splice(parseInt(selectedIndex), 1);else self.selectedDates.push(selectedDate);\n    } else if (self.config.mode === \"range\") {\n      if (self.selectedDates.length === 2) {\n        self.clear(false, false);\n      }\n      self.latestSelectedDateObj = selectedDate;\n      self.selectedDates.push(selectedDate);\n      if ((0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.compareDates)(selectedDate, self.selectedDates[0], true) !== 0) self.selectedDates.sort(function (a, b) {\n        return a.getTime() - b.getTime();\n      });\n    }\n    setHoursFromInputs();\n    if (shouldChangeMonth) {\n      var isNewYear = self.currentYear !== selectedDate.getFullYear();\n      self.currentYear = selectedDate.getFullYear();\n      self.currentMonth = selectedDate.getMonth();\n      if (isNewYear) {\n        triggerEvent(\"onYearChange\");\n        buildMonthSwitch();\n      }\n      triggerEvent(\"onMonthChange\");\n    }\n    updateNavigationCurrentMonth();\n    buildDays();\n    updateValue();\n    if (!shouldChangeMonth && self.config.mode !== \"range\" && self.config.showMonths === 1) focusOnDayElem(target);else if (self.selectedDateElem !== undefined && self.hourElement === undefined) {\n      self.selectedDateElem && self.selectedDateElem.focus();\n    }\n    if (self.hourElement !== undefined) self.hourElement !== undefined && self.hourElement.focus();\n    if (self.config.closeOnSelect) {\n      var single = self.config.mode === \"single\" && !self.config.enableTime;\n      var range = self.config.mode === \"range\" && self.selectedDates.length === 2 && !self.config.enableTime;\n      if (single || range) {\n        focusAndClose();\n      }\n    }\n    triggerChange();\n  }\n  var CALLBACKS = {\n    locale: [setupLocale, updateWeekdays],\n    showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n    minDate: [jumpToDate],\n    maxDate: [jumpToDate],\n    positionElement: [updatePositionElement],\n    clickOpens: [function () {\n      if (self.config.clickOpens === true) {\n        bind(self._input, \"focus\", self.open);\n        bind(self._input, \"click\", self.open);\n      } else {\n        self._input.removeEventListener(\"focus\", self.open);\n        self._input.removeEventListener(\"click\", self.open);\n      }\n    }]\n  };\n  function set(option, value) {\n    if (option !== null && typeof option === \"object\") {\n      Object.assign(self.config, option);\n      for (var key in option) {\n        if (CALLBACKS[key] !== undefined) CALLBACKS[key].forEach(function (x) {\n          return x();\n        });\n      }\n    } else {\n      self.config[option] = value;\n      if (CALLBACKS[option] !== undefined) CALLBACKS[option].forEach(function (x) {\n        return x();\n      });else if (_types_options__WEBPACK_IMPORTED_MODULE_0__.HOOKS.indexOf(option) > -1) self.config[option] = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.arrayify)(value);\n    }\n    self.redraw();\n    updateValue(true);\n  }\n  function setSelectedDate(inputDate, format) {\n    var dates = [];\n    if (inputDate instanceof Array) dates = inputDate.map(function (d) {\n      return self.parseDate(d, format);\n    });else if (inputDate instanceof Date || typeof inputDate === \"number\") dates = [self.parseDate(inputDate, format)];else if (typeof inputDate === \"string\") {\n      switch (self.config.mode) {\n        case \"single\":\n        case \"time\":\n          dates = [self.parseDate(inputDate, format)];\n          break;\n        case \"multiple\":\n          dates = inputDate.split(self.config.conjunction).map(function (date) {\n            return self.parseDate(date, format);\n          });\n          break;\n        case \"range\":\n          dates = inputDate.split(self.l10n.rangeSeparator).map(function (date) {\n            return self.parseDate(date, format);\n          });\n          break;\n        default:\n          break;\n      }\n    } else self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n    self.selectedDates = self.config.allowInvalidPreload ? dates : dates.filter(function (d) {\n      return d instanceof Date && isEnabled(d, false);\n    });\n    if (self.config.mode === \"range\") self.selectedDates.sort(function (a, b) {\n      return a.getTime() - b.getTime();\n    });\n  }\n  function setDate(date, triggerChange, format) {\n    if (triggerChange === void 0) {\n      triggerChange = false;\n    }\n    if (format === void 0) {\n      format = self.config.dateFormat;\n    }\n    if (date !== 0 && !date || date instanceof Array && date.length === 0) return self.clear(triggerChange);\n    setSelectedDate(date, format);\n    self.latestSelectedDateObj = self.selectedDates[self.selectedDates.length - 1];\n    self.redraw();\n    jumpToDate(undefined, triggerChange);\n    setHoursFromDate();\n    if (self.selectedDates.length === 0) {\n      self.clear(false);\n    }\n    updateValue(triggerChange);\n    if (triggerChange) triggerEvent(\"onChange\");\n  }\n  function parseDateRules(arr) {\n    return arr.slice().map(function (rule) {\n      if (typeof rule === \"string\" || typeof rule === \"number\" || rule instanceof Date) {\n        return self.parseDate(rule, undefined, true);\n      } else if (rule && typeof rule === \"object\" && rule.from && rule.to) return {\n        from: self.parseDate(rule.from, undefined),\n        to: self.parseDate(rule.to, undefined)\n      };\n      return rule;\n    }).filter(function (x) {\n      return x;\n    });\n  }\n  function setupDates() {\n    self.selectedDates = [];\n    self.now = self.parseDate(self.config.now) || new Date();\n    var preloadedDate = self.config.defaultDate || ((self.input.nodeName === \"INPUT\" || self.input.nodeName === \"TEXTAREA\") && self.input.placeholder && self.input.value === self.input.placeholder ? null : self.input.value);\n    if (preloadedDate) setSelectedDate(preloadedDate, self.config.dateFormat);\n    self._initialDate = self.selectedDates.length > 0 ? self.selectedDates[0] : self.config.minDate && self.config.minDate.getTime() > self.now.getTime() ? self.config.minDate : self.config.maxDate && self.config.maxDate.getTime() < self.now.getTime() ? self.config.maxDate : self.now;\n    self.currentYear = self._initialDate.getFullYear();\n    self.currentMonth = self._initialDate.getMonth();\n    if (self.selectedDates.length > 0) self.latestSelectedDateObj = self.selectedDates[0];\n    if (self.config.minTime !== undefined) self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n    if (self.config.maxTime !== undefined) self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n    self.minDateHasTime = !!self.config.minDate && (self.config.minDate.getHours() > 0 || self.config.minDate.getMinutes() > 0 || self.config.minDate.getSeconds() > 0);\n    self.maxDateHasTime = !!self.config.maxDate && (self.config.maxDate.getHours() > 0 || self.config.maxDate.getMinutes() > 0 || self.config.maxDate.getSeconds() > 0);\n  }\n  function setupInputs() {\n    self.input = getInputElem();\n    if (!self.input) {\n      self.config.errorHandler(new Error(\"Invalid input element specified\"));\n      return;\n    }\n    self.input._type = self.input.type;\n    self.input.type = \"text\";\n    self.input.classList.add(\"flatpickr-input\");\n    self._input = self.input;\n    if (self.config.altInput) {\n      self.altInput = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(self.input.nodeName, self.config.altInputClass);\n      self._input = self.altInput;\n      self.altInput.placeholder = self.input.placeholder;\n      self.altInput.disabled = self.input.disabled;\n      self.altInput.required = self.input.required;\n      self.altInput.tabIndex = self.input.tabIndex;\n      self.altInput.type = \"text\";\n      self.input.setAttribute(\"type\", \"hidden\");\n      if (!self.config.static && self.input.parentNode) self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n    }\n    if (!self.config.allowInput) self._input.setAttribute(\"readonly\", \"readonly\");\n    updatePositionElement();\n  }\n  function updatePositionElement() {\n    self._positionElement = self.config.positionElement || self._input;\n  }\n  function setupMobile() {\n    var inputType = self.config.enableTime ? self.config.noCalendar ? \"time\" : \"datetime-local\" : \"date\";\n    self.mobileInput = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.createElement)(\"input\", self.input.className + \" flatpickr-mobile\");\n    self.mobileInput.tabIndex = 1;\n    self.mobileInput.type = inputType;\n    self.mobileInput.disabled = self.input.disabled;\n    self.mobileInput.required = self.input.required;\n    self.mobileInput.placeholder = self.input.placeholder;\n    self.mobileFormatStr = inputType === \"datetime-local\" ? \"Y-m-d\\\\TH:i:S\" : inputType === \"date\" ? \"Y-m-d\" : \"H:i:S\";\n    if (self.selectedDates.length > 0) {\n      self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n    }\n    if (self.config.minDate) self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n    if (self.config.maxDate) self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n    if (self.input.getAttribute(\"step\")) self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n    self.input.type = \"hidden\";\n    if (self.altInput !== undefined) self.altInput.type = \"hidden\";\n    try {\n      if (self.input.parentNode) self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n    } catch (_a) {}\n    bind(self.mobileInput, \"change\", function (e) {\n      self.setDate((0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.getEventTarget)(e).value, false, self.mobileFormatStr);\n      triggerEvent(\"onChange\");\n      triggerEvent(\"onClose\");\n    });\n  }\n  function toggle(e) {\n    if (self.isOpen === true) return self.close();\n    self.open(e);\n  }\n  function triggerEvent(event, data) {\n    if (self.config === undefined) return;\n    var hooks = self.config[event];\n    if (hooks !== undefined && hooks.length > 0) {\n      for (var i = 0; hooks[i] && i < hooks.length; i++) hooks[i](self.selectedDates, self.input.value, self, data);\n    }\n    if (event === \"onChange\") {\n      self.input.dispatchEvent(createEvent(\"change\"));\n      self.input.dispatchEvent(createEvent(\"input\"));\n    }\n  }\n  function createEvent(name) {\n    var e = document.createEvent(\"Event\");\n    e.initEvent(name, true, true);\n    return e;\n  }\n  function isDateSelected(date) {\n    for (var i = 0; i < self.selectedDates.length; i++) {\n      var selectedDate = self.selectedDates[i];\n      if (selectedDate instanceof Date && (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.compareDates)(selectedDate, date) === 0) return \"\" + i;\n    }\n    return false;\n  }\n  function isDateInRange(date) {\n    if (self.config.mode !== \"range\" || self.selectedDates.length < 2) return false;\n    return (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.compareDates)(date, self.selectedDates[0]) >= 0 && (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.compareDates)(date, self.selectedDates[1]) <= 0;\n  }\n  function updateNavigationCurrentMonth() {\n    if (self.config.noCalendar || self.isMobile || !self.monthNav) return;\n    self.yearElements.forEach(function (yearElement, i) {\n      var d = new Date(self.currentYear, self.currentMonth, 1);\n      d.setMonth(self.currentMonth + i);\n      if (self.config.showMonths > 1 || self.config.monthSelectorType === \"static\") {\n        self.monthElements[i].textContent = (0,_utils_formatting__WEBPACK_IMPORTED_MODULE_5__.monthToStr)(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n      } else {\n        self.monthsDropdownContainer.value = d.getMonth().toString();\n      }\n      yearElement.value = d.getFullYear().toString();\n    });\n    self._hidePrevMonthArrow = self.config.minDate !== undefined && (self.currentYear === self.config.minDate.getFullYear() ? self.currentMonth <= self.config.minDate.getMonth() : self.currentYear < self.config.minDate.getFullYear());\n    self._hideNextMonthArrow = self.config.maxDate !== undefined && (self.currentYear === self.config.maxDate.getFullYear() ? self.currentMonth + 1 > self.config.maxDate.getMonth() : self.currentYear > self.config.maxDate.getFullYear());\n  }\n  function getDateStr(specificFormat) {\n    var format = specificFormat || (self.config.altInput ? self.config.altFormat : self.config.dateFormat);\n    return self.selectedDates.map(function (dObj) {\n      return self.formatDate(dObj, format);\n    }).filter(function (d, i, arr) {\n      return self.config.mode !== \"range\" || self.config.enableTime || arr.indexOf(d) === i;\n    }).join(self.config.mode !== \"range\" ? self.config.conjunction : self.l10n.rangeSeparator);\n  }\n  function updateValue(triggerChange) {\n    if (triggerChange === void 0) {\n      triggerChange = true;\n    }\n    if (self.mobileInput !== undefined && self.mobileFormatStr) {\n      self.mobileInput.value = self.latestSelectedDateObj !== undefined ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr) : \"\";\n    }\n    self.input.value = getDateStr(self.config.dateFormat);\n    if (self.altInput !== undefined) {\n      self.altInput.value = getDateStr(self.config.altFormat);\n    }\n    if (triggerChange !== false) triggerEvent(\"onValueUpdate\");\n  }\n  function onMonthNavClick(e) {\n    var eventTarget = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.getEventTarget)(e);\n    var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n    var isNextMonth = self.nextMonthNav.contains(eventTarget);\n    if (isPrevMonth || isNextMonth) {\n      changeMonth(isPrevMonth ? -1 : 1);\n    } else if (self.yearElements.indexOf(eventTarget) >= 0) {\n      eventTarget.select();\n    } else if (eventTarget.classList.contains(\"arrowUp\")) {\n      self.changeYear(self.currentYear + 1);\n    } else if (eventTarget.classList.contains(\"arrowDown\")) {\n      self.changeYear(self.currentYear - 1);\n    }\n  }\n  function timeWrapper(e) {\n    e.preventDefault();\n    var isKeyDown = e.type === \"keydown\",\n      eventTarget = (0,_utils_dom__WEBPACK_IMPORTED_MODULE_3__.getEventTarget)(e),\n      input = eventTarget;\n    if (self.amPM !== undefined && eventTarget === self.amPM) {\n      self.amPM.textContent = self.l10n.amPM[(0,_utils__WEBPACK_IMPORTED_MODULE_2__.int)(self.amPM.textContent === self.l10n.amPM[0])];\n    }\n    var min = parseFloat(input.getAttribute(\"min\")),\n      max = parseFloat(input.getAttribute(\"max\")),\n      step = parseFloat(input.getAttribute(\"step\")),\n      curValue = parseInt(input.value, 10),\n      delta = e.delta || (isKeyDown ? e.which === 38 ? 1 : -1 : 0);\n    var newValue = curValue + step * delta;\n    if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n      var isHourElem = input === self.hourElement,\n        isMinuteElem = input === self.minuteElement;\n      if (newValue < min) {\n        newValue = max + newValue + (0,_utils__WEBPACK_IMPORTED_MODULE_2__.int)(!isHourElem) + ((0,_utils__WEBPACK_IMPORTED_MODULE_2__.int)(isHourElem) && (0,_utils__WEBPACK_IMPORTED_MODULE_2__.int)(!self.amPM));\n        if (isMinuteElem) incrementNumInput(undefined, -1, self.hourElement);\n      } else if (newValue > max) {\n        newValue = input === self.hourElement ? newValue - max - (0,_utils__WEBPACK_IMPORTED_MODULE_2__.int)(!self.amPM) : min;\n        if (isMinuteElem) incrementNumInput(undefined, 1, self.hourElement);\n      }\n      if (self.amPM && isHourElem && (step === 1 ? newValue + curValue === 23 : Math.abs(newValue - curValue) > step)) {\n        self.amPM.textContent = self.l10n.amPM[(0,_utils__WEBPACK_IMPORTED_MODULE_2__.int)(self.amPM.textContent === self.l10n.amPM[0])];\n      }\n      input.value = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.pad)(newValue);\n    }\n  }\n  init();\n  return self;\n}\nfunction _flatpickr(nodeList, config) {\n  var nodes = Array.prototype.slice.call(nodeList).filter(function (x) {\n    return x instanceof HTMLElement;\n  });\n  var instances = [];\n  for (var i = 0; i < nodes.length; i++) {\n    var node = nodes[i];\n    try {\n      if (node.getAttribute(\"data-fp-omit\") !== null) continue;\n      if (node._flatpickr !== undefined) {\n        node._flatpickr.destroy();\n        node._flatpickr = undefined;\n      }\n      node._flatpickr = FlatpickrInstance(node, config || {});\n      instances.push(node._flatpickr);\n    } catch (e) {\n      console.error(e);\n    }\n  }\n  return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" && typeof HTMLCollection !== \"undefined\" && typeof NodeList !== \"undefined\") {\n  HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n    return _flatpickr(this, config);\n  };\n  HTMLElement.prototype.flatpickr = function (config) {\n    return _flatpickr([this], config);\n  };\n}\nvar flatpickr = function (selector, config) {\n  if (typeof selector === \"string\") {\n    return _flatpickr(window.document.querySelectorAll(selector), config);\n  } else if (selector instanceof Node) {\n    return _flatpickr([selector], config);\n  } else {\n    return _flatpickr(selector, config);\n  }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n  en: __assign({}, _l10n_default__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n  default: __assign({}, _l10n_default__WEBPACK_IMPORTED_MODULE_1__[\"default\"])\n};\nflatpickr.localize = function (l10n) {\n  flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = function (config) {\n  flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.createDateParser)({});\nflatpickr.formatDate = (0,_utils_dates__WEBPACK_IMPORTED_MODULE_4__.createDateFormatter)({});\nflatpickr.compareDates = _utils_dates__WEBPACK_IMPORTED_MODULE_4__.compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n  jQuery.fn.flatpickr = function (config) {\n    return _flatpickr(this, config);\n  };\n}\nDate.prototype.fp_incr = function (days) {\n  return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n  window.flatpickr = flatpickr;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (flatpickr);\n\n//# sourceURL=webpack:///../react-ui/node_modules/flatpickr/dist/esm/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/flatpickr/dist/esm/l10n/default.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/flatpickr/dist/esm/l10n/default.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   english: () => (/* binding */ english)\n/* harmony export */ });\nvar english = {\n  weekdays: {\n    shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n    longhand: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]\n  },\n  months: {\n    shorthand: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n    longhand: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\n  },\n  daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n  firstDayOfWeek: 0,\n  ordinal: function (nth) {\n    var s = nth % 100;\n    if (s > 3 && s < 21) return \"th\";\n    switch (s % 10) {\n      case 1:\n        return \"st\";\n      case 2:\n        return \"nd\";\n      case 3:\n        return \"rd\";\n      default:\n        return \"th\";\n    }\n  },\n  rangeSeparator: \" to \",\n  weekAbbreviation: \"Wk\",\n  scrollTitle: \"Scroll to increment\",\n  toggleTitle: \"Click to toggle\",\n  amPM: [\"AM\", \"PM\"],\n  yearAriaLabel: \"Year\",\n  monthAriaLabel: \"Month\",\n  hourAriaLabel: \"Hour\",\n  minuteAriaLabel: \"Minute\",\n  time_24hr: false\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (english);\n\n//# sourceURL=webpack:///../react-ui/node_modules/flatpickr/dist/esm/l10n/default.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/flatpickr/dist/esm/types/options.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/flatpickr/dist/esm/types/options.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   HOOKS: () => (/* binding */ HOOKS),\n/* harmony export */   defaults: () => (/* binding */ defaults)\n/* harmony export */ });\nvar HOOKS = [\"onChange\", \"onClose\", \"onDayCreate\", \"onDestroy\", \"onKeyDown\", \"onMonthChange\", \"onOpen\", \"onParseConfig\", \"onReady\", \"onValueUpdate\", \"onYearChange\", \"onPreCalendarPosition\"];\nvar defaults = {\n  _disable: [],\n  allowInput: false,\n  allowInvalidPreload: false,\n  altFormat: \"F j, Y\",\n  altInput: false,\n  altInputClass: \"form-control input\",\n  animate: typeof window === \"object\" && window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n  ariaDateFormat: \"F j, Y\",\n  autoFillDefaultTime: true,\n  clickOpens: true,\n  closeOnSelect: true,\n  conjunction: \", \",\n  dateFormat: \"Y-m-d\",\n  defaultHour: 12,\n  defaultMinute: 0,\n  defaultSeconds: 0,\n  disable: [],\n  disableMobile: false,\n  enableSeconds: false,\n  enableTime: false,\n  errorHandler: function (err) {\n    return typeof console !== \"undefined\" && console.warn(err);\n  },\n  getWeek: function (givenDate) {\n    var date = new Date(givenDate.getTime());\n    date.setHours(0, 0, 0, 0);\n    date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);\n    var week1 = new Date(date.getFullYear(), 0, 4);\n    return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);\n  },\n  hourIncrement: 1,\n  ignoredFocusElements: [],\n  inline: false,\n  locale: \"default\",\n  minuteIncrement: 5,\n  mode: \"single\",\n  monthSelectorType: \"dropdown\",\n  nextArrow: \"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z' /></svg>\",\n  noCalendar: false,\n  now: new Date(),\n  onChange: [],\n  onClose: [],\n  onDayCreate: [],\n  onDestroy: [],\n  onKeyDown: [],\n  onMonthChange: [],\n  onOpen: [],\n  onParseConfig: [],\n  onReady: [],\n  onValueUpdate: [],\n  onYearChange: [],\n  onPreCalendarPosition: [],\n  plugins: [],\n  position: \"auto\",\n  positionElement: undefined,\n  prevArrow: \"<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 17 17'><g></g><path d='M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z' /></svg>\",\n  shorthandCurrentMonth: false,\n  showMonths: 1,\n  static: false,\n  time_24hr: false,\n  weekNumbers: false,\n  wrap: false\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/flatpickr/dist/esm/types/options.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/flatpickr/dist/esm/utils/dates.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/flatpickr/dist/esm/utils/dates.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   calculateSecondsSinceMidnight: () => (/* binding */ calculateSecondsSinceMidnight),\n/* harmony export */   compareDates: () => (/* binding */ compareDates),\n/* harmony export */   compareTimes: () => (/* binding */ compareTimes),\n/* harmony export */   createDateFormatter: () => (/* binding */ createDateFormatter),\n/* harmony export */   createDateParser: () => (/* binding */ createDateParser),\n/* harmony export */   duration: () => (/* binding */ duration),\n/* harmony export */   getDefaultHours: () => (/* binding */ getDefaultHours),\n/* harmony export */   isBetween: () => (/* binding */ isBetween),\n/* harmony export */   parseSeconds: () => (/* binding */ parseSeconds)\n/* harmony export */ });\n/* harmony import */ var _formatting__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatting */ \"../react-ui/node_modules/flatpickr/dist/esm/utils/formatting.js\");\n/* harmony import */ var _types_options__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../types/options */ \"../react-ui/node_modules/flatpickr/dist/esm/types/options.js\");\n/* harmony import */ var _l10n_default__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../l10n/default */ \"../react-ui/node_modules/flatpickr/dist/esm/l10n/default.js\");\n\n\n\nvar createDateFormatter = function (_a) {\n  var _b = _a.config,\n    config = _b === void 0 ? _types_options__WEBPACK_IMPORTED_MODULE_1__.defaults : _b,\n    _c = _a.l10n,\n    l10n = _c === void 0 ? _l10n_default__WEBPACK_IMPORTED_MODULE_2__.english : _c,\n    _d = _a.isMobile,\n    isMobile = _d === void 0 ? false : _d;\n  return function (dateObj, frmt, overrideLocale) {\n    var locale = overrideLocale || l10n;\n    if (config.formatDate !== undefined && !isMobile) {\n      return config.formatDate(dateObj, frmt, locale);\n    }\n    return frmt.split(\"\").map(function (c, i, arr) {\n      return _formatting__WEBPACK_IMPORTED_MODULE_0__.formats[c] && arr[i - 1] !== \"\\\\\" ? _formatting__WEBPACK_IMPORTED_MODULE_0__.formats[c](dateObj, locale, config) : c !== \"\\\\\" ? c : \"\";\n    }).join(\"\");\n  };\n};\nvar createDateParser = function (_a) {\n  var _b = _a.config,\n    config = _b === void 0 ? _types_options__WEBPACK_IMPORTED_MODULE_1__.defaults : _b,\n    _c = _a.l10n,\n    l10n = _c === void 0 ? _l10n_default__WEBPACK_IMPORTED_MODULE_2__.english : _c;\n  return function (date, givenFormat, timeless, customLocale) {\n    if (date !== 0 && !date) return undefined;\n    var locale = customLocale || l10n;\n    var parsedDate;\n    var dateOrig = date;\n    if (date instanceof Date) parsedDate = new Date(date.getTime());else if (typeof date !== \"string\" && date.toFixed !== undefined) parsedDate = new Date(date);else if (typeof date === \"string\") {\n      var format = givenFormat || (config || _types_options__WEBPACK_IMPORTED_MODULE_1__.defaults).dateFormat;\n      var datestr = String(date).trim();\n      if (datestr === \"today\") {\n        parsedDate = new Date();\n        timeless = true;\n      } else if (config && config.parseDate) {\n        parsedDate = config.parseDate(date, format);\n      } else if (/Z$/.test(datestr) || /GMT$/.test(datestr)) {\n        parsedDate = new Date(date);\n      } else {\n        var matched = void 0,\n          ops = [];\n        for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n          var token = format[i];\n          var isBackSlash = token === \"\\\\\";\n          var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n          if (_formatting__WEBPACK_IMPORTED_MODULE_0__.tokenRegex[token] && !escaped) {\n            regexStr += _formatting__WEBPACK_IMPORTED_MODULE_0__.tokenRegex[token];\n            var match = new RegExp(regexStr).exec(date);\n            if (match && (matched = true)) {\n              ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n                fn: _formatting__WEBPACK_IMPORTED_MODULE_0__.revFormat[token],\n                val: match[++matchIndex]\n              });\n            }\n          } else if (!isBackSlash) regexStr += \".\";\n        }\n        parsedDate = !config || !config.noCalendar ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0) : new Date(new Date().setHours(0, 0, 0, 0));\n        ops.forEach(function (_a) {\n          var fn = _a.fn,\n            val = _a.val;\n          return parsedDate = fn(parsedDate, val, locale) || parsedDate;\n        });\n        parsedDate = matched ? parsedDate : undefined;\n      }\n    }\n    if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n      config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n      return undefined;\n    }\n    if (timeless === true) parsedDate.setHours(0, 0, 0, 0);\n    return parsedDate;\n  };\n};\nfunction compareDates(date1, date2, timeless) {\n  if (timeless === void 0) {\n    timeless = true;\n  }\n  if (timeless !== false) {\n    return new Date(date1.getTime()).setHours(0, 0, 0, 0) - new Date(date2.getTime()).setHours(0, 0, 0, 0);\n  }\n  return date1.getTime() - date2.getTime();\n}\nfunction compareTimes(date1, date2) {\n  return 3600 * (date1.getHours() - date2.getHours()) + 60 * (date1.getMinutes() - date2.getMinutes()) + date1.getSeconds() - date2.getSeconds();\n}\nvar isBetween = function (ts, ts1, ts2) {\n  return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nvar calculateSecondsSinceMidnight = function (hours, minutes, seconds) {\n  return hours * 3600 + minutes * 60 + seconds;\n};\nvar parseSeconds = function (secondsSinceMidnight) {\n  var hours = Math.floor(secondsSinceMidnight / 3600),\n    minutes = (secondsSinceMidnight - hours * 3600) / 60;\n  return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];\n};\nvar duration = {\n  DAY: 86400000\n};\nfunction getDefaultHours(config) {\n  var hours = config.defaultHour;\n  var minutes = config.defaultMinute;\n  var seconds = config.defaultSeconds;\n  if (config.minDate !== undefined) {\n    var minHour = config.minDate.getHours();\n    var minMinutes = config.minDate.getMinutes();\n    var minSeconds = config.minDate.getSeconds();\n    if (hours < minHour) {\n      hours = minHour;\n    }\n    if (hours === minHour && minutes < minMinutes) {\n      minutes = minMinutes;\n    }\n    if (hours === minHour && minutes === minMinutes && seconds < minSeconds) seconds = config.minDate.getSeconds();\n  }\n  if (config.maxDate !== undefined) {\n    var maxHr = config.maxDate.getHours();\n    var maxMinutes = config.maxDate.getMinutes();\n    hours = Math.min(hours, maxHr);\n    if (hours === maxHr) minutes = Math.min(maxMinutes, minutes);\n    if (hours === maxHr && minutes === maxMinutes) seconds = config.maxDate.getSeconds();\n  }\n  return {\n    hours: hours,\n    minutes: minutes,\n    seconds: seconds\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/flatpickr/dist/esm/utils/dates.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/flatpickr/dist/esm/utils/dom.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/flatpickr/dist/esm/utils/dom.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   clearNode: () => (/* binding */ clearNode),\n/* harmony export */   createElement: () => (/* binding */ createElement),\n/* harmony export */   createNumberInput: () => (/* binding */ createNumberInput),\n/* harmony export */   findParent: () => (/* binding */ findParent),\n/* harmony export */   getEventTarget: () => (/* binding */ getEventTarget),\n/* harmony export */   toggleClass: () => (/* binding */ toggleClass)\n/* harmony export */ });\nfunction toggleClass(elem, className, bool) {\n  if (bool === true) return elem.classList.add(className);\n  elem.classList.remove(className);\n}\nfunction createElement(tag, className, content) {\n  var e = window.document.createElement(tag);\n  className = className || \"\";\n  content = content || \"\";\n  e.className = className;\n  if (content !== undefined) e.textContent = content;\n  return e;\n}\nfunction clearNode(node) {\n  while (node.firstChild) node.removeChild(node.firstChild);\n}\nfunction findParent(node, condition) {\n  if (condition(node)) return node;else if (node.parentNode) return findParent(node.parentNode, condition);\n  return undefined;\n}\nfunction createNumberInput(inputClassName, opts) {\n  var wrapper = createElement(\"div\", \"numInputWrapper\"),\n    numInput = createElement(\"input\", \"numInput \" + inputClassName),\n    arrowUp = createElement(\"span\", \"arrowUp\"),\n    arrowDown = createElement(\"span\", \"arrowDown\");\n  if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n    numInput.type = \"number\";\n  } else {\n    numInput.type = \"text\";\n    numInput.pattern = \"\\\\d*\";\n  }\n  if (opts !== undefined) for (var key in opts) numInput.setAttribute(key, opts[key]);\n  wrapper.appendChild(numInput);\n  wrapper.appendChild(arrowUp);\n  wrapper.appendChild(arrowDown);\n  return wrapper;\n}\nfunction getEventTarget(event) {\n  try {\n    if (typeof event.composedPath === \"function\") {\n      var path = event.composedPath();\n      return path[0];\n    }\n    return event.target;\n  } catch (error) {\n    return event.target;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/flatpickr/dist/esm/utils/dom.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/flatpickr/dist/esm/utils/formatting.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/flatpickr/dist/esm/utils/formatting.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   formats: () => (/* binding */ formats),\n/* harmony export */   monthToStr: () => (/* binding */ monthToStr),\n/* harmony export */   revFormat: () => (/* binding */ revFormat),\n/* harmony export */   tokenRegex: () => (/* binding */ tokenRegex)\n/* harmony export */ });\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils */ \"../react-ui/node_modules/flatpickr/dist/esm/utils/index.js\");\n\nvar doNothing = function () {\n  return undefined;\n};\nvar monthToStr = function (monthNumber, shorthand, locale) {\n  return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber];\n};\nvar revFormat = {\n  D: doNothing,\n  F: function (dateObj, monthName, locale) {\n    dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n  },\n  G: function (dateObj, hour) {\n    dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n  },\n  H: function (dateObj, hour) {\n    dateObj.setHours(parseFloat(hour));\n  },\n  J: function (dateObj, day) {\n    dateObj.setDate(parseFloat(day));\n  },\n  K: function (dateObj, amPM, locale) {\n    dateObj.setHours(dateObj.getHours() % 12 + 12 * (0,_utils__WEBPACK_IMPORTED_MODULE_0__.int)(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n  },\n  M: function (dateObj, shortMonth, locale) {\n    dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n  },\n  S: function (dateObj, seconds) {\n    dateObj.setSeconds(parseFloat(seconds));\n  },\n  U: function (_, unixSeconds) {\n    return new Date(parseFloat(unixSeconds) * 1000);\n  },\n  W: function (dateObj, weekNum, locale) {\n    var weekNumber = parseInt(weekNum);\n    var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n    date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n    return date;\n  },\n  Y: function (dateObj, year) {\n    dateObj.setFullYear(parseFloat(year));\n  },\n  Z: function (_, ISODate) {\n    return new Date(ISODate);\n  },\n  d: function (dateObj, day) {\n    dateObj.setDate(parseFloat(day));\n  },\n  h: function (dateObj, hour) {\n    dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n  },\n  i: function (dateObj, minutes) {\n    dateObj.setMinutes(parseFloat(minutes));\n  },\n  j: function (dateObj, day) {\n    dateObj.setDate(parseFloat(day));\n  },\n  l: doNothing,\n  m: function (dateObj, month) {\n    dateObj.setMonth(parseFloat(month) - 1);\n  },\n  n: function (dateObj, month) {\n    dateObj.setMonth(parseFloat(month) - 1);\n  },\n  s: function (dateObj, seconds) {\n    dateObj.setSeconds(parseFloat(seconds));\n  },\n  u: function (_, unixMillSeconds) {\n    return new Date(parseFloat(unixMillSeconds));\n  },\n  w: doNothing,\n  y: function (dateObj, year) {\n    dateObj.setFullYear(2000 + parseFloat(year));\n  }\n};\nvar tokenRegex = {\n  D: \"\",\n  F: \"\",\n  G: \"(\\\\d\\\\d|\\\\d)\",\n  H: \"(\\\\d\\\\d|\\\\d)\",\n  J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n  K: \"\",\n  M: \"\",\n  S: \"(\\\\d\\\\d|\\\\d)\",\n  U: \"(.+)\",\n  W: \"(\\\\d\\\\d|\\\\d)\",\n  Y: \"(\\\\d{4})\",\n  Z: \"(.+)\",\n  d: \"(\\\\d\\\\d|\\\\d)\",\n  h: \"(\\\\d\\\\d|\\\\d)\",\n  i: \"(\\\\d\\\\d|\\\\d)\",\n  j: \"(\\\\d\\\\d|\\\\d)\",\n  l: \"\",\n  m: \"(\\\\d\\\\d|\\\\d)\",\n  n: \"(\\\\d\\\\d|\\\\d)\",\n  s: \"(\\\\d\\\\d|\\\\d)\",\n  u: \"(.+)\",\n  w: \"(\\\\d\\\\d|\\\\d)\",\n  y: \"(\\\\d{2})\"\n};\nvar formats = {\n  Z: function (date) {\n    return date.toISOString();\n  },\n  D: function (date, locale, options) {\n    return locale.weekdays.shorthand[formats.w(date, locale, options)];\n  },\n  F: function (date, locale, options) {\n    return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n  },\n  G: function (date, locale, options) {\n    return (0,_utils__WEBPACK_IMPORTED_MODULE_0__.pad)(formats.h(date, locale, options));\n  },\n  H: function (date) {\n    return (0,_utils__WEBPACK_IMPORTED_MODULE_0__.pad)(date.getHours());\n  },\n  J: function (date, locale) {\n    return locale.ordinal !== undefined ? date.getDate() + locale.ordinal(date.getDate()) : date.getDate();\n  },\n  K: function (date, locale) {\n    return locale.amPM[(0,_utils__WEBPACK_IMPORTED_MODULE_0__.int)(date.getHours() > 11)];\n  },\n  M: function (date, locale) {\n    return monthToStr(date.getMonth(), true, locale);\n  },\n  S: function (date) {\n    return (0,_utils__WEBPACK_IMPORTED_MODULE_0__.pad)(date.getSeconds());\n  },\n  U: function (date) {\n    return date.getTime() / 1000;\n  },\n  W: function (date, _, options) {\n    return options.getWeek(date);\n  },\n  Y: function (date) {\n    return (0,_utils__WEBPACK_IMPORTED_MODULE_0__.pad)(date.getFullYear(), 4);\n  },\n  d: function (date) {\n    return (0,_utils__WEBPACK_IMPORTED_MODULE_0__.pad)(date.getDate());\n  },\n  h: function (date) {\n    return date.getHours() % 12 ? date.getHours() % 12 : 12;\n  },\n  i: function (date) {\n    return (0,_utils__WEBPACK_IMPORTED_MODULE_0__.pad)(date.getMinutes());\n  },\n  j: function (date) {\n    return date.getDate();\n  },\n  l: function (date, locale) {\n    return locale.weekdays.longhand[date.getDay()];\n  },\n  m: function (date) {\n    return (0,_utils__WEBPACK_IMPORTED_MODULE_0__.pad)(date.getMonth() + 1);\n  },\n  n: function (date) {\n    return date.getMonth() + 1;\n  },\n  s: function (date) {\n    return date.getSeconds();\n  },\n  u: function (date) {\n    return date.getTime();\n  },\n  w: function (date) {\n    return date.getDay();\n  },\n  y: function (date) {\n    return String(date.getFullYear()).substring(2);\n  }\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/flatpickr/dist/esm/utils/formatting.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/flatpickr/dist/esm/utils/index.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/flatpickr/dist/esm/utils/index.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   arrayify: () => (/* binding */ arrayify),\n/* harmony export */   debounce: () => (/* binding */ debounce),\n/* harmony export */   int: () => (/* binding */ int),\n/* harmony export */   pad: () => (/* binding */ pad)\n/* harmony export */ });\nvar pad = function (number, length) {\n  if (length === void 0) {\n    length = 2;\n  }\n  return (\"000\" + number).slice(length * -1);\n};\nvar int = function (bool) {\n  return bool === true ? 1 : 0;\n};\nfunction debounce(fn, wait) {\n  var t;\n  return function () {\n    var _this = this;\n    var args = arguments;\n    clearTimeout(t);\n    t = setTimeout(function () {\n      return fn.apply(_this, args);\n    }, wait);\n  };\n}\nvar arrayify = function (obj) {\n  return obj instanceof Array ? obj : [obj];\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/flatpickr/dist/esm/utils/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/flatpickr/dist/esm/utils/polyfills.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/flatpickr/dist/esm/utils/polyfills.js ***!
  \**********************************************************************/
/***/ (() => {

"use strict";
eval("{\n\nif (typeof Object.assign !== \"function\") {\n  Object.assign = function (target) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n      args[_i - 1] = arguments[_i];\n    }\n    if (!target) {\n      throw TypeError(\"Cannot convert undefined or null to object\");\n    }\n    var _loop_1 = function (source) {\n      if (source) {\n        Object.keys(source).forEach(function (key) {\n          return target[key] = source[key];\n        });\n      }\n    };\n    for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n      var source = args_1[_a];\n      _loop_1(source);\n    }\n    return target;\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/flatpickr/dist/esm/utils/polyfills.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/flatpickr/dist/themes/material_blue.css":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/flatpickr/dist/themes/material_blue.css ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../assets/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../assets/node_modules/style-loader/dist/runtime/styleDomAPI.js */ \"./node_modules/style-loader/dist/runtime/styleDomAPI.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../assets/node_modules/style-loader/dist/runtime/insertBySelector.js */ \"./node_modules/style-loader/dist/runtime/insertBySelector.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../assets/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ \"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../assets/node_modules/style-loader/dist/runtime/insertStyleElement.js */ \"./node_modules/style-loader/dist/runtime/insertStyleElement.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../assets/node_modules/style-loader/dist/runtime/styleTagTransform.js */ \"./node_modules/style-loader/dist/runtime/styleTagTransform.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_material_blue_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../assets/node_modules/css-loader/dist/cjs.js!../../../../../assets/node_modules/sass-loader/dist/cjs.js!./material_blue.css */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/flatpickr/dist/themes/material_blue.css\");\n\n      \n      \n      \n      \n      \n      \n      \n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = (_assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\noptions.insert = _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, \"head\");\noptions.domAPI = (_assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_material_blue_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"], options);\n\n\n\n\n       /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_material_blue_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"] && _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_material_blue_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals ? _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_material_blue_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals : undefined);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/flatpickr/dist/themes/material_blue.css?\n}");

/***/ }),

/***/ "../react-ui/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js":
/*!********************************************************************************************!*\
  !*** ../react-ui/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js ***!
  \********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar reactIs = __webpack_require__(/*! react-is */ \"../react-ui/node_modules/react-is/index.js\");\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n  childContextTypes: true,\n  contextType: true,\n  contextTypes: true,\n  defaultProps: true,\n  displayName: true,\n  getDefaultProps: true,\n  getDerivedStateFromError: true,\n  getDerivedStateFromProps: true,\n  mixins: true,\n  propTypes: true,\n  type: true\n};\nvar KNOWN_STATICS = {\n  name: true,\n  length: true,\n  prototype: true,\n  caller: true,\n  callee: true,\n  arguments: true,\n  arity: true\n};\nvar FORWARD_REF_STATICS = {\n  '$$typeof': true,\n  render: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true\n};\nvar MEMO_STATICS = {\n  '$$typeof': true,\n  compare: true,\n  defaultProps: true,\n  displayName: true,\n  propTypes: true,\n  type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\nfunction getStatics(component) {\n  // React v16.11 and below\n  if (reactIs.isMemo(component)) {\n    return MEMO_STATICS;\n  } // React v16.12 and above\n\n  return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n  if (typeof sourceComponent !== 'string') {\n    // don't hoist over string (html) components\n    if (objectPrototype) {\n      var inheritedComponent = getPrototypeOf(sourceComponent);\n      if (inheritedComponent && inheritedComponent !== objectPrototype) {\n        hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n      }\n    }\n    var keys = getOwnPropertyNames(sourceComponent);\n    if (getOwnPropertySymbols) {\n      keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n    }\n    var targetStatics = getStatics(targetComponent);\n    var sourceStatics = getStatics(sourceComponent);\n    for (var i = 0; i < keys.length; ++i) {\n      var key = keys[i];\n      if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n        var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n        try {\n          // Avoid failures from read-only properties\n          defineProperty(targetComponent, key, descriptor);\n        } catch (e) {}\n      }\n    }\n  }\n  return targetComponent;\n}\nmodule.exports = hoistNonReactStatics;\n\n//# sourceURL=webpack:///../react-ui/node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/JsBarcode.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/JsBarcode.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar _barcodes = __webpack_require__(/*! ./barcodes/ */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/index.js\");\nvar _barcodes2 = _interopRequireDefault(_barcodes);\nvar _merge = __webpack_require__(/*! ./help/merge.js */ \"../react-ui/node_modules/jsbarcode/bin/help/merge.js\");\nvar _merge2 = _interopRequireDefault(_merge);\nvar _linearizeEncodings = __webpack_require__(/*! ./help/linearizeEncodings.js */ \"../react-ui/node_modules/jsbarcode/bin/help/linearizeEncodings.js\");\nvar _linearizeEncodings2 = _interopRequireDefault(_linearizeEncodings);\nvar _fixOptions = __webpack_require__(/*! ./help/fixOptions.js */ \"../react-ui/node_modules/jsbarcode/bin/help/fixOptions.js\");\nvar _fixOptions2 = _interopRequireDefault(_fixOptions);\nvar _getRenderProperties = __webpack_require__(/*! ./help/getRenderProperties.js */ \"../react-ui/node_modules/jsbarcode/bin/help/getRenderProperties.js\");\nvar _getRenderProperties2 = _interopRequireDefault(_getRenderProperties);\nvar _optionsFromStrings = __webpack_require__(/*! ./help/optionsFromStrings.js */ \"../react-ui/node_modules/jsbarcode/bin/help/optionsFromStrings.js\");\nvar _optionsFromStrings2 = _interopRequireDefault(_optionsFromStrings);\nvar _ErrorHandler = __webpack_require__(/*! ./exceptions/ErrorHandler.js */ \"../react-ui/node_modules/jsbarcode/bin/exceptions/ErrorHandler.js\");\nvar _ErrorHandler2 = _interopRequireDefault(_ErrorHandler);\nvar _exceptions = __webpack_require__(/*! ./exceptions/exceptions.js */ \"../react-ui/node_modules/jsbarcode/bin/exceptions/exceptions.js\");\nvar _defaults = __webpack_require__(/*! ./options/defaults.js */ \"../react-ui/node_modules/jsbarcode/bin/options/defaults.js\");\nvar _defaults2 = _interopRequireDefault(_defaults);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\n\n// The protype of the object returned from the JsBarcode() call\n\n// Help functions\nvar API = function API() {};\n\n// The first call of the library API\n// Will return an object with all barcodes calls and the data that is used\n// by the renderers\n\n// Default values\n\n// Exceptions\n// Import all the barcodes\nvar JsBarcode = function JsBarcode(element, text, options) {\n  var api = new API();\n  if (typeof element === \"undefined\") {\n    throw Error(\"No element to render on was provided.\");\n  }\n\n  // Variables that will be pased through the API calls\n  api._renderProperties = (0, _getRenderProperties2.default)(element);\n  api._encodings = [];\n  api._options = _defaults2.default;\n  api._errorHandler = new _ErrorHandler2.default(api);\n\n  // If text is set, use the simple syntax (render the barcode directly)\n  if (typeof text !== \"undefined\") {\n    options = options || {};\n    if (!options.format) {\n      options.format = autoSelectBarcode();\n    }\n    api.options(options)[options.format](text, options).render();\n  }\n  return api;\n};\n\n// To make tests work TODO: remove\nJsBarcode.getModule = function (name) {\n  return _barcodes2.default[name];\n};\n\n// Register all barcodes\nfor (var name in _barcodes2.default) {\n  if (_barcodes2.default.hasOwnProperty(name)) {\n    // Security check if the propery is a prototype property\n    registerBarcode(_barcodes2.default, name);\n  }\n}\nfunction registerBarcode(barcodes, name) {\n  API.prototype[name] = API.prototype[name.toUpperCase()] = API.prototype[name.toLowerCase()] = function (text, options) {\n    var api = this;\n    return api._errorHandler.wrapBarcodeCall(function () {\n      // Ensure text is options.text\n      options.text = typeof options.text === 'undefined' ? undefined : '' + options.text;\n      var newOptions = (0, _merge2.default)(api._options, options);\n      newOptions = (0, _optionsFromStrings2.default)(newOptions);\n      var Encoder = barcodes[name];\n      var encoded = encode(text, Encoder, newOptions);\n      api._encodings.push(encoded);\n      return api;\n    });\n  };\n}\n\n// encode() handles the Encoder call and builds the binary string to be rendered\nfunction encode(text, Encoder, options) {\n  // Ensure that text is a string\n  text = \"\" + text;\n  var encoder = new Encoder(text, options);\n\n  // If the input is not valid for the encoder, throw error.\n  // If the valid callback option is set, call it instead of throwing error\n  if (!encoder.valid()) {\n    throw new _exceptions.InvalidInputException(encoder.constructor.name, text);\n  }\n\n  // Make a request for the binary data (and other infromation) that should be rendered\n  var encoded = encoder.encode();\n\n  // Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2]\n  // Convert to [1-1, 1-2, 2, 3-1, 3-2]\n  encoded = (0, _linearizeEncodings2.default)(encoded);\n\n  // Merge\n  for (var i = 0; i < encoded.length; i++) {\n    encoded[i].options = (0, _merge2.default)(options, encoded[i].options);\n  }\n  return encoded;\n}\nfunction autoSelectBarcode() {\n  // If CODE128 exists. Use it\n  if (_barcodes2.default[\"CODE128\"]) {\n    return \"CODE128\";\n  }\n\n  // Else, take the first (probably only) barcode\n  return Object.keys(_barcodes2.default)[0];\n}\n\n// Sets global encoder options\n// Added to the api by the JsBarcode function\nAPI.prototype.options = function (options) {\n  this._options = (0, _merge2.default)(this._options, options);\n  return this;\n};\n\n// Will create a blank space (usually in between barcodes)\nAPI.prototype.blank = function (size) {\n  var zeroes = new Array(size + 1).join(\"0\");\n  this._encodings.push({\n    data: zeroes\n  });\n  return this;\n};\n\n// Initialize JsBarcode on all HTML elements defined.\nAPI.prototype.init = function () {\n  // Should do nothing if no elements where found\n  if (!this._renderProperties) {\n    return;\n  }\n\n  // Make sure renderProperies is an array\n  if (!Array.isArray(this._renderProperties)) {\n    this._renderProperties = [this._renderProperties];\n  }\n  var renderProperty;\n  for (var i in this._renderProperties) {\n    renderProperty = this._renderProperties[i];\n    var options = (0, _merge2.default)(this._options, renderProperty.options);\n    if (options.format == \"auto\") {\n      options.format = autoSelectBarcode();\n    }\n    this._errorHandler.wrapBarcodeCall(function () {\n      var text = options.value;\n      var Encoder = _barcodes2.default[options.format.toUpperCase()];\n      var encoded = encode(text, Encoder, options);\n      render(renderProperty, encoded, options);\n    });\n  }\n};\n\n// The render API call. Calls the real render function.\nAPI.prototype.render = function () {\n  if (!this._renderProperties) {\n    throw new _exceptions.NoElementException();\n  }\n  if (Array.isArray(this._renderProperties)) {\n    for (var i = 0; i < this._renderProperties.length; i++) {\n      render(this._renderProperties[i], this._encodings, this._options);\n    }\n  } else {\n    render(this._renderProperties, this._encodings, this._options);\n  }\n  return this;\n};\nAPI.prototype._defaults = _defaults2.default;\n\n// Prepares the encodings and calls the renderer\nfunction render(renderProperties, encodings, options) {\n  encodings = (0, _linearizeEncodings2.default)(encodings);\n  for (var i = 0; i < encodings.length; i++) {\n    encodings[i].options = (0, _merge2.default)(options, encodings[i].options);\n    (0, _fixOptions2.default)(encodings[i].options);\n  }\n  (0, _fixOptions2.default)(options);\n  var Renderer = renderProperties.renderer;\n  var renderer = new Renderer(renderProperties.element, encodings, options);\n  renderer.render();\n  if (renderProperties.afterRender) {\n    renderProperties.afterRender();\n  }\n}\n\n// Export to browser\nif (typeof window !== \"undefined\") {\n  window.JsBarcode = JsBarcode;\n}\n\n// Export to jQuery\n/*global jQuery */\nif (typeof jQuery !== 'undefined') {\n  jQuery.fn.JsBarcode = function (content, options) {\n    var elementArray = [];\n    jQuery(this).each(function () {\n      elementArray.push(this);\n    });\n    return JsBarcode(elementArray, content, options);\n  };\n}\n\n// Export to commonJS\nmodule.exports = JsBarcode;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/JsBarcode.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nvar Barcode = function Barcode(data, options) {\n  _classCallCheck(this, Barcode);\n  this.data = data;\n  this.text = options.text || data;\n  this.options = options;\n};\nexports[\"default\"] = Barcode;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _Barcode2 = __webpack_require__(/*! ../Barcode.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js\");\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\nvar _constants = __webpack_require__(/*! ./constants */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js\");\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// This is the master class,\n// it does require the start code to be included in the string\nvar CODE128 = function (_Barcode) {\n  _inherits(CODE128, _Barcode);\n  function CODE128(data, options) {\n    _classCallCheck(this, CODE128);\n\n    // Get array of ascii codes from data\n    var _this = _possibleConstructorReturn(this, (CODE128.__proto__ || Object.getPrototypeOf(CODE128)).call(this, data.substring(1), options));\n    _this.bytes = data.split('').map(function (char) {\n      return char.charCodeAt(0);\n    });\n    return _this;\n  }\n  _createClass(CODE128, [{\n    key: 'valid',\n    value: function valid() {\n      // ASCII value ranges 0-127, 200-211\n      return /^[\\x00-\\x7F\\xC8-\\xD3]+$/.test(this.data);\n    }\n\n    // The public encoding function\n  }, {\n    key: 'encode',\n    value: function encode() {\n      var bytes = this.bytes;\n      // Remove the start code from the bytes and set its index\n      var startIndex = bytes.shift() - 105;\n      // Get start set by index\n      var startSet = _constants.SET_BY_CODE[startIndex];\n      if (startSet === undefined) {\n        throw new RangeError('The encoding does not start with a start character.');\n      }\n      if (this.shouldEncodeAsEan128() === true) {\n        bytes.unshift(_constants.FNC1);\n      }\n\n      // Start encode with the right type\n      var encodingResult = CODE128.next(bytes, 1, startSet);\n      return {\n        text: this.text === this.data ? this.text.replace(/[^\\x20-\\x7E]/g, '') : this.text,\n        data:\n        // Add the start bits\n        CODE128.getBar(startIndex) +\n        // Add the encoded bits\n        encodingResult.result +\n        // Add the checksum\n        CODE128.getBar((encodingResult.checksum + startIndex) % _constants.MODULO) +\n        // Add the end bits\n        CODE128.getBar(_constants.STOP)\n      };\n    }\n\n    // GS1-128/EAN-128\n  }, {\n    key: 'shouldEncodeAsEan128',\n    value: function shouldEncodeAsEan128() {\n      var isEAN128 = this.options.ean128 || false;\n      if (typeof isEAN128 === 'string') {\n        isEAN128 = isEAN128.toLowerCase() === 'true';\n      }\n      return isEAN128;\n    }\n\n    // Get a bar symbol by index\n  }], [{\n    key: 'getBar',\n    value: function getBar(index) {\n      return _constants.BARS[index] ? _constants.BARS[index].toString() : '';\n    }\n\n    // Correct an index by a set and shift it from the bytes array\n  }, {\n    key: 'correctIndex',\n    value: function correctIndex(bytes, set) {\n      if (set === _constants.SET_A) {\n        var charCode = bytes.shift();\n        return charCode < 32 ? charCode + 64 : charCode - 32;\n      } else if (set === _constants.SET_B) {\n        return bytes.shift() - 32;\n      } else {\n        return (bytes.shift() - 48) * 10 + bytes.shift() - 48;\n      }\n    }\n  }, {\n    key: 'next',\n    value: function next(bytes, pos, set) {\n      if (!bytes.length) {\n        return {\n          result: '',\n          checksum: 0\n        };\n      }\n      var nextCode = void 0,\n        index = void 0;\n\n      // Special characters\n      if (bytes[0] >= 200) {\n        index = bytes.shift() - 105;\n        var nextSet = _constants.SWAP[index];\n\n        // Swap to other set\n        if (nextSet !== undefined) {\n          nextCode = CODE128.next(bytes, pos + 1, nextSet);\n        }\n        // Continue on current set but encode a special character\n        else {\n          // Shift\n          if ((set === _constants.SET_A || set === _constants.SET_B) && index === _constants.SHIFT) {\n            // Convert the next character so that is encoded correctly\n            bytes[0] = set === _constants.SET_A ? bytes[0] > 95 ? bytes[0] - 96 : bytes[0] : bytes[0] < 32 ? bytes[0] + 96 : bytes[0];\n          }\n          nextCode = CODE128.next(bytes, pos + 1, set);\n        }\n      }\n      // Continue encoding\n      else {\n        index = CODE128.correctIndex(bytes, set);\n        nextCode = CODE128.next(bytes, pos + 1, set);\n      }\n\n      // Get the correct binary encoding and calculate the weight\n      var enc = CODE128.getBar(index);\n      var weight = index * pos;\n      return {\n        result: enc + nextCode.result,\n        checksum: weight + nextCode.checksum\n      };\n    }\n  }]);\n  return CODE128;\n}(_Barcode3.default);\nexports[\"default\"] = CODE128;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128A.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128A.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _CODE2 = __webpack_require__(/*! ./CODE128.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128.js\");\nvar _CODE3 = _interopRequireDefault(_CODE2);\nvar _constants = __webpack_require__(/*! ./constants */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js\");\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nvar CODE128A = function (_CODE) {\n  _inherits(CODE128A, _CODE);\n  function CODE128A(string, options) {\n    _classCallCheck(this, CODE128A);\n    return _possibleConstructorReturn(this, (CODE128A.__proto__ || Object.getPrototypeOf(CODE128A)).call(this, _constants.A_START_CHAR + string, options));\n  }\n  _createClass(CODE128A, [{\n    key: 'valid',\n    value: function valid() {\n      return new RegExp('^' + _constants.A_CHARS + '+$').test(this.data);\n    }\n  }]);\n  return CODE128A;\n}(_CODE3.default);\nexports[\"default\"] = CODE128A;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128A.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128B.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128B.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _CODE2 = __webpack_require__(/*! ./CODE128.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128.js\");\nvar _CODE3 = _interopRequireDefault(_CODE2);\nvar _constants = __webpack_require__(/*! ./constants */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js\");\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nvar CODE128B = function (_CODE) {\n  _inherits(CODE128B, _CODE);\n  function CODE128B(string, options) {\n    _classCallCheck(this, CODE128B);\n    return _possibleConstructorReturn(this, (CODE128B.__proto__ || Object.getPrototypeOf(CODE128B)).call(this, _constants.B_START_CHAR + string, options));\n  }\n  _createClass(CODE128B, [{\n    key: 'valid',\n    value: function valid() {\n      return new RegExp('^' + _constants.B_CHARS + '+$').test(this.data);\n    }\n  }]);\n  return CODE128B;\n}(_CODE3.default);\nexports[\"default\"] = CODE128B;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128B.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128C.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128C.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _CODE2 = __webpack_require__(/*! ./CODE128.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128.js\");\nvar _CODE3 = _interopRequireDefault(_CODE2);\nvar _constants = __webpack_require__(/*! ./constants */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js\");\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nvar CODE128C = function (_CODE) {\n  _inherits(CODE128C, _CODE);\n  function CODE128C(string, options) {\n    _classCallCheck(this, CODE128C);\n    return _possibleConstructorReturn(this, (CODE128C.__proto__ || Object.getPrototypeOf(CODE128C)).call(this, _constants.C_START_CHAR + string, options));\n  }\n  _createClass(CODE128C, [{\n    key: 'valid',\n    value: function valid() {\n      return new RegExp('^' + _constants.C_CHARS + '+$').test(this.data);\n    }\n  }]);\n  return CODE128C;\n}(_CODE3.default);\nexports[\"default\"] = CODE128C;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128C.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128_AUTO.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128_AUTO.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _CODE2 = __webpack_require__(/*! ./CODE128 */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128.js\");\nvar _CODE3 = _interopRequireDefault(_CODE2);\nvar _auto = __webpack_require__(/*! ./auto */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/auto.js\");\nvar _auto2 = _interopRequireDefault(_auto);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nvar CODE128AUTO = function (_CODE) {\n  _inherits(CODE128AUTO, _CODE);\n  function CODE128AUTO(data, options) {\n    _classCallCheck(this, CODE128AUTO);\n\n    // ASCII value ranges 0-127, 200-211\n    if (/^[\\x00-\\x7F\\xC8-\\xD3]+$/.test(data)) {\n      var _this = _possibleConstructorReturn(this, (CODE128AUTO.__proto__ || Object.getPrototypeOf(CODE128AUTO)).call(this, (0, _auto2.default)(data), options));\n    } else {\n      var _this = _possibleConstructorReturn(this, (CODE128AUTO.__proto__ || Object.getPrototypeOf(CODE128AUTO)).call(this, data, options));\n    }\n    return _possibleConstructorReturn(_this);\n  }\n  return CODE128AUTO;\n}(_CODE3.default);\nexports[\"default\"] = CODE128AUTO;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128_AUTO.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/auto.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/auto.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _constants = __webpack_require__(/*! ./constants */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js\");\n\n// Match Set functions\nvar matchSetALength = function matchSetALength(string) {\n  return string.match(new RegExp('^' + _constants.A_CHARS + '*'))[0].length;\n};\nvar matchSetBLength = function matchSetBLength(string) {\n  return string.match(new RegExp('^' + _constants.B_CHARS + '*'))[0].length;\n};\nvar matchSetC = function matchSetC(string) {\n  return string.match(new RegExp('^' + _constants.C_CHARS + '*'))[0];\n};\n\n// CODE128A or CODE128B\nfunction autoSelectFromAB(string, isA) {\n  var ranges = isA ? _constants.A_CHARS : _constants.B_CHARS;\n  var untilC = string.match(new RegExp('^(' + ranges + '+?)(([0-9]{2}){2,})([^0-9]|$)'));\n  if (untilC) {\n    return untilC[1] + String.fromCharCode(204) + autoSelectFromC(string.substring(untilC[1].length));\n  }\n  var chars = string.match(new RegExp('^' + ranges + '+'))[0];\n  if (chars.length === string.length) {\n    return string;\n  }\n  return chars + String.fromCharCode(isA ? 205 : 206) + autoSelectFromAB(string.substring(chars.length), !isA);\n}\n\n// CODE128C\nfunction autoSelectFromC(string) {\n  var cMatch = matchSetC(string);\n  var length = cMatch.length;\n  if (length === string.length) {\n    return string;\n  }\n  string = string.substring(length);\n\n  // Select A/B depending on the longest match\n  var isA = matchSetALength(string) >= matchSetBLength(string);\n  return cMatch + String.fromCharCode(isA ? 206 : 205) + autoSelectFromAB(string, isA);\n}\n\n// Detect Code Set (A, B or C) and format the string\n\nexports[\"default\"] = function (string) {\n  var newString = void 0;\n  var cLength = matchSetC(string).length;\n\n  // Select 128C if the string start with enough digits\n  if (cLength >= 2) {\n    newString = _constants.C_START_CHAR + autoSelectFromC(string);\n  } else {\n    // Select A/B depending on the longest match\n    var isA = matchSetALength(string) > matchSetBLength(string);\n    newString = (isA ? _constants.A_START_CHAR : _constants.B_START_CHAR) + autoSelectFromAB(string, isA);\n  }\n  return newString.replace(/[\\xCD\\xCE]([^])[\\xCD\\xCE]/,\n  // Any sequence between 205 and 206 characters\n  function (match, char) {\n    return String.fromCharCode(203) + char;\n  });\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/auto.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _SET_BY_CODE;\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\n\n// constants for internal usage\nvar SET_A = exports.SET_A = 0;\nvar SET_B = exports.SET_B = 1;\nvar SET_C = exports.SET_C = 2;\n\n// Special characters\nvar SHIFT = exports.SHIFT = 98;\nvar START_A = exports.START_A = 103;\nvar START_B = exports.START_B = 104;\nvar START_C = exports.START_C = 105;\nvar MODULO = exports.MODULO = 103;\nvar STOP = exports.STOP = 106;\nvar FNC1 = exports.FNC1 = 207;\n\n// Get set by start code\nvar SET_BY_CODE = exports.SET_BY_CODE = (_SET_BY_CODE = {}, _defineProperty(_SET_BY_CODE, START_A, SET_A), _defineProperty(_SET_BY_CODE, START_B, SET_B), _defineProperty(_SET_BY_CODE, START_C, SET_C), _SET_BY_CODE);\n\n// Get next set by code\nvar SWAP = exports.SWAP = {\n  101: SET_A,\n  100: SET_B,\n  99: SET_C\n};\nvar A_START_CHAR = exports.A_START_CHAR = String.fromCharCode(208); // START_A + 105\nvar B_START_CHAR = exports.B_START_CHAR = String.fromCharCode(209); // START_B + 105\nvar C_START_CHAR = exports.C_START_CHAR = String.fromCharCode(210); // START_C + 105\n\n// 128A (Code Set A)\n// ASCII characters 00 to 95 (0–9, A–Z and control codes), special characters, and FNC 1–4\nvar A_CHARS = exports.A_CHARS = \"[\\x00-\\x5F\\xC8-\\xCF]\";\n\n// 128B (Code Set B)\n// ASCII characters 32 to 127 (0–9, A–Z, a–z), special characters, and FNC 1–4\nvar B_CHARS = exports.B_CHARS = \"[\\x20-\\x7F\\xC8-\\xCF]\";\n\n// 128C (Code Set C)\n// 00–99 (encodes two digits with a single code point) and FNC1\nvar C_CHARS = exports.C_CHARS = \"(\\xCF*[0-9]{2}\\xCF*)\";\n\n// CODE128 includes 107 symbols:\n// 103 data symbols, 3 start symbols (A, B and C), and 1 stop symbol (the last one)\n// Each symbol consist of three black bars (1) and three white spaces (0).\nvar BARS = exports.BARS = [11011001100, 11001101100, 11001100110, 10010011000, 10010001100, 10001001100, 10011001000, 10011000100, 10001100100, 11001001000, 11001000100, 11000100100, 10110011100, 10011011100, 10011001110, 10111001100, 10011101100, 10011100110, 11001110010, 11001011100, 11001001110, 11011100100, 11001110100, 11101101110, 11101001100, 11100101100, 11100100110, 11101100100, 11100110100, 11100110010, 11011011000, 11011000110, 11000110110, 10100011000, 10001011000, 10001000110, 10110001000, 10001101000, 10001100010, 11010001000, 11000101000, 11000100010, 10110111000, 10110001110, 10001101110, 10111011000, 10111000110, 10001110110, 11101110110, 11010001110, 11000101110, 11011101000, 11011100010, 11011101110, 11101011000, 11101000110, 11100010110, 11101101000, 11101100010, 11100011010, 11101111010, 11001000010, 11110001010, 10100110000, 10100001100, 10010110000, 10010000110, 10000101100, 10000100110, 10110010000, 10110000100, 10011010000, 10011000010, 10000110100, 10000110010, 11000010010, 11001010000, 11110111010, 11000010100, 10001111010, 10100111100, 10010111100, 10010011110, 10111100100, 10011110100, 10011110010, 11110100100, 11110010100, 11110010010, 11011011110, 11011110110, 11110110110, 10101111000, 10100011110, 10001011110, 10111101000, 10111100010, 11110101000, 11110100010, 10111011110, 10111101110, 11101011110, 11110101110, 11010000100, 11010010000, 11010011100, 1100011101011];\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/index.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/index.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CODE128C = exports.CODE128B = exports.CODE128A = exports.CODE128 = undefined;\nvar _CODE128_AUTO = __webpack_require__(/*! ./CODE128_AUTO.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128_AUTO.js\");\nvar _CODE128_AUTO2 = _interopRequireDefault(_CODE128_AUTO);\nvar _CODE128A = __webpack_require__(/*! ./CODE128A.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128A.js\");\nvar _CODE128A2 = _interopRequireDefault(_CODE128A);\nvar _CODE128B = __webpack_require__(/*! ./CODE128B.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128B.js\");\nvar _CODE128B2 = _interopRequireDefault(_CODE128B);\nvar _CODE128C = __webpack_require__(/*! ./CODE128C.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/CODE128C.js\");\nvar _CODE128C2 = _interopRequireDefault(_CODE128C);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nexports.CODE128 = _CODE128_AUTO2.default;\nexports.CODE128A = _CODE128A2.default;\nexports.CODE128B = _CODE128B2.default;\nexports.CODE128C = _CODE128C2.default;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/CODE39/index.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/CODE39/index.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CODE39 = undefined;\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _Barcode2 = __webpack_require__(/*! ../Barcode.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js\");\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Encoding documentation:\n// https://en.wikipedia.org/wiki/Code_39#Encoding\n\nvar CODE39 = function (_Barcode) {\n  _inherits(CODE39, _Barcode);\n  function CODE39(data, options) {\n    _classCallCheck(this, CODE39);\n    data = data.toUpperCase();\n\n    // Calculate mod43 checksum if enabled\n    if (options.mod43) {\n      data += getCharacter(mod43checksum(data));\n    }\n    return _possibleConstructorReturn(this, (CODE39.__proto__ || Object.getPrototypeOf(CODE39)).call(this, data, options));\n  }\n  _createClass(CODE39, [{\n    key: \"encode\",\n    value: function encode() {\n      // First character is always a *\n      var result = getEncoding(\"*\");\n\n      // Take every character and add the binary representation to the result\n      for (var i = 0; i < this.data.length; i++) {\n        result += getEncoding(this.data[i]) + \"0\";\n      }\n\n      // Last character is always a *\n      result += getEncoding(\"*\");\n      return {\n        data: result,\n        text: this.text\n      };\n    }\n  }, {\n    key: \"valid\",\n    value: function valid() {\n      return this.data.search(/^[0-9A-Z\\-\\.\\ \\$\\/\\+\\%]+$/) !== -1;\n    }\n  }]);\n  return CODE39;\n}(_Barcode3.default);\n\n// All characters. The position in the array is the (checksum) value\n\nvar characters = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"-\", \".\", \" \", \"$\", \"/\", \"+\", \"%\", \"*\"];\n\n// The decimal representation of the characters, is converted to the\n// corresponding binary with the getEncoding function\nvar encodings = [20957, 29783, 23639, 30485, 20951, 29813, 23669, 20855, 29789, 23645, 29975, 23831, 30533, 22295, 30149, 24005, 21623, 29981, 23837, 22301, 30023, 23879, 30545, 22343, 30161, 24017, 21959, 30065, 23921, 22385, 29015, 18263, 29141, 17879, 29045, 18293, 17783, 29021, 18269, 17477, 17489, 17681, 20753, 35770];\n\n// Get the binary representation of a character by converting the encodings\n// from decimal to binary\nfunction getEncoding(character) {\n  return getBinary(characterValue(character));\n}\nfunction getBinary(characterValue) {\n  return encodings[characterValue].toString(2);\n}\nfunction getCharacter(characterValue) {\n  return characters[characterValue];\n}\nfunction characterValue(character) {\n  return characters.indexOf(character);\n}\nfunction mod43checksum(data) {\n  var checksum = 0;\n  for (var i = 0; i < data.length; i++) {\n    checksum += characterValue(data[i]);\n  }\n  checksum = checksum % 43;\n  return checksum;\n}\nexports.CODE39 = CODE39;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/CODE39/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/CODE93.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/CODE93.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _constants = __webpack_require__(/*! ./constants */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js\");\nvar _Barcode2 = __webpack_require__(/*! ../Barcode.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js\");\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Encoding documentation:\n// https://en.wikipedia.org/wiki/Code_93#Detailed_outline\n\nvar CODE93 = function (_Barcode) {\n  _inherits(CODE93, _Barcode);\n  function CODE93(data, options) {\n    _classCallCheck(this, CODE93);\n    return _possibleConstructorReturn(this, (CODE93.__proto__ || Object.getPrototypeOf(CODE93)).call(this, data, options));\n  }\n  _createClass(CODE93, [{\n    key: 'valid',\n    value: function valid() {\n      return /^[0-9A-Z\\-. $/+%]+$/.test(this.data);\n    }\n  }, {\n    key: 'encode',\n    value: function encode() {\n      var symbols = this.data.split('').flatMap(function (c) {\n        return _constants.MULTI_SYMBOLS[c] || c;\n      });\n      var encoded = symbols.map(function (s) {\n        return CODE93.getEncoding(s);\n      }).join('');\n\n      // Compute checksum symbols\n      var csumC = CODE93.checksum(symbols, 20);\n      var csumK = CODE93.checksum(symbols.concat(csumC), 15);\n      return {\n        text: this.text,\n        data:\n        // Add the start bits\n        CODE93.getEncoding('\\xff') +\n        // Add the encoded bits\n        encoded +\n        // Add the checksum\n        CODE93.getEncoding(csumC) + CODE93.getEncoding(csumK) +\n        // Add the stop bits\n        CODE93.getEncoding('\\xff') +\n        // Add the termination bit\n        '1'\n      };\n    }\n\n    // Get the binary encoding of a symbol\n  }], [{\n    key: 'getEncoding',\n    value: function getEncoding(symbol) {\n      return _constants.BINARIES[CODE93.symbolValue(symbol)];\n    }\n\n    // Get the symbol for a symbol value\n  }, {\n    key: 'getSymbol',\n    value: function getSymbol(symbolValue) {\n      return _constants.SYMBOLS[symbolValue];\n    }\n\n    // Get the symbol value of a symbol\n  }, {\n    key: 'symbolValue',\n    value: function symbolValue(symbol) {\n      return _constants.SYMBOLS.indexOf(symbol);\n    }\n\n    // Calculate a checksum symbol\n  }, {\n    key: 'checksum',\n    value: function checksum(symbols, maxWeight) {\n      var csum = symbols.slice().reverse().reduce(function (sum, symbol, idx) {\n        var weight = idx % maxWeight + 1;\n        return sum + CODE93.symbolValue(symbol) * weight;\n      }, 0);\n      return CODE93.getSymbol(csum % 47);\n    }\n  }]);\n  return CODE93;\n}(_Barcode3.default);\nexports[\"default\"] = CODE93;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/CODE93.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/CODE93FullASCII.js":
/*!*********************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/CODE93FullASCII.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _CODE2 = __webpack_require__(/*! ./CODE93.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/CODE93.js\");\nvar _CODE3 = _interopRequireDefault(_CODE2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Encoding documentation\n// https://en.wikipedia.org/wiki/Code_93#Full_ASCII_Code_93\n\nvar CODE93FullASCII = function (_CODE) {\n  _inherits(CODE93FullASCII, _CODE);\n  function CODE93FullASCII(data, options) {\n    _classCallCheck(this, CODE93FullASCII);\n    return _possibleConstructorReturn(this, (CODE93FullASCII.__proto__ || Object.getPrototypeOf(CODE93FullASCII)).call(this, data, options));\n  }\n  _createClass(CODE93FullASCII, [{\n    key: 'valid',\n    value: function valid() {\n      return /^[\\x00-\\x7f]+$/.test(this.data);\n    }\n  }]);\n  return CODE93FullASCII;\n}(_CODE3.default);\nexports[\"default\"] = CODE93FullASCII;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/CODE93FullASCII.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\n// The position in the array is the (checksum) value\nvar SYMBOLS = exports.SYMBOLS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '-', '.', ' ', '$', '/', '+', '%',\n// Only used for csum and multi-symbols character encodings\n'($)', '(%)', '(/)', '(+)',\n// Start/Stop\n'\\xff'];\n\n// Order matches SYMBOLS array\nvar BINARIES = exports.BINARIES = ['100010100', '101001000', '101000100', '101000010', '100101000', '100100100', '100100010', '101010000', '100010010', '100001010', '110101000', '110100100', '110100010', '110010100', '110010010', '110001010', '101101000', '101100100', '101100010', '100110100', '100011010', '101011000', '101001100', '101000110', '100101100', '100010110', '110110100', '110110010', '110101100', '110100110', '110010110', '110011010', '101101100', '101100110', '100110110', '100111010', '100101110', '111010100', '111010010', '111001010', '101101110', '101110110', '110101110', '100100110', '111011010', '111010110', '100110010', '101011110'];\n\n// Multi-symbol characters (Full ASCII Code 93)\nvar MULTI_SYMBOLS = exports.MULTI_SYMBOLS = {\n  '\\x00': ['(%)', 'U'],\n  '\\x01': ['($)', 'A'],\n  '\\x02': ['($)', 'B'],\n  '\\x03': ['($)', 'C'],\n  '\\x04': ['($)', 'D'],\n  '\\x05': ['($)', 'E'],\n  '\\x06': ['($)', 'F'],\n  '\\x07': ['($)', 'G'],\n  '\\x08': ['($)', 'H'],\n  '\\x09': ['($)', 'I'],\n  '\\x0a': ['($)', 'J'],\n  '\\x0b': ['($)', 'K'],\n  '\\x0c': ['($)', 'L'],\n  '\\x0d': ['($)', 'M'],\n  '\\x0e': ['($)', 'N'],\n  '\\x0f': ['($)', 'O'],\n  '\\x10': ['($)', 'P'],\n  '\\x11': ['($)', 'Q'],\n  '\\x12': ['($)', 'R'],\n  '\\x13': ['($)', 'S'],\n  '\\x14': ['($)', 'T'],\n  '\\x15': ['($)', 'U'],\n  '\\x16': ['($)', 'V'],\n  '\\x17': ['($)', 'W'],\n  '\\x18': ['($)', 'X'],\n  '\\x19': ['($)', 'Y'],\n  '\\x1a': ['($)', 'Z'],\n  '\\x1b': ['(%)', 'A'],\n  '\\x1c': ['(%)', 'B'],\n  '\\x1d': ['(%)', 'C'],\n  '\\x1e': ['(%)', 'D'],\n  '\\x1f': ['(%)', 'E'],\n  '!': ['(/)', 'A'],\n  '\"': ['(/)', 'B'],\n  '#': ['(/)', 'C'],\n  '&': ['(/)', 'F'],\n  '\\'': ['(/)', 'G'],\n  '(': ['(/)', 'H'],\n  ')': ['(/)', 'I'],\n  '*': ['(/)', 'J'],\n  ',': ['(/)', 'L'],\n  ':': ['(/)', 'Z'],\n  ';': ['(%)', 'F'],\n  '<': ['(%)', 'G'],\n  '=': ['(%)', 'H'],\n  '>': ['(%)', 'I'],\n  '?': ['(%)', 'J'],\n  '@': ['(%)', 'V'],\n  '[': ['(%)', 'K'],\n  '\\\\': ['(%)', 'L'],\n  ']': ['(%)', 'M'],\n  '^': ['(%)', 'N'],\n  '_': ['(%)', 'O'],\n  '`': ['(%)', 'W'],\n  'a': ['(+)', 'A'],\n  'b': ['(+)', 'B'],\n  'c': ['(+)', 'C'],\n  'd': ['(+)', 'D'],\n  'e': ['(+)', 'E'],\n  'f': ['(+)', 'F'],\n  'g': ['(+)', 'G'],\n  'h': ['(+)', 'H'],\n  'i': ['(+)', 'I'],\n  'j': ['(+)', 'J'],\n  'k': ['(+)', 'K'],\n  'l': ['(+)', 'L'],\n  'm': ['(+)', 'M'],\n  'n': ['(+)', 'N'],\n  'o': ['(+)', 'O'],\n  'p': ['(+)', 'P'],\n  'q': ['(+)', 'Q'],\n  'r': ['(+)', 'R'],\n  's': ['(+)', 'S'],\n  't': ['(+)', 'T'],\n  'u': ['(+)', 'U'],\n  'v': ['(+)', 'V'],\n  'w': ['(+)', 'W'],\n  'x': ['(+)', 'X'],\n  'y': ['(+)', 'Y'],\n  'z': ['(+)', 'Z'],\n  '{': ['(%)', 'P'],\n  '|': ['(%)', 'Q'],\n  '}': ['(%)', 'R'],\n  '~': ['(%)', 'S'],\n  '\\x7f': ['(%)', 'T']\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/constants.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/index.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/index.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.CODE93FullASCII = exports.CODE93 = undefined;\nvar _CODE = __webpack_require__(/*! ./CODE93.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/CODE93.js\");\nvar _CODE2 = _interopRequireDefault(_CODE);\nvar _CODE93FullASCII = __webpack_require__(/*! ./CODE93FullASCII.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/CODE93FullASCII.js\");\nvar _CODE93FullASCII2 = _interopRequireDefault(_CODE93FullASCII);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nexports.CODE93 = _CODE2.default;\nexports.CODE93FullASCII = _CODE93FullASCII2.default;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _constants = __webpack_require__(/*! ./constants */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js\");\nvar _encoder = __webpack_require__(/*! ./encoder */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/encoder.js\");\nvar _encoder2 = _interopRequireDefault(_encoder);\nvar _Barcode2 = __webpack_require__(/*! ../Barcode */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js\");\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Base class for EAN8 & EAN13\nvar EAN = function (_Barcode) {\n  _inherits(EAN, _Barcode);\n  function EAN(data, options) {\n    _classCallCheck(this, EAN);\n\n    // Make sure the font is not bigger than the space between the guard bars\n    var _this = _possibleConstructorReturn(this, (EAN.__proto__ || Object.getPrototypeOf(EAN)).call(this, data, options));\n    _this.fontSize = !options.flat && options.fontSize > options.width * 10 ? options.width * 10 : options.fontSize;\n\n    // Make the guard bars go down half the way of the text\n    _this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin;\n    return _this;\n  }\n  _createClass(EAN, [{\n    key: 'encode',\n    value: function encode() {\n      return this.options.flat ? this.encodeFlat() : this.encodeGuarded();\n    }\n  }, {\n    key: 'leftText',\n    value: function leftText(from, to) {\n      return this.text.substr(from, to);\n    }\n  }, {\n    key: 'leftEncode',\n    value: function leftEncode(data, structure) {\n      return (0, _encoder2.default)(data, structure);\n    }\n  }, {\n    key: 'rightText',\n    value: function rightText(from, to) {\n      return this.text.substr(from, to);\n    }\n  }, {\n    key: 'rightEncode',\n    value: function rightEncode(data, structure) {\n      return (0, _encoder2.default)(data, structure);\n    }\n  }, {\n    key: 'encodeGuarded',\n    value: function encodeGuarded() {\n      var textOptions = {\n        fontSize: this.fontSize\n      };\n      var guardOptions = {\n        height: this.guardHeight\n      };\n      return [{\n        data: _constants.SIDE_BIN,\n        options: guardOptions\n      }, {\n        data: this.leftEncode(),\n        text: this.leftText(),\n        options: textOptions\n      }, {\n        data: _constants.MIDDLE_BIN,\n        options: guardOptions\n      }, {\n        data: this.rightEncode(),\n        text: this.rightText(),\n        options: textOptions\n      }, {\n        data: _constants.SIDE_BIN,\n        options: guardOptions\n      }];\n    }\n  }, {\n    key: 'encodeFlat',\n    value: function encodeFlat() {\n      var data = [_constants.SIDE_BIN, this.leftEncode(), _constants.MIDDLE_BIN, this.rightEncode(), _constants.SIDE_BIN];\n      return {\n        data: data.join(''),\n        text: this.text\n      };\n    }\n  }]);\n  return EAN;\n}(_Barcode3.default);\nexports[\"default\"] = EAN;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN13.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN13.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _get = function get(object, property, receiver) {\n  if (object === null) object = Function.prototype;\n  var desc = Object.getOwnPropertyDescriptor(object, property);\n  if (desc === undefined) {\n    var parent = Object.getPrototypeOf(object);\n    if (parent === null) {\n      return undefined;\n    } else {\n      return get(parent, property, receiver);\n    }\n  } else if (\"value\" in desc) {\n    return desc.value;\n  } else {\n    var getter = desc.get;\n    if (getter === undefined) {\n      return undefined;\n    }\n    return getter.call(receiver);\n  }\n};\nvar _constants = __webpack_require__(/*! ./constants */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js\");\nvar _EAN2 = __webpack_require__(/*! ./EAN */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN.js\");\nvar _EAN3 = _interopRequireDefault(_EAN2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Encoding documentation:\n// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Binary_encoding_of_data_digits_into_EAN-13_barcode\n\n// Calculate the checksum digit\n// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit\nvar checksum = function checksum(number) {\n  var res = number.substr(0, 12).split('').map(function (n) {\n    return +n;\n  }).reduce(function (sum, a, idx) {\n    return idx % 2 ? sum + a * 3 : sum + a;\n  }, 0);\n  return (10 - res % 10) % 10;\n};\nvar EAN13 = function (_EAN) {\n  _inherits(EAN13, _EAN);\n  function EAN13(data, options) {\n    _classCallCheck(this, EAN13);\n\n    // Add checksum if it does not exist\n    if (data.search(/^[0-9]{12}$/) !== -1) {\n      data += checksum(data);\n    }\n\n    // Adds a last character to the end of the barcode\n    var _this = _possibleConstructorReturn(this, (EAN13.__proto__ || Object.getPrototypeOf(EAN13)).call(this, data, options));\n    _this.lastChar = options.lastChar;\n    return _this;\n  }\n  _createClass(EAN13, [{\n    key: 'valid',\n    value: function valid() {\n      return this.data.search(/^[0-9]{13}$/) !== -1 && +this.data[12] === checksum(this.data);\n    }\n  }, {\n    key: 'leftText',\n    value: function leftText() {\n      return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'leftText', this).call(this, 1, 6);\n    }\n  }, {\n    key: 'leftEncode',\n    value: function leftEncode() {\n      var data = this.data.substr(1, 6);\n      var structure = _constants.EAN13_STRUCTURE[this.data[0]];\n      return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'leftEncode', this).call(this, data, structure);\n    }\n  }, {\n    key: 'rightText',\n    value: function rightText() {\n      return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'rightText', this).call(this, 7, 6);\n    }\n  }, {\n    key: 'rightEncode',\n    value: function rightEncode() {\n      var data = this.data.substr(7, 6);\n      return _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'rightEncode', this).call(this, data, 'RRRRRR');\n    }\n\n    // The \"standard\" way of printing EAN13 barcodes with guard bars\n  }, {\n    key: 'encodeGuarded',\n    value: function encodeGuarded() {\n      var data = _get(EAN13.prototype.__proto__ || Object.getPrototypeOf(EAN13.prototype), 'encodeGuarded', this).call(this);\n\n      // Extend data with left digit & last character\n      if (this.options.displayValue) {\n        data.unshift({\n          data: '000000000000',\n          text: this.text.substr(0, 1),\n          options: {\n            textAlign: 'left',\n            fontSize: this.fontSize\n          }\n        });\n        if (this.options.lastChar) {\n          data.push({\n            data: '00'\n          });\n          data.push({\n            data: '00000',\n            text: this.options.lastChar,\n            options: {\n              fontSize: this.fontSize\n            }\n          });\n        }\n      }\n      return data;\n    }\n  }]);\n  return EAN13;\n}(_EAN3.default);\nexports[\"default\"] = EAN13;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN13.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN2.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN2.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _constants = __webpack_require__(/*! ./constants */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js\");\nvar _encoder = __webpack_require__(/*! ./encoder */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/encoder.js\");\nvar _encoder2 = _interopRequireDefault(_encoder);\nvar _Barcode2 = __webpack_require__(/*! ../Barcode */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js\");\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Encoding documentation:\n// https://en.wikipedia.org/wiki/EAN_2#Encoding\n\nvar EAN2 = function (_Barcode) {\n  _inherits(EAN2, _Barcode);\n  function EAN2(data, options) {\n    _classCallCheck(this, EAN2);\n    return _possibleConstructorReturn(this, (EAN2.__proto__ || Object.getPrototypeOf(EAN2)).call(this, data, options));\n  }\n  _createClass(EAN2, [{\n    key: 'valid',\n    value: function valid() {\n      return this.data.search(/^[0-9]{2}$/) !== -1;\n    }\n  }, {\n    key: 'encode',\n    value: function encode() {\n      // Choose the structure based on the number mod 4\n      var structure = _constants.EAN2_STRUCTURE[parseInt(this.data) % 4];\n      return {\n        // Start bits + Encode the two digits with 01 in between\n        data: '1011' + (0, _encoder2.default)(this.data, structure, '01'),\n        text: this.text\n      };\n    }\n  }]);\n  return EAN2;\n}(_Barcode3.default);\nexports[\"default\"] = EAN2;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN2.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN5.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN5.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _constants = __webpack_require__(/*! ./constants */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js\");\nvar _encoder = __webpack_require__(/*! ./encoder */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/encoder.js\");\nvar _encoder2 = _interopRequireDefault(_encoder);\nvar _Barcode2 = __webpack_require__(/*! ../Barcode */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js\");\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Encoding documentation:\n// https://en.wikipedia.org/wiki/EAN_5#Encoding\n\nvar checksum = function checksum(data) {\n  var result = data.split('').map(function (n) {\n    return +n;\n  }).reduce(function (sum, a, idx) {\n    return idx % 2 ? sum + a * 9 : sum + a * 3;\n  }, 0);\n  return result % 10;\n};\nvar EAN5 = function (_Barcode) {\n  _inherits(EAN5, _Barcode);\n  function EAN5(data, options) {\n    _classCallCheck(this, EAN5);\n    return _possibleConstructorReturn(this, (EAN5.__proto__ || Object.getPrototypeOf(EAN5)).call(this, data, options));\n  }\n  _createClass(EAN5, [{\n    key: 'valid',\n    value: function valid() {\n      return this.data.search(/^[0-9]{5}$/) !== -1;\n    }\n  }, {\n    key: 'encode',\n    value: function encode() {\n      var structure = _constants.EAN5_STRUCTURE[checksum(this.data)];\n      return {\n        data: '1011' + (0, _encoder2.default)(this.data, structure, '01'),\n        text: this.text\n      };\n    }\n  }]);\n  return EAN5;\n}(_Barcode3.default);\nexports[\"default\"] = EAN5;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN5.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN8.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN8.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _get = function get(object, property, receiver) {\n  if (object === null) object = Function.prototype;\n  var desc = Object.getOwnPropertyDescriptor(object, property);\n  if (desc === undefined) {\n    var parent = Object.getPrototypeOf(object);\n    if (parent === null) {\n      return undefined;\n    } else {\n      return get(parent, property, receiver);\n    }\n  } else if (\"value\" in desc) {\n    return desc.value;\n  } else {\n    var getter = desc.get;\n    if (getter === undefined) {\n      return undefined;\n    }\n    return getter.call(receiver);\n  }\n};\nvar _EAN2 = __webpack_require__(/*! ./EAN */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN.js\");\nvar _EAN3 = _interopRequireDefault(_EAN2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Encoding documentation:\n// http://www.barcodeisland.com/ean8.phtml\n\n// Calculate the checksum digit\nvar checksum = function checksum(number) {\n  var res = number.substr(0, 7).split('').map(function (n) {\n    return +n;\n  }).reduce(function (sum, a, idx) {\n    return idx % 2 ? sum + a : sum + a * 3;\n  }, 0);\n  return (10 - res % 10) % 10;\n};\nvar EAN8 = function (_EAN) {\n  _inherits(EAN8, _EAN);\n  function EAN8(data, options) {\n    _classCallCheck(this, EAN8);\n\n    // Add checksum if it does not exist\n    if (data.search(/^[0-9]{7}$/) !== -1) {\n      data += checksum(data);\n    }\n    return _possibleConstructorReturn(this, (EAN8.__proto__ || Object.getPrototypeOf(EAN8)).call(this, data, options));\n  }\n  _createClass(EAN8, [{\n    key: 'valid',\n    value: function valid() {\n      return this.data.search(/^[0-9]{8}$/) !== -1 && +this.data[7] === checksum(this.data);\n    }\n  }, {\n    key: 'leftText',\n    value: function leftText() {\n      return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'leftText', this).call(this, 0, 4);\n    }\n  }, {\n    key: 'leftEncode',\n    value: function leftEncode() {\n      var data = this.data.substr(0, 4);\n      return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'leftEncode', this).call(this, data, 'LLLL');\n    }\n  }, {\n    key: 'rightText',\n    value: function rightText() {\n      return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'rightText', this).call(this, 4, 4);\n    }\n  }, {\n    key: 'rightEncode',\n    value: function rightEncode() {\n      var data = this.data.substr(4, 4);\n      return _get(EAN8.prototype.__proto__ || Object.getPrototypeOf(EAN8.prototype), 'rightEncode', this).call(this, data, 'RRRR');\n    }\n  }]);\n  return EAN8;\n}(_EAN3.default);\nexports[\"default\"] = EAN8;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN8.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPC.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPC.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nexports.checksum = checksum;\nvar _encoder = __webpack_require__(/*! ./encoder */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/encoder.js\");\nvar _encoder2 = _interopRequireDefault(_encoder);\nvar _Barcode2 = __webpack_require__(/*! ../Barcode.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js\");\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Encoding documentation:\n// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding\n\nvar UPC = function (_Barcode) {\n  _inherits(UPC, _Barcode);\n  function UPC(data, options) {\n    _classCallCheck(this, UPC);\n\n    // Add checksum if it does not exist\n    if (data.search(/^[0-9]{11}$/) !== -1) {\n      data += checksum(data);\n    }\n    var _this = _possibleConstructorReturn(this, (UPC.__proto__ || Object.getPrototypeOf(UPC)).call(this, data, options));\n    _this.displayValue = options.displayValue;\n\n    // Make sure the font is not bigger than the space between the guard bars\n    if (options.fontSize > options.width * 10) {\n      _this.fontSize = options.width * 10;\n    } else {\n      _this.fontSize = options.fontSize;\n    }\n\n    // Make the guard bars go down half the way of the text\n    _this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin;\n    return _this;\n  }\n  _createClass(UPC, [{\n    key: \"valid\",\n    value: function valid() {\n      return this.data.search(/^[0-9]{12}$/) !== -1 && this.data[11] == checksum(this.data);\n    }\n  }, {\n    key: \"encode\",\n    value: function encode() {\n      if (this.options.flat) {\n        return this.flatEncoding();\n      } else {\n        return this.guardedEncoding();\n      }\n    }\n  }, {\n    key: \"flatEncoding\",\n    value: function flatEncoding() {\n      var result = \"\";\n      result += \"101\";\n      result += (0, _encoder2.default)(this.data.substr(0, 6), \"LLLLLL\");\n      result += \"01010\";\n      result += (0, _encoder2.default)(this.data.substr(6, 6), \"RRRRRR\");\n      result += \"101\";\n      return {\n        data: result,\n        text: this.text\n      };\n    }\n  }, {\n    key: \"guardedEncoding\",\n    value: function guardedEncoding() {\n      var result = [];\n\n      // Add the first digit\n      if (this.displayValue) {\n        result.push({\n          data: \"00000000\",\n          text: this.text.substr(0, 1),\n          options: {\n            textAlign: \"left\",\n            fontSize: this.fontSize\n          }\n        });\n      }\n\n      // Add the guard bars\n      result.push({\n        data: \"101\" + (0, _encoder2.default)(this.data[0], \"L\"),\n        options: {\n          height: this.guardHeight\n        }\n      });\n\n      // Add the left side\n      result.push({\n        data: (0, _encoder2.default)(this.data.substr(1, 5), \"LLLLL\"),\n        text: this.text.substr(1, 5),\n        options: {\n          fontSize: this.fontSize\n        }\n      });\n\n      // Add the middle bits\n      result.push({\n        data: \"01010\",\n        options: {\n          height: this.guardHeight\n        }\n      });\n\n      // Add the right side\n      result.push({\n        data: (0, _encoder2.default)(this.data.substr(6, 5), \"RRRRR\"),\n        text: this.text.substr(6, 5),\n        options: {\n          fontSize: this.fontSize\n        }\n      });\n\n      // Add the end bits\n      result.push({\n        data: (0, _encoder2.default)(this.data[11], \"R\") + \"101\",\n        options: {\n          height: this.guardHeight\n        }\n      });\n\n      // Add the last digit\n      if (this.displayValue) {\n        result.push({\n          data: \"00000000\",\n          text: this.text.substr(11, 1),\n          options: {\n            textAlign: \"right\",\n            fontSize: this.fontSize\n          }\n        });\n      }\n      return result;\n    }\n  }]);\n  return UPC;\n}(_Barcode3.default);\n\n// Calulate the checksum digit\n// https://en.wikipedia.org/wiki/International_Article_Number_(EAN)#Calculation_of_checksum_digit\n\nfunction checksum(number) {\n  var result = 0;\n  var i;\n  for (i = 1; i < 11; i += 2) {\n    result += parseInt(number[i]);\n  }\n  for (i = 0; i < 11; i += 2) {\n    result += parseInt(number[i]) * 3;\n  }\n  return (10 - result % 10) % 10;\n}\nexports[\"default\"] = UPC;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPC.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPCE.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPCE.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _encoder = __webpack_require__(/*! ./encoder */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/encoder.js\");\nvar _encoder2 = _interopRequireDefault(_encoder);\nvar _Barcode2 = __webpack_require__(/*! ../Barcode.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js\");\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\nvar _UPC = __webpack_require__(/*! ./UPC.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPC.js\");\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Encoding documentation:\n// https://en.wikipedia.org/wiki/Universal_Product_Code#Encoding\n//\n// UPC-E documentation:\n// https://en.wikipedia.org/wiki/Universal_Product_Code#UPC-E\n\nvar EXPANSIONS = [\"XX00000XXX\", \"XX10000XXX\", \"XX20000XXX\", \"XXX00000XX\", \"XXXX00000X\", \"XXXXX00005\", \"XXXXX00006\", \"XXXXX00007\", \"XXXXX00008\", \"XXXXX00009\"];\nvar PARITIES = [[\"EEEOOO\", \"OOOEEE\"], [\"EEOEOO\", \"OOEOEE\"], [\"EEOOEO\", \"OOEEOE\"], [\"EEOOOE\", \"OOEEEO\"], [\"EOEEOO\", \"OEOOEE\"], [\"EOOEEO\", \"OEEOOE\"], [\"EOOOEE\", \"OEEEOO\"], [\"EOEOEO\", \"OEOEOE\"], [\"EOEOOE\", \"OEOEEO\"], [\"EOOEOE\", \"OEEOEO\"]];\nvar UPCE = function (_Barcode) {\n  _inherits(UPCE, _Barcode);\n  function UPCE(data, options) {\n    _classCallCheck(this, UPCE);\n    var _this = _possibleConstructorReturn(this, (UPCE.__proto__ || Object.getPrototypeOf(UPCE)).call(this, data, options));\n    // Code may be 6 or 8 digits;\n    // A 7 digit code is ambiguous as to whether the extra digit\n    // is a UPC-A check or number system digit.\n\n    _this.isValid = false;\n    if (data.search(/^[0-9]{6}$/) !== -1) {\n      _this.middleDigits = data;\n      _this.upcA = expandToUPCA(data, \"0\");\n      _this.text = options.text || '' + _this.upcA[0] + data + _this.upcA[_this.upcA.length - 1];\n      _this.isValid = true;\n    } else if (data.search(/^[01][0-9]{7}$/) !== -1) {\n      _this.middleDigits = data.substring(1, data.length - 1);\n      _this.upcA = expandToUPCA(_this.middleDigits, data[0]);\n      if (_this.upcA[_this.upcA.length - 1] === data[data.length - 1]) {\n        _this.isValid = true;\n      } else {\n        // checksum mismatch\n        return _possibleConstructorReturn(_this);\n      }\n    } else {\n      return _possibleConstructorReturn(_this);\n    }\n    _this.displayValue = options.displayValue;\n\n    // Make sure the font is not bigger than the space between the guard bars\n    if (options.fontSize > options.width * 10) {\n      _this.fontSize = options.width * 10;\n    } else {\n      _this.fontSize = options.fontSize;\n    }\n\n    // Make the guard bars go down half the way of the text\n    _this.guardHeight = options.height + _this.fontSize / 2 + options.textMargin;\n    return _this;\n  }\n  _createClass(UPCE, [{\n    key: 'valid',\n    value: function valid() {\n      return this.isValid;\n    }\n  }, {\n    key: 'encode',\n    value: function encode() {\n      if (this.options.flat) {\n        return this.flatEncoding();\n      } else {\n        return this.guardedEncoding();\n      }\n    }\n  }, {\n    key: 'flatEncoding',\n    value: function flatEncoding() {\n      var result = \"\";\n      result += \"101\";\n      result += this.encodeMiddleDigits();\n      result += \"010101\";\n      return {\n        data: result,\n        text: this.text\n      };\n    }\n  }, {\n    key: 'guardedEncoding',\n    value: function guardedEncoding() {\n      var result = [];\n\n      // Add the UPC-A number system digit beneath the quiet zone\n      if (this.displayValue) {\n        result.push({\n          data: \"00000000\",\n          text: this.text[0],\n          options: {\n            textAlign: \"left\",\n            fontSize: this.fontSize\n          }\n        });\n      }\n\n      // Add the guard bars\n      result.push({\n        data: \"101\",\n        options: {\n          height: this.guardHeight\n        }\n      });\n\n      // Add the 6 UPC-E digits\n      result.push({\n        data: this.encodeMiddleDigits(),\n        text: this.text.substring(1, 7),\n        options: {\n          fontSize: this.fontSize\n        }\n      });\n\n      // Add the end bits\n      result.push({\n        data: \"010101\",\n        options: {\n          height: this.guardHeight\n        }\n      });\n\n      // Add the UPC-A check digit beneath the quiet zone\n      if (this.displayValue) {\n        result.push({\n          data: \"00000000\",\n          text: this.text[7],\n          options: {\n            textAlign: \"right\",\n            fontSize: this.fontSize\n          }\n        });\n      }\n      return result;\n    }\n  }, {\n    key: 'encodeMiddleDigits',\n    value: function encodeMiddleDigits() {\n      var numberSystem = this.upcA[0];\n      var checkDigit = this.upcA[this.upcA.length - 1];\n      var parity = PARITIES[parseInt(checkDigit)][parseInt(numberSystem)];\n      return (0, _encoder2.default)(this.middleDigits, parity);\n    }\n  }]);\n  return UPCE;\n}(_Barcode3.default);\nfunction expandToUPCA(middleDigits, numberSystem) {\n  var lastUpcE = parseInt(middleDigits[middleDigits.length - 1]);\n  var expansion = EXPANSIONS[lastUpcE];\n  var result = \"\";\n  var digitIndex = 0;\n  for (var i = 0; i < expansion.length; i++) {\n    var c = expansion[i];\n    if (c === 'X') {\n      result += middleDigits[digitIndex++];\n    } else {\n      result += c;\n    }\n  }\n  result = '' + numberSystem + result;\n  return '' + result + (0, _UPC.checksum)(result);\n}\nexports[\"default\"] = UPCE;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPCE.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\n// Standard start end and middle bits\nvar SIDE_BIN = exports.SIDE_BIN = '101';\nvar MIDDLE_BIN = exports.MIDDLE_BIN = '01010';\nvar BINARIES = exports.BINARIES = {\n  'L': [\n  // The L (left) type of encoding\n  '0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011'],\n  'G': [\n  // The G type of encoding\n  '0100111', '0110011', '0011011', '0100001', '0011101', '0111001', '0000101', '0010001', '0001001', '0010111'],\n  'R': [\n  // The R (right) type of encoding\n  '1110010', '1100110', '1101100', '1000010', '1011100', '1001110', '1010000', '1000100', '1001000', '1110100'],\n  'O': [\n  // The O (odd) encoding for UPC-E\n  '0001101', '0011001', '0010011', '0111101', '0100011', '0110001', '0101111', '0111011', '0110111', '0001011'],\n  'E': [\n  // The E (even) encoding for UPC-E\n  '0100111', '0110011', '0011011', '0100001', '0011101', '0111001', '0000101', '0010001', '0001001', '0010111']\n};\n\n// Define the EAN-2 structure\nvar EAN2_STRUCTURE = exports.EAN2_STRUCTURE = ['LL', 'LG', 'GL', 'GG'];\n\n// Define the EAN-5 structure\nvar EAN5_STRUCTURE = exports.EAN5_STRUCTURE = ['GGLLL', 'GLGLL', 'GLLGL', 'GLLLG', 'LGGLL', 'LLGGL', 'LLLGG', 'LGLGL', 'LGLLG', 'LLGLG'];\n\n// Define the EAN-13 structure\nvar EAN13_STRUCTURE = exports.EAN13_STRUCTURE = ['LLLLLL', 'LLGLGG', 'LLGGLG', 'LLGGGL', 'LGLLGG', 'LGGLLG', 'LGGGLL', 'LGLGLG', 'LGLGGL', 'LGGLGL'];\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/encoder.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/encoder.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _constants = __webpack_require__(/*! ./constants */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js\");\n\n// Encode data string\nvar encode = function encode(data, structure, separator) {\n  var encoded = data.split('').map(function (val, idx) {\n    return _constants.BINARIES[structure[idx]];\n  }).map(function (val, idx) {\n    return val ? val[data[idx]] : '';\n  });\n  if (separator) {\n    var last = data.length - 1;\n    encoded = encoded.map(function (val, idx) {\n      return idx < last ? val + separator : val;\n    });\n  }\n  return encoded.join('');\n};\nexports[\"default\"] = encode;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/encoder.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.UPCE = exports.UPC = exports.EAN2 = exports.EAN5 = exports.EAN8 = exports.EAN13 = undefined;\nvar _EAN = __webpack_require__(/*! ./EAN13.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN13.js\");\nvar _EAN2 = _interopRequireDefault(_EAN);\nvar _EAN3 = __webpack_require__(/*! ./EAN8.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN8.js\");\nvar _EAN4 = _interopRequireDefault(_EAN3);\nvar _EAN5 = __webpack_require__(/*! ./EAN5.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN5.js\");\nvar _EAN6 = _interopRequireDefault(_EAN5);\nvar _EAN7 = __webpack_require__(/*! ./EAN2.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/EAN2.js\");\nvar _EAN8 = _interopRequireDefault(_EAN7);\nvar _UPC = __webpack_require__(/*! ./UPC.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPC.js\");\nvar _UPC2 = _interopRequireDefault(_UPC);\nvar _UPCE = __webpack_require__(/*! ./UPCE.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/UPCE.js\");\nvar _UPCE2 = _interopRequireDefault(_UPCE);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nexports.EAN13 = _EAN2.default;\nexports.EAN8 = _EAN4.default;\nexports.EAN5 = _EAN6.default;\nexports.EAN2 = _EAN8.default;\nexports.UPC = _UPC2.default;\nexports.UPCE = _UPCE2.default;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.GenericBarcode = undefined;\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _Barcode2 = __webpack_require__(/*! ../Barcode.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js\");\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nvar GenericBarcode = function (_Barcode) {\n  _inherits(GenericBarcode, _Barcode);\n  function GenericBarcode(data, options) {\n    _classCallCheck(this, GenericBarcode);\n    return _possibleConstructorReturn(this, (GenericBarcode.__proto__ || Object.getPrototypeOf(GenericBarcode)).call(this, data, options)); // Sets this.data and this.text\n  }\n\n  // Return the corresponding binary numbers for the data provided\n\n  _createClass(GenericBarcode, [{\n    key: \"encode\",\n    value: function encode() {\n      return {\n        data: \"10101010101010101010101010101010101010101\",\n        text: this.text\n      };\n    }\n\n    // Resturn true/false if the string provided is valid for this encoder\n  }, {\n    key: \"valid\",\n    value: function valid() {\n      return true;\n    }\n  }]);\n  return GenericBarcode;\n}(_Barcode3.default);\nexports.GenericBarcode = GenericBarcode;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/ITF.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/ITF.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _constants = __webpack_require__(/*! ./constants */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/constants.js\");\nvar _Barcode2 = __webpack_require__(/*! ../Barcode */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js\");\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nvar ITF = function (_Barcode) {\n  _inherits(ITF, _Barcode);\n  function ITF() {\n    _classCallCheck(this, ITF);\n    return _possibleConstructorReturn(this, (ITF.__proto__ || Object.getPrototypeOf(ITF)).apply(this, arguments));\n  }\n  _createClass(ITF, [{\n    key: 'valid',\n    value: function valid() {\n      return this.data.search(/^([0-9]{2})+$/) !== -1;\n    }\n  }, {\n    key: 'encode',\n    value: function encode() {\n      var _this2 = this;\n\n      // Calculate all the digit pairs\n      var encoded = this.data.match(/.{2}/g).map(function (pair) {\n        return _this2.encodePair(pair);\n      }).join('');\n      return {\n        data: _constants.START_BIN + encoded + _constants.END_BIN,\n        text: this.text\n      };\n    }\n\n    // Calculate the data of a number pair\n  }, {\n    key: 'encodePair',\n    value: function encodePair(pair) {\n      var second = _constants.BINARIES[pair[1]];\n      return _constants.BINARIES[pair[0]].split('').map(function (first, idx) {\n        return (first === '1' ? '111' : '1') + (second[idx] === '1' ? '000' : '0');\n      }).join('');\n    }\n  }]);\n  return ITF;\n}(_Barcode3.default);\nexports[\"default\"] = ITF;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/ITF.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/ITF14.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/ITF14.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _ITF2 = __webpack_require__(/*! ./ITF */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/ITF.js\");\nvar _ITF3 = _interopRequireDefault(_ITF2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\n// Calculate the checksum digit\nvar checksum = function checksum(data) {\n  var res = data.substr(0, 13).split('').map(function (num) {\n    return parseInt(num, 10);\n  }).reduce(function (sum, n, idx) {\n    return sum + n * (3 - idx % 2 * 2);\n  }, 0);\n  return Math.ceil(res / 10) * 10 - res;\n};\nvar ITF14 = function (_ITF) {\n  _inherits(ITF14, _ITF);\n  function ITF14(data, options) {\n    _classCallCheck(this, ITF14);\n\n    // Add checksum if it does not exist\n    if (data.search(/^[0-9]{13}$/) !== -1) {\n      data += checksum(data);\n    }\n    return _possibleConstructorReturn(this, (ITF14.__proto__ || Object.getPrototypeOf(ITF14)).call(this, data, options));\n  }\n  _createClass(ITF14, [{\n    key: 'valid',\n    value: function valid() {\n      return this.data.search(/^[0-9]{14}$/) !== -1 && +this.data[13] === checksum(this.data);\n    }\n  }]);\n  return ITF14;\n}(_ITF3.default);\nexports[\"default\"] = ITF14;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/ITF14.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/constants.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/constants.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar START_BIN = exports.START_BIN = '1010';\nvar END_BIN = exports.END_BIN = '11101';\nvar BINARIES = exports.BINARIES = ['00110', '10001', '01001', '11000', '00101', '10100', '01100', '00011', '10010', '01010'];\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/constants.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/index.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/index.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.ITF14 = exports.ITF = undefined;\nvar _ITF = __webpack_require__(/*! ./ITF */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/ITF.js\");\nvar _ITF2 = _interopRequireDefault(_ITF);\nvar _ITF3 = __webpack_require__(/*! ./ITF14 */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/ITF14.js\");\nvar _ITF4 = _interopRequireDefault(_ITF3);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nexports.ITF = _ITF2.default;\nexports.ITF14 = _ITF4.default;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _Barcode2 = __webpack_require__(/*! ../Barcode.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js\");\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Encoding documentation\n// https://en.wikipedia.org/wiki/MSI_Barcode#Character_set_and_binary_lookup\n\nvar MSI = function (_Barcode) {\n  _inherits(MSI, _Barcode);\n  function MSI(data, options) {\n    _classCallCheck(this, MSI);\n    return _possibleConstructorReturn(this, (MSI.__proto__ || Object.getPrototypeOf(MSI)).call(this, data, options));\n  }\n  _createClass(MSI, [{\n    key: \"encode\",\n    value: function encode() {\n      // Start bits\n      var ret = \"110\";\n      for (var i = 0; i < this.data.length; i++) {\n        // Convert the character to binary (always 4 binary digits)\n        var digit = parseInt(this.data[i]);\n        var bin = digit.toString(2);\n        bin = addZeroes(bin, 4 - bin.length);\n\n        // Add 100 for every zero and 110 for every 1\n        for (var b = 0; b < bin.length; b++) {\n          ret += bin[b] == \"0\" ? \"100\" : \"110\";\n        }\n      }\n\n      // End bits\n      ret += \"1001\";\n      return {\n        data: ret,\n        text: this.text\n      };\n    }\n  }, {\n    key: \"valid\",\n    value: function valid() {\n      return this.data.search(/^[0-9]+$/) !== -1;\n    }\n  }]);\n  return MSI;\n}(_Barcode3.default);\nfunction addZeroes(number, n) {\n  for (var i = 0; i < n; i++) {\n    number = \"0\" + number;\n  }\n  return number;\n}\nexports[\"default\"] = MSI;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI10.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI10.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _MSI2 = __webpack_require__(/*! ./MSI.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI.js\");\nvar _MSI3 = _interopRequireDefault(_MSI2);\nvar _checksums = __webpack_require__(/*! ./checksums.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/checksums.js\");\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nvar MSI10 = function (_MSI) {\n  _inherits(MSI10, _MSI);\n  function MSI10(data, options) {\n    _classCallCheck(this, MSI10);\n    return _possibleConstructorReturn(this, (MSI10.__proto__ || Object.getPrototypeOf(MSI10)).call(this, data + (0, _checksums.mod10)(data), options));\n  }\n  return MSI10;\n}(_MSI3.default);\nexports[\"default\"] = MSI10;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI10.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI1010.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI1010.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _MSI2 = __webpack_require__(/*! ./MSI.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI.js\");\nvar _MSI3 = _interopRequireDefault(_MSI2);\nvar _checksums = __webpack_require__(/*! ./checksums.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/checksums.js\");\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nvar MSI1010 = function (_MSI) {\n  _inherits(MSI1010, _MSI);\n  function MSI1010(data, options) {\n    _classCallCheck(this, MSI1010);\n    data += (0, _checksums.mod10)(data);\n    data += (0, _checksums.mod10)(data);\n    return _possibleConstructorReturn(this, (MSI1010.__proto__ || Object.getPrototypeOf(MSI1010)).call(this, data, options));\n  }\n  return MSI1010;\n}(_MSI3.default);\nexports[\"default\"] = MSI1010;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI1010.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI11.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI11.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _MSI2 = __webpack_require__(/*! ./MSI.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI.js\");\nvar _MSI3 = _interopRequireDefault(_MSI2);\nvar _checksums = __webpack_require__(/*! ./checksums.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/checksums.js\");\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nvar MSI11 = function (_MSI) {\n  _inherits(MSI11, _MSI);\n  function MSI11(data, options) {\n    _classCallCheck(this, MSI11);\n    return _possibleConstructorReturn(this, (MSI11.__proto__ || Object.getPrototypeOf(MSI11)).call(this, data + (0, _checksums.mod11)(data), options));\n  }\n  return MSI11;\n}(_MSI3.default);\nexports[\"default\"] = MSI11;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI11.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI1110.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI1110.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _MSI2 = __webpack_require__(/*! ./MSI.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI.js\");\nvar _MSI3 = _interopRequireDefault(_MSI2);\nvar _checksums = __webpack_require__(/*! ./checksums.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/checksums.js\");\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nvar MSI1110 = function (_MSI) {\n  _inherits(MSI1110, _MSI);\n  function MSI1110(data, options) {\n    _classCallCheck(this, MSI1110);\n    data += (0, _checksums.mod11)(data);\n    data += (0, _checksums.mod10)(data);\n    return _possibleConstructorReturn(this, (MSI1110.__proto__ || Object.getPrototypeOf(MSI1110)).call(this, data, options));\n  }\n  return MSI1110;\n}(_MSI3.default);\nexports[\"default\"] = MSI1110;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI1110.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/checksums.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/checksums.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.mod10 = mod10;\nexports.mod11 = mod11;\nfunction mod10(number) {\n  var sum = 0;\n  for (var i = 0; i < number.length; i++) {\n    var n = parseInt(number[i]);\n    if ((i + number.length) % 2 === 0) {\n      sum += n;\n    } else {\n      sum += n * 2 % 10 + Math.floor(n * 2 / 10);\n    }\n  }\n  return (10 - sum % 10) % 10;\n}\nfunction mod11(number) {\n  var sum = 0;\n  var weights = [2, 3, 4, 5, 6, 7];\n  for (var i = 0; i < number.length; i++) {\n    var n = parseInt(number[number.length - 1 - i]);\n    sum += weights[i % weights.length] * n;\n  }\n  return (11 - sum % 11) % 11;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/checksums.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/index.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/index.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.MSI1110 = exports.MSI1010 = exports.MSI11 = exports.MSI10 = exports.MSI = undefined;\nvar _MSI = __webpack_require__(/*! ./MSI.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI.js\");\nvar _MSI2 = _interopRequireDefault(_MSI);\nvar _MSI3 = __webpack_require__(/*! ./MSI10.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI10.js\");\nvar _MSI4 = _interopRequireDefault(_MSI3);\nvar _MSI5 = __webpack_require__(/*! ./MSI11.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI11.js\");\nvar _MSI6 = _interopRequireDefault(_MSI5);\nvar _MSI7 = __webpack_require__(/*! ./MSI1010.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI1010.js\");\nvar _MSI8 = _interopRequireDefault(_MSI7);\nvar _MSI9 = __webpack_require__(/*! ./MSI1110.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/MSI1110.js\");\nvar _MSI10 = _interopRequireDefault(_MSI9);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nexports.MSI = _MSI2.default;\nexports.MSI10 = _MSI4.default;\nexports.MSI11 = _MSI6.default;\nexports.MSI1010 = _MSI8.default;\nexports.MSI1110 = _MSI10.default;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/codabar/index.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/codabar/index.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.codabar = undefined;\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _Barcode2 = __webpack_require__(/*! ../Barcode.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js\");\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Encoding specification:\n// http://www.barcodeisland.com/codabar.phtml\n\nvar codabar = function (_Barcode) {\n  _inherits(codabar, _Barcode);\n  function codabar(data, options) {\n    _classCallCheck(this, codabar);\n    if (data.search(/^[0-9\\-\\$\\:\\.\\+\\/]+$/) === 0) {\n      data = \"A\" + data + \"A\";\n    }\n    var _this = _possibleConstructorReturn(this, (codabar.__proto__ || Object.getPrototypeOf(codabar)).call(this, data.toUpperCase(), options));\n    _this.text = _this.options.text || _this.text.replace(/[A-D]/g, '');\n    return _this;\n  }\n  _createClass(codabar, [{\n    key: \"valid\",\n    value: function valid() {\n      return this.data.search(/^[A-D][0-9\\-\\$\\:\\.\\+\\/]+[A-D]$/) !== -1;\n    }\n  }, {\n    key: \"encode\",\n    value: function encode() {\n      var result = [];\n      var encodings = this.getEncodings();\n      for (var i = 0; i < this.data.length; i++) {\n        result.push(encodings[this.data.charAt(i)]);\n        // for all characters except the last, append a narrow-space (\"0\")\n        if (i !== this.data.length - 1) {\n          result.push(\"0\");\n        }\n      }\n      return {\n        text: this.text,\n        data: result.join('')\n      };\n    }\n  }, {\n    key: \"getEncodings\",\n    value: function getEncodings() {\n      return {\n        \"0\": \"101010011\",\n        \"1\": \"101011001\",\n        \"2\": \"101001011\",\n        \"3\": \"110010101\",\n        \"4\": \"101101001\",\n        \"5\": \"110101001\",\n        \"6\": \"100101011\",\n        \"7\": \"100101101\",\n        \"8\": \"100110101\",\n        \"9\": \"110100101\",\n        \"-\": \"101001101\",\n        \"$\": \"101100101\",\n        \":\": \"1101011011\",\n        \"/\": \"1101101011\",\n        \".\": \"1101101101\",\n        \"+\": \"1011011011\",\n        \"A\": \"1011001001\",\n        \"B\": \"1001001011\",\n        \"C\": \"1010010011\",\n        \"D\": \"1010011001\"\n      };\n    }\n  }]);\n  return codabar;\n}(_Barcode3.default);\nexports.codabar = codabar;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/codabar/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/index.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/index.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _CODE = __webpack_require__(/*! ./CODE39/ */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE39/index.js\");\nvar _CODE2 = __webpack_require__(/*! ./CODE128/ */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE128/index.js\");\nvar _EAN_UPC = __webpack_require__(/*! ./EAN_UPC/ */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/EAN_UPC/index.js\");\nvar _ITF = __webpack_require__(/*! ./ITF/ */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/ITF/index.js\");\nvar _MSI = __webpack_require__(/*! ./MSI/ */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/MSI/index.js\");\nvar _pharmacode = __webpack_require__(/*! ./pharmacode/ */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js\");\nvar _codabar = __webpack_require__(/*! ./codabar */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/codabar/index.js\");\nvar _CODE3 = __webpack_require__(/*! ./CODE93/ */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/CODE93/index.js\");\nvar _GenericBarcode = __webpack_require__(/*! ./GenericBarcode/ */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/GenericBarcode/index.js\");\nexports[\"default\"] = {\n  CODE39: _CODE.CODE39,\n  CODE128: _CODE2.CODE128,\n  CODE128A: _CODE2.CODE128A,\n  CODE128B: _CODE2.CODE128B,\n  CODE128C: _CODE2.CODE128C,\n  EAN13: _EAN_UPC.EAN13,\n  EAN8: _EAN_UPC.EAN8,\n  EAN5: _EAN_UPC.EAN5,\n  EAN2: _EAN_UPC.EAN2,\n  UPC: _EAN_UPC.UPC,\n  UPCE: _EAN_UPC.UPCE,\n  ITF14: _ITF.ITF14,\n  ITF: _ITF.ITF,\n  MSI: _MSI.MSI,\n  MSI10: _MSI.MSI10,\n  MSI11: _MSI.MSI11,\n  MSI1010: _MSI.MSI1010,\n  MSI1110: _MSI.MSI1110,\n  pharmacode: _pharmacode.pharmacode,\n  codabar: _codabar.codabar,\n  CODE93: _CODE3.CODE93,\n  CODE93FullASCII: _CODE3.CODE93FullASCII,\n  GenericBarcode: _GenericBarcode.GenericBarcode\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.pharmacode = undefined;\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _Barcode2 = __webpack_require__(/*! ../Barcode.js */ \"../react-ui/node_modules/jsbarcode/bin/barcodes/Barcode.js\");\nvar _Barcode3 = _interopRequireDefault(_Barcode2);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n} // Encoding documentation\n// http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf\n\nvar pharmacode = function (_Barcode) {\n  _inherits(pharmacode, _Barcode);\n  function pharmacode(data, options) {\n    _classCallCheck(this, pharmacode);\n    var _this = _possibleConstructorReturn(this, (pharmacode.__proto__ || Object.getPrototypeOf(pharmacode)).call(this, data, options));\n    _this.number = parseInt(data, 10);\n    return _this;\n  }\n  _createClass(pharmacode, [{\n    key: \"encode\",\n    value: function encode() {\n      var z = this.number;\n      var result = \"\";\n\n      // http://i.imgur.com/RMm4UDJ.png\n      // (source: http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf, page: 34)\n      while (!isNaN(z) && z != 0) {\n        if (z % 2 === 0) {\n          // Even\n          result = \"11100\" + result;\n          z = (z - 2) / 2;\n        } else {\n          // Odd\n          result = \"100\" + result;\n          z = (z - 1) / 2;\n        }\n      }\n\n      // Remove the two last zeroes\n      result = result.slice(0, -2);\n      return {\n        data: result,\n        text: this.text\n      };\n    }\n  }, {\n    key: \"valid\",\n    value: function valid() {\n      return this.number >= 3 && this.number <= 131070;\n    }\n  }]);\n  return pharmacode;\n}(_Barcode3.default);\nexports.pharmacode = pharmacode;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/barcodes/pharmacode/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/exceptions/ErrorHandler.js":
/*!*************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/exceptions/ErrorHandler.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\n\n/*eslint no-console: 0 */\n\nvar ErrorHandler = function () {\n  function ErrorHandler(api) {\n    _classCallCheck(this, ErrorHandler);\n    this.api = api;\n  }\n  _createClass(ErrorHandler, [{\n    key: \"handleCatch\",\n    value: function handleCatch(e) {\n      // If babel supported extending of Error in a correct way instanceof would be used here\n      if (e.name === \"InvalidInputException\") {\n        if (this.api._options.valid !== this.api._defaults.valid) {\n          this.api._options.valid(false);\n        } else {\n          throw e.message;\n        }\n      } else {\n        throw e;\n      }\n      this.api.render = function () {};\n    }\n  }, {\n    key: \"wrapBarcodeCall\",\n    value: function wrapBarcodeCall(func) {\n      try {\n        var result = func.apply(undefined, arguments);\n        this.api._options.valid(true);\n        return result;\n      } catch (e) {\n        this.handleCatch(e);\n        return this.api;\n      }\n    }\n  }]);\n  return ErrorHandler;\n}();\nexports[\"default\"] = ErrorHandler;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/exceptions/ErrorHandler.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/exceptions/exceptions.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/exceptions/exceptions.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (!self) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      enumerable: false,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\nvar InvalidInputException = function (_Error) {\n  _inherits(InvalidInputException, _Error);\n  function InvalidInputException(symbology, input) {\n    _classCallCheck(this, InvalidInputException);\n    var _this = _possibleConstructorReturn(this, (InvalidInputException.__proto__ || Object.getPrototypeOf(InvalidInputException)).call(this));\n    _this.name = \"InvalidInputException\";\n    _this.symbology = symbology;\n    _this.input = input;\n    _this.message = '\"' + _this.input + '\" is not a valid input for ' + _this.symbology;\n    return _this;\n  }\n  return InvalidInputException;\n}(Error);\nvar InvalidElementException = function (_Error2) {\n  _inherits(InvalidElementException, _Error2);\n  function InvalidElementException() {\n    _classCallCheck(this, InvalidElementException);\n    var _this2 = _possibleConstructorReturn(this, (InvalidElementException.__proto__ || Object.getPrototypeOf(InvalidElementException)).call(this));\n    _this2.name = \"InvalidElementException\";\n    _this2.message = \"Not supported type to render on\";\n    return _this2;\n  }\n  return InvalidElementException;\n}(Error);\nvar NoElementException = function (_Error3) {\n  _inherits(NoElementException, _Error3);\n  function NoElementException() {\n    _classCallCheck(this, NoElementException);\n    var _this3 = _possibleConstructorReturn(this, (NoElementException.__proto__ || Object.getPrototypeOf(NoElementException)).call(this));\n    _this3.name = \"NoElementException\";\n    _this3.message = \"No element to render on.\";\n    return _this3;\n  }\n  return NoElementException;\n}(Error);\nexports.InvalidInputException = InvalidInputException;\nexports.InvalidElementException = InvalidElementException;\nexports.NoElementException = NoElementException;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/exceptions/exceptions.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/help/fixOptions.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/help/fixOptions.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = fixOptions;\nfunction fixOptions(options) {\n  // Fix the margins\n  options.marginTop = options.marginTop || options.margin;\n  options.marginBottom = options.marginBottom || options.margin;\n  options.marginRight = options.marginRight || options.margin;\n  options.marginLeft = options.marginLeft || options.margin;\n  return options;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/help/fixOptions.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/help/getOptionsFromElement.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/help/getOptionsFromElement.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _optionsFromStrings = __webpack_require__(/*! ./optionsFromStrings.js */ \"../react-ui/node_modules/jsbarcode/bin/help/optionsFromStrings.js\");\nvar _optionsFromStrings2 = _interopRequireDefault(_optionsFromStrings);\nvar _defaults = __webpack_require__(/*! ../options/defaults.js */ \"../react-ui/node_modules/jsbarcode/bin/options/defaults.js\");\nvar _defaults2 = _interopRequireDefault(_defaults);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction getOptionsFromElement(element) {\n  var options = {};\n  for (var property in _defaults2.default) {\n    if (_defaults2.default.hasOwnProperty(property)) {\n      // jsbarcode-*\n      if (element.hasAttribute(\"jsbarcode-\" + property.toLowerCase())) {\n        options[property] = element.getAttribute(\"jsbarcode-\" + property.toLowerCase());\n      }\n\n      // data-*\n      if (element.hasAttribute(\"data-\" + property.toLowerCase())) {\n        options[property] = element.getAttribute(\"data-\" + property.toLowerCase());\n      }\n    }\n  }\n  options[\"value\"] = element.getAttribute(\"jsbarcode-value\") || element.getAttribute(\"data-value\");\n\n  // Since all atributes are string they need to be converted to integers\n  options = (0, _optionsFromStrings2.default)(options);\n  return options;\n}\nexports[\"default\"] = getOptionsFromElement;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/help/getOptionsFromElement.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/help/getRenderProperties.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/help/getRenderProperties.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n  return typeof obj;\n} : function (obj) {\n  return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n}; /* global HTMLImageElement */\n/* global HTMLCanvasElement */\n/* global SVGElement */\n\nvar _getOptionsFromElement = __webpack_require__(/*! ./getOptionsFromElement.js */ \"../react-ui/node_modules/jsbarcode/bin/help/getOptionsFromElement.js\");\nvar _getOptionsFromElement2 = _interopRequireDefault(_getOptionsFromElement);\nvar _renderers = __webpack_require__(/*! ../renderers */ \"../react-ui/node_modules/jsbarcode/bin/renderers/index.js\");\nvar _renderers2 = _interopRequireDefault(_renderers);\nvar _exceptions = __webpack_require__(/*! ../exceptions/exceptions.js */ \"../react-ui/node_modules/jsbarcode/bin/exceptions/exceptions.js\");\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\n\n// Takes an element and returns an object with information about how\n// it should be rendered\n// This could also return an array with these objects\n// {\n//   element: The element that the renderer should draw on\n//   renderer: The name of the renderer\n//   afterRender (optional): If something has to done after the renderer\n//     completed, calls afterRender (function)\n//   options (optional): Options that can be defined in the element\n// }\n\nfunction getRenderProperties(element) {\n  // If the element is a string, query select call again\n  if (typeof element === \"string\") {\n    return querySelectedRenderProperties(element);\n  }\n  // If element is array. Recursivly call with every object in the array\n  else if (Array.isArray(element)) {\n    var returnArray = [];\n    for (var i = 0; i < element.length; i++) {\n      returnArray.push(getRenderProperties(element[i]));\n    }\n    return returnArray;\n  }\n  // If element, render on canvas and set the uri as src\n  else if (typeof HTMLCanvasElement !== 'undefined' && element instanceof HTMLImageElement) {\n    return newCanvasRenderProperties(element);\n  }\n  // If SVG\n  else if (element && element.nodeName && element.nodeName.toLowerCase() === 'svg' || typeof SVGElement !== 'undefined' && element instanceof SVGElement) {\n    return {\n      element: element,\n      options: (0, _getOptionsFromElement2.default)(element),\n      renderer: _renderers2.default.SVGRenderer\n    };\n  }\n  // If canvas (in browser)\n  else if (typeof HTMLCanvasElement !== 'undefined' && element instanceof HTMLCanvasElement) {\n    return {\n      element: element,\n      options: (0, _getOptionsFromElement2.default)(element),\n      renderer: _renderers2.default.CanvasRenderer\n    };\n  }\n  // If canvas (in node)\n  else if (element && element.getContext) {\n    return {\n      element: element,\n      renderer: _renderers2.default.CanvasRenderer\n    };\n  } else if (element && (typeof element === \"undefined\" ? \"undefined\" : _typeof(element)) === 'object' && !element.nodeName) {\n    return {\n      element: element,\n      renderer: _renderers2.default.ObjectRenderer\n    };\n  } else {\n    throw new _exceptions.InvalidElementException();\n  }\n}\nfunction querySelectedRenderProperties(string) {\n  var selector = document.querySelectorAll(string);\n  if (selector.length === 0) {\n    return undefined;\n  } else {\n    var returnArray = [];\n    for (var i = 0; i < selector.length; i++) {\n      returnArray.push(getRenderProperties(selector[i]));\n    }\n    return returnArray;\n  }\n}\nfunction newCanvasRenderProperties(imgElement) {\n  var canvas = document.createElement('canvas');\n  return {\n    element: canvas,\n    options: (0, _getOptionsFromElement2.default)(imgElement),\n    renderer: _renderers2.default.CanvasRenderer,\n    afterRender: function afterRender() {\n      imgElement.setAttribute(\"src\", canvas.toDataURL());\n    }\n  };\n}\nexports[\"default\"] = getRenderProperties;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/help/getRenderProperties.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/help/linearizeEncodings.js":
/*!*************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/help/linearizeEncodings.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = linearizeEncodings;\n\n// Encodings can be nestled like [[1-1, 1-2], 2, [3-1, 3-2]\n// Convert to [1-1, 1-2, 2, 3-1, 3-2]\n\nfunction linearizeEncodings(encodings) {\n  var linearEncodings = [];\n  function nextLevel(encoded) {\n    if (Array.isArray(encoded)) {\n      for (var i = 0; i < encoded.length; i++) {\n        nextLevel(encoded[i]);\n      }\n    } else {\n      encoded.text = encoded.text || \"\";\n      encoded.data = encoded.data || \"\";\n      linearEncodings.push(encoded);\n    }\n  }\n  nextLevel(encodings);\n  return linearEncodings;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/help/linearizeEncodings.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/help/merge.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/help/merge.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _extends = Object.assign || function (target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i];\n    for (var key in source) {\n      if (Object.prototype.hasOwnProperty.call(source, key)) {\n        target[key] = source[key];\n      }\n    }\n  }\n  return target;\n};\nexports[\"default\"] = function (old, replaceObj) {\n  return _extends({}, old, replaceObj);\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/help/merge.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/help/optionsFromStrings.js":
/*!*************************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/help/optionsFromStrings.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = optionsFromStrings;\n\n// Convert string to integers/booleans where it should be\n\nfunction optionsFromStrings(options) {\n  var intOptions = [\"width\", \"height\", \"textMargin\", \"fontSize\", \"margin\", \"marginTop\", \"marginBottom\", \"marginLeft\", \"marginRight\"];\n  for (var intOption in intOptions) {\n    if (intOptions.hasOwnProperty(intOption)) {\n      intOption = intOptions[intOption];\n      if (typeof options[intOption] === \"string\") {\n        options[intOption] = parseInt(options[intOption], 10);\n      }\n    }\n  }\n  if (typeof options[\"displayValue\"] === \"string\") {\n    options[\"displayValue\"] = options[\"displayValue\"] != \"false\";\n  }\n  return options;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/help/optionsFromStrings.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/options/defaults.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/options/defaults.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar defaults = {\n  width: 2,\n  height: 100,\n  format: \"auto\",\n  displayValue: true,\n  fontOptions: \"\",\n  font: \"monospace\",\n  text: undefined,\n  textAlign: \"center\",\n  textPosition: \"bottom\",\n  textMargin: 2,\n  fontSize: 20,\n  background: \"#ffffff\",\n  lineColor: \"#000000\",\n  margin: 10,\n  marginTop: undefined,\n  marginBottom: undefined,\n  marginLeft: undefined,\n  marginRight: undefined,\n  valid: function valid() {}\n};\nexports[\"default\"] = defaults;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/options/defaults.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/renderers/canvas.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/renderers/canvas.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _merge = __webpack_require__(/*! ../help/merge.js */ \"../react-ui/node_modules/jsbarcode/bin/help/merge.js\");\nvar _merge2 = _interopRequireDefault(_merge);\nvar _shared = __webpack_require__(/*! ./shared.js */ \"../react-ui/node_modules/jsbarcode/bin/renderers/shared.js\");\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nvar CanvasRenderer = function () {\n  function CanvasRenderer(canvas, encodings, options) {\n    _classCallCheck(this, CanvasRenderer);\n    this.canvas = canvas;\n    this.encodings = encodings;\n    this.options = options;\n  }\n  _createClass(CanvasRenderer, [{\n    key: \"render\",\n    value: function render() {\n      // Abort if the browser does not support HTML5 canvas\n      if (!this.canvas.getContext) {\n        throw new Error('The browser does not support canvas.');\n      }\n      this.prepareCanvas();\n      for (var i = 0; i < this.encodings.length; i++) {\n        var encodingOptions = (0, _merge2.default)(this.options, this.encodings[i].options);\n        this.drawCanvasBarcode(encodingOptions, this.encodings[i]);\n        this.drawCanvasText(encodingOptions, this.encodings[i]);\n        this.moveCanvasDrawing(this.encodings[i]);\n      }\n      this.restoreCanvas();\n    }\n  }, {\n    key: \"prepareCanvas\",\n    value: function prepareCanvas() {\n      // Get the canvas context\n      var ctx = this.canvas.getContext(\"2d\");\n      ctx.save();\n      (0, _shared.calculateEncodingAttributes)(this.encodings, this.options, ctx);\n      var totalWidth = (0, _shared.getTotalWidthOfEncodings)(this.encodings);\n      var maxHeight = (0, _shared.getMaximumHeightOfEncodings)(this.encodings);\n      this.canvas.width = totalWidth + this.options.marginLeft + this.options.marginRight;\n      this.canvas.height = maxHeight;\n\n      // Paint the canvas\n      ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n      if (this.options.background) {\n        ctx.fillStyle = this.options.background;\n        ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);\n      }\n      ctx.translate(this.options.marginLeft, 0);\n    }\n  }, {\n    key: \"drawCanvasBarcode\",\n    value: function drawCanvasBarcode(options, encoding) {\n      // Get the canvas context\n      var ctx = this.canvas.getContext(\"2d\");\n      var binary = encoding.data;\n\n      // Creates the barcode out of the encoded binary\n      var yFrom;\n      if (options.textPosition == \"top\") {\n        yFrom = options.marginTop + options.fontSize + options.textMargin;\n      } else {\n        yFrom = options.marginTop;\n      }\n      ctx.fillStyle = options.lineColor;\n      for (var b = 0; b < binary.length; b++) {\n        var x = b * options.width + encoding.barcodePadding;\n        if (binary[b] === \"1\") {\n          ctx.fillRect(x, yFrom, options.width, options.height);\n        } else if (binary[b]) {\n          ctx.fillRect(x, yFrom, options.width, options.height * binary[b]);\n        }\n      }\n    }\n  }, {\n    key: \"drawCanvasText\",\n    value: function drawCanvasText(options, encoding) {\n      // Get the canvas context\n      var ctx = this.canvas.getContext(\"2d\");\n      var font = options.fontOptions + \" \" + options.fontSize + \"px \" + options.font;\n\n      // Draw the text if displayValue is set\n      if (options.displayValue) {\n        var x, y;\n        if (options.textPosition == \"top\") {\n          y = options.marginTop + options.fontSize - options.textMargin;\n        } else {\n          y = options.height + options.textMargin + options.marginTop + options.fontSize;\n        }\n        ctx.font = font;\n\n        // Draw the text in the correct X depending on the textAlign option\n        if (options.textAlign == \"left\" || encoding.barcodePadding > 0) {\n          x = 0;\n          ctx.textAlign = 'left';\n        } else if (options.textAlign == \"right\") {\n          x = encoding.width - 1;\n          ctx.textAlign = 'right';\n        }\n        // In all other cases, center the text\n        else {\n          x = encoding.width / 2;\n          ctx.textAlign = 'center';\n        }\n        ctx.fillText(encoding.text, x, y);\n      }\n    }\n  }, {\n    key: \"moveCanvasDrawing\",\n    value: function moveCanvasDrawing(encoding) {\n      var ctx = this.canvas.getContext(\"2d\");\n      ctx.translate(encoding.width, 0);\n    }\n  }, {\n    key: \"restoreCanvas\",\n    value: function restoreCanvas() {\n      // Get the canvas context\n      var ctx = this.canvas.getContext(\"2d\");\n      ctx.restore();\n    }\n  }]);\n  return CanvasRenderer;\n}();\nexports[\"default\"] = CanvasRenderer;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/renderers/canvas.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/renderers/index.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/renderers/index.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _canvas = __webpack_require__(/*! ./canvas.js */ \"../react-ui/node_modules/jsbarcode/bin/renderers/canvas.js\");\nvar _canvas2 = _interopRequireDefault(_canvas);\nvar _svg = __webpack_require__(/*! ./svg.js */ \"../react-ui/node_modules/jsbarcode/bin/renderers/svg.js\");\nvar _svg2 = _interopRequireDefault(_svg);\nvar _object = __webpack_require__(/*! ./object.js */ \"../react-ui/node_modules/jsbarcode/bin/renderers/object.js\");\nvar _object2 = _interopRequireDefault(_object);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nexports[\"default\"] = {\n  CanvasRenderer: _canvas2.default,\n  SVGRenderer: _svg2.default,\n  ObjectRenderer: _object2.default\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/renderers/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/renderers/object.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/renderers/object.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nvar ObjectRenderer = function () {\n  function ObjectRenderer(object, encodings, options) {\n    _classCallCheck(this, ObjectRenderer);\n    this.object = object;\n    this.encodings = encodings;\n    this.options = options;\n  }\n  _createClass(ObjectRenderer, [{\n    key: \"render\",\n    value: function render() {\n      this.object.encodings = this.encodings;\n    }\n  }]);\n  return ObjectRenderer;\n}();\nexports[\"default\"] = ObjectRenderer;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/renderers/object.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/renderers/shared.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/renderers/shared.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.getTotalWidthOfEncodings = exports.calculateEncodingAttributes = exports.getBarcodePadding = exports.getEncodingHeight = exports.getMaximumHeightOfEncodings = undefined;\nvar _merge = __webpack_require__(/*! ../help/merge.js */ \"../react-ui/node_modules/jsbarcode/bin/help/merge.js\");\nvar _merge2 = _interopRequireDefault(_merge);\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction getEncodingHeight(encoding, options) {\n  return options.height + (options.displayValue && encoding.text.length > 0 ? options.fontSize + options.textMargin : 0) + options.marginTop + options.marginBottom;\n}\nfunction getBarcodePadding(textWidth, barcodeWidth, options) {\n  if (options.displayValue && barcodeWidth < textWidth) {\n    if (options.textAlign == \"center\") {\n      return Math.floor((textWidth - barcodeWidth) / 2);\n    } else if (options.textAlign == \"left\") {\n      return 0;\n    } else if (options.textAlign == \"right\") {\n      return Math.floor(textWidth - barcodeWidth);\n    }\n  }\n  return 0;\n}\nfunction calculateEncodingAttributes(encodings, barcodeOptions, context) {\n  for (var i = 0; i < encodings.length; i++) {\n    var encoding = encodings[i];\n    var options = (0, _merge2.default)(barcodeOptions, encoding.options);\n\n    // Calculate the width of the encoding\n    var textWidth;\n    if (options.displayValue) {\n      textWidth = messureText(encoding.text, options, context);\n    } else {\n      textWidth = 0;\n    }\n    var barcodeWidth = encoding.data.length * options.width;\n    encoding.width = Math.ceil(Math.max(textWidth, barcodeWidth));\n    encoding.height = getEncodingHeight(encoding, options);\n    encoding.barcodePadding = getBarcodePadding(textWidth, barcodeWidth, options);\n  }\n}\nfunction getTotalWidthOfEncodings(encodings) {\n  var totalWidth = 0;\n  for (var i = 0; i < encodings.length; i++) {\n    totalWidth += encodings[i].width;\n  }\n  return totalWidth;\n}\nfunction getMaximumHeightOfEncodings(encodings) {\n  var maxHeight = 0;\n  for (var i = 0; i < encodings.length; i++) {\n    if (encodings[i].height > maxHeight) {\n      maxHeight = encodings[i].height;\n    }\n  }\n  return maxHeight;\n}\nfunction messureText(string, options, context) {\n  var ctx;\n  if (context) {\n    ctx = context;\n  } else if (typeof document !== \"undefined\") {\n    ctx = document.createElement(\"canvas\").getContext(\"2d\");\n  } else {\n    // If the text cannot be messured we will return 0.\n    // This will make some barcode with big text render incorrectly\n    return 0;\n  }\n  ctx.font = options.fontOptions + \" \" + options.fontSize + \"px \" + options.font;\n\n  // Calculate the width of the encoding\n  var measureTextResult = ctx.measureText(string);\n  if (!measureTextResult) {\n    // Some implementations don't implement measureText and return undefined.\n    // If the text cannot be measured we will return 0.\n    // This will make some barcode with big text render incorrectly\n    return 0;\n  }\n  var size = measureTextResult.width;\n  return size;\n}\nexports.getMaximumHeightOfEncodings = getMaximumHeightOfEncodings;\nexports.getEncodingHeight = getEncodingHeight;\nexports.getBarcodePadding = getBarcodePadding;\nexports.calculateEncodingAttributes = calculateEncodingAttributes;\nexports.getTotalWidthOfEncodings = getTotalWidthOfEncodings;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/renderers/shared.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/jsbarcode/bin/renderers/svg.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/jsbarcode/bin/renderers/svg.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar _createClass = function () {\n  function defineProperties(target, props) {\n    for (var i = 0; i < props.length; i++) {\n      var descriptor = props[i];\n      descriptor.enumerable = descriptor.enumerable || false;\n      descriptor.configurable = true;\n      if (\"value\" in descriptor) descriptor.writable = true;\n      Object.defineProperty(target, descriptor.key, descriptor);\n    }\n  }\n  return function (Constructor, protoProps, staticProps) {\n    if (protoProps) defineProperties(Constructor.prototype, protoProps);\n    if (staticProps) defineProperties(Constructor, staticProps);\n    return Constructor;\n  };\n}();\nvar _merge = __webpack_require__(/*! ../help/merge.js */ \"../react-ui/node_modules/jsbarcode/bin/help/merge.js\");\nvar _merge2 = _interopRequireDefault(_merge);\nvar _shared = __webpack_require__(/*! ./shared.js */ \"../react-ui/node_modules/jsbarcode/bin/renderers/shared.js\");\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    default: obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nvar svgns = \"http://www.w3.org/2000/svg\";\nvar SVGRenderer = function () {\n  function SVGRenderer(svg, encodings, options) {\n    _classCallCheck(this, SVGRenderer);\n    this.svg = svg;\n    this.encodings = encodings;\n    this.options = options;\n    this.document = options.xmlDocument || document;\n  }\n  _createClass(SVGRenderer, [{\n    key: \"render\",\n    value: function render() {\n      var currentX = this.options.marginLeft;\n      this.prepareSVG();\n      for (var i = 0; i < this.encodings.length; i++) {\n        var encoding = this.encodings[i];\n        var encodingOptions = (0, _merge2.default)(this.options, encoding.options);\n        var group = this.createGroup(currentX, encodingOptions.marginTop, this.svg);\n        this.setGroupOptions(group, encodingOptions);\n        this.drawSvgBarcode(group, encodingOptions, encoding);\n        this.drawSVGText(group, encodingOptions, encoding);\n        currentX += encoding.width;\n      }\n    }\n  }, {\n    key: \"prepareSVG\",\n    value: function prepareSVG() {\n      // Clear the SVG\n      while (this.svg.firstChild) {\n        this.svg.removeChild(this.svg.firstChild);\n      }\n      (0, _shared.calculateEncodingAttributes)(this.encodings, this.options);\n      var totalWidth = (0, _shared.getTotalWidthOfEncodings)(this.encodings);\n      var maxHeight = (0, _shared.getMaximumHeightOfEncodings)(this.encodings);\n      var width = totalWidth + this.options.marginLeft + this.options.marginRight;\n      this.setSvgAttributes(width, maxHeight);\n      if (this.options.background) {\n        this.drawRect(0, 0, width, maxHeight, this.svg).setAttribute(\"style\", \"fill:\" + this.options.background + \";\");\n      }\n    }\n  }, {\n    key: \"drawSvgBarcode\",\n    value: function drawSvgBarcode(parent, options, encoding) {\n      var binary = encoding.data;\n\n      // Creates the barcode out of the encoded binary\n      var yFrom;\n      if (options.textPosition == \"top\") {\n        yFrom = options.fontSize + options.textMargin;\n      } else {\n        yFrom = 0;\n      }\n      var barWidth = 0;\n      var x = 0;\n      for (var b = 0; b < binary.length; b++) {\n        x = b * options.width + encoding.barcodePadding;\n        if (binary[b] === \"1\") {\n          barWidth++;\n        } else if (barWidth > 0) {\n          this.drawRect(x - options.width * barWidth, yFrom, options.width * barWidth, options.height, parent);\n          barWidth = 0;\n        }\n      }\n\n      // Last draw is needed since the barcode ends with 1\n      if (barWidth > 0) {\n        this.drawRect(x - options.width * (barWidth - 1), yFrom, options.width * barWidth, options.height, parent);\n      }\n    }\n  }, {\n    key: \"drawSVGText\",\n    value: function drawSVGText(parent, options, encoding) {\n      var textElem = this.document.createElementNS(svgns, 'text');\n\n      // Draw the text if displayValue is set\n      if (options.displayValue) {\n        var x, y;\n        textElem.setAttribute(\"style\", \"font:\" + options.fontOptions + \" \" + options.fontSize + \"px \" + options.font);\n        if (options.textPosition == \"top\") {\n          y = options.fontSize - options.textMargin;\n        } else {\n          y = options.height + options.textMargin + options.fontSize;\n        }\n\n        // Draw the text in the correct X depending on the textAlign option\n        if (options.textAlign == \"left\" || encoding.barcodePadding > 0) {\n          x = 0;\n          textElem.setAttribute(\"text-anchor\", \"start\");\n        } else if (options.textAlign == \"right\") {\n          x = encoding.width - 1;\n          textElem.setAttribute(\"text-anchor\", \"end\");\n        }\n        // In all other cases, center the text\n        else {\n          x = encoding.width / 2;\n          textElem.setAttribute(\"text-anchor\", \"middle\");\n        }\n        textElem.setAttribute(\"x\", x);\n        textElem.setAttribute(\"y\", y);\n        textElem.appendChild(this.document.createTextNode(encoding.text));\n        parent.appendChild(textElem);\n      }\n    }\n  }, {\n    key: \"setSvgAttributes\",\n    value: function setSvgAttributes(width, height) {\n      var svg = this.svg;\n      svg.setAttribute(\"width\", width + \"px\");\n      svg.setAttribute(\"height\", height + \"px\");\n      svg.setAttribute(\"x\", \"0px\");\n      svg.setAttribute(\"y\", \"0px\");\n      svg.setAttribute(\"viewBox\", \"0 0 \" + width + \" \" + height);\n      svg.setAttribute(\"xmlns\", svgns);\n      svg.setAttribute(\"version\", \"1.1\");\n      svg.setAttribute(\"style\", \"transform: translate(0,0)\");\n    }\n  }, {\n    key: \"createGroup\",\n    value: function createGroup(x, y, parent) {\n      var group = this.document.createElementNS(svgns, 'g');\n      group.setAttribute(\"transform\", \"translate(\" + x + \", \" + y + \")\");\n      parent.appendChild(group);\n      return group;\n    }\n  }, {\n    key: \"setGroupOptions\",\n    value: function setGroupOptions(group, options) {\n      group.setAttribute(\"style\", \"fill:\" + options.lineColor + \";\");\n    }\n  }, {\n    key: \"drawRect\",\n    value: function drawRect(x, y, width, height, parent) {\n      var rect = this.document.createElementNS(svgns, 'rect');\n      rect.setAttribute(\"x\", x);\n      rect.setAttribute(\"y\", y);\n      rect.setAttribute(\"width\", width);\n      rect.setAttribute(\"height\", height);\n      parent.appendChild(rect);\n      return rect;\n    }\n  }]);\n  return SVGRenderer;\n}();\nexports[\"default\"] = SVGRenderer;\n\n//# sourceURL=webpack:///../react-ui/node_modules/jsbarcode/bin/renderers/svg.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_DataView.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_DataView.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"../react-ui/node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"../react-ui/node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar DataView = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'DataView');\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DataView);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_DataView.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_Hash.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_Hash.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _hashClear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_hashClear.js */ \"../react-ui/node_modules/lodash-es/_hashClear.js\");\n/* harmony import */ var _hashDelete_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_hashDelete.js */ \"../react-ui/node_modules/lodash-es/_hashDelete.js\");\n/* harmony import */ var _hashGet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_hashGet.js */ \"../react-ui/node_modules/lodash-es/_hashGet.js\");\n/* harmony import */ var _hashHas_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_hashHas.js */ \"../react-ui/node_modules/lodash-es/_hashHas.js\");\n/* harmony import */ var _hashSet_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_hashSet.js */ \"../react-ui/node_modules/lodash-es/_hashSet.js\");\n\n\n\n\n\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n    length = entries == null ? 0 : entries.length;\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = _hashClear_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nHash.prototype['delete'] = _hashDelete_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nHash.prototype.get = _hashGet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nHash.prototype.has = _hashHas_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nHash.prototype.set = _hashSet_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Hash);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_Hash.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_ListCache.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_ListCache.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _listCacheClear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_listCacheClear.js */ \"../react-ui/node_modules/lodash-es/_listCacheClear.js\");\n/* harmony import */ var _listCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_listCacheDelete.js */ \"../react-ui/node_modules/lodash-es/_listCacheDelete.js\");\n/* harmony import */ var _listCacheGet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_listCacheGet.js */ \"../react-ui/node_modules/lodash-es/_listCacheGet.js\");\n/* harmony import */ var _listCacheHas_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_listCacheHas.js */ \"../react-ui/node_modules/lodash-es/_listCacheHas.js\");\n/* harmony import */ var _listCacheSet_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_listCacheSet.js */ \"../react-ui/node_modules/lodash-es/_listCacheSet.js\");\n\n\n\n\n\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n    length = entries == null ? 0 : entries.length;\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = _listCacheClear_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nListCache.prototype['delete'] = _listCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nListCache.prototype.get = _listCacheGet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nListCache.prototype.has = _listCacheHas_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nListCache.prototype.set = _listCacheSet_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ListCache);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_ListCache.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_Map.js":
/*!**************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_Map.js ***!
  \**************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"../react-ui/node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"../react-ui/node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar Map = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'Map');\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Map);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_Map.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_MapCache.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_MapCache.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _mapCacheClear_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_mapCacheClear.js */ \"../react-ui/node_modules/lodash-es/_mapCacheClear.js\");\n/* harmony import */ var _mapCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_mapCacheDelete.js */ \"../react-ui/node_modules/lodash-es/_mapCacheDelete.js\");\n/* harmony import */ var _mapCacheGet_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_mapCacheGet.js */ \"../react-ui/node_modules/lodash-es/_mapCacheGet.js\");\n/* harmony import */ var _mapCacheHas_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_mapCacheHas.js */ \"../react-ui/node_modules/lodash-es/_mapCacheHas.js\");\n/* harmony import */ var _mapCacheSet_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_mapCacheSet.js */ \"../react-ui/node_modules/lodash-es/_mapCacheSet.js\");\n\n\n\n\n\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n    length = entries == null ? 0 : entries.length;\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = _mapCacheClear_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nMapCache.prototype['delete'] = _mapCacheDelete_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nMapCache.prototype.get = _mapCacheGet_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nMapCache.prototype.has = _mapCacheHas_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nMapCache.prototype.set = _mapCacheSet_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MapCache);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_MapCache.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_Promise.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_Promise.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"../react-ui/node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"../react-ui/node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar Promise = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'Promise');\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Promise);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_Promise.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_Set.js":
/*!**************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_Set.js ***!
  \**************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"../react-ui/node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"../react-ui/node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar Set = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'Set');\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Set);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_Set.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_SetCache.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_SetCache.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _MapCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_MapCache.js */ \"../react-ui/node_modules/lodash-es/_MapCache.js\");\n/* harmony import */ var _setCacheAdd_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_setCacheAdd.js */ \"../react-ui/node_modules/lodash-es/_setCacheAdd.js\");\n/* harmony import */ var _setCacheHas_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_setCacheHas.js */ \"../react-ui/node_modules/lodash-es/_setCacheHas.js\");\n\n\n\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n  var index = -1,\n    length = values == null ? 0 : values.length;\n  this.__data__ = new _MapCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]();\n  while (++index < length) {\n    this.add(values[index]);\n  }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = _setCacheAdd_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nSetCache.prototype.has = _setCacheHas_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SetCache);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_SetCache.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_Stack.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_Stack.js ***!
  \****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ListCache.js */ \"../react-ui/node_modules/lodash-es/_ListCache.js\");\n/* harmony import */ var _stackClear_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_stackClear.js */ \"../react-ui/node_modules/lodash-es/_stackClear.js\");\n/* harmony import */ var _stackDelete_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_stackDelete.js */ \"../react-ui/node_modules/lodash-es/_stackDelete.js\");\n/* harmony import */ var _stackGet_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_stackGet.js */ \"../react-ui/node_modules/lodash-es/_stackGet.js\");\n/* harmony import */ var _stackHas_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_stackHas.js */ \"../react-ui/node_modules/lodash-es/_stackHas.js\");\n/* harmony import */ var _stackSet_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_stackSet.js */ \"../react-ui/node_modules/lodash-es/_stackSet.js\");\n\n\n\n\n\n\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new _ListCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](entries);\n  this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = _stackClear_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\nStack.prototype['delete'] = _stackDelete_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nStack.prototype.get = _stackGet_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\nStack.prototype.has = _stackHas_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\nStack.prototype.set = _stackSet_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Stack);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_Stack.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_Symbol.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_Symbol.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"../react-ui/node_modules/lodash-es/_root.js\");\n\n\n/** Built-in value references. */\nvar Symbol = _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Symbol;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Symbol);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_Symbol.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_Uint8Array.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_Uint8Array.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"../react-ui/node_modules/lodash-es/_root.js\");\n\n\n/** Built-in value references. */\nvar Uint8Array = _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Uint8Array;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Uint8Array);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_Uint8Array.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_WeakMap.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_WeakMap.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"../react-ui/node_modules/lodash-es/_getNative.js\");\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_root.js */ \"../react-ui/node_modules/lodash-es/_root.js\");\n\n\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_root_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], 'WeakMap');\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (WeakMap);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_WeakMap.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_apply.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_apply.js ***!
  \****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0:\n      return func.call(thisArg);\n    case 1:\n      return func.call(thisArg, args[0]);\n    case 2:\n      return func.call(thisArg, args[0], args[1]);\n    case 3:\n      return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (apply);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_apply.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_arrayEach.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_arrayEach.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n  var index = -1,\n    length = array == null ? 0 : array.length;\n  while (++index < length) {\n    if (iteratee(array[index], index, array) === false) {\n      break;\n    }\n  }\n  return array;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (arrayEach);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_arrayEach.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_arrayFilter.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_arrayFilter.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n  var index = -1,\n    length = array == null ? 0 : array.length,\n    resIndex = 0,\n    result = [];\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result[resIndex++] = value;\n    }\n  }\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (arrayFilter);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_arrayFilter.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_arrayLikeKeys.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_arrayLikeKeys.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseTimes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseTimes.js */ \"../react-ui/node_modules/lodash-es/_baseTimes.js\");\n/* harmony import */ var _isArguments_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArguments.js */ \"../react-ui/node_modules/lodash-es/isArguments.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isArray.js */ \"../react-ui/node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isBuffer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isBuffer.js */ \"../react-ui/node_modules/lodash-es/isBuffer.js\");\n/* harmony import */ var _isIndex_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_isIndex.js */ \"../react-ui/node_modules/lodash-es/_isIndex.js\");\n/* harmony import */ var _isTypedArray_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isTypedArray.js */ \"../react-ui/node_modules/lodash-es/isTypedArray.js\");\n\n\n\n\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = (0,_isArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value),\n    isArg = !isArr && (0,_isArguments_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value),\n    isBuff = !isArr && !isArg && (0,_isBuffer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value),\n    isType = !isArr && !isArg && !isBuff && (0,_isTypedArray_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value),\n    skipIndexes = isArr || isArg || isBuff || isType,\n    result = skipIndexes ? (0,_baseTimes_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value.length, String) : [],\n    length = result.length;\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (\n    // Safari 9 has enumerable `arguments.length` in strict mode.\n    key == 'length' ||\n    // Node.js 0.10 has enumerable non-index properties on buffers.\n    isBuff && (key == 'offset' || key == 'parent') ||\n    // PhantomJS 2 has enumerable non-index properties on typed arrays.\n    isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') ||\n    // Skip index properties.\n    (0,_isIndex_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(key, length)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (arrayLikeKeys);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_arrayLikeKeys.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_arrayPush.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_arrayPush.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n  var index = -1,\n    length = values.length,\n    offset = array.length;\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (arrayPush);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_arrayPush.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_arraySome.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_arraySome.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n *  else `false`.\n */\nfunction arraySome(array, predicate) {\n  var index = -1,\n    length = array == null ? 0 : array.length;\n  while (++index < length) {\n    if (predicate(array[index], index, array)) {\n      return true;\n    }\n  }\n  return false;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (arraySome);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_arraySome.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_assignMergeValue.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_assignMergeValue.js ***!
  \***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseAssignValue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseAssignValue.js */ \"../react-ui/node_modules/lodash-es/_baseAssignValue.js\");\n/* harmony import */ var _eq_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./eq.js */ \"../react-ui/node_modules/lodash-es/eq.js\");\n\n\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n  if (value !== undefined && !(0,_eq_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object[key], value) || value === undefined && !(key in object)) {\n    (0,_baseAssignValue_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key, value);\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (assignMergeValue);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_assignMergeValue.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_assignValue.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_assignValue.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseAssignValue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseAssignValue.js */ \"../react-ui/node_modules/lodash-es/_baseAssignValue.js\");\n/* harmony import */ var _eq_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./eq.js */ \"../react-ui/node_modules/lodash-es/eq.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && (0,_eq_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(objValue, value)) || value === undefined && !(key in object)) {\n    (0,_baseAssignValue_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key, value);\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (assignValue);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_assignValue.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_assocIndexOf.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_assocIndexOf.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _eq_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./eq.js */ \"../react-ui/node_modules/lodash-es/eq.js\");\n\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if ((0,_eq_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (assocIndexOf);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_assocIndexOf.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseAssign.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseAssign.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"../react-ui/node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keys.js */ \"../react-ui/node_modules/lodash-es/keys.js\");\n\n\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n  return object && (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_keys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseAssign);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseAssign.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseAssignIn.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseAssignIn.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"../react-ui/node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keysIn.js */ \"../react-ui/node_modules/lodash-es/keysIn.js\");\n\n\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n  return object && (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_keysIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseAssignIn);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseAssignIn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseAssignValue.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseAssignValue.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _defineProperty_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_defineProperty.js */ \"../react-ui/node_modules/lodash-es/_defineProperty.js\");\n\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && _defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n    (0,_defineProperty_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseAssignValue);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseAssignValue.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseClone.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseClone.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Stack_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Stack.js */ \"../react-ui/node_modules/lodash-es/_Stack.js\");\n/* harmony import */ var _arrayEach_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arrayEach.js */ \"../react-ui/node_modules/lodash-es/_arrayEach.js\");\n/* harmony import */ var _assignValue_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_assignValue.js */ \"../react-ui/node_modules/lodash-es/_assignValue.js\");\n/* harmony import */ var _baseAssign_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_baseAssign.js */ \"../react-ui/node_modules/lodash-es/_baseAssign.js\");\n/* harmony import */ var _baseAssignIn_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_baseAssignIn.js */ \"../react-ui/node_modules/lodash-es/_baseAssignIn.js\");\n/* harmony import */ var _cloneBuffer_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_cloneBuffer.js */ \"../react-ui/node_modules/lodash-es/_cloneBuffer.js\");\n/* harmony import */ var _copyArray_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_copyArray.js */ \"../react-ui/node_modules/lodash-es/_copyArray.js\");\n/* harmony import */ var _copySymbols_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./_copySymbols.js */ \"../react-ui/node_modules/lodash-es/_copySymbols.js\");\n/* harmony import */ var _copySymbolsIn_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./_copySymbolsIn.js */ \"../react-ui/node_modules/lodash-es/_copySymbolsIn.js\");\n/* harmony import */ var _getAllKeys_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_getAllKeys.js */ \"../react-ui/node_modules/lodash-es/_getAllKeys.js\");\n/* harmony import */ var _getAllKeysIn_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./_getAllKeysIn.js */ \"../react-ui/node_modules/lodash-es/_getAllKeysIn.js\");\n/* harmony import */ var _getTag_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./_getTag.js */ \"../react-ui/node_modules/lodash-es/_getTag.js\");\n/* harmony import */ var _initCloneArray_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./_initCloneArray.js */ \"../react-ui/node_modules/lodash-es/_initCloneArray.js\");\n/* harmony import */ var _initCloneByTag_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./_initCloneByTag.js */ \"../react-ui/node_modules/lodash-es/_initCloneByTag.js\");\n/* harmony import */ var _initCloneObject_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./_initCloneObject.js */ \"../react-ui/node_modules/lodash-es/_initCloneObject.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./isArray.js */ \"../react-ui/node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isBuffer_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./isBuffer.js */ \"../react-ui/node_modules/lodash-es/isBuffer.js\");\n/* harmony import */ var _isMap_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./isMap.js */ \"../react-ui/node_modules/lodash-es/isMap.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./isObject.js */ \"../react-ui/node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _isSet_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./isSet.js */ \"../react-ui/node_modules/lodash-es/isSet.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./keys.js */ \"../react-ui/node_modules/lodash-es/keys.js\");\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./keysIn.js */ \"../react-ui/node_modules/lodash-es/keysIn.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n  CLONE_FLAT_FLAG = 2,\n  CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n  arrayTag = '[object Array]',\n  boolTag = '[object Boolean]',\n  dateTag = '[object Date]',\n  errorTag = '[object Error]',\n  funcTag = '[object Function]',\n  genTag = '[object GeneratorFunction]',\n  mapTag = '[object Map]',\n  numberTag = '[object Number]',\n  objectTag = '[object Object]',\n  regexpTag = '[object RegExp]',\n  setTag = '[object Set]',\n  stringTag = '[object String]',\n  symbolTag = '[object Symbol]',\n  weakMapTag = '[object WeakMap]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n  dataViewTag = '[object DataView]',\n  float32Tag = '[object Float32Array]',\n  float64Tag = '[object Float64Array]',\n  int8Tag = '[object Int8Array]',\n  int16Tag = '[object Int16Array]',\n  int32Tag = '[object Int32Array]',\n  uint8Tag = '[object Uint8Array]',\n  uint8ClampedTag = '[object Uint8ClampedArray]',\n  uint16Tag = '[object Uint16Array]',\n  uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Deep clone\n *  2 - Flatten inherited properties\n *  4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n  var result,\n    isDeep = bitmask & CLONE_DEEP_FLAG,\n    isFlat = bitmask & CLONE_FLAT_FLAG,\n    isFull = bitmask & CLONE_SYMBOLS_FLAG;\n  if (customizer) {\n    result = object ? customizer(value, key, object, stack) : customizer(value);\n  }\n  if (result !== undefined) {\n    return result;\n  }\n  if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"])(value)) {\n    return value;\n  }\n  var isArr = (0,_isArray_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(value);\n  if (isArr) {\n    result = (0,_initCloneArray_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(value);\n    if (!isDeep) {\n      return (0,_copyArray_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(value, result);\n    }\n  } else {\n    var tag = (0,_getTag_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(value),\n      isFunc = tag == funcTag || tag == genTag;\n    if ((0,_isBuffer_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(value)) {\n      return (0,_cloneBuffer_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value, isDeep);\n    }\n    if (tag == objectTag || tag == argsTag || isFunc && !object) {\n      result = isFlat || isFunc ? {} : (0,_initCloneObject_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(value);\n      if (!isDeep) {\n        return isFlat ? (0,_copySymbolsIn_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(value, (0,_baseAssignIn_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(result, value)) : (0,_copySymbols_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(value, (0,_baseAssign_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(result, value));\n      }\n    } else {\n      if (!cloneableTags[tag]) {\n        return object ? value : {};\n      }\n      result = (0,_initCloneByTag_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(value, tag, isDeep);\n    }\n  }\n  // Check for circular references and return its corresponding clone.\n  stack || (stack = new _Stack_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]());\n  var stacked = stack.get(value);\n  if (stacked) {\n    return stacked;\n  }\n  stack.set(value, result);\n  if ((0,_isSet_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"])(value)) {\n    value.forEach(function (subValue) {\n      result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n    });\n  } else if ((0,_isMap_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"])(value)) {\n    value.forEach(function (subValue, key) {\n      result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n    });\n  }\n  var keysFunc = isFull ? isFlat ? _getAllKeysIn_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"] : _getAllKeys_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"] : isFlat ? _keysIn_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"] : _keys_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"];\n  var props = isArr ? undefined : keysFunc(value);\n  (0,_arrayEach_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(props || value, function (subValue, key) {\n    if (props) {\n      key = subValue;\n      subValue = value[key];\n    }\n    // Recursively populate clone (susceptible to call stack limits).\n    (0,_assignValue_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n  });\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseClone);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseClone.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseCreate.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseCreate.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"../react-ui/node_modules/lodash-es/isObject.js\");\n\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = function () {\n  function object() {}\n  return function (proto) {\n    if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(proto)) {\n      return {};\n    }\n    if (objectCreate) {\n      return objectCreate(proto);\n    }\n    object.prototype = proto;\n    var result = new object();\n    object.prototype = undefined;\n    return result;\n  };\n}();\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseCreate);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseCreate.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseFor.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseFor.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _createBaseFor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_createBaseFor.js */ \"../react-ui/node_modules/lodash-es/_createBaseFor.js\");\n\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = (0,_createBaseFor_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])();\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseFor);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseFor.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseGetAllKeys.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseGetAllKeys.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _arrayPush_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arrayPush.js */ \"../react-ui/node_modules/lodash-es/_arrayPush.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArray.js */ \"../react-ui/node_modules/lodash-es/isArray.js\");\n\n\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return (0,_isArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object) ? result : (0,_arrayPush_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(result, symbolsFunc(object));\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseGetAllKeys);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseGetAllKeys.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseGetTag.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseGetTag.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"../react-ui/node_modules/lodash-es/_Symbol.js\");\n/* harmony import */ var _getRawTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getRawTag.js */ \"../react-ui/node_modules/lodash-es/_getRawTag.js\");\n/* harmony import */ var _objectToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_objectToString.js */ \"../react-ui/node_modules/lodash-es/_objectToString.js\");\n\n\n\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n  undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return symToStringTag && symToStringTag in Object(value) ? (0,_getRawTag_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) : (0,_objectToString_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseGetTag);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseGetTag.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseIsArguments.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseIsArguments.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseGetTag.js */ \"../react-ui/node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isObjectLike.js */ \"../react-ui/node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) && (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) == argsTag;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseIsArguments);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseIsArguments.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseIsEqual.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseIsEqual.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseIsEqualDeep_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseIsEqualDeep.js */ \"../react-ui/node_modules/lodash-es/_baseIsEqualDeep.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isObjectLike.js */ \"../react-ui/node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Unordered comparison\n *  2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n  if (value === other) {\n    return true;\n  }\n  if (value == null || other == null || !(0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) && !(0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(other)) {\n    return value !== value && other !== other;\n  }\n  return (0,_baseIsEqualDeep_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseIsEqual);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseIsEqual.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseIsEqualDeep.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseIsEqualDeep.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Stack_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Stack.js */ \"../react-ui/node_modules/lodash-es/_Stack.js\");\n/* harmony import */ var _equalArrays_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_equalArrays.js */ \"../react-ui/node_modules/lodash-es/_equalArrays.js\");\n/* harmony import */ var _equalByTag_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_equalByTag.js */ \"../react-ui/node_modules/lodash-es/_equalByTag.js\");\n/* harmony import */ var _equalObjects_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_equalObjects.js */ \"../react-ui/node_modules/lodash-es/_equalObjects.js\");\n/* harmony import */ var _getTag_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_getTag.js */ \"../react-ui/node_modules/lodash-es/_getTag.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isArray.js */ \"../react-ui/node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isBuffer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isBuffer.js */ \"../react-ui/node_modules/lodash-es/isBuffer.js\");\n/* harmony import */ var _isTypedArray_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./isTypedArray.js */ \"../react-ui/node_modules/lodash-es/isTypedArray.js\");\n\n\n\n\n\n\n\n\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n  arrayTag = '[object Array]',\n  objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n  var objIsArr = (0,_isArray_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(object),\n    othIsArr = (0,_isArray_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(other),\n    objTag = objIsArr ? arrayTag : (0,_getTag_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(object),\n    othTag = othIsArr ? arrayTag : (0,_getTag_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(other);\n  objTag = objTag == argsTag ? objectTag : objTag;\n  othTag = othTag == argsTag ? objectTag : othTag;\n  var objIsObj = objTag == objectTag,\n    othIsObj = othTag == objectTag,\n    isSameTag = objTag == othTag;\n  if (isSameTag && (0,_isBuffer_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(object)) {\n    if (!(0,_isBuffer_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(other)) {\n      return false;\n    }\n    objIsArr = true;\n    objIsObj = false;\n  }\n  if (isSameTag && !objIsObj) {\n    stack || (stack = new _Stack_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]());\n    return objIsArr || (0,_isTypedArray_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(object) ? (0,_equalArrays_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, other, bitmask, customizer, equalFunc, stack) : (0,_equalByTag_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object, other, objTag, bitmask, customizer, equalFunc, stack);\n  }\n  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n      othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n    if (objIsWrapped || othIsWrapped) {\n      var objUnwrapped = objIsWrapped ? object.value() : object,\n        othUnwrapped = othIsWrapped ? other.value() : other;\n      stack || (stack = new _Stack_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]());\n      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n    }\n  }\n  if (!isSameTag) {\n    return false;\n  }\n  stack || (stack = new _Stack_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]());\n  return (0,_equalObjects_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(object, other, bitmask, customizer, equalFunc, stack);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseIsEqualDeep);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseIsEqualDeep.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseIsMap.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseIsMap.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getTag.js */ \"../react-ui/node_modules/lodash-es/_getTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isObjectLike.js */ \"../react-ui/node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n  return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) && (0,_getTag_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) == mapTag;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseIsMap);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseIsMap.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseIsNative.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseIsNative.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isFunction.js */ \"../react-ui/node_modules/lodash-es/isFunction.js\");\n/* harmony import */ var _isMasked_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isMasked.js */ \"../react-ui/node_modules/lodash-es/_isMasked.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isObject.js */ \"../react-ui/node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _toSource_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_toSource.js */ \"../react-ui/node_modules/lodash-es/_toSource.js\");\n\n\n\n\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n  objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value) || (0,_isMasked_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)) {\n    return false;\n  }\n  var pattern = (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) ? reIsNative : reIsHostCtor;\n  return pattern.test((0,_toSource_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(value));\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseIsNative);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseIsNative.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseIsSet.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseIsSet.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getTag.js */ \"../react-ui/node_modules/lodash-es/_getTag.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isObjectLike.js */ \"../react-ui/node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n  return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) && (0,_getTag_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) == setTag;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseIsSet);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseIsSet.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseIsTypedArray.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseIsTypedArray.js ***!
  \***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseGetTag.js */ \"../react-ui/node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isLength.js */ \"../react-ui/node_modules/lodash-es/isLength.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isObjectLike.js */ \"../react-ui/node_modules/lodash-es/isObjectLike.js\");\n\n\n\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n  arrayTag = '[object Array]',\n  boolTag = '[object Boolean]',\n  dateTag = '[object Date]',\n  errorTag = '[object Error]',\n  funcTag = '[object Function]',\n  mapTag = '[object Map]',\n  numberTag = '[object Number]',\n  objectTag = '[object Object]',\n  regexpTag = '[object RegExp]',\n  setTag = '[object Set]',\n  stringTag = '[object String]',\n  weakMapTag = '[object WeakMap]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n  dataViewTag = '[object DataView]',\n  float32Tag = '[object Float32Array]',\n  float64Tag = '[object Float64Array]',\n  int8Tag = '[object Int8Array]',\n  int16Tag = '[object Int16Array]',\n  int32Tag = '[object Int32Array]',\n  uint8Tag = '[object Uint8Array]',\n  uint8ClampedTag = '[object Uint8ClampedArray]',\n  uint16Tag = '[object Uint16Array]',\n  uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\ntypedArrayTags[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;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value) && (0,_isLength_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value.length) && !!typedArrayTags[(0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value)];\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseIsTypedArray);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseIsTypedArray.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseKeys.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseKeys.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _isPrototype_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isPrototype.js */ \"../react-ui/node_modules/lodash-es/_isPrototype.js\");\n/* harmony import */ var _nativeKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_nativeKeys.js */ \"../react-ui/node_modules/lodash-es/_nativeKeys.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!(0,_isPrototype_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object)) {\n    return (0,_nativeKeys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseKeys);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseKeys.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseKeysIn.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseKeysIn.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObject.js */ \"../react-ui/node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _isPrototype_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isPrototype.js */ \"../react-ui/node_modules/lodash-es/_isPrototype.js\");\n/* harmony import */ var _nativeKeysIn_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_nativeKeysIn.js */ \"../react-ui/node_modules/lodash-es/_nativeKeysIn.js\");\n\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n  if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object)) {\n    return (0,_nativeKeysIn_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object);\n  }\n  var isProto = (0,_isPrototype_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object),\n    result = [];\n  for (var key in object) {\n    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseKeysIn);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseKeysIn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseMerge.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseMerge.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Stack_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Stack.js */ \"../react-ui/node_modules/lodash-es/_Stack.js\");\n/* harmony import */ var _assignMergeValue_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_assignMergeValue.js */ \"../react-ui/node_modules/lodash-es/_assignMergeValue.js\");\n/* harmony import */ var _baseFor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseFor.js */ \"../react-ui/node_modules/lodash-es/_baseFor.js\");\n/* harmony import */ var _baseMergeDeep_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_baseMergeDeep.js */ \"../react-ui/node_modules/lodash-es/_baseMergeDeep.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./isObject.js */ \"../react-ui/node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./keysIn.js */ \"../react-ui/node_modules/lodash-es/keysIn.js\");\n/* harmony import */ var _safeGet_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_safeGet.js */ \"../react-ui/node_modules/lodash-es/_safeGet.js\");\n\n\n\n\n\n\n\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n  if (object === source) {\n    return;\n  }\n  (0,_baseFor_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(source, function (srcValue, key) {\n    stack || (stack = new _Stack_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]());\n    if ((0,_isObject_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(srcValue)) {\n      (0,_baseMergeDeep_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(object, source, key, srcIndex, baseMerge, customizer, stack);\n    } else {\n      var newValue = customizer ? customizer((0,_safeGet_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(object, key), srcValue, key + '', object, source, stack) : undefined;\n      if (newValue === undefined) {\n        newValue = srcValue;\n      }\n      (0,_assignMergeValue_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, key, newValue);\n    }\n  }, _keysIn_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseMerge);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseMerge.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseMergeDeep.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseMergeDeep.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assignMergeValue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assignMergeValue.js */ \"../react-ui/node_modules/lodash-es/_assignMergeValue.js\");\n/* harmony import */ var _cloneBuffer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_cloneBuffer.js */ \"../react-ui/node_modules/lodash-es/_cloneBuffer.js\");\n/* harmony import */ var _cloneTypedArray_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_cloneTypedArray.js */ \"../react-ui/node_modules/lodash-es/_cloneTypedArray.js\");\n/* harmony import */ var _copyArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_copyArray.js */ \"../react-ui/node_modules/lodash-es/_copyArray.js\");\n/* harmony import */ var _initCloneObject_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_initCloneObject.js */ \"../react-ui/node_modules/lodash-es/_initCloneObject.js\");\n/* harmony import */ var _isArguments_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isArguments.js */ \"../react-ui/node_modules/lodash-es/isArguments.js\");\n/* harmony import */ var _isArray_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isArray.js */ \"../react-ui/node_modules/lodash-es/isArray.js\");\n/* harmony import */ var _isArrayLikeObject_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./isArrayLikeObject.js */ \"../react-ui/node_modules/lodash-es/isArrayLikeObject.js\");\n/* harmony import */ var _isBuffer_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./isBuffer.js */ \"../react-ui/node_modules/lodash-es/isBuffer.js\");\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./isFunction.js */ \"../react-ui/node_modules/lodash-es/isFunction.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./isObject.js */ \"../react-ui/node_modules/lodash-es/isObject.js\");\n/* harmony import */ var _isPlainObject_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./isPlainObject.js */ \"../react-ui/node_modules/lodash-es/isPlainObject.js\");\n/* harmony import */ var _isTypedArray_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./isTypedArray.js */ \"../react-ui/node_modules/lodash-es/isTypedArray.js\");\n/* harmony import */ var _safeGet_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./_safeGet.js */ \"../react-ui/node_modules/lodash-es/_safeGet.js\");\n/* harmony import */ var _toPlainObject_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./toPlainObject.js */ \"../react-ui/node_modules/lodash-es/toPlainObject.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n  var objValue = (0,_safeGet_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(object, key),\n    srcValue = (0,_safeGet_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"])(source, key),\n    stacked = stack.get(srcValue);\n  if (stacked) {\n    (0,_assignMergeValue_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key, stacked);\n    return;\n  }\n  var newValue = customizer ? customizer(objValue, srcValue, key + '', object, source, stack) : undefined;\n  var isCommon = newValue === undefined;\n  if (isCommon) {\n    var isArr = (0,_isArray_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(srcValue),\n      isBuff = !isArr && (0,_isBuffer_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(srcValue),\n      isTyped = !isArr && !isBuff && (0,_isTypedArray_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(srcValue);\n    newValue = srcValue;\n    if (isArr || isBuff || isTyped) {\n      if ((0,_isArray_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(objValue)) {\n        newValue = objValue;\n      } else if ((0,_isArrayLikeObject_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(objValue)) {\n        newValue = (0,_copyArray_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(objValue);\n      } else if (isBuff) {\n        isCommon = false;\n        newValue = (0,_cloneBuffer_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(srcValue, true);\n      } else if (isTyped) {\n        isCommon = false;\n        newValue = (0,_cloneTypedArray_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(srcValue, true);\n      } else {\n        newValue = [];\n      }\n    } else if ((0,_isPlainObject_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(srcValue) || (0,_isArguments_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(srcValue)) {\n      newValue = objValue;\n      if ((0,_isArguments_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(objValue)) {\n        newValue = (0,_toPlainObject_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(objValue);\n      } else if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(objValue) || (0,_isFunction_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"])(objValue)) {\n        newValue = (0,_initCloneObject_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(srcValue);\n      }\n    } else {\n      isCommon = false;\n    }\n  }\n  if (isCommon) {\n    // Recursively merge objects and arrays (susceptible to call stack limits).\n    stack.set(srcValue, newValue);\n    mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n    stack['delete'](srcValue);\n  }\n  (0,_assignMergeValue_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key, newValue);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseMergeDeep);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseMergeDeep.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseRest.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseRest.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./identity.js */ \"../react-ui/node_modules/lodash-es/identity.js\");\n/* harmony import */ var _overRest_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_overRest.js */ \"../react-ui/node_modules/lodash-es/_overRest.js\");\n/* harmony import */ var _setToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_setToString.js */ \"../react-ui/node_modules/lodash-es/_setToString.js\");\n\n\n\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n  return (0,_setToString_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])((0,_overRest_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(func, start, _identity_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]), func + '');\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseRest);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseRest.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseSetToString.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseSetToString.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _constant_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constant.js */ \"../react-ui/node_modules/lodash-es/constant.js\");\n/* harmony import */ var _defineProperty_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_defineProperty.js */ \"../react-ui/node_modules/lodash-es/_defineProperty.js\");\n/* harmony import */ var _identity_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./identity.js */ \"../react-ui/node_modules/lodash-es/identity.js\");\n\n\n\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !_defineProperty_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] ? _identity_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : function (func, string) {\n  return (0,_defineProperty_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(func, 'toString', {\n    'configurable': true,\n    'enumerable': false,\n    'value': (0,_constant_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(string),\n    'writable': true\n  });\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseSetToString);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseSetToString.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseTimes.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseTimes.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n    result = Array(n);\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseTimes);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseTimes.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_baseUnary.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_baseUnary.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function (value) {\n    return func(value);\n  };\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseUnary);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_baseUnary.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_cacheHas.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_cacheHas.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n  return cache.has(key);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cacheHas);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_cacheHas.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_cloneArrayBuffer.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_cloneArrayBuffer.js ***!
  \***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Uint8Array_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Uint8Array.js */ \"../react-ui/node_modules/lodash-es/_Uint8Array.js\");\n\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n  new _Uint8Array_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](result).set(new _Uint8Array_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](arrayBuffer));\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cloneArrayBuffer);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_cloneArrayBuffer.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_cloneBuffer.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_cloneBuffer.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"../react-ui/node_modules/lodash-es/_root.js\");\n\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Buffer : undefined,\n  allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of  `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n  if (isDeep) {\n    return buffer.slice();\n  }\n  var length = buffer.length,\n    result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n  buffer.copy(result);\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cloneBuffer);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_cloneBuffer.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_cloneDataView.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_cloneDataView.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneArrayBuffer.js */ \"../react-ui/node_modules/lodash-es/_cloneArrayBuffer.js\");\n\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n  var buffer = isDeep ? (0,_cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(dataView.buffer) : dataView.buffer;\n  return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cloneDataView);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_cloneDataView.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_cloneRegExp.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_cloneRegExp.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n  var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n  result.lastIndex = regexp.lastIndex;\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cloneRegExp);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_cloneRegExp.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_cloneSymbol.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_cloneSymbol.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"../react-ui/node_modules/lodash-es/_Symbol.js\");\n\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].prototype : undefined,\n  symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n  return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cloneSymbol);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_cloneSymbol.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_cloneTypedArray.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_cloneTypedArray.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneArrayBuffer.js */ \"../react-ui/node_modules/lodash-es/_cloneArrayBuffer.js\");\n\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n  var buffer = isDeep ? (0,_cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(typedArray.buffer) : typedArray.buffer;\n  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cloneTypedArray);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_cloneTypedArray.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_copyArray.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_copyArray.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n  var index = -1,\n    length = source.length;\n  array || (array = Array(length));\n  while (++index < length) {\n    array[index] = source[index];\n  }\n  return array;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (copyArray);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_copyArray.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_copyObject.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_copyObject.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assignValue_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assignValue.js */ \"../react-ui/node_modules/lodash-es/_assignValue.js\");\n/* harmony import */ var _baseAssignValue_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseAssignValue.js */ \"../react-ui/node_modules/lodash-es/_baseAssignValue.js\");\n\n\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n  var index = -1,\n    length = props.length;\n  while (++index < length) {\n    var key = props[index];\n    var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;\n    if (newValue === undefined) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      (0,_baseAssignValue_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, key, newValue);\n    } else {\n      (0,_assignValue_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, key, newValue);\n    }\n  }\n  return object;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (copyObject);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_copyObject.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_copySymbols.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_copySymbols.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"../react-ui/node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _getSymbols_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getSymbols.js */ \"../react-ui/node_modules/lodash-es/_getSymbols.js\");\n\n\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n  return (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_getSymbols_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (copySymbols);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_copySymbols.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_copySymbolsIn.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_copySymbolsIn.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"../react-ui/node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getSymbolsIn.js */ \"../react-ui/node_modules/lodash-es/_getSymbolsIn.js\");\n\n\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n  return (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(source, (0,_getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(source), object);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (copySymbolsIn);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_copySymbolsIn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_coreJsData.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_coreJsData.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"../react-ui/node_modules/lodash-es/_root.js\");\n\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]['__core-js_shared__'];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (coreJsData);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_coreJsData.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_createAssigner.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_createAssigner.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseRest_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseRest.js */ \"../react-ui/node_modules/lodash-es/_baseRest.js\");\n/* harmony import */ var _isIterateeCall_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_isIterateeCall.js */ \"../react-ui/node_modules/lodash-es/_isIterateeCall.js\");\n\n\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n  return (0,_baseRest_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function (object, sources) {\n    var index = -1,\n      length = sources.length,\n      customizer = length > 1 ? sources[length - 1] : undefined,\n      guard = length > 2 ? sources[2] : undefined;\n    customizer = assigner.length > 3 && typeof customizer == 'function' ? (length--, customizer) : undefined;\n    if (guard && (0,_isIterateeCall_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(sources[0], sources[1], guard)) {\n      customizer = length < 3 ? undefined : customizer;\n      length = 1;\n    }\n    object = Object(object);\n    while (++index < length) {\n      var source = sources[index];\n      if (source) {\n        assigner(object, source, index, customizer);\n      }\n    }\n    return object;\n  });\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createAssigner);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_createAssigner.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_createBaseFor.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_createBaseFor.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n  return function (object, iteratee, keysFunc) {\n    var index = -1,\n      iterable = Object(object),\n      props = keysFunc(object),\n      length = props.length;\n    while (length--) {\n      var key = props[fromRight ? length : ++index];\n      if (iteratee(iterable[key], key, iterable) === false) {\n        break;\n      }\n    }\n    return object;\n  };\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createBaseFor);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_createBaseFor.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_defineProperty.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_defineProperty.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"../react-ui/node_modules/lodash-es/_getNative.js\");\n\nvar defineProperty = function () {\n  try {\n    var func = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}();\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (defineProperty);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_defineProperty.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_equalArrays.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_equalArrays.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _SetCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_SetCache.js */ \"../react-ui/node_modules/lodash-es/_SetCache.js\");\n/* harmony import */ var _arraySome_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_arraySome.js */ \"../react-ui/node_modules/lodash-es/_arraySome.js\");\n/* harmony import */ var _cacheHas_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_cacheHas.js */ \"../react-ui/node_modules/lodash-es/_cacheHas.js\");\n\n\n\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n  COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n    arrLength = array.length,\n    othLength = other.length;\n  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n    return false;\n  }\n  // Check that cyclic values are equal.\n  var arrStacked = stack.get(array);\n  var othStacked = stack.get(other);\n  if (arrStacked && othStacked) {\n    return arrStacked == other && othStacked == array;\n  }\n  var index = -1,\n    result = true,\n    seen = bitmask & COMPARE_UNORDERED_FLAG ? new _SetCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]() : undefined;\n  stack.set(array, other);\n  stack.set(other, array);\n\n  // Ignore non-index properties.\n  while (++index < arrLength) {\n    var arrValue = array[index],\n      othValue = other[index];\n    if (customizer) {\n      var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n    }\n    if (compared !== undefined) {\n      if (compared) {\n        continue;\n      }\n      result = false;\n      break;\n    }\n    // Recursively compare arrays (susceptible to call stack limits).\n    if (seen) {\n      if (!(0,_arraySome_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(other, function (othValue, othIndex) {\n        if (!(0,_cacheHas_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n          return seen.push(othIndex);\n        }\n      })) {\n        result = false;\n        break;\n      }\n    } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n      result = false;\n      break;\n    }\n  }\n  stack['delete'](array);\n  stack['delete'](other);\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (equalArrays);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_equalArrays.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_equalByTag.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_equalByTag.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"../react-ui/node_modules/lodash-es/_Symbol.js\");\n/* harmony import */ var _Uint8Array_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_Uint8Array.js */ \"../react-ui/node_modules/lodash-es/_Uint8Array.js\");\n/* harmony import */ var _eq_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./eq.js */ \"../react-ui/node_modules/lodash-es/eq.js\");\n/* harmony import */ var _equalArrays_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_equalArrays.js */ \"../react-ui/node_modules/lodash-es/_equalArrays.js\");\n/* harmony import */ var _mapToArray_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_mapToArray.js */ \"../react-ui/node_modules/lodash-es/_mapToArray.js\");\n/* harmony import */ var _setToArray_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_setToArray.js */ \"../react-ui/node_modules/lodash-es/_setToArray.js\");\n\n\n\n\n\n\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n  COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n  dateTag = '[object Date]',\n  errorTag = '[object Error]',\n  mapTag = '[object Map]',\n  numberTag = '[object Number]',\n  regexpTag = '[object RegExp]',\n  setTag = '[object Set]',\n  stringTag = '[object String]',\n  symbolTag = '[object Symbol]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n  dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].prototype : undefined,\n  symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n  switch (tag) {\n    case dataViewTag:\n      if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n        return false;\n      }\n      object = object.buffer;\n      other = other.buffer;\n    case arrayBufferTag:\n      if (object.byteLength != other.byteLength || !equalFunc(new _Uint8Array_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](object), new _Uint8Array_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"](other))) {\n        return false;\n      }\n      return true;\n    case boolTag:\n    case dateTag:\n    case numberTag:\n      // Coerce booleans to `1` or `0` and dates to milliseconds.\n      // Invalid dates are coerced to `NaN`.\n      return (0,_eq_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(+object, +other);\n    case errorTag:\n      return object.name == other.name && object.message == other.message;\n    case regexpTag:\n    case stringTag:\n      // Coerce regexes to strings and treat strings, primitives and objects,\n      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n      // for more details.\n      return object == other + '';\n    case mapTag:\n      var convert = _mapToArray_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n    case setTag:\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n      convert || (convert = _setToArray_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n      if (object.size != other.size && !isPartial) {\n        return false;\n      }\n      // Assume cyclic values are equal.\n      var stacked = stack.get(object);\n      if (stacked) {\n        return stacked == other;\n      }\n      bitmask |= COMPARE_UNORDERED_FLAG;\n\n      // Recursively compare objects (susceptible to call stack limits).\n      stack.set(object, other);\n      var result = (0,_equalArrays_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n      stack['delete'](object);\n      return result;\n    case symbolTag:\n      if (symbolValueOf) {\n        return symbolValueOf.call(object) == symbolValueOf.call(other);\n      }\n  }\n  return false;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (equalByTag);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_equalByTag.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_equalObjects.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_equalObjects.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getAllKeys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getAllKeys.js */ \"../react-ui/node_modules/lodash-es/_getAllKeys.js\");\n\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n    objProps = (0,_getAllKeys_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object),\n    objLength = objProps.length,\n    othProps = (0,_getAllKeys_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(other),\n    othLength = othProps.length;\n  if (objLength != othLength && !isPartial) {\n    return false;\n  }\n  var index = objLength;\n  while (index--) {\n    var key = objProps[index];\n    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n      return false;\n    }\n  }\n  // Check that cyclic values are equal.\n  var objStacked = stack.get(object);\n  var othStacked = stack.get(other);\n  if (objStacked && othStacked) {\n    return objStacked == other && othStacked == object;\n  }\n  var result = true;\n  stack.set(object, other);\n  stack.set(other, object);\n  var skipCtor = isPartial;\n  while (++index < objLength) {\n    key = objProps[index];\n    var objValue = object[key],\n      othValue = other[key];\n    if (customizer) {\n      var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n    }\n    // Recursively compare objects (susceptible to call stack limits).\n    if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n      result = false;\n      break;\n    }\n    skipCtor || (skipCtor = key == 'constructor');\n  }\n  if (result && !skipCtor) {\n    var objCtor = object.constructor,\n      othCtor = other.constructor;\n\n    // Non `Object` object instances with different constructors are not equal.\n    if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n      result = false;\n    }\n  }\n  stack['delete'](object);\n  stack['delete'](other);\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (equalObjects);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_equalObjects.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_freeGlobal.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_freeGlobal.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (freeGlobal);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_freeGlobal.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_getAllKeys.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_getAllKeys.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseGetAllKeys.js */ \"../react-ui/node_modules/lodash-es/_baseGetAllKeys.js\");\n/* harmony import */ var _getSymbols_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getSymbols.js */ \"../react-ui/node_modules/lodash-es/_getSymbols.js\");\n/* harmony import */ var _keys_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keys.js */ \"../react-ui/node_modules/lodash-es/keys.js\");\n\n\n\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n  return (0,_baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, _keys_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _getSymbols_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getAllKeys);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_getAllKeys.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_getAllKeysIn.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_getAllKeysIn.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseGetAllKeys.js */ \"../react-ui/node_modules/lodash-es/_baseGetAllKeys.js\");\n/* harmony import */ var _getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getSymbolsIn.js */ \"../react-ui/node_modules/lodash-es/_getSymbolsIn.js\");\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./keysIn.js */ \"../react-ui/node_modules/lodash-es/keysIn.js\");\n\n\n\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n  return (0,_baseGetAllKeys_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, _keysIn_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _getSymbolsIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getAllKeysIn);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_getAllKeysIn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_getMapData.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_getMapData.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _isKeyable_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_isKeyable.js */ \"../react-ui/node_modules/lodash-es/_isKeyable.js\");\n\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return (0,_isKeyable_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getMapData);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_getMapData.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_getNative.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_getNative.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseIsNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseIsNative.js */ \"../react-ui/node_modules/lodash-es/_baseIsNative.js\");\n/* harmony import */ var _getValue_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getValue.js */ \"../react-ui/node_modules/lodash-es/_getValue.js\");\n\n\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = (0,_getValue_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, key);\n  return (0,_baseIsNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) ? value : undefined;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getNative);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_getNative.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_getPrototype.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_getPrototype.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_overArg.js */ \"../react-ui/node_modules/lodash-es/_overArg.js\");\n\n\n/** Built-in value references. */\nvar getPrototype = (0,_overArg_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object.getPrototypeOf, Object);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getPrototype);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_getPrototype.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_getRawTag.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_getRawTag.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ \"../react-ui/node_modules/lodash-es/_Symbol.js\");\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n    tag = value[symToStringTag];\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getRawTag);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_getRawTag.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_getSymbols.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_getSymbols.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _arrayFilter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arrayFilter.js */ \"../react-ui/node_modules/lodash-es/_arrayFilter.js\");\n/* harmony import */ var _stubArray_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stubArray.js */ \"../react-ui/node_modules/lodash-es/stubArray.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? _stubArray_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] : function (object) {\n  if (object == null) {\n    return [];\n  }\n  object = Object(object);\n  return (0,_arrayFilter_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(nativeGetSymbols(object), function (symbol) {\n    return propertyIsEnumerable.call(object, symbol);\n  });\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getSymbols);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_getSymbols.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_getSymbolsIn.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_getSymbolsIn.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _arrayPush_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arrayPush.js */ \"../react-ui/node_modules/lodash-es/_arrayPush.js\");\n/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getPrototype.js */ \"../react-ui/node_modules/lodash-es/_getPrototype.js\");\n/* harmony import */ var _getSymbols_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_getSymbols.js */ \"../react-ui/node_modules/lodash-es/_getSymbols.js\");\n/* harmony import */ var _stubArray_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./stubArray.js */ \"../react-ui/node_modules/lodash-es/stubArray.js\");\n\n\n\n\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? _stubArray_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"] : function (object) {\n  var result = [];\n  while (object) {\n    (0,_arrayPush_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(result, (0,_getSymbols_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object));\n    object = (0,_getPrototype_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object);\n  }\n  return result;\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getSymbolsIn);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_getSymbolsIn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_getTag.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_getTag.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _DataView_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_DataView.js */ \"../react-ui/node_modules/lodash-es/_DataView.js\");\n/* harmony import */ var _Map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_Map.js */ \"../react-ui/node_modules/lodash-es/_Map.js\");\n/* harmony import */ var _Promise_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_Promise.js */ \"../react-ui/node_modules/lodash-es/_Promise.js\");\n/* harmony import */ var _Set_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_Set.js */ \"../react-ui/node_modules/lodash-es/_Set.js\");\n/* harmony import */ var _WeakMap_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_WeakMap.js */ \"../react-ui/node_modules/lodash-es/_WeakMap.js\");\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_baseGetTag.js */ \"../react-ui/node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _toSource_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_toSource.js */ \"../react-ui/node_modules/lodash-es/_toSource.js\");\n\n\n\n\n\n\n\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n  objectTag = '[object Object]',\n  promiseTag = '[object Promise]',\n  setTag = '[object Set]',\n  weakMapTag = '[object WeakMap]';\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(_DataView_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]),\n  mapCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(_Map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]),\n  promiseCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(_Promise_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n  setCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(_Set_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]),\n  weakMapCtorString = (0,_toSource_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(_WeakMap_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = _baseGetTag_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"];\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif (_DataView_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && getTag(new _DataView_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](new ArrayBuffer(1))) != dataViewTag || _Map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] && getTag(new _Map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]()) != mapTag || _Promise_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] && getTag(_Promise_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].resolve()) != promiseTag || _Set_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"] && getTag(new _Set_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"]()) != setTag || _WeakMap_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"] && getTag(new _WeakMap_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]()) != weakMapTag) {\n  getTag = function (value) {\n    var result = (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value),\n      Ctor = result == objectTag ? value.constructor : undefined,\n      ctorString = Ctor ? (0,_toSource_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(Ctor) : '';\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString:\n          return dataViewTag;\n        case mapCtorString:\n          return mapTag;\n        case promiseCtorString:\n          return promiseTag;\n        case setCtorString:\n          return setTag;\n        case weakMapCtorString:\n          return weakMapTag;\n      }\n    }\n    return result;\n  };\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getTag);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_getTag.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_getValue.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_getValue.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getValue);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_getValue.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_hashClear.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_hashClear.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"../react-ui/node_modules/lodash-es/_nativeCreate.js\");\n\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? (0,_nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(null) : {};\n  this.size = 0;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (hashClear);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_hashClear.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_hashDelete.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_hashDelete.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (hashDelete);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_hashDelete.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_hashGet.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_hashGet.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"../react-ui/node_modules/lodash-es/_nativeCreate.js\");\n\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (_nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (hashGet);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_hashGet.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_hashHas.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_hashHas.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"../react-ui/node_modules/lodash-es/_nativeCreate.js\");\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (hashHas);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_hashHas.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_hashSet.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_hashSet.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_nativeCreate.js */ \"../react-ui/node_modules/lodash-es/_nativeCreate.js\");\n\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = _nativeCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && value === undefined ? HASH_UNDEFINED : value;\n  return this;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (hashSet);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_hashSet.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_initCloneArray.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_initCloneArray.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n  var length = array.length,\n    result = new array.constructor(length);\n\n  // Add properties assigned by `RegExp#exec`.\n  if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n    result.index = array.index;\n    result.input = array.input;\n  }\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initCloneArray);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_initCloneArray.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_initCloneByTag.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_initCloneByTag.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_cloneArrayBuffer.js */ \"../react-ui/node_modules/lodash-es/_cloneArrayBuffer.js\");\n/* harmony import */ var _cloneDataView_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_cloneDataView.js */ \"../react-ui/node_modules/lodash-es/_cloneDataView.js\");\n/* harmony import */ var _cloneRegExp_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_cloneRegExp.js */ \"../react-ui/node_modules/lodash-es/_cloneRegExp.js\");\n/* harmony import */ var _cloneSymbol_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_cloneSymbol.js */ \"../react-ui/node_modules/lodash-es/_cloneSymbol.js\");\n/* harmony import */ var _cloneTypedArray_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_cloneTypedArray.js */ \"../react-ui/node_modules/lodash-es/_cloneTypedArray.js\");\n\n\n\n\n\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n  dateTag = '[object Date]',\n  mapTag = '[object Map]',\n  numberTag = '[object Number]',\n  regexpTag = '[object RegExp]',\n  setTag = '[object Set]',\n  stringTag = '[object String]',\n  symbolTag = '[object Symbol]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n  dataViewTag = '[object DataView]',\n  float32Tag = '[object Float32Array]',\n  float64Tag = '[object Float64Array]',\n  int8Tag = '[object Int8Array]',\n  int16Tag = '[object Int16Array]',\n  int32Tag = '[object Int32Array]',\n  uint8Tag = '[object Uint8Array]',\n  uint8ClampedTag = '[object Uint8ClampedArray]',\n  uint16Tag = '[object Uint16Array]',\n  uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n  var Ctor = object.constructor;\n  switch (tag) {\n    case arrayBufferTag:\n      return (0,_cloneArrayBuffer_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object);\n    case boolTag:\n    case dateTag:\n      return new Ctor(+object);\n    case dataViewTag:\n      return (0,_cloneDataView_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object, isDeep);\n    case float32Tag:\n    case float64Tag:\n    case int8Tag:\n    case int16Tag:\n    case int32Tag:\n    case uint8Tag:\n    case uint8ClampedTag:\n    case uint16Tag:\n    case uint32Tag:\n      return (0,_cloneTypedArray_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(object, isDeep);\n    case mapTag:\n      return new Ctor();\n    case numberTag:\n    case stringTag:\n      return new Ctor(object);\n    case regexpTag:\n      return (0,_cloneRegExp_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object);\n    case setTag:\n      return new Ctor();\n    case symbolTag:\n      return (0,_cloneSymbol_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(object);\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initCloneByTag);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_initCloneByTag.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_initCloneObject.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_initCloneObject.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseCreate.js */ \"../react-ui/node_modules/lodash-es/_baseCreate.js\");\n/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getPrototype.js */ \"../react-ui/node_modules/lodash-es/_getPrototype.js\");\n/* harmony import */ var _isPrototype_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isPrototype.js */ \"../react-ui/node_modules/lodash-es/_isPrototype.js\");\n\n\n\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n  return typeof object.constructor == 'function' && !(0,_isPrototype_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object) ? (0,_baseCreate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_getPrototype_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object)) : {};\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (initCloneObject);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_initCloneObject.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_isIndex.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_isIndex.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n  return !!length && (type == 'number' || type != 'symbol' && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isIndex);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_isIndex.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_isIterateeCall.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_isIterateeCall.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _eq_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./eq.js */ \"../react-ui/node_modules/lodash-es/eq.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isArrayLike.js */ \"../react-ui/node_modules/lodash-es/isArrayLike.js\");\n/* harmony import */ var _isIndex_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_isIndex.js */ \"../react-ui/node_modules/lodash-es/_isIndex.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isObject.js */ \"../react-ui/node_modules/lodash-es/isObject.js\");\n\n\n\n\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n *  else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n  if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == 'number' ? (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object) && (0,_isIndex_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(index, object.length) : type == 'string' && index in object) {\n    return (0,_eq_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object[index], value);\n  }\n  return false;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isIterateeCall);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_isIterateeCall.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_isKeyable.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_isKeyable.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isKeyable);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_isKeyable.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_isMasked.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_isMasked.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _coreJsData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_coreJsData.js */ \"../react-ui/node_modules/lodash-es/_coreJsData.js\");\n\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = function () {\n  var uid = /[^.]+$/.exec(_coreJsData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] && _coreJsData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].keys && _coreJsData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].keys.IE_PROTO || '');\n  return uid ? 'Symbol(src)_1.' + uid : '';\n}();\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && maskSrcKey in func;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isMasked);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_isMasked.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_isPrototype.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_isPrototype.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n    proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n  return value === proto;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isPrototype);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_isPrototype.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_listCacheClear.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_listCacheClear.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (listCacheClear);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_listCacheClear.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_listCacheDelete.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_listCacheDelete.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"../react-ui/node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n    index = (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data, key);\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (listCacheDelete);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_listCacheDelete.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_listCacheGet.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_listCacheGet.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"../react-ui/node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n    index = (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data, key);\n  return index < 0 ? undefined : data[index][1];\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (listCacheGet);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_listCacheGet.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_listCacheHas.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_listCacheHas.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"../react-ui/node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this.__data__, key) > -1;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (listCacheHas);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_listCacheHas.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_listCacheSet.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_listCacheSet.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_assocIndexOf.js */ \"../react-ui/node_modules/lodash-es/_assocIndexOf.js\");\n\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n    index = (0,_assocIndexOf_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(data, key);\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (listCacheSet);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_listCacheSet.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_mapCacheClear.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_mapCacheClear.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _Hash_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Hash.js */ \"../react-ui/node_modules/lodash-es/_Hash.js\");\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_ListCache.js */ \"../react-ui/node_modules/lodash-es/_ListCache.js\");\n/* harmony import */ var _Map_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_Map.js */ \"../react-ui/node_modules/lodash-es/_Map.js\");\n\n\n\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new _Hash_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"](),\n    'map': new (_Map_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] || _ListCache_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(),\n    'string': new _Hash_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]()\n  };\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mapCacheClear);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_mapCacheClear.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_mapCacheDelete.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_mapCacheDelete.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"../react-ui/node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mapCacheDelete);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_mapCacheDelete.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_mapCacheGet.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_mapCacheGet.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"../react-ui/node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key).get(key);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mapCacheGet);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_mapCacheGet.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_mapCacheHas.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_mapCacheHas.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"../react-ui/node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key).has(key);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mapCacheHas);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_mapCacheHas.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_mapCacheSet.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_mapCacheSet.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getMapData_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getMapData.js */ \"../react-ui/node_modules/lodash-es/_getMapData.js\");\n\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = (0,_getMapData_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(this, key),\n    size = data.size;\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mapCacheSet);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_mapCacheSet.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_mapToArray.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_mapToArray.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n  var index = -1,\n    result = Array(map.size);\n  map.forEach(function (value, key) {\n    result[++index] = [key, value];\n  });\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (mapToArray);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_mapToArray.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_nativeCreate.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_nativeCreate.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _getNative_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_getNative.js */ \"../react-ui/node_modules/lodash-es/_getNative.js\");\n\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = (0,_getNative_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object, 'create');\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (nativeCreate);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_nativeCreate.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_nativeKeys.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_nativeKeys.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_overArg.js */ \"../react-ui/node_modules/lodash-es/_overArg.js\");\n\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = (0,_overArg_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(Object.keys, Object);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (nativeKeys);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_nativeKeys.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_nativeKeysIn.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_nativeKeysIn.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n  var result = [];\n  if (object != null) {\n    for (var key in Object(object)) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (nativeKeysIn);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_nativeKeysIn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_nodeUtil.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_nodeUtil.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_freeGlobal.js */ \"../react-ui/node_modules/lodash-es/_freeGlobal.js\");\n\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = function () {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}();\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (nodeUtil);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_nodeUtil.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_objectToString.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_objectToString.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (objectToString);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_objectToString.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_overArg.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_overArg.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function (arg) {\n    return func(transform(arg));\n  };\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (overArg);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_overArg.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_overRest.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_overRest.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _apply_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_apply.js */ \"../react-ui/node_modules/lodash-es/_apply.js\");\n\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === undefined ? func.length - 1 : start, 0);\n  return function () {\n    var args = arguments,\n      index = -1,\n      length = nativeMax(args.length - start, 0),\n      array = Array(length);\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return (0,_apply_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(func, this, otherArgs);\n  };\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (overRest);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_overRest.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_root.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_root.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_freeGlobal.js */ \"../react-ui/node_modules/lodash-es/_freeGlobal.js\");\n\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] || freeSelf || Function('return this')();\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (root);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_root.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_safeGet.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_safeGet.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n  if (key === 'constructor' && typeof object[key] === 'function') {\n    return;\n  }\n  if (key == '__proto__') {\n    return;\n  }\n  return object[key];\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (safeGet);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_safeGet.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_setCacheAdd.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_setCacheAdd.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n  this.__data__.set(value, HASH_UNDEFINED);\n  return this;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setCacheAdd);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_setCacheAdd.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_setCacheHas.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_setCacheHas.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n  return this.__data__.has(value);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setCacheHas);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_setCacheHas.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_setToArray.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_setToArray.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n  var index = -1,\n    result = Array(set.size);\n  set.forEach(function (value) {\n    result[++index] = value;\n  });\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setToArray);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_setToArray.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_setToString.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_setToString.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseSetToString_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseSetToString.js */ \"../react-ui/node_modules/lodash-es/_baseSetToString.js\");\n/* harmony import */ var _shortOut_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_shortOut.js */ \"../react-ui/node_modules/lodash-es/_shortOut.js\");\n\n\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = (0,_shortOut_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_baseSetToString_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (setToString);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_setToString.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_shortOut.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_shortOut.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n  HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n  var count = 0,\n    lastCalled = 0;\n  return function () {\n    var stamp = nativeNow(),\n      remaining = HOT_SPAN - (stamp - lastCalled);\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(undefined, arguments);\n  };\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (shortOut);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_shortOut.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_stackClear.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_stackClear.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ListCache.js */ \"../react-ui/node_modules/lodash-es/_ListCache.js\");\n\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new _ListCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]();\n  this.size = 0;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stackClear);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_stackClear.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_stackDelete.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_stackDelete.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n    result = data['delete'](key);\n  this.size = data.size;\n  return result;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stackDelete);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_stackDelete.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_stackGet.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_stackGet.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stackGet);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_stackGet.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_stackHas.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_stackHas.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stackHas);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_stackHas.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_stackSet.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_stackSet.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _ListCache_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_ListCache.js */ \"../react-ui/node_modules/lodash-es/_ListCache.js\");\n/* harmony import */ var _Map_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_Map.js */ \"../react-ui/node_modules/lodash-es/_Map.js\");\n/* harmony import */ var _MapCache_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_MapCache.js */ \"../react-ui/node_modules/lodash-es/_MapCache.js\");\n\n\n\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof _ListCache_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]) {\n    var pairs = data.__data__;\n    if (!_Map_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] || pairs.length < LARGE_ARRAY_SIZE - 1) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new _MapCache_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"](pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stackSet);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_stackSet.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/_toSource.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/_toSource.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return func + '';\n    } catch (e) {}\n  }\n  return '';\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (toSource);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/_toSource.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/cloneDeep.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/cloneDeep.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseClone_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseClone.js */ \"../react-ui/node_modules/lodash-es/_baseClone.js\");\n\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n  CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n  return (0,_baseClone_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (cloneDeep);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/cloneDeep.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/constant.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/constant.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n  return function () {\n    return value;\n  };\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (constant);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/constant.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/eq.js":
/*!************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/eq.js ***!
  \************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || value !== value && other !== other;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (eq);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/eq.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/identity.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/identity.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (identity);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/identity.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/isArguments.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/isArguments.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseIsArguments_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseIsArguments.js */ \"../react-ui/node_modules/lodash-es/_baseIsArguments.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isObjectLike.js */ \"../react-ui/node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = (0,_baseIsArguments_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(function () {\n  return arguments;\n}()) ? _baseIsArguments_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] : function (value) {\n  return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isArguments);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/isArguments.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/isArray.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/isArray.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isArray);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/isArray.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/isArrayLike.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/isArrayLike.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _isFunction_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isFunction.js */ \"../react-ui/node_modules/lodash-es/isFunction.js\");\n/* harmony import */ var _isLength_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isLength.js */ \"../react-ui/node_modules/lodash-es/isLength.js\");\n\n\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && (0,_isLength_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value.length) && !(0,_isFunction_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isArrayLike);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/isArrayLike.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/isArrayLikeObject.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/isArrayLikeObject.js ***!
  \***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isArrayLike.js */ \"../react-ui/node_modules/lodash-es/isArrayLike.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isObjectLike.js */ \"../react-ui/node_modules/lodash-es/isObjectLike.js\");\n\n\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n *  else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n  return (0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value) && (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isArrayLikeObject);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/isArrayLikeObject.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/isBuffer.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/isBuffer.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ \"../react-ui/node_modules/lodash-es/_root.js\");\n/* harmony import */ var _stubFalse_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stubFalse.js */ \"../react-ui/node_modules/lodash-es/stubFalse.js\");\n\n\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? _root_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || _stubFalse_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isBuffer);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/isBuffer.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/isEqual.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/isEqual.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseIsEqual_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseIsEqual.js */ \"../react-ui/node_modules/lodash-es/_baseIsEqual.js\");\n\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n  return (0,_baseIsEqual_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, other);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isEqual);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/isEqual.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/isFunction.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/isFunction.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseGetTag.js */ \"../react-ui/node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isObject.js */ \"../react-ui/node_modules/lodash-es/isObject.js\");\n\n\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n  funcTag = '[object Function]',\n  genTag = '[object GeneratorFunction]',\n  proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!(0,_isObject_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isFunction);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/isFunction.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/isLength.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/isLength.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isLength);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/isLength.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/isMap.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/isMap.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseIsMap_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseIsMap.js */ \"../react-ui/node_modules/lodash-es/_baseIsMap.js\");\n/* harmony import */ var _baseUnary_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseUnary.js */ \"../react-ui/node_modules/lodash-es/_baseUnary.js\");\n/* harmony import */ var _nodeUtil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_nodeUtil.js */ \"../react-ui/node_modules/lodash-es/_nodeUtil.js\");\n\n\n\n\n/* Node.js helper references. */\nvar nodeIsMap = _nodeUtil_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] && _nodeUtil_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? (0,_baseUnary_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nodeIsMap) : _baseIsMap_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isMap);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/isMap.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/isObject.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/isObject.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isObject);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/isObject.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/isObjectLike.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/isObjectLike.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isObjectLike);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/isObjectLike.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/isPlainObject.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/isPlainObject.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseGetTag.js */ \"../react-ui/node_modules/lodash-es/_baseGetTag.js\");\n/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getPrototype.js */ \"../react-ui/node_modules/lodash-es/_getPrototype.js\");\n/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isObjectLike.js */ \"../react-ui/node_modules/lodash-es/isObjectLike.js\");\n\n\n\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n  objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n  if (!(0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(value) || (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value) != objectTag) {\n    return false;\n  }\n  var proto = (0,_getPrototype_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value);\n  if (proto === null) {\n    return true;\n  }\n  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n  return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isPlainObject);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/isPlainObject.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/isSet.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/isSet.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseIsSet_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseIsSet.js */ \"../react-ui/node_modules/lodash-es/_baseIsSet.js\");\n/* harmony import */ var _baseUnary_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseUnary.js */ \"../react-ui/node_modules/lodash-es/_baseUnary.js\");\n/* harmony import */ var _nodeUtil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_nodeUtil.js */ \"../react-ui/node_modules/lodash-es/_nodeUtil.js\");\n\n\n\n\n/* Node.js helper references. */\nvar nodeIsSet = _nodeUtil_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] && _nodeUtil_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? (0,_baseUnary_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nodeIsSet) : _baseIsSet_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isSet);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/isSet.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/isTypedArray.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/isTypedArray.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseIsTypedArray_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseIsTypedArray.js */ \"../react-ui/node_modules/lodash-es/_baseIsTypedArray.js\");\n/* harmony import */ var _baseUnary_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseUnary.js */ \"../react-ui/node_modules/lodash-es/_baseUnary.js\");\n/* harmony import */ var _nodeUtil_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_nodeUtil.js */ \"../react-ui/node_modules/lodash-es/_nodeUtil.js\");\n\n\n\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = _nodeUtil_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] && _nodeUtil_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? (0,_baseUnary_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nodeIsTypedArray) : _baseIsTypedArray_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isTypedArray);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/isTypedArray.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/keys.js":
/*!**************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/keys.js ***!
  \**************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arrayLikeKeys.js */ \"../react-ui/node_modules/lodash-es/_arrayLikeKeys.js\");\n/* harmony import */ var _baseKeys_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseKeys.js */ \"../react-ui/node_modules/lodash-es/_baseKeys.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isArrayLike.js */ \"../react-ui/node_modules/lodash-es/isArrayLike.js\");\n\n\n\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object) ? (0,_arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object) : (0,_baseKeys_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (keys);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/keys.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/keysIn.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/keysIn.js ***!
  \****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_arrayLikeKeys.js */ \"../react-ui/node_modules/lodash-es/_arrayLikeKeys.js\");\n/* harmony import */ var _baseKeysIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseKeysIn.js */ \"../react-ui/node_modules/lodash-es/_baseKeysIn.js\");\n/* harmony import */ var _isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isArrayLike.js */ \"../react-ui/node_modules/lodash-es/isArrayLike.js\");\n\n\n\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n  return (0,_isArrayLike_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(object) ? (0,_arrayLikeKeys_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, true) : (0,_baseKeysIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(object);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (keysIn);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/keysIn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/merge.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/merge.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _baseMerge_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_baseMerge.js */ \"../react-ui/node_modules/lodash-es/_baseMerge.js\");\n/* harmony import */ var _createAssigner_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_createAssigner.js */ \"../react-ui/node_modules/lodash-es/_createAssigner.js\");\n\n\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n *   'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n *   'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = (0,_createAssigner_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(function (object, source, srcIndex) {\n  (0,_baseMerge_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(object, source, srcIndex);\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (merge);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/merge.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/stubArray.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/stubArray.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n  return [];\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stubArray);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/stubArray.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/stubFalse.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/stubFalse.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stubFalse);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/stubFalse.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash-es/toPlainObject.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/lodash-es/toPlainObject.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _copyObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_copyObject.js */ \"../react-ui/node_modules/lodash-es/_copyObject.js\");\n/* harmony import */ var _keysIn_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keysIn.js */ \"../react-ui/node_modules/lodash-es/keysIn.js\");\n\n\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n  return (0,_copyObject_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(value, (0,_keysIn_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value));\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (toPlainObject);\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash-es/toPlainObject.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash.clonedeep/index.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/lodash.clonedeep/index.js ***!
  \**********************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("{/* module decorator */ module = __webpack_require__.nmd(module);\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n  arrayTag = '[object Array]',\n  boolTag = '[object Boolean]',\n  dateTag = '[object Date]',\n  errorTag = '[object Error]',\n  funcTag = '[object Function]',\n  genTag = '[object GeneratorFunction]',\n  mapTag = '[object Map]',\n  numberTag = '[object Number]',\n  objectTag = '[object Object]',\n  promiseTag = '[object Promise]',\n  regexpTag = '[object RegExp]',\n  setTag = '[object Set]',\n  stringTag = '[object String]',\n  symbolTag = '[object Symbol]',\n  weakMapTag = '[object WeakMap]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n  dataViewTag = '[object DataView]',\n  float32Tag = '[object Float32Array]',\n  float64Tag = '[object Float64Array]',\n  int8Tag = '[object Int8Array]',\n  int16Tag = '[object Int16Array]',\n  int32Tag = '[object Int32Array]',\n  uint8Tag = '[object Uint8Array]',\n  uint8ClampedTag = '[object Uint8ClampedArray]',\n  uint16Tag = '[object Uint16Array]',\n  uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] = cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = cloneableTags[boolTag] = cloneableTags[dateTag] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag] = cloneableTags[numberTag] = cloneableTags[objectTag] = cloneableTags[regexpTag] = cloneableTags[setTag] = cloneableTags[stringTag] = cloneableTags[symbolTag] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports =  true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && \"object\" == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n  // Don't return `map.set` because it's not chainable in IE 11.\n  map.set(pair[0], pair[1]);\n  return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n  // Don't return `set.add` because it's not chainable in IE 11.\n  set.add(value);\n  return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n  var index = -1,\n    length = array ? array.length : 0;\n  while (++index < length) {\n    if (iteratee(array[index], index, array) === false) {\n      break;\n    }\n  }\n  return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n  var index = -1,\n    length = values.length,\n    offset = array.length;\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n *  the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n  var index = -1,\n    length = array ? array.length : 0;\n  if (initAccum && length) {\n    accumulator = array[++index];\n  }\n  while (++index < length) {\n    accumulator = iteratee(accumulator, array[index], index, array);\n  }\n  return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n    result = Array(n);\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n  // Many host objects are `Object` objects that can coerce to strings\n  // despite having improperly defined `toString` methods.\n  var result = false;\n  if (value != null && typeof value.toString != 'function') {\n    try {\n      result = !!(value + '');\n    } catch (e) {}\n  }\n  return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n  var index = -1,\n    result = Array(map.size);\n  map.forEach(function (value, key) {\n    result[++index] = [key, value];\n  });\n  return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function (arg) {\n    return func(transform(arg));\n  };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n  var index = -1,\n    result = Array(set.size);\n  set.forEach(function (value) {\n    result[++index] = value;\n  });\n  return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n  funcProto = Function.prototype,\n  objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = function () {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? 'Symbol(src)_1.' + uid : '';\n}();\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n  Symbol = root.Symbol,\n  Uint8Array = root.Uint8Array,\n  getPrototype = overArg(Object.getPrototypeOf, Object),\n  objectCreate = Object.create,\n  propertyIsEnumerable = objectProto.propertyIsEnumerable,\n  splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n  nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n  nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n  Map = getNative(root, 'Map'),\n  Promise = getNative(root, 'Promise'),\n  Set = getNative(root, 'Set'),\n  WeakMap = getNative(root, 'WeakMap'),\n  nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n  mapCtorString = toSource(Map),\n  promiseCtorString = toSource(Promise),\n  setCtorString = toSource(Set),\n  weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n  symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n    length = entries ? entries.length : 0;\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;\n  return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n    length = entries ? entries.length : 0;\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n    index = assocIndexOf(data, key);\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n    index = assocIndexOf(data, key);\n  return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n    index = assocIndexOf(data, key);\n  if (index < 0) {\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n    length = entries ? entries.length : 0;\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.__data__ = {\n    'hash': new Hash(),\n    'map': new (Map || ListCache)(),\n    'string': new Hash()\n  };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  getMapData(this, key).set(key, value);\n  return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache();\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var cache = this.__data__;\n  if (cache instanceof ListCache) {\n    var pairs = cache.__data__;\n    if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {\n      pairs.push([key, value]);\n      return this;\n    }\n    cache = this.__data__ = new MapCache(pairs);\n  }\n  cache.set(key, value);\n  return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n  // Safari 9 makes `arguments.length` enumerable in strict mode.\n  var result = isArray(value) || isArguments(value) ? baseTimes(value.length, String) : [];\n  var length = result.length,\n    skipIndexes = !!length;\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || value === undefined && !(key in object)) {\n    object[key] = value;\n  }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n  return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n  var result;\n  if (customizer) {\n    result = object ? customizer(value, key, object, stack) : customizer(value);\n  }\n  if (result !== undefined) {\n    return result;\n  }\n  if (!isObject(value)) {\n    return value;\n  }\n  var isArr = isArray(value);\n  if (isArr) {\n    result = initCloneArray(value);\n    if (!isDeep) {\n      return copyArray(value, result);\n    }\n  } else {\n    var tag = getTag(value),\n      isFunc = tag == funcTag || tag == genTag;\n    if (isBuffer(value)) {\n      return cloneBuffer(value, isDeep);\n    }\n    if (tag == objectTag || tag == argsTag || isFunc && !object) {\n      if (isHostObject(value)) {\n        return object ? value : {};\n      }\n      result = initCloneObject(isFunc ? {} : value);\n      if (!isDeep) {\n        return copySymbols(value, baseAssign(result, value));\n      }\n    } else {\n      if (!cloneableTags[tag]) {\n        return object ? value : {};\n      }\n      result = initCloneByTag(value, tag, baseClone, isDeep);\n    }\n  }\n  // Check for circular references and return its corresponding clone.\n  stack || (stack = new Stack());\n  var stacked = stack.get(value);\n  if (stacked) {\n    return stacked;\n  }\n  stack.set(value, result);\n  if (!isArr) {\n    var props = isFull ? getAllKeys(value) : keys(value);\n  }\n  arrayEach(props || value, function (subValue, key) {\n    if (props) {\n      key = subValue;\n      subValue = value[key];\n    }\n    // Recursively populate clone (susceptible to call stack limits).\n    assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n  });\n  return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n  return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) || isHostObject(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * Creates a clone of  `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n  if (isDeep) {\n    return buffer.slice();\n  }\n  var result = new buffer.constructor(buffer.length);\n  buffer.copy(result);\n  return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n  new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n  return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n  return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n  var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n  return arrayReduce(array, addMapEntry, new map.constructor());\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n  var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n  result.lastIndex = regexp.lastIndex;\n  return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n  var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n  return arrayReduce(array, addSetEntry, new set.constructor());\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n  return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n  var index = -1,\n    length = source.length;\n  array || (array = Array(length));\n  while (++index < length) {\n    array[index] = source[index];\n  }\n  return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  object || (object = {});\n  var index = -1,\n    length = props.length;\n  while (++index < length) {\n    var key = props[index];\n    var newValue = customizer ? customizer(object[key], source[key], key, object, source) : undefined;\n    assignValue(object, key, newValue === undefined ? source[key] : newValue);\n  }\n  return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n  return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n  return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif (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) {\n  getTag = function (value) {\n    var result = objectToString.call(value),\n      Ctor = result == objectTag ? value.constructor : undefined,\n      ctorString = Ctor ? toSource(Ctor) : undefined;\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString:\n          return dataViewTag;\n        case mapCtorString:\n          return mapTag;\n        case promiseCtorString:\n          return promiseTag;\n        case setCtorString:\n          return setTag;\n        case weakMapCtorString:\n          return weakMapTag;\n      }\n    }\n    return result;\n  };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n  var length = array.length,\n    result = array.constructor(length);\n\n  // Add properties assigned by `RegExp#exec`.\n  if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n    result.index = array.index;\n    result.input = array.input;\n  }\n  return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n  return typeof object.constructor == 'function' && !isPrototype(object) ? baseCreate(getPrototype(object)) : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n  var Ctor = object.constructor;\n  switch (tag) {\n    case arrayBufferTag:\n      return cloneArrayBuffer(object);\n    case boolTag:\n    case dateTag:\n      return new Ctor(+object);\n    case dataViewTag:\n      return cloneDataView(object, isDeep);\n    case float32Tag:\n    case float64Tag:\n    case int8Tag:\n    case int16Tag:\n    case int32Tag:\n    case uint8Tag:\n    case uint8ClampedTag:\n    case uint16Tag:\n    case uint32Tag:\n      return cloneTypedArray(object, isDeep);\n    case mapTag:\n      return cloneMap(object, isDeep, cloneFunc);\n    case numberTag:\n    case stringTag:\n      return new Ctor(object);\n    case regexpTag:\n      return cloneRegExp(object);\n    case setTag:\n      return cloneSet(object, isDeep, cloneFunc);\n    case symbolTag:\n      return cloneSymbol(object);\n  }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  length = length == null ? MAX_SAFE_INTEGER : length;\n  return !!length && (typeof value == 'number' || reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && maskSrcKey in func;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n    proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n  return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return func + '';\n    } catch (e) {}\n  }\n  return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n  return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || value !== value && other !== other;\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n  // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n  return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') && (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n *  else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n  return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 8-9 which returns 'object' for typed array and other constructors.\n  var tag = isObject(value) ? objectToString.call(value) : '';\n  return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n  return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\nmodule.exports = cloneDeep;\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash.clonedeep/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/lodash.isequal/index.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/lodash.isequal/index.js ***!
  \********************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("{/* module decorator */ module = __webpack_require__.nmd(module);\n/**\n * Lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors <https://js.foundation/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n  COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n  arrayTag = '[object Array]',\n  asyncTag = '[object AsyncFunction]',\n  boolTag = '[object Boolean]',\n  dateTag = '[object Date]',\n  errorTag = '[object Error]',\n  funcTag = '[object Function]',\n  genTag = '[object GeneratorFunction]',\n  mapTag = '[object Map]',\n  numberTag = '[object Number]',\n  nullTag = '[object Null]',\n  objectTag = '[object Object]',\n  promiseTag = '[object Promise]',\n  proxyTag = '[object Proxy]',\n  regexpTag = '[object RegExp]',\n  setTag = '[object Set]',\n  stringTag = '[object String]',\n  symbolTag = '[object Symbol]',\n  undefinedTag = '[object Undefined]',\n  weakMapTag = '[object WeakMap]';\nvar arrayBufferTag = '[object ArrayBuffer]',\n  dataViewTag = '[object DataView]',\n  float32Tag = '[object Float32Array]',\n  float64Tag = '[object Float64Array]',\n  int8Tag = '[object Int8Array]',\n  int16Tag = '[object Int16Array]',\n  int32Tag = '[object Int32Array]',\n  uint8Tag = '[object Uint8Array]',\n  uint8ClampedTag = '[object Uint8ClampedArray]',\n  uint16Tag = '[object Uint16Array]',\n  uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\ntypedArrayTags[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;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports =  true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && \"object\" == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = function () {\n  try {\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}();\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n  var index = -1,\n    length = array == null ? 0 : array.length,\n    resIndex = 0,\n    result = [];\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result[resIndex++] = value;\n    }\n  }\n  return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n  var index = -1,\n    length = values.length,\n    offset = array.length;\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n *  else `false`.\n */\nfunction arraySome(array, predicate) {\n  var index = -1,\n    length = array == null ? 0 : array.length;\n  while (++index < length) {\n    if (predicate(array[index], index, array)) {\n      return true;\n    }\n  }\n  return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n    result = Array(n);\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function (value) {\n    return func(value);\n  };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n  return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n  var index = -1,\n    result = Array(map.size);\n  map.forEach(function (value, key) {\n    result[++index] = [key, value];\n  });\n  return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function (arg) {\n    return func(transform(arg));\n  };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n  var index = -1,\n    result = Array(set.size);\n  set.forEach(function (value) {\n    result[++index] = value;\n  });\n  return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n  funcProto = Function.prototype,\n  objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = function () {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? 'Symbol(src)_1.' + uid : '';\n}();\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n  Symbol = root.Symbol,\n  Uint8Array = root.Uint8Array,\n  propertyIsEnumerable = objectProto.propertyIsEnumerable,\n  splice = arrayProto.splice,\n  symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n  nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n  nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n  Map = getNative(root, 'Map'),\n  Promise = getNative(root, 'Promise'),\n  Set = getNative(root, 'Set'),\n  WeakMap = getNative(root, 'WeakMap'),\n  nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n  mapCtorString = toSource(Map),\n  promiseCtorString = toSource(Promise),\n  setCtorString = toSource(Set),\n  weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n  symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n    length = entries == null ? 0 : entries.length;\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = nativeCreate && value === undefined ? HASH_UNDEFINED : value;\n  return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n    length = entries == null ? 0 : entries.length;\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n    index = assocIndexOf(data, key);\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n    index = assocIndexOf(data, key);\n  return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n    index = assocIndexOf(data, key);\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n    length = entries == null ? 0 : entries.length;\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash(),\n    'map': new (Map || ListCache)(),\n    'string': new Hash()\n  };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n    size = data.size;\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n  var index = -1,\n    length = values == null ? 0 : values.length;\n  this.__data__ = new MapCache();\n  while (++index < length) {\n    this.add(values[index]);\n  }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n  this.__data__.set(value, HASH_UNDEFINED);\n  return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n  return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache();\n  this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n    result = data['delete'](key);\n  this.size = data.size;\n  return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || pairs.length < LARGE_ARRAY_SIZE - 1) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n    isArg = !isArr && isArguments(value),\n    isBuff = !isArr && !isArg && isBuffer(value),\n    isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n    skipIndexes = isArr || isArg || isBuff || isType,\n    result = skipIndexes ? baseTimes(value.length, String) : [],\n    length = result.length;\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && (\n    // Safari 9 has enumerable `arguments.length` in strict mode.\n    key == 'length' ||\n    // Node.js 0.10 has enumerable non-index properties on buffers.\n    isBuff && (key == 'offset' || key == 'parent') ||\n    // PhantomJS 2 has enumerable non-index properties on typed arrays.\n    isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset') ||\n    // Skip index properties.\n    isIndex(key, length)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Unordered comparison\n *  2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n  if (value === other) {\n    return true;\n  }\n  if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {\n    return value !== value && other !== other;\n  }\n  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n  var objIsArr = isArray(object),\n    othIsArr = isArray(other),\n    objTag = objIsArr ? arrayTag : getTag(object),\n    othTag = othIsArr ? arrayTag : getTag(other);\n  objTag = objTag == argsTag ? objectTag : objTag;\n  othTag = othTag == argsTag ? objectTag : othTag;\n  var objIsObj = objTag == objectTag,\n    othIsObj = othTag == objectTag,\n    isSameTag = objTag == othTag;\n  if (isSameTag && isBuffer(object)) {\n    if (!isBuffer(other)) {\n      return false;\n    }\n    objIsArr = true;\n    objIsObj = false;\n  }\n  if (isSameTag && !objIsObj) {\n    stack || (stack = new Stack());\n    return objIsArr || isTypedArray(object) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n  }\n  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n      othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n    if (objIsWrapped || othIsWrapped) {\n      var objUnwrapped = objIsWrapped ? object.value() : object,\n        othUnwrapped = othIsWrapped ? other.value() : other;\n      stack || (stack = new Stack());\n      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n    }\n  }\n  if (!isSameTag) {\n    return false;\n  }\n  stack || (stack = new Stack());\n  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n    arrLength = array.length,\n    othLength = other.length;\n  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n    return false;\n  }\n  // Assume cyclic values are equal.\n  var stacked = stack.get(array);\n  if (stacked && stack.get(other)) {\n    return stacked == other;\n  }\n  var index = -1,\n    result = true,\n    seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache() : undefined;\n  stack.set(array, other);\n  stack.set(other, array);\n\n  // Ignore non-index properties.\n  while (++index < arrLength) {\n    var arrValue = array[index],\n      othValue = other[index];\n    if (customizer) {\n      var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n    }\n    if (compared !== undefined) {\n      if (compared) {\n        continue;\n      }\n      result = false;\n      break;\n    }\n    // Recursively compare arrays (susceptible to call stack limits).\n    if (seen) {\n      if (!arraySome(other, function (othValue, othIndex) {\n        if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n          return seen.push(othIndex);\n        }\n      })) {\n        result = false;\n        break;\n      }\n    } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n      result = false;\n      break;\n    }\n  }\n  stack['delete'](array);\n  stack['delete'](other);\n  return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n  switch (tag) {\n    case dataViewTag:\n      if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n        return false;\n      }\n      object = object.buffer;\n      other = other.buffer;\n    case arrayBufferTag:\n      if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n        return false;\n      }\n      return true;\n    case boolTag:\n    case dateTag:\n    case numberTag:\n      // Coerce booleans to `1` or `0` and dates to milliseconds.\n      // Invalid dates are coerced to `NaN`.\n      return eq(+object, +other);\n    case errorTag:\n      return object.name == other.name && object.message == other.message;\n    case regexpTag:\n    case stringTag:\n      // Coerce regexes to strings and treat strings, primitives and objects,\n      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n      // for more details.\n      return object == other + '';\n    case mapTag:\n      var convert = mapToArray;\n    case setTag:\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n      convert || (convert = setToArray);\n      if (object.size != other.size && !isPartial) {\n        return false;\n      }\n      // Assume cyclic values are equal.\n      var stacked = stack.get(object);\n      if (stacked) {\n        return stacked == other;\n      }\n      bitmask |= COMPARE_UNORDERED_FLAG;\n\n      // Recursively compare objects (susceptible to call stack limits).\n      stack.set(object, other);\n      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n      stack['delete'](object);\n      return result;\n    case symbolTag:\n      if (symbolValueOf) {\n        return symbolValueOf.call(object) == symbolValueOf.call(other);\n      }\n  }\n  return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n    objProps = getAllKeys(object),\n    objLength = objProps.length,\n    othProps = getAllKeys(other),\n    othLength = othProps.length;\n  if (objLength != othLength && !isPartial) {\n    return false;\n  }\n  var index = objLength;\n  while (index--) {\n    var key = objProps[index];\n    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n      return false;\n    }\n  }\n  // Assume cyclic values are equal.\n  var stacked = stack.get(object);\n  if (stacked && stack.get(other)) {\n    return stacked == other;\n  }\n  var result = true;\n  stack.set(object, other);\n  stack.set(other, object);\n  var skipCtor = isPartial;\n  while (++index < objLength) {\n    key = objProps[index];\n    var objValue = object[key],\n      othValue = other[key];\n    if (customizer) {\n      var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n    }\n    // Recursively compare objects (susceptible to call stack limits).\n    if (!(compared === undefined ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n      result = false;\n      break;\n    }\n    skipCtor || (skipCtor = key == 'constructor');\n  }\n  if (result && !skipCtor) {\n    var objCtor = object.constructor,\n      othCtor = other.constructor;\n\n    // Non `Object` object instances with different constructors are not equal.\n    if (objCtor != othCtor && 'constructor' in object && 'constructor' in other && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n      result = false;\n    }\n  }\n  stack['delete'](object);\n  stack['delete'](other);\n  return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n  return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n    tag = value[symToStringTag];\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function (object) {\n  if (object == null) {\n    return [];\n  }\n  object = Object(object);\n  return arrayFilter(nativeGetSymbols(object), function (symbol) {\n    return propertyIsEnumerable.call(object, symbol);\n  });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif (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) {\n  getTag = function (value) {\n    var result = baseGetTag(value),\n      Ctor = result == objectTag ? value.constructor : undefined,\n      ctorString = Ctor ? toSource(Ctor) : '';\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString:\n          return dataViewTag;\n        case mapCtorString:\n          return mapTag;\n        case promiseCtorString:\n          return promiseTag;\n        case setCtorString:\n          return setTag;\n        case weakMapCtorString:\n          return weakMapTag;\n      }\n    }\n    return result;\n  };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  length = length == null ? MAX_SAFE_INTEGER : length;\n  return !!length && (typeof value == 'number' || reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean' ? value !== '__proto__' : value === null;\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && maskSrcKey in func;\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n    proto = typeof Ctor == 'function' && Ctor.prototype || objectProto;\n  return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return func + '';\n    } catch (e) {}\n  }\n  return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || value !== value && other !== other;\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function () {\n  return arguments;\n}()) ? baseIsArguments : function (value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n  return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n  return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\nmodule.exports = isEqual;\n\n//# sourceURL=webpack:///../react-ui/node_modules/lodash.isequal/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/marked-react/dist/index.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/marked-react/dist/index.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ReactParser: () => (/* binding */ ReactParser_default),\n/* harmony export */   ReactRenderer: () => (/* binding */ ReactRenderer_default),\n/* harmony export */   \"default\": () => (/* binding */ src_default)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! marked */ \"../react-ui/node_modules/marked/lib/marked.esm.js\");\n\n\n\n//#region src/helpers.ts\nconst htmlUnescapes = {\n  \"&amp;\": \"&\",\n  \"&lt;\": \"<\",\n  \"&gt;\": \">\",\n  \"&quot;\": \"\\\"\",\n  \"&#39;\": \"'\"\n};\n/** Used to match HTML entities and HTML characters. */\nconst reEscapedHtml = /&(?:amp|lt|gt|quot|#(?:0+)?39);/g;\nconst reHasEscapedHtml = RegExp(reEscapedHtml.source);\nconst unescape = (str = \"\") => {\n  return reHasEscapedHtml.test(str) ? str.replace(reEscapedHtml, entity => htmlUnescapes[entity] || \"'\") : str;\n};\nconst joinBase = (path, base) => {\n  if (!base) return path;\n  try {\n    return new URL(path, base).href;\n  } catch {\n    return path;\n  }\n};\n\n//#endregion\n//#region src/ReactParser.ts\nvar ReactParser = class {\n  renderer;\n  constructor(options) {\n    this.renderer = options.renderer;\n  }\n  parse(tokens) {\n    this.renderer.elIdList.push(0);\n    const result = tokens.map(token => {\n      switch (token.type) {\n        case \"space\":\n          return null;\n        case \"heading\":\n          {\n            const level = token.depth;\n            return this.renderer.heading(this.parseInline(token.tokens), level);\n          }\n        case \"paragraph\":\n          return this.renderer.paragraph(this.parseInline(token.tokens));\n        case \"text\":\n          {\n            const textToken = token;\n            return textToken.tokens ? this.parseInline(textToken.tokens) : token.text;\n          }\n        case \"blockquote\":\n          {\n            const blockquoteToken = token;\n            const quote = this.parse(blockquoteToken.tokens);\n            return this.renderer.blockquote(quote);\n          }\n        case \"list\":\n          {\n            const listToken = token;\n            this.renderer.elIdList.push(0);\n            const children = listToken.items.map(item => {\n              const listItemChildren = [];\n              if (item.task) listItemChildren.push(this.renderer.checkbox(item.checked ?? false));\n              listItemChildren.push(this.parse(item.tokens));\n              return this.renderer.listItem(listItemChildren);\n            });\n            this.renderer.elIdList.pop();\n            return this.renderer.list(children, token.ordered, token.ordered ? token.start : void 0);\n          }\n        case \"code\":\n          return this.renderer.code(token.text, token.lang);\n        case \"html\":\n          return this.renderer.html(token.text);\n        case \"table\":\n          {\n            const tableToken = token;\n            this.renderer.elIdList.push(0);\n            const headerCells = tableToken.header.map((cell, index) => {\n              return this.renderer.tableCell(this.parseInline(cell.tokens), {\n                header: true,\n                align: token.align[index]\n              });\n            });\n            this.renderer.elIdList.pop();\n            const headerRow = this.renderer.tableRow(headerCells);\n            const header = this.renderer.tableHeader(headerRow);\n            this.renderer.elIdList.push(0);\n            const bodyChilren = tableToken.rows.map(row => {\n              this.renderer.elIdList.push(0);\n              const rowChildren = row.map((cell, index) => {\n                return this.renderer.tableCell(this.parseInline(cell.tokens), {\n                  header: false,\n                  align: token.align[index]\n                });\n              });\n              this.renderer.elIdList.pop();\n              return this.renderer.tableRow(rowChildren);\n            });\n            this.renderer.elIdList.pop();\n            const body = this.renderer.tableBody(bodyChilren);\n            return this.renderer.table([header, body]);\n          }\n        case \"hr\":\n          return this.renderer.hr();\n        default:\n          {\n            console.warn(`Token with \"${token.type}\" type was not found`);\n            return null;\n          }\n      }\n    });\n    this.renderer.elIdList.pop();\n    return result;\n  }\n  parseInline(tokens = []) {\n    this.renderer.elIdList.push(0);\n    const result = tokens.map(token => {\n      switch (token.type) {\n        case \"text\":\n          return this.renderer.text(unescape(token.text));\n        case \"strong\":\n          return this.renderer.strong(this.parseInline(token.tokens));\n        case \"em\":\n          return this.renderer.em(this.parseInline(token.tokens));\n        case \"del\":\n          return this.renderer.del(this.parseInline(token.tokens));\n        case \"codespan\":\n          return this.renderer.codespan(unescape(token.text));\n        case \"link\":\n          return this.renderer.link(token.href, this.parseInline(token.tokens));\n        case \"image\":\n          return this.renderer.image(token.href, token.text, token.title);\n        case \"html\":\n          return this.renderer.html(token.text);\n        case \"br\":\n          return this.renderer.br();\n        case \"escape\":\n          return this.renderer.text(token.text);\n        default:\n          {\n            console.warn(`Token with \"${token.type}\" type was not found`);\n            return null;\n          }\n      }\n    });\n    this.renderer.elIdList.pop();\n    return result;\n  }\n};\nvar ReactParser_default = ReactParser;\n\n//#endregion\n//#region src/ReactRenderer.ts\nvar ReactRenderer = class {\n  elIdList = [];\n  #options;\n  constructor(options = {}) {\n    const {\n      renderer\n    } = options;\n    this.#options = options;\n    if (renderer && typeof renderer === \"object\") Object.entries(renderer).forEach(([key, value]) => {\n      const rendererName = key;\n      const rendererFunction = value;\n      if (!this[rendererName] || rendererName === \"elementId\" || rendererName === \"elIdList\" || typeof rendererFunction !== \"function\") return;\n      Object.defineProperty(this, rendererName, {\n        value(...args) {\n          this.#incrementElId();\n          return rendererFunction.apply(this, args);\n        },\n        writable: true,\n        enumerable: true,\n        configurable: true\n      });\n    });\n  }\n  #h(el, children = null, props = {}) {\n    const elProps = {\n      key: `marked-react-${this.elementId}`,\n      suppressHydrationWarning: true\n    };\n    this.#incrementElId();\n    return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(el, {\n      ...props,\n      ...elProps\n    }, children);\n  }\n  #incrementElId() {\n    this.elIdList[this.elIdList.length - 1] += 1;\n  }\n  get elementId() {\n    return this.elIdList.join(\"-\");\n  }\n  heading(children, level) {\n    return this.#h(`h${level}`, children);\n  }\n  paragraph(children) {\n    return this.#h(\"p\", children);\n  }\n  link(href, text) {\n    const url = joinBase(href, this.#options.baseURL);\n    const target = this.#options.openLinksInNewTab ? \"_blank\" : null;\n    return this.#h(\"a\", text, {\n      href: url,\n      target\n    });\n  }\n  image(src, alt, title = null) {\n    const url = joinBase(src, this.#options.baseURL);\n    return this.#h(\"img\", null, {\n      src: url,\n      alt,\n      title\n    });\n  }\n  codespan(code, lang = null) {\n    const className = lang ? `${this.#options.langPrefix}${lang}` : null;\n    return this.#h(\"code\", code, {\n      className\n    });\n  }\n  code(code, lang) {\n    return this.#h(\"pre\", this.codespan(code, lang));\n  }\n  blockquote(children) {\n    return this.#h(\"blockquote\", children);\n  }\n  list(children, ordered, start) {\n    return this.#h(ordered ? \"ol\" : \"ul\", children, ordered && start !== 1 ? {\n      start\n    } : {});\n  }\n  listItem(children) {\n    return this.#h(\"li\", children);\n  }\n  checkbox(checked) {\n    return this.#h(\"input\", null, {\n      type: \"checkbox\",\n      disabled: true,\n      checked\n    });\n  }\n  table(children) {\n    return this.#h(\"table\", children);\n  }\n  tableHeader(children) {\n    return this.#h(\"thead\", children);\n  }\n  tableBody(children) {\n    return this.#h(\"tbody\", children);\n  }\n  tableRow(children) {\n    return this.#h(\"tr\", children);\n  }\n  tableCell(children, flags) {\n    const tag = flags.header ? \"th\" : \"td\";\n    return this.#h(tag, children, {\n      align: flags.align\n    });\n  }\n  strong(children) {\n    return this.#h(\"strong\", children);\n  }\n  em(children) {\n    return this.#h(\"em\", children);\n  }\n  del(children) {\n    return this.#h(\"del\", children);\n  }\n  text(text) {\n    return text;\n  }\n  html(html) {\n    return html;\n  }\n  hr() {\n    return this.#h(\"hr\");\n  }\n  br() {\n    return this.#h(\"br\");\n  }\n};\nvar ReactRenderer_default = ReactRenderer;\n\n//#endregion\n//#region src/Markdown.ts\nconst validateComponentProps = props => {\n  if (props.value && typeof props.value !== \"string\") throw new TypeError(`[marked-react]: Expected value to be of type string but got ${typeof props.value}`);\n  if (props.children && typeof props.children !== \"string\") throw new TypeError(`[marked-react]: Expected children to be of type string but got ${typeof props.children}`);\n};\nconst defaultProps = {\n  isInline: false,\n  breaks: false,\n  gfm: true,\n  baseURL: void 0,\n  openLinksInNewTab: true,\n  langPrefix: \"language-\",\n  renderer: void 0\n};\nconst markedInstance = new marked__WEBPACK_IMPORTED_MODULE_1__.Marked();\nconst Markdown = props => {\n  validateComponentProps(props);\n  const options = {\n    ...defaultProps,\n    ...props\n  };\n  const marked = options.instance ?? markedInstance;\n  const lexerOptions = {\n    breaks: options.breaks,\n    gfm: options.gfm,\n    tokenizer: marked.defaults.tokenizer\n  };\n  const markdownString = options.value ?? options.children ?? \"\";\n  const tokens = options.isInline ? marked.Lexer.lexInline(markdownString, lexerOptions) : marked.lexer(markdownString, lexerOptions);\n  const parserOptions = {\n    renderer: new ReactRenderer_default({\n      renderer: options.renderer,\n      baseURL: options.baseURL,\n      openLinksInNewTab: options.openLinksInNewTab,\n      langPrefix: options.langPrefix\n    })\n  };\n  const parser = new ReactParser_default(parserOptions);\n  const children = options.isInline ? parser.parseInline(tokens) : parser.parse(tokens);\n  return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, children);\n};\nvar Markdown_default = Markdown;\n\n//#endregion\n//#region src/index.ts\nvar src_default = Markdown_default;\n\n//#endregion\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/marked-react/dist/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/marked/lib/marked.esm.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/marked/lib/marked.esm.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Hooks: () => (/* binding */ $),\n/* harmony export */   Lexer: () => (/* binding */ b),\n/* harmony export */   Marked: () => (/* binding */ B),\n/* harmony export */   Parser: () => (/* binding */ R),\n/* harmony export */   Renderer: () => (/* binding */ P),\n/* harmony export */   TextRenderer: () => (/* binding */ S),\n/* harmony export */   Tokenizer: () => (/* binding */ y),\n/* harmony export */   defaults: () => (/* binding */ O),\n/* harmony export */   getDefaults: () => (/* binding */ L),\n/* harmony export */   lexer: () => (/* binding */ Qt),\n/* harmony export */   marked: () => (/* binding */ d),\n/* harmony export */   options: () => (/* binding */ Dt),\n/* harmony export */   parse: () => (/* binding */ jt),\n/* harmony export */   parseInline: () => (/* binding */ Nt),\n/* harmony export */   parser: () => (/* binding */ Ft),\n/* harmony export */   setOptions: () => (/* binding */ Zt),\n/* harmony export */   use: () => (/* binding */ Gt),\n/* harmony export */   walkTokens: () => (/* binding */ Ht)\n/* harmony export */ });\n/**\n * marked v16.1.2 - a markdown parser\n * Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction L() {\n  return {\n    async: !1,\n    breaks: !1,\n    extensions: null,\n    gfm: !0,\n    hooks: null,\n    pedantic: !1,\n    renderer: null,\n    silent: !1,\n    tokenizer: null,\n    walkTokens: null\n  };\n}\nvar O = L();\nfunction H(l) {\n  O = l;\n}\nvar E = {\n  exec: () => null\n};\nfunction h(l, e = \"\") {\n  let t = typeof l == \"string\" ? l : l.source,\n    n = {\n      replace: (r, i) => {\n        let s = typeof i == \"string\" ? i : i.source;\n        return s = s.replace(m.caret, \"$1\"), t = t.replace(r, s), n;\n      },\n      getRegex: () => new RegExp(t, e)\n    };\n  return n;\n}\nvar m = {\n    codeRemoveIndent: /^(?: {1,4}| {0,3}\\t)/gm,\n    outputLinkReplace: /\\\\([\\[\\]])/g,\n    indentCodeCompensation: /^(\\s+)(?:```)/,\n    beginningSpace: /^\\s+/,\n    endingHash: /#$/,\n    startingSpaceChar: /^ /,\n    endingSpaceChar: / $/,\n    nonSpaceChar: /[^ ]/,\n    newLineCharGlobal: /\\n/g,\n    tabCharGlobal: /\\t/g,\n    multipleSpaceGlobal: /\\s+/g,\n    blankLine: /^[ \\t]*$/,\n    doubleBlankLine: /\\n[ \\t]*\\n[ \\t]*$/,\n    blockquoteStart: /^ {0,3}>/,\n    blockquoteSetextReplace: /\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,\n    blockquoteSetextReplace2: /^ {0,3}>[ \\t]?/gm,\n    listReplaceTabs: /^\\t+/,\n    listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,\n    listIsTask: /^\\[[ xX]\\] /,\n    listReplaceTask: /^\\[[ xX]\\] +/,\n    anyLine: /\\n.*\\n/,\n    hrefBrackets: /^<(.*)>$/,\n    tableDelimiter: /[:|]/,\n    tableAlignChars: /^\\||\\| *$/g,\n    tableRowBlankLine: /\\n[ \\t]*$/,\n    tableAlignRight: /^ *-+: *$/,\n    tableAlignCenter: /^ *:-+: *$/,\n    tableAlignLeft: /^ *:-+ *$/,\n    startATag: /^<a /i,\n    endATag: /^<\\/a>/i,\n    startPreScriptTag: /^<(pre|code|kbd|script)(\\s|>)/i,\n    endPreScriptTag: /^<\\/(pre|code|kbd|script)(\\s|>)/i,\n    startAngleBracket: /^</,\n    endAngleBracket: />$/,\n    pedanticHrefTitle: /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,\n    unicodeAlphaNumeric: /[\\p{L}\\p{N}]/u,\n    escapeTest: /[&<>\"']/,\n    escapeReplace: /[&<>\"']/g,\n    escapeTestNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n    escapeReplaceNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,\n    unescapeTest: /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig,\n    caret: /(^|[^\\[])\\^/g,\n    percentDecode: /%25/g,\n    findPipe: /\\|/g,\n    splitPipe: / \\|/,\n    slashPipe: /\\\\\\|/g,\n    carriageReturn: /\\r\\n|\\r/g,\n    spaceLine: /^ +$/gm,\n    notSpaceStart: /^\\S*/,\n    endingNewline: /\\n$/,\n    listItemRegex: l => new RegExp(`^( {0,3}${l})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),\n    nextBulletRegex: l => new RegExp(`^ {0,${Math.min(3, l - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`),\n    hrRegex: l => new RegExp(`^ {0,${Math.min(3, l - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),\n    fencesBeginRegex: l => new RegExp(`^ {0,${Math.min(3, l - 1)}}(?:\\`\\`\\`|~~~)`),\n    headingBeginRegex: l => new RegExp(`^ {0,${Math.min(3, l - 1)}}#`),\n    htmlBeginRegex: l => new RegExp(`^ {0,${Math.min(3, l - 1)}}<(?:[a-z].*>|!--)`, \"i\")\n  },\n  xe = /^(?:[ \\t]*(?:\\n|$))+/,\n  be = /^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/,\n  Re = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,\n  C = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,\n  Oe = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,\n  j = /(?:[*+-]|\\d{1,9}[.)])/,\n  se = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n  ie = h(se).replace(/bull/g, j).replace(/blockCode/g, /(?: {4}| {0,3}\\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g, \"\").getRegex(),\n  Te = h(se).replace(/bull/g, j).replace(/blockCode/g, /(?: {4}| {0,3}\\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\\n>]+>\\n/).replace(/table/g, / {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex(),\n  F = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,\n  we = /^[^\\n]+/,\n  Q = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/,\n  ye = h(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\", Q).replace(\"title\", /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex(),\n  Pe = h(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g, j).getRegex(),\n  v = \"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",\n  U = /<!--(?:-?>|[\\s\\S]*?(?:-->|$))/,\n  Se = h(\"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\", \"i\").replace(\"comment\", U).replace(\"tag\", v).replace(\"attribute\", / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),\n  oe = h(F).replace(\"hr\", C).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", v).getRegex(),\n  $e = h(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\", oe).getRegex(),\n  K = {\n    blockquote: $e,\n    code: be,\n    def: ye,\n    fences: Re,\n    heading: Oe,\n    hr: C,\n    html: Se,\n    lheading: ie,\n    list: Pe,\n    newline: xe,\n    paragraph: oe,\n    table: E,\n    text: we\n  },\n  re = h(\"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\").replace(\"hr\", C).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\", \" {0,3}>\").replace(\"code\", \"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", v).getRegex(),\n  _e = {\n    ...K,\n    lheading: Te,\n    table: re,\n    paragraph: h(F).replace(\"hr\", C).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"table\", re).replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", v).getRegex()\n  },\n  Le = {\n    ...K,\n    html: h(`^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`).replace(\"comment\", U).replace(/tag/g, \"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),\n    def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n    heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n    fences: E,\n    lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n    paragraph: h(F).replace(\"hr\", C).replace(\"heading\", ` *#{1,6} *[^\n]`).replace(\"lheading\", ie).replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"|fences\", \"\").replace(\"|list\", \"\").replace(\"|html\", \"\").replace(\"|tag\", \"\").getRegex()\n  },\n  Me = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,\n  ze = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,\n  ae = /^( {2,}|\\\\)\\n(?!\\s*$)/,\n  Ae = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,\n  D = /[\\p{P}\\p{S}]/u,\n  W = /[\\s\\p{P}\\p{S}]/u,\n  le = /[^\\s\\p{P}\\p{S}]/u,\n  Ee = h(/^((?![*_])punctSpace)/, \"u\").replace(/punctSpace/g, W).getRegex(),\n  ue = /(?!~)[\\p{P}\\p{S}]/u,\n  Ce = /(?!~)[\\s\\p{P}\\p{S}]/u,\n  Ie = /(?:[^\\s\\p{P}\\p{S}]|~)/u,\n  Be = /\\[[^[\\]]*?\\]\\((?:\\\\.|[^\\\\\\(\\)]|\\((?:\\\\.|[^\\\\\\(\\)])*\\))*\\)|`[^`]*?`|<(?! )[^<>]*?>/g,\n  pe = /^(?:\\*+(?:((?!\\*)punct)|[^\\s*]))|^_+(?:((?!_)punct)|([^\\s_]))/,\n  qe = h(pe, \"u\").replace(/punct/g, D).getRegex(),\n  ve = h(pe, \"u\").replace(/punct/g, ue).getRegex(),\n  ce = \"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\",\n  De = h(ce, \"gu\").replace(/notPunctSpace/g, le).replace(/punctSpace/g, W).replace(/punct/g, D).getRegex(),\n  Ze = h(ce, \"gu\").replace(/notPunctSpace/g, Ie).replace(/punctSpace/g, Ce).replace(/punct/g, ue).getRegex(),\n  Ge = h(\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\", \"gu\").replace(/notPunctSpace/g, le).replace(/punctSpace/g, W).replace(/punct/g, D).getRegex(),\n  He = h(/\\\\(punct)/, \"gu\").replace(/punct/g, D).getRegex(),\n  Ne = h(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),\n  je = h(U).replace(\"(?:-->|$)\", \"-->\").getRegex(),\n  Fe = h(\"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\").replace(\"comment\", je).replace(\"attribute\", /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex(),\n  q = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/,\n  Qe = h(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]*(?:\\n[ \\t]*)?)(title))?\\s*\\)/).replace(\"label\", q).replace(\"href\", /<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\", /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex(),\n  he = h(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\", q).replace(\"ref\", Q).getRegex(),\n  de = h(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\", Q).getRegex(),\n  Ue = h(\"reflink|nolink(?!\\\\()\", \"g\").replace(\"reflink\", he).replace(\"nolink\", de).getRegex(),\n  X = {\n    _backpedal: E,\n    anyPunctuation: He,\n    autolink: Ne,\n    blockSkip: Be,\n    br: ae,\n    code: ze,\n    del: E,\n    emStrongLDelim: qe,\n    emStrongRDelimAst: De,\n    emStrongRDelimUnd: Ge,\n    escape: Me,\n    link: Qe,\n    nolink: de,\n    punctuation: Ee,\n    reflink: he,\n    reflinkSearch: Ue,\n    tag: Fe,\n    text: Ae,\n    url: E\n  },\n  Ke = {\n    ...X,\n    link: h(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\", q).getRegex(),\n    reflink: h(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\", q).getRegex()\n  },\n  N = {\n    ...X,\n    emStrongRDelimAst: Ze,\n    emStrongLDelim: ve,\n    url: h(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, \"i\").replace(\"email\", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),\n    _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n    del: /^(~~?)(?=[^\\s~])((?:\\\\.|[^\\\\])*?(?:\\\\.|[^\\s~\\\\]))\\1(?=[^~]|$)/,\n    text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n  },\n  We = {\n    ...N,\n    br: h(ae).replace(\"{2,}\", \"*\").getRegex(),\n    text: h(N.text).replace(\"\\\\b_\", \"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g, \"*\").getRegex()\n  },\n  I = {\n    normal: K,\n    gfm: _e,\n    pedantic: Le\n  },\n  M = {\n    normal: X,\n    gfm: N,\n    breaks: We,\n    pedantic: Ke\n  };\nvar Xe = {\n    \"&\": \"&amp;\",\n    \"<\": \"&lt;\",\n    \">\": \"&gt;\",\n    '\"': \"&quot;\",\n    \"'\": \"&#39;\"\n  },\n  ke = l => Xe[l];\nfunction w(l, e) {\n  if (e) {\n    if (m.escapeTest.test(l)) return l.replace(m.escapeReplace, ke);\n  } else if (m.escapeTestNoEncode.test(l)) return l.replace(m.escapeReplaceNoEncode, ke);\n  return l;\n}\nfunction J(l) {\n  try {\n    l = encodeURI(l).replace(m.percentDecode, \"%\");\n  } catch {\n    return null;\n  }\n  return l;\n}\nfunction V(l, e) {\n  let t = l.replace(m.findPipe, (i, s, o) => {\n      let a = !1,\n        u = s;\n      for (; --u >= 0 && o[u] === \"\\\\\";) a = !a;\n      return a ? \"|\" : \" |\";\n    }),\n    n = t.split(m.splitPipe),\n    r = 0;\n  if (n[0].trim() || n.shift(), n.length > 0 && !n.at(-1)?.trim() && n.pop(), e) if (n.length > e) n.splice(e);else for (; n.length < e;) n.push(\"\");\n  for (; r < n.length; r++) n[r] = n[r].trim().replace(m.slashPipe, \"|\");\n  return n;\n}\nfunction z(l, e, t) {\n  let n = l.length;\n  if (n === 0) return \"\";\n  let r = 0;\n  for (; r < n;) {\n    let i = l.charAt(n - r - 1);\n    if (i === e && !t) r++;else if (i !== e && t) r++;else break;\n  }\n  return l.slice(0, n - r);\n}\nfunction ge(l, e) {\n  if (l.indexOf(e[1]) === -1) return -1;\n  let t = 0;\n  for (let n = 0; n < l.length; n++) if (l[n] === \"\\\\\") n++;else if (l[n] === e[0]) t++;else if (l[n] === e[1] && (t--, t < 0)) return n;\n  return t > 0 ? -2 : -1;\n}\nfunction fe(l, e, t, n, r) {\n  let i = e.href,\n    s = e.title || null,\n    o = l[1].replace(r.other.outputLinkReplace, \"$1\");\n  n.state.inLink = !0;\n  let a = {\n    type: l[0].charAt(0) === \"!\" ? \"image\" : \"link\",\n    raw: t,\n    href: i,\n    title: s,\n    text: o,\n    tokens: n.inlineTokens(o)\n  };\n  return n.state.inLink = !1, a;\n}\nfunction Je(l, e, t) {\n  let n = l.match(t.other.indentCodeCompensation);\n  if (n === null) return e;\n  let r = n[1];\n  return e.split(`\n`).map(i => {\n    let s = i.match(t.other.beginningSpace);\n    if (s === null) return i;\n    let [o] = s;\n    return o.length >= r.length ? i.slice(r.length) : i;\n  }).join(`\n`);\n}\nvar y = class {\n  options;\n  rules;\n  lexer;\n  constructor(e) {\n    this.options = e || O;\n  }\n  space(e) {\n    let t = this.rules.block.newline.exec(e);\n    if (t && t[0].length > 0) return {\n      type: \"space\",\n      raw: t[0]\n    };\n  }\n  code(e) {\n    let t = this.rules.block.code.exec(e);\n    if (t) {\n      let n = t[0].replace(this.rules.other.codeRemoveIndent, \"\");\n      return {\n        type: \"code\",\n        raw: t[0],\n        codeBlockStyle: \"indented\",\n        text: this.options.pedantic ? n : z(n, `\n`)\n      };\n    }\n  }\n  fences(e) {\n    let t = this.rules.block.fences.exec(e);\n    if (t) {\n      let n = t[0],\n        r = Je(n, t[3] || \"\", this.rules);\n      return {\n        type: \"code\",\n        raw: n,\n        lang: t[2] ? t[2].trim().replace(this.rules.inline.anyPunctuation, \"$1\") : t[2],\n        text: r\n      };\n    }\n  }\n  heading(e) {\n    let t = this.rules.block.heading.exec(e);\n    if (t) {\n      let n = t[2].trim();\n      if (this.rules.other.endingHash.test(n)) {\n        let r = z(n, \"#\");\n        (this.options.pedantic || !r || this.rules.other.endingSpaceChar.test(r)) && (n = r.trim());\n      }\n      return {\n        type: \"heading\",\n        raw: t[0],\n        depth: t[1].length,\n        text: n,\n        tokens: this.lexer.inline(n)\n      };\n    }\n  }\n  hr(e) {\n    let t = this.rules.block.hr.exec(e);\n    if (t) return {\n      type: \"hr\",\n      raw: z(t[0], `\n`)\n    };\n  }\n  blockquote(e) {\n    let t = this.rules.block.blockquote.exec(e);\n    if (t) {\n      let n = z(t[0], `\n`).split(`\n`),\n        r = \"\",\n        i = \"\",\n        s = [];\n      for (; n.length > 0;) {\n        let o = !1,\n          a = [],\n          u;\n        for (u = 0; u < n.length; u++) if (this.rules.other.blockquoteStart.test(n[u])) a.push(n[u]), o = !0;else if (!o) a.push(n[u]);else break;\n        n = n.slice(u);\n        let p = a.join(`\n`),\n          c = p.replace(this.rules.other.blockquoteSetextReplace, `\n    $1`).replace(this.rules.other.blockquoteSetextReplace2, \"\");\n        r = r ? `${r}\n${p}` : p, i = i ? `${i}\n${c}` : c;\n        let f = this.lexer.state.top;\n        if (this.lexer.state.top = !0, this.lexer.blockTokens(c, s, !0), this.lexer.state.top = f, n.length === 0) break;\n        let k = s.at(-1);\n        if (k?.type === \"code\") break;\n        if (k?.type === \"blockquote\") {\n          let x = k,\n            g = x.raw + `\n` + n.join(`\n`),\n            T = this.blockquote(g);\n          s[s.length - 1] = T, r = r.substring(0, r.length - x.raw.length) + T.raw, i = i.substring(0, i.length - x.text.length) + T.text;\n          break;\n        } else if (k?.type === \"list\") {\n          let x = k,\n            g = x.raw + `\n` + n.join(`\n`),\n            T = this.list(g);\n          s[s.length - 1] = T, r = r.substring(0, r.length - k.raw.length) + T.raw, i = i.substring(0, i.length - x.raw.length) + T.raw, n = g.substring(s.at(-1).raw.length).split(`\n`);\n          continue;\n        }\n      }\n      return {\n        type: \"blockquote\",\n        raw: r,\n        tokens: s,\n        text: i\n      };\n    }\n  }\n  list(e) {\n    let t = this.rules.block.list.exec(e);\n    if (t) {\n      let n = t[1].trim(),\n        r = n.length > 1,\n        i = {\n          type: \"list\",\n          raw: \"\",\n          ordered: r,\n          start: r ? +n.slice(0, -1) : \"\",\n          loose: !1,\n          items: []\n        };\n      n = r ? `\\\\d{1,9}\\\\${n.slice(-1)}` : `\\\\${n}`, this.options.pedantic && (n = r ? n : \"[*+-]\");\n      let s = this.rules.other.listItemRegex(n),\n        o = !1;\n      for (; e;) {\n        let u = !1,\n          p = \"\",\n          c = \"\";\n        if (!(t = s.exec(e)) || this.rules.block.hr.test(e)) break;\n        p = t[0], e = e.substring(p.length);\n        let f = t[2].split(`\n`, 1)[0].replace(this.rules.other.listReplaceTabs, Z => \" \".repeat(3 * Z.length)),\n          k = e.split(`\n`, 1)[0],\n          x = !f.trim(),\n          g = 0;\n        if (this.options.pedantic ? (g = 2, c = f.trimStart()) : x ? g = t[1].length + 1 : (g = t[2].search(this.rules.other.nonSpaceChar), g = g > 4 ? 1 : g, c = f.slice(g), g += t[1].length), x && this.rules.other.blankLine.test(k) && (p += k + `\n`, e = e.substring(k.length + 1), u = !0), !u) {\n          let Z = this.rules.other.nextBulletRegex(g),\n            ee = this.rules.other.hrRegex(g),\n            te = this.rules.other.fencesBeginRegex(g),\n            ne = this.rules.other.headingBeginRegex(g),\n            me = this.rules.other.htmlBeginRegex(g);\n          for (; e;) {\n            let G = e.split(`\n`, 1)[0],\n              A;\n            if (k = G, this.options.pedantic ? (k = k.replace(this.rules.other.listReplaceNesting, \"  \"), A = k) : A = k.replace(this.rules.other.tabCharGlobal, \"    \"), te.test(k) || ne.test(k) || me.test(k) || Z.test(k) || ee.test(k)) break;\n            if (A.search(this.rules.other.nonSpaceChar) >= g || !k.trim()) c += `\n` + A.slice(g);else {\n              if (x || f.replace(this.rules.other.tabCharGlobal, \"    \").search(this.rules.other.nonSpaceChar) >= 4 || te.test(f) || ne.test(f) || ee.test(f)) break;\n              c += `\n` + k;\n            }\n            !x && !k.trim() && (x = !0), p += G + `\n`, e = e.substring(G.length + 1), f = A.slice(g);\n          }\n        }\n        i.loose || (o ? i.loose = !0 : this.rules.other.doubleBlankLine.test(p) && (o = !0));\n        let T = null,\n          Y;\n        this.options.gfm && (T = this.rules.other.listIsTask.exec(c), T && (Y = T[0] !== \"[ ] \", c = c.replace(this.rules.other.listReplaceTask, \"\"))), i.items.push({\n          type: \"list_item\",\n          raw: p,\n          task: !!T,\n          checked: Y,\n          loose: !1,\n          text: c,\n          tokens: []\n        }), i.raw += p;\n      }\n      let a = i.items.at(-1);\n      if (a) a.raw = a.raw.trimEnd(), a.text = a.text.trimEnd();else return;\n      i.raw = i.raw.trimEnd();\n      for (let u = 0; u < i.items.length; u++) if (this.lexer.state.top = !1, i.items[u].tokens = this.lexer.blockTokens(i.items[u].text, []), !i.loose) {\n        let p = i.items[u].tokens.filter(f => f.type === \"space\"),\n          c = p.length > 0 && p.some(f => this.rules.other.anyLine.test(f.raw));\n        i.loose = c;\n      }\n      if (i.loose) for (let u = 0; u < i.items.length; u++) i.items[u].loose = !0;\n      return i;\n    }\n  }\n  html(e) {\n    let t = this.rules.block.html.exec(e);\n    if (t) return {\n      type: \"html\",\n      block: !0,\n      raw: t[0],\n      pre: t[1] === \"pre\" || t[1] === \"script\" || t[1] === \"style\",\n      text: t[0]\n    };\n  }\n  def(e) {\n    let t = this.rules.block.def.exec(e);\n    if (t) {\n      let n = t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, \" \"),\n        r = t[2] ? t[2].replace(this.rules.other.hrefBrackets, \"$1\").replace(this.rules.inline.anyPunctuation, \"$1\") : \"\",\n        i = t[3] ? t[3].substring(1, t[3].length - 1).replace(this.rules.inline.anyPunctuation, \"$1\") : t[3];\n      return {\n        type: \"def\",\n        tag: n,\n        raw: t[0],\n        href: r,\n        title: i\n      };\n    }\n  }\n  table(e) {\n    let t = this.rules.block.table.exec(e);\n    if (!t || !this.rules.other.tableDelimiter.test(t[2])) return;\n    let n = V(t[1]),\n      r = t[2].replace(this.rules.other.tableAlignChars, \"\").split(\"|\"),\n      i = t[3]?.trim() ? t[3].replace(this.rules.other.tableRowBlankLine, \"\").split(`\n`) : [],\n      s = {\n        type: \"table\",\n        raw: t[0],\n        header: [],\n        align: [],\n        rows: []\n      };\n    if (n.length === r.length) {\n      for (let o of r) this.rules.other.tableAlignRight.test(o) ? s.align.push(\"right\") : this.rules.other.tableAlignCenter.test(o) ? s.align.push(\"center\") : this.rules.other.tableAlignLeft.test(o) ? s.align.push(\"left\") : s.align.push(null);\n      for (let o = 0; o < n.length; o++) s.header.push({\n        text: n[o],\n        tokens: this.lexer.inline(n[o]),\n        header: !0,\n        align: s.align[o]\n      });\n      for (let o of i) s.rows.push(V(o, s.header.length).map((a, u) => ({\n        text: a,\n        tokens: this.lexer.inline(a),\n        header: !1,\n        align: s.align[u]\n      })));\n      return s;\n    }\n  }\n  lheading(e) {\n    let t = this.rules.block.lheading.exec(e);\n    if (t) return {\n      type: \"heading\",\n      raw: t[0],\n      depth: t[2].charAt(0) === \"=\" ? 1 : 2,\n      text: t[1],\n      tokens: this.lexer.inline(t[1])\n    };\n  }\n  paragraph(e) {\n    let t = this.rules.block.paragraph.exec(e);\n    if (t) {\n      let n = t[1].charAt(t[1].length - 1) === `\n` ? t[1].slice(0, -1) : t[1];\n      return {\n        type: \"paragraph\",\n        raw: t[0],\n        text: n,\n        tokens: this.lexer.inline(n)\n      };\n    }\n  }\n  text(e) {\n    let t = this.rules.block.text.exec(e);\n    if (t) return {\n      type: \"text\",\n      raw: t[0],\n      text: t[0],\n      tokens: this.lexer.inline(t[0])\n    };\n  }\n  escape(e) {\n    let t = this.rules.inline.escape.exec(e);\n    if (t) return {\n      type: \"escape\",\n      raw: t[0],\n      text: t[1]\n    };\n  }\n  tag(e) {\n    let t = this.rules.inline.tag.exec(e);\n    if (t) return !this.lexer.state.inLink && this.rules.other.startATag.test(t[0]) ? this.lexer.state.inLink = !0 : this.lexer.state.inLink && this.rules.other.endATag.test(t[0]) && (this.lexer.state.inLink = !1), !this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(t[0]) ? this.lexer.state.inRawBlock = !0 : this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(t[0]) && (this.lexer.state.inRawBlock = !1), {\n      type: \"html\",\n      raw: t[0],\n      inLink: this.lexer.state.inLink,\n      inRawBlock: this.lexer.state.inRawBlock,\n      block: !1,\n      text: t[0]\n    };\n  }\n  link(e) {\n    let t = this.rules.inline.link.exec(e);\n    if (t) {\n      let n = t[2].trim();\n      if (!this.options.pedantic && this.rules.other.startAngleBracket.test(n)) {\n        if (!this.rules.other.endAngleBracket.test(n)) return;\n        let s = z(n.slice(0, -1), \"\\\\\");\n        if ((n.length - s.length) % 2 === 0) return;\n      } else {\n        let s = ge(t[2], \"()\");\n        if (s === -2) return;\n        if (s > -1) {\n          let a = (t[0].indexOf(\"!\") === 0 ? 5 : 4) + t[1].length + s;\n          t[2] = t[2].substring(0, s), t[0] = t[0].substring(0, a).trim(), t[3] = \"\";\n        }\n      }\n      let r = t[2],\n        i = \"\";\n      if (this.options.pedantic) {\n        let s = this.rules.other.pedanticHrefTitle.exec(r);\n        s && (r = s[1], i = s[3]);\n      } else i = t[3] ? t[3].slice(1, -1) : \"\";\n      return r = r.trim(), this.rules.other.startAngleBracket.test(r) && (this.options.pedantic && !this.rules.other.endAngleBracket.test(n) ? r = r.slice(1) : r = r.slice(1, -1)), fe(t, {\n        href: r && r.replace(this.rules.inline.anyPunctuation, \"$1\"),\n        title: i && i.replace(this.rules.inline.anyPunctuation, \"$1\")\n      }, t[0], this.lexer, this.rules);\n    }\n  }\n  reflink(e, t) {\n    let n;\n    if ((n = this.rules.inline.reflink.exec(e)) || (n = this.rules.inline.nolink.exec(e))) {\n      let r = (n[2] || n[1]).replace(this.rules.other.multipleSpaceGlobal, \" \"),\n        i = t[r.toLowerCase()];\n      if (!i) {\n        let s = n[0].charAt(0);\n        return {\n          type: \"text\",\n          raw: s,\n          text: s\n        };\n      }\n      return fe(n, i, n[0], this.lexer, this.rules);\n    }\n  }\n  emStrong(e, t, n = \"\") {\n    let r = this.rules.inline.emStrongLDelim.exec(e);\n    if (!r || r[3] && n.match(this.rules.other.unicodeAlphaNumeric)) return;\n    if (!(r[1] || r[2] || \"\") || !n || this.rules.inline.punctuation.exec(n)) {\n      let s = [...r[0]].length - 1,\n        o,\n        a,\n        u = s,\n        p = 0,\n        c = r[0][0] === \"*\" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n      for (c.lastIndex = 0, t = t.slice(-1 * e.length + s); (r = c.exec(t)) != null;) {\n        if (o = r[1] || r[2] || r[3] || r[4] || r[5] || r[6], !o) continue;\n        if (a = [...o].length, r[3] || r[4]) {\n          u += a;\n          continue;\n        } else if ((r[5] || r[6]) && s % 3 && !((s + a) % 3)) {\n          p += a;\n          continue;\n        }\n        if (u -= a, u > 0) continue;\n        a = Math.min(a, a + u + p);\n        let f = [...r[0]][0].length,\n          k = e.slice(0, s + r.index + f + a);\n        if (Math.min(s, a) % 2) {\n          let g = k.slice(1, -1);\n          return {\n            type: \"em\",\n            raw: k,\n            text: g,\n            tokens: this.lexer.inlineTokens(g)\n          };\n        }\n        let x = k.slice(2, -2);\n        return {\n          type: \"strong\",\n          raw: k,\n          text: x,\n          tokens: this.lexer.inlineTokens(x)\n        };\n      }\n    }\n  }\n  codespan(e) {\n    let t = this.rules.inline.code.exec(e);\n    if (t) {\n      let n = t[2].replace(this.rules.other.newLineCharGlobal, \" \"),\n        r = this.rules.other.nonSpaceChar.test(n),\n        i = this.rules.other.startingSpaceChar.test(n) && this.rules.other.endingSpaceChar.test(n);\n      return r && i && (n = n.substring(1, n.length - 1)), {\n        type: \"codespan\",\n        raw: t[0],\n        text: n\n      };\n    }\n  }\n  br(e) {\n    let t = this.rules.inline.br.exec(e);\n    if (t) return {\n      type: \"br\",\n      raw: t[0]\n    };\n  }\n  del(e) {\n    let t = this.rules.inline.del.exec(e);\n    if (t) return {\n      type: \"del\",\n      raw: t[0],\n      text: t[2],\n      tokens: this.lexer.inlineTokens(t[2])\n    };\n  }\n  autolink(e) {\n    let t = this.rules.inline.autolink.exec(e);\n    if (t) {\n      let n, r;\n      return t[2] === \"@\" ? (n = t[1], r = \"mailto:\" + n) : (n = t[1], r = n), {\n        type: \"link\",\n        raw: t[0],\n        text: n,\n        href: r,\n        tokens: [{\n          type: \"text\",\n          raw: n,\n          text: n\n        }]\n      };\n    }\n  }\n  url(e) {\n    let t;\n    if (t = this.rules.inline.url.exec(e)) {\n      let n, r;\n      if (t[2] === \"@\") n = t[0], r = \"mailto:\" + n;else {\n        let i;\n        do i = t[0], t[0] = this.rules.inline._backpedal.exec(t[0])?.[0] ?? \"\"; while (i !== t[0]);\n        n = t[0], t[1] === \"www.\" ? r = \"http://\" + t[0] : r = t[0];\n      }\n      return {\n        type: \"link\",\n        raw: t[0],\n        text: n,\n        href: r,\n        tokens: [{\n          type: \"text\",\n          raw: n,\n          text: n\n        }]\n      };\n    }\n  }\n  inlineText(e) {\n    let t = this.rules.inline.text.exec(e);\n    if (t) {\n      let n = this.lexer.state.inRawBlock;\n      return {\n        type: \"text\",\n        raw: t[0],\n        text: t[0],\n        escaped: n\n      };\n    }\n  }\n};\nvar b = class l {\n  tokens;\n  options;\n  state;\n  tokenizer;\n  inlineQueue;\n  constructor(e) {\n    this.tokens = [], this.tokens.links = Object.create(null), this.options = e || O, this.options.tokenizer = this.options.tokenizer || new y(), this.tokenizer = this.options.tokenizer, this.tokenizer.options = this.options, this.tokenizer.lexer = this, this.inlineQueue = [], this.state = {\n      inLink: !1,\n      inRawBlock: !1,\n      top: !0\n    };\n    let t = {\n      other: m,\n      block: I.normal,\n      inline: M.normal\n    };\n    this.options.pedantic ? (t.block = I.pedantic, t.inline = M.pedantic) : this.options.gfm && (t.block = I.gfm, this.options.breaks ? t.inline = M.breaks : t.inline = M.gfm), this.tokenizer.rules = t;\n  }\n  static get rules() {\n    return {\n      block: I,\n      inline: M\n    };\n  }\n  static lex(e, t) {\n    return new l(t).lex(e);\n  }\n  static lexInline(e, t) {\n    return new l(t).inlineTokens(e);\n  }\n  lex(e) {\n    e = e.replace(m.carriageReturn, `\n`), this.blockTokens(e, this.tokens);\n    for (let t = 0; t < this.inlineQueue.length; t++) {\n      let n = this.inlineQueue[t];\n      this.inlineTokens(n.src, n.tokens);\n    }\n    return this.inlineQueue = [], this.tokens;\n  }\n  blockTokens(e, t = [], n = !1) {\n    for (this.options.pedantic && (e = e.replace(m.tabCharGlobal, \"    \").replace(m.spaceLine, \"\")); e;) {\n      let r;\n      if (this.options.extensions?.block?.some(s => (r = s.call({\n        lexer: this\n      }, e, t)) ? (e = e.substring(r.raw.length), t.push(r), !0) : !1)) continue;\n      if (r = this.tokenizer.space(e)) {\n        e = e.substring(r.raw.length);\n        let s = t.at(-1);\n        r.raw.length === 1 && s !== void 0 ? s.raw += `\n` : t.push(r);\n        continue;\n      }\n      if (r = this.tokenizer.code(e)) {\n        e = e.substring(r.raw.length);\n        let s = t.at(-1);\n        s?.type === \"paragraph\" || s?.type === \"text\" ? (s.raw += (s.raw.endsWith(`\n`) ? \"\" : `\n`) + r.raw, s.text += `\n` + r.text, this.inlineQueue.at(-1).src = s.text) : t.push(r);\n        continue;\n      }\n      if (r = this.tokenizer.fences(e)) {\n        e = e.substring(r.raw.length), t.push(r);\n        continue;\n      }\n      if (r = this.tokenizer.heading(e)) {\n        e = e.substring(r.raw.length), t.push(r);\n        continue;\n      }\n      if (r = this.tokenizer.hr(e)) {\n        e = e.substring(r.raw.length), t.push(r);\n        continue;\n      }\n      if (r = this.tokenizer.blockquote(e)) {\n        e = e.substring(r.raw.length), t.push(r);\n        continue;\n      }\n      if (r = this.tokenizer.list(e)) {\n        e = e.substring(r.raw.length), t.push(r);\n        continue;\n      }\n      if (r = this.tokenizer.html(e)) {\n        e = e.substring(r.raw.length), t.push(r);\n        continue;\n      }\n      if (r = this.tokenizer.def(e)) {\n        e = e.substring(r.raw.length);\n        let s = t.at(-1);\n        s?.type === \"paragraph\" || s?.type === \"text\" ? (s.raw += (s.raw.endsWith(`\n`) ? \"\" : `\n`) + r.raw, s.text += `\n` + r.raw, this.inlineQueue.at(-1).src = s.text) : this.tokens.links[r.tag] || (this.tokens.links[r.tag] = {\n          href: r.href,\n          title: r.title\n        });\n        continue;\n      }\n      if (r = this.tokenizer.table(e)) {\n        e = e.substring(r.raw.length), t.push(r);\n        continue;\n      }\n      if (r = this.tokenizer.lheading(e)) {\n        e = e.substring(r.raw.length), t.push(r);\n        continue;\n      }\n      let i = e;\n      if (this.options.extensions?.startBlock) {\n        let s = 1 / 0,\n          o = e.slice(1),\n          a;\n        this.options.extensions.startBlock.forEach(u => {\n          a = u.call({\n            lexer: this\n          }, o), typeof a == \"number\" && a >= 0 && (s = Math.min(s, a));\n        }), s < 1 / 0 && s >= 0 && (i = e.substring(0, s + 1));\n      }\n      if (this.state.top && (r = this.tokenizer.paragraph(i))) {\n        let s = t.at(-1);\n        n && s?.type === \"paragraph\" ? (s.raw += (s.raw.endsWith(`\n`) ? \"\" : `\n`) + r.raw, s.text += `\n` + r.text, this.inlineQueue.pop(), this.inlineQueue.at(-1).src = s.text) : t.push(r), n = i.length !== e.length, e = e.substring(r.raw.length);\n        continue;\n      }\n      if (r = this.tokenizer.text(e)) {\n        e = e.substring(r.raw.length);\n        let s = t.at(-1);\n        s?.type === \"text\" ? (s.raw += (s.raw.endsWith(`\n`) ? \"\" : `\n`) + r.raw, s.text += `\n` + r.text, this.inlineQueue.pop(), this.inlineQueue.at(-1).src = s.text) : t.push(r);\n        continue;\n      }\n      if (e) {\n        let s = \"Infinite loop on byte: \" + e.charCodeAt(0);\n        if (this.options.silent) {\n          console.error(s);\n          break;\n        } else throw new Error(s);\n      }\n    }\n    return this.state.top = !0, t;\n  }\n  inline(e, t = []) {\n    return this.inlineQueue.push({\n      src: e,\n      tokens: t\n    }), t;\n  }\n  inlineTokens(e, t = []) {\n    let n = e,\n      r = null;\n    if (this.tokens.links) {\n      let o = Object.keys(this.tokens.links);\n      if (o.length > 0) for (; (r = this.tokenizer.rules.inline.reflinkSearch.exec(n)) != null;) o.includes(r[0].slice(r[0].lastIndexOf(\"[\") + 1, -1)) && (n = n.slice(0, r.index) + \"[\" + \"a\".repeat(r[0].length - 2) + \"]\" + n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex));\n    }\n    for (; (r = this.tokenizer.rules.inline.anyPunctuation.exec(n)) != null;) n = n.slice(0, r.index) + \"++\" + n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n    for (; (r = this.tokenizer.rules.inline.blockSkip.exec(n)) != null;) n = n.slice(0, r.index) + \"[\" + \"a\".repeat(r[0].length - 2) + \"]\" + n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n    let i = !1,\n      s = \"\";\n    for (; e;) {\n      i || (s = \"\"), i = !1;\n      let o;\n      if (this.options.extensions?.inline?.some(u => (o = u.call({\n        lexer: this\n      }, e, t)) ? (e = e.substring(o.raw.length), t.push(o), !0) : !1)) continue;\n      if (o = this.tokenizer.escape(e)) {\n        e = e.substring(o.raw.length), t.push(o);\n        continue;\n      }\n      if (o = this.tokenizer.tag(e)) {\n        e = e.substring(o.raw.length), t.push(o);\n        continue;\n      }\n      if (o = this.tokenizer.link(e)) {\n        e = e.substring(o.raw.length), t.push(o);\n        continue;\n      }\n      if (o = this.tokenizer.reflink(e, this.tokens.links)) {\n        e = e.substring(o.raw.length);\n        let u = t.at(-1);\n        o.type === \"text\" && u?.type === \"text\" ? (u.raw += o.raw, u.text += o.text) : t.push(o);\n        continue;\n      }\n      if (o = this.tokenizer.emStrong(e, n, s)) {\n        e = e.substring(o.raw.length), t.push(o);\n        continue;\n      }\n      if (o = this.tokenizer.codespan(e)) {\n        e = e.substring(o.raw.length), t.push(o);\n        continue;\n      }\n      if (o = this.tokenizer.br(e)) {\n        e = e.substring(o.raw.length), t.push(o);\n        continue;\n      }\n      if (o = this.tokenizer.del(e)) {\n        e = e.substring(o.raw.length), t.push(o);\n        continue;\n      }\n      if (o = this.tokenizer.autolink(e)) {\n        e = e.substring(o.raw.length), t.push(o);\n        continue;\n      }\n      if (!this.state.inLink && (o = this.tokenizer.url(e))) {\n        e = e.substring(o.raw.length), t.push(o);\n        continue;\n      }\n      let a = e;\n      if (this.options.extensions?.startInline) {\n        let u = 1 / 0,\n          p = e.slice(1),\n          c;\n        this.options.extensions.startInline.forEach(f => {\n          c = f.call({\n            lexer: this\n          }, p), typeof c == \"number\" && c >= 0 && (u = Math.min(u, c));\n        }), u < 1 / 0 && u >= 0 && (a = e.substring(0, u + 1));\n      }\n      if (o = this.tokenizer.inlineText(a)) {\n        e = e.substring(o.raw.length), o.raw.slice(-1) !== \"_\" && (s = o.raw.slice(-1)), i = !0;\n        let u = t.at(-1);\n        u?.type === \"text\" ? (u.raw += o.raw, u.text += o.text) : t.push(o);\n        continue;\n      }\n      if (e) {\n        let u = \"Infinite loop on byte: \" + e.charCodeAt(0);\n        if (this.options.silent) {\n          console.error(u);\n          break;\n        } else throw new Error(u);\n      }\n    }\n    return t;\n  }\n};\nvar P = class {\n  options;\n  parser;\n  constructor(e) {\n    this.options = e || O;\n  }\n  space(e) {\n    return \"\";\n  }\n  code({\n    text: e,\n    lang: t,\n    escaped: n\n  }) {\n    let r = (t || \"\").match(m.notSpaceStart)?.[0],\n      i = e.replace(m.endingNewline, \"\") + `\n`;\n    return r ? '<pre><code class=\"language-' + w(r) + '\">' + (n ? i : w(i, !0)) + `</code></pre>\n` : \"<pre><code>\" + (n ? i : w(i, !0)) + `</code></pre>\n`;\n  }\n  blockquote({\n    tokens: e\n  }) {\n    return `<blockquote>\n${this.parser.parse(e)}</blockquote>\n`;\n  }\n  html({\n    text: e\n  }) {\n    return e;\n  }\n  heading({\n    tokens: e,\n    depth: t\n  }) {\n    return `<h${t}>${this.parser.parseInline(e)}</h${t}>\n`;\n  }\n  hr(e) {\n    return `<hr>\n`;\n  }\n  list(e) {\n    let t = e.ordered,\n      n = e.start,\n      r = \"\";\n    for (let o = 0; o < e.items.length; o++) {\n      let a = e.items[o];\n      r += this.listitem(a);\n    }\n    let i = t ? \"ol\" : \"ul\",\n      s = t && n !== 1 ? ' start=\"' + n + '\"' : \"\";\n    return \"<\" + i + s + `>\n` + r + \"</\" + i + `>\n`;\n  }\n  listitem(e) {\n    let t = \"\";\n    if (e.task) {\n      let n = this.checkbox({\n        checked: !!e.checked\n      });\n      e.loose ? e.tokens[0]?.type === \"paragraph\" ? (e.tokens[0].text = n + \" \" + e.tokens[0].text, e.tokens[0].tokens && e.tokens[0].tokens.length > 0 && e.tokens[0].tokens[0].type === \"text\" && (e.tokens[0].tokens[0].text = n + \" \" + w(e.tokens[0].tokens[0].text), e.tokens[0].tokens[0].escaped = !0)) : e.tokens.unshift({\n        type: \"text\",\n        raw: n + \" \",\n        text: n + \" \",\n        escaped: !0\n      }) : t += n + \" \";\n    }\n    return t += this.parser.parse(e.tokens, !!e.loose), `<li>${t}</li>\n`;\n  }\n  checkbox({\n    checked: e\n  }) {\n    return \"<input \" + (e ? 'checked=\"\" ' : \"\") + 'disabled=\"\" type=\"checkbox\">';\n  }\n  paragraph({\n    tokens: e\n  }) {\n    return `<p>${this.parser.parseInline(e)}</p>\n`;\n  }\n  table(e) {\n    let t = \"\",\n      n = \"\";\n    for (let i = 0; i < e.header.length; i++) n += this.tablecell(e.header[i]);\n    t += this.tablerow({\n      text: n\n    });\n    let r = \"\";\n    for (let i = 0; i < e.rows.length; i++) {\n      let s = e.rows[i];\n      n = \"\";\n      for (let o = 0; o < s.length; o++) n += this.tablecell(s[o]);\n      r += this.tablerow({\n        text: n\n      });\n    }\n    return r && (r = `<tbody>${r}</tbody>`), `<table>\n<thead>\n` + t + `</thead>\n` + r + `</table>\n`;\n  }\n  tablerow({\n    text: e\n  }) {\n    return `<tr>\n${e}</tr>\n`;\n  }\n  tablecell(e) {\n    let t = this.parser.parseInline(e.tokens),\n      n = e.header ? \"th\" : \"td\";\n    return (e.align ? `<${n} align=\"${e.align}\">` : `<${n}>`) + t + `</${n}>\n`;\n  }\n  strong({\n    tokens: e\n  }) {\n    return `<strong>${this.parser.parseInline(e)}</strong>`;\n  }\n  em({\n    tokens: e\n  }) {\n    return `<em>${this.parser.parseInline(e)}</em>`;\n  }\n  codespan({\n    text: e\n  }) {\n    return `<code>${w(e, !0)}</code>`;\n  }\n  br(e) {\n    return \"<br>\";\n  }\n  del({\n    tokens: e\n  }) {\n    return `<del>${this.parser.parseInline(e)}</del>`;\n  }\n  link({\n    href: e,\n    title: t,\n    tokens: n\n  }) {\n    let r = this.parser.parseInline(n),\n      i = J(e);\n    if (i === null) return r;\n    e = i;\n    let s = '<a href=\"' + e + '\"';\n    return t && (s += ' title=\"' + w(t) + '\"'), s += \">\" + r + \"</a>\", s;\n  }\n  image({\n    href: e,\n    title: t,\n    text: n,\n    tokens: r\n  }) {\n    r && (n = this.parser.parseInline(r, this.parser.textRenderer));\n    let i = J(e);\n    if (i === null) return w(n);\n    e = i;\n    let s = `<img src=\"${e}\" alt=\"${n}\"`;\n    return t && (s += ` title=\"${w(t)}\"`), s += \">\", s;\n  }\n  text(e) {\n    return \"tokens\" in e && e.tokens ? this.parser.parseInline(e.tokens) : \"escaped\" in e && e.escaped ? e.text : w(e.text);\n  }\n};\nvar S = class {\n  strong({\n    text: e\n  }) {\n    return e;\n  }\n  em({\n    text: e\n  }) {\n    return e;\n  }\n  codespan({\n    text: e\n  }) {\n    return e;\n  }\n  del({\n    text: e\n  }) {\n    return e;\n  }\n  html({\n    text: e\n  }) {\n    return e;\n  }\n  text({\n    text: e\n  }) {\n    return e;\n  }\n  link({\n    text: e\n  }) {\n    return \"\" + e;\n  }\n  image({\n    text: e\n  }) {\n    return \"\" + e;\n  }\n  br() {\n    return \"\";\n  }\n};\nvar R = class l {\n  options;\n  renderer;\n  textRenderer;\n  constructor(e) {\n    this.options = e || O, this.options.renderer = this.options.renderer || new P(), this.renderer = this.options.renderer, this.renderer.options = this.options, this.renderer.parser = this, this.textRenderer = new S();\n  }\n  static parse(e, t) {\n    return new l(t).parse(e);\n  }\n  static parseInline(e, t) {\n    return new l(t).parseInline(e);\n  }\n  parse(e, t = !0) {\n    let n = \"\";\n    for (let r = 0; r < e.length; r++) {\n      let i = e[r];\n      if (this.options.extensions?.renderers?.[i.type]) {\n        let o = i,\n          a = this.options.extensions.renderers[o.type].call({\n            parser: this\n          }, o);\n        if (a !== !1 || ![\"space\", \"hr\", \"heading\", \"code\", \"table\", \"blockquote\", \"list\", \"html\", \"paragraph\", \"text\"].includes(o.type)) {\n          n += a || \"\";\n          continue;\n        }\n      }\n      let s = i;\n      switch (s.type) {\n        case \"space\":\n          {\n            n += this.renderer.space(s);\n            continue;\n          }\n        case \"hr\":\n          {\n            n += this.renderer.hr(s);\n            continue;\n          }\n        case \"heading\":\n          {\n            n += this.renderer.heading(s);\n            continue;\n          }\n        case \"code\":\n          {\n            n += this.renderer.code(s);\n            continue;\n          }\n        case \"table\":\n          {\n            n += this.renderer.table(s);\n            continue;\n          }\n        case \"blockquote\":\n          {\n            n += this.renderer.blockquote(s);\n            continue;\n          }\n        case \"list\":\n          {\n            n += this.renderer.list(s);\n            continue;\n          }\n        case \"html\":\n          {\n            n += this.renderer.html(s);\n            continue;\n          }\n        case \"paragraph\":\n          {\n            n += this.renderer.paragraph(s);\n            continue;\n          }\n        case \"text\":\n          {\n            let o = s,\n              a = this.renderer.text(o);\n            for (; r + 1 < e.length && e[r + 1].type === \"text\";) o = e[++r], a += `\n` + this.renderer.text(o);\n            t ? n += this.renderer.paragraph({\n              type: \"paragraph\",\n              raw: a,\n              text: a,\n              tokens: [{\n                type: \"text\",\n                raw: a,\n                text: a,\n                escaped: !0\n              }]\n            }) : n += a;\n            continue;\n          }\n        default:\n          {\n            let o = 'Token with \"' + s.type + '\" type was not found.';\n            if (this.options.silent) return console.error(o), \"\";\n            throw new Error(o);\n          }\n      }\n    }\n    return n;\n  }\n  parseInline(e, t = this.renderer) {\n    let n = \"\";\n    for (let r = 0; r < e.length; r++) {\n      let i = e[r];\n      if (this.options.extensions?.renderers?.[i.type]) {\n        let o = this.options.extensions.renderers[i.type].call({\n          parser: this\n        }, i);\n        if (o !== !1 || ![\"escape\", \"html\", \"link\", \"image\", \"strong\", \"em\", \"codespan\", \"br\", \"del\", \"text\"].includes(i.type)) {\n          n += o || \"\";\n          continue;\n        }\n      }\n      let s = i;\n      switch (s.type) {\n        case \"escape\":\n          {\n            n += t.text(s);\n            break;\n          }\n        case \"html\":\n          {\n            n += t.html(s);\n            break;\n          }\n        case \"link\":\n          {\n            n += t.link(s);\n            break;\n          }\n        case \"image\":\n          {\n            n += t.image(s);\n            break;\n          }\n        case \"strong\":\n          {\n            n += t.strong(s);\n            break;\n          }\n        case \"em\":\n          {\n            n += t.em(s);\n            break;\n          }\n        case \"codespan\":\n          {\n            n += t.codespan(s);\n            break;\n          }\n        case \"br\":\n          {\n            n += t.br(s);\n            break;\n          }\n        case \"del\":\n          {\n            n += t.del(s);\n            break;\n          }\n        case \"text\":\n          {\n            n += t.text(s);\n            break;\n          }\n        default:\n          {\n            let o = 'Token with \"' + s.type + '\" type was not found.';\n            if (this.options.silent) return console.error(o), \"\";\n            throw new Error(o);\n          }\n      }\n    }\n    return n;\n  }\n};\nvar $ = class {\n  options;\n  block;\n  constructor(e) {\n    this.options = e || O;\n  }\n  static passThroughHooks = new Set([\"preprocess\", \"postprocess\", \"processAllTokens\"]);\n  preprocess(e) {\n    return e;\n  }\n  postprocess(e) {\n    return e;\n  }\n  processAllTokens(e) {\n    return e;\n  }\n  provideLexer() {\n    return this.block ? b.lex : b.lexInline;\n  }\n  provideParser() {\n    return this.block ? R.parse : R.parseInline;\n  }\n};\nvar B = class {\n  defaults = L();\n  options = this.setOptions;\n  parse = this.parseMarkdown(!0);\n  parseInline = this.parseMarkdown(!1);\n  Parser = R;\n  Renderer = P;\n  TextRenderer = S;\n  Lexer = b;\n  Tokenizer = y;\n  Hooks = $;\n  constructor(...e) {\n    this.use(...e);\n  }\n  walkTokens(e, t) {\n    let n = [];\n    for (let r of e) switch (n = n.concat(t.call(this, r)), r.type) {\n      case \"table\":\n        {\n          let i = r;\n          for (let s of i.header) n = n.concat(this.walkTokens(s.tokens, t));\n          for (let s of i.rows) for (let o of s) n = n.concat(this.walkTokens(o.tokens, t));\n          break;\n        }\n      case \"list\":\n        {\n          let i = r;\n          n = n.concat(this.walkTokens(i.items, t));\n          break;\n        }\n      default:\n        {\n          let i = r;\n          this.defaults.extensions?.childTokens?.[i.type] ? this.defaults.extensions.childTokens[i.type].forEach(s => {\n            let o = i[s].flat(1 / 0);\n            n = n.concat(this.walkTokens(o, t));\n          }) : i.tokens && (n = n.concat(this.walkTokens(i.tokens, t)));\n        }\n    }\n    return n;\n  }\n  use(...e) {\n    let t = this.defaults.extensions || {\n      renderers: {},\n      childTokens: {}\n    };\n    return e.forEach(n => {\n      let r = {\n        ...n\n      };\n      if (r.async = this.defaults.async || r.async || !1, n.extensions && (n.extensions.forEach(i => {\n        if (!i.name) throw new Error(\"extension name required\");\n        if (\"renderer\" in i) {\n          let s = t.renderers[i.name];\n          s ? t.renderers[i.name] = function (...o) {\n            let a = i.renderer.apply(this, o);\n            return a === !1 && (a = s.apply(this, o)), a;\n          } : t.renderers[i.name] = i.renderer;\n        }\n        if (\"tokenizer\" in i) {\n          if (!i.level || i.level !== \"block\" && i.level !== \"inline\") throw new Error(\"extension level must be 'block' or 'inline'\");\n          let s = t[i.level];\n          s ? s.unshift(i.tokenizer) : t[i.level] = [i.tokenizer], i.start && (i.level === \"block\" ? t.startBlock ? t.startBlock.push(i.start) : t.startBlock = [i.start] : i.level === \"inline\" && (t.startInline ? t.startInline.push(i.start) : t.startInline = [i.start]));\n        }\n        \"childTokens\" in i && i.childTokens && (t.childTokens[i.name] = i.childTokens);\n      }), r.extensions = t), n.renderer) {\n        let i = this.defaults.renderer || new P(this.defaults);\n        for (let s in n.renderer) {\n          if (!(s in i)) throw new Error(`renderer '${s}' does not exist`);\n          if ([\"options\", \"parser\"].includes(s)) continue;\n          let o = s,\n            a = n.renderer[o],\n            u = i[o];\n          i[o] = (...p) => {\n            let c = a.apply(i, p);\n            return c === !1 && (c = u.apply(i, p)), c || \"\";\n          };\n        }\n        r.renderer = i;\n      }\n      if (n.tokenizer) {\n        let i = this.defaults.tokenizer || new y(this.defaults);\n        for (let s in n.tokenizer) {\n          if (!(s in i)) throw new Error(`tokenizer '${s}' does not exist`);\n          if ([\"options\", \"rules\", \"lexer\"].includes(s)) continue;\n          let o = s,\n            a = n.tokenizer[o],\n            u = i[o];\n          i[o] = (...p) => {\n            let c = a.apply(i, p);\n            return c === !1 && (c = u.apply(i, p)), c;\n          };\n        }\n        r.tokenizer = i;\n      }\n      if (n.hooks) {\n        let i = this.defaults.hooks || new $();\n        for (let s in n.hooks) {\n          if (!(s in i)) throw new Error(`hook '${s}' does not exist`);\n          if ([\"options\", \"block\"].includes(s)) continue;\n          let o = s,\n            a = n.hooks[o],\n            u = i[o];\n          $.passThroughHooks.has(s) ? i[o] = p => {\n            if (this.defaults.async) return Promise.resolve(a.call(i, p)).then(f => u.call(i, f));\n            let c = a.call(i, p);\n            return u.call(i, c);\n          } : i[o] = (...p) => {\n            let c = a.apply(i, p);\n            return c === !1 && (c = u.apply(i, p)), c;\n          };\n        }\n        r.hooks = i;\n      }\n      if (n.walkTokens) {\n        let i = this.defaults.walkTokens,\n          s = n.walkTokens;\n        r.walkTokens = function (o) {\n          let a = [];\n          return a.push(s.call(this, o)), i && (a = a.concat(i.call(this, o))), a;\n        };\n      }\n      this.defaults = {\n        ...this.defaults,\n        ...r\n      };\n    }), this;\n  }\n  setOptions(e) {\n    return this.defaults = {\n      ...this.defaults,\n      ...e\n    }, this;\n  }\n  lexer(e, t) {\n    return b.lex(e, t ?? this.defaults);\n  }\n  parser(e, t) {\n    return R.parse(e, t ?? this.defaults);\n  }\n  parseMarkdown(e) {\n    return (n, r) => {\n      let i = {\n          ...r\n        },\n        s = {\n          ...this.defaults,\n          ...i\n        },\n        o = this.onError(!!s.silent, !!s.async);\n      if (this.defaults.async === !0 && i.async === !1) return o(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));\n      if (typeof n > \"u\" || n === null) return o(new Error(\"marked(): input parameter is undefined or null\"));\n      if (typeof n != \"string\") return o(new Error(\"marked(): input parameter is of type \" + Object.prototype.toString.call(n) + \", string expected\"));\n      s.hooks && (s.hooks.options = s, s.hooks.block = e);\n      let a = s.hooks ? s.hooks.provideLexer() : e ? b.lex : b.lexInline,\n        u = s.hooks ? s.hooks.provideParser() : e ? R.parse : R.parseInline;\n      if (s.async) return Promise.resolve(s.hooks ? s.hooks.preprocess(n) : n).then(p => a(p, s)).then(p => s.hooks ? s.hooks.processAllTokens(p) : p).then(p => s.walkTokens ? Promise.all(this.walkTokens(p, s.walkTokens)).then(() => p) : p).then(p => u(p, s)).then(p => s.hooks ? s.hooks.postprocess(p) : p).catch(o);\n      try {\n        s.hooks && (n = s.hooks.preprocess(n));\n        let p = a(n, s);\n        s.hooks && (p = s.hooks.processAllTokens(p)), s.walkTokens && this.walkTokens(p, s.walkTokens);\n        let c = u(p, s);\n        return s.hooks && (c = s.hooks.postprocess(c)), c;\n      } catch (p) {\n        return o(p);\n      }\n    };\n  }\n  onError(e, t) {\n    return n => {\n      if (n.message += `\nPlease report this to https://github.com/markedjs/marked.`, e) {\n        let r = \"<p>An error occurred:</p><pre>\" + w(n.message + \"\", !0) + \"</pre>\";\n        return t ? Promise.resolve(r) : r;\n      }\n      if (t) return Promise.reject(n);\n      throw n;\n    };\n  }\n};\nvar _ = new B();\nfunction d(l, e) {\n  return _.parse(l, e);\n}\nd.options = d.setOptions = function (l) {\n  return _.setOptions(l), d.defaults = _.defaults, H(d.defaults), d;\n};\nd.getDefaults = L;\nd.defaults = O;\nd.use = function (...l) {\n  return _.use(...l), d.defaults = _.defaults, H(d.defaults), d;\n};\nd.walkTokens = function (l, e) {\n  return _.walkTokens(l, e);\n};\nd.parseInline = _.parseInline;\nd.Parser = R;\nd.parser = R.parse;\nd.Renderer = P;\nd.TextRenderer = S;\nd.Lexer = b;\nd.lexer = b.lex;\nd.Tokenizer = y;\nd.Hooks = $;\nd.parse = d;\nvar Dt = d.options,\n  Zt = d.setOptions,\n  Gt = d.use,\n  Ht = d.walkTokens,\n  Nt = d.parseInline,\n  jt = d,\n  Ft = R.parse,\n  Qt = b.lex;\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/marked/lib/marked.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/memoize-one/dist/memoize-one.esm.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/memoize-one/dist/memoize-one.esm.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ memoizeOne)\n/* harmony export */ });\nvar safeIsNaN = Number.isNaN || function ponyfill(value) {\n  return typeof value === 'number' && value !== value;\n};\nfunction isEqual(first, second) {\n  if (first === second) {\n    return true;\n  }\n  if (safeIsNaN(first) && safeIsNaN(second)) {\n    return true;\n  }\n  return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n  if (newInputs.length !== lastInputs.length) {\n    return false;\n  }\n  for (var i = 0; i < newInputs.length; i++) {\n    if (!isEqual(newInputs[i], lastInputs[i])) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction memoizeOne(resultFn, isEqual) {\n  if (isEqual === void 0) {\n    isEqual = areInputsEqual;\n  }\n  var cache = null;\n  function memoized() {\n    var newArgs = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n      newArgs[_i] = arguments[_i];\n    }\n    if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n      return cache.lastResult;\n    }\n    var lastResult = resultFn.apply(this, newArgs);\n    cache = {\n      lastResult: lastResult,\n      lastArgs: newArgs,\n      lastThis: this\n    };\n    return lastResult;\n  }\n  memoized.clear = function clear() {\n    cache = null;\n  };\n  return memoized;\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/memoize-one/dist/memoize-one.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/af.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/af.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var af = moment.defineLocale('af', {\n    months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),\n    monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n    weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),\n    weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n    weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n    meridiemParse: /vm|nm/i,\n    isPM: function (input) {\n      return /^nm$/i.test(input);\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 12) {\n        return isLower ? 'vm' : 'VM';\n      } else {\n        return isLower ? 'nm' : 'NM';\n      }\n    },\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Vandag om] LT',\n      nextDay: '[Môre om] LT',\n      nextWeek: 'dddd [om] LT',\n      lastDay: '[Gister om] LT',\n      lastWeek: '[Laas] dddd [om] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'oor %s',\n      past: '%s gelede',\n      s: \"'n paar sekondes\",\n      ss: '%d sekondes',\n      m: \"'n minuut\",\n      mm: '%d minute',\n      h: \"'n uur\",\n      hh: '%d ure',\n      d: \"'n dag\",\n      dd: '%d dae',\n      M: \"'n maand\",\n      MM: '%d maande',\n      y: \"'n jaar\",\n      yy: '%d jaar'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n    ordinal: function (number) {\n      return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter\n    },\n    week: {\n      dow: 1,\n      // Maandag is die eerste dag van die week.\n      doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n    }\n  });\n  return af;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/af.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ar-dz.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ar-dz.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var pluralForm = function (n) {\n      return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n    },\n    plurals = {\n      s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n      m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n      h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n      d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n      M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n      y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n    },\n    pluralize = function (u) {\n      return function (number, withoutSuffix, string, isFuture) {\n        var f = pluralForm(number),\n          str = plurals[u][pluralForm(number)];\n        if (f === 2) {\n          str = str[withoutSuffix ? 0 : 1];\n        }\n        return str.replace(/%d/i, number);\n      };\n    },\n    months = ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'];\n  var arDz = moment.defineLocale('ar-dz', {\n    months: months,\n    monthsShort: months,\n    weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'D/\\u200FM/\\u200FYYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ص|م/,\n    isPM: function (input) {\n      return 'م' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ص';\n      } else {\n        return 'م';\n      }\n    },\n    calendar: {\n      sameDay: '[اليوم عند الساعة] LT',\n      nextDay: '[غدًا عند الساعة] LT',\n      nextWeek: 'dddd [عند الساعة] LT',\n      lastDay: '[أمس عند الساعة] LT',\n      lastWeek: 'dddd [عند الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'بعد %s',\n      past: 'منذ %s',\n      s: pluralize('s'),\n      ss: pluralize('s'),\n      m: pluralize('m'),\n      mm: pluralize('m'),\n      h: pluralize('h'),\n      hh: pluralize('h'),\n      d: pluralize('d'),\n      dd: pluralize('d'),\n      M: pluralize('M'),\n      MM: pluralize('M'),\n      y: pluralize('y'),\n      yy: pluralize('y')\n    },\n    postformat: function (string) {\n      return string.replace(/,/g, '،');\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return arDz;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ar-dz.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ar-kw.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ar-kw.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var arKw = moment.defineLocale('ar-kw', {\n    months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n    monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n    weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[اليوم على الساعة] LT',\n      nextDay: '[غدا على الساعة] LT',\n      nextWeek: 'dddd [على الساعة] LT',\n      lastDay: '[أمس على الساعة] LT',\n      lastWeek: 'dddd [على الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'في %s',\n      past: 'منذ %s',\n      s: 'ثوان',\n      ss: '%d ثانية',\n      m: 'دقيقة',\n      mm: '%d دقائق',\n      h: 'ساعة',\n      hh: '%d ساعات',\n      d: 'يوم',\n      dd: '%d أيام',\n      M: 'شهر',\n      MM: '%d أشهر',\n      y: 'سنة',\n      yy: '%d سنوات'\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n    }\n  });\n  return arKw;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ar-kw.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ar-ly.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ar-ly.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '1',\n      2: '2',\n      3: '3',\n      4: '4',\n      5: '5',\n      6: '6',\n      7: '7',\n      8: '8',\n      9: '9',\n      0: '0'\n    },\n    pluralForm = function (n) {\n      return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n    },\n    plurals = {\n      s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n      m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n      h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n      d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n      M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n      y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n    },\n    pluralize = function (u) {\n      return function (number, withoutSuffix, string, isFuture) {\n        var f = pluralForm(number),\n          str = plurals[u][pluralForm(number)];\n        if (f === 2) {\n          str = str[withoutSuffix ? 0 : 1];\n        }\n        return str.replace(/%d/i, number);\n      };\n    },\n    months = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'];\n  var arLy = moment.defineLocale('ar-ly', {\n    months: months,\n    monthsShort: months,\n    weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'D/\\u200FM/\\u200FYYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ص|م/,\n    isPM: function (input) {\n      return 'م' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ص';\n      } else {\n        return 'م';\n      }\n    },\n    calendar: {\n      sameDay: '[اليوم عند الساعة] LT',\n      nextDay: '[غدًا عند الساعة] LT',\n      nextWeek: 'dddd [عند الساعة] LT',\n      lastDay: '[أمس عند الساعة] LT',\n      lastWeek: 'dddd [عند الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'بعد %s',\n      past: 'منذ %s',\n      s: pluralize('s'),\n      ss: pluralize('s'),\n      m: pluralize('m'),\n      mm: pluralize('m'),\n      h: pluralize('h'),\n      hh: pluralize('h'),\n      d: pluralize('d'),\n      dd: pluralize('d'),\n      M: pluralize('M'),\n      MM: pluralize('M'),\n      y: pluralize('y'),\n      yy: pluralize('y')\n    },\n    preparse: function (string) {\n      return string.replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      }).replace(/,/g, '،');\n    },\n    week: {\n      dow: 6,\n      // Saturday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n    }\n  });\n  return arLy;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ar-ly.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ar-ma.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ar-ma.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var arMa = moment.defineLocale('ar-ma', {\n    months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n    monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n    weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[اليوم على الساعة] LT',\n      nextDay: '[غدا على الساعة] LT',\n      nextWeek: 'dddd [على الساعة] LT',\n      lastDay: '[أمس على الساعة] LT',\n      lastWeek: 'dddd [على الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'في %s',\n      past: 'منذ %s',\n      s: 'ثوان',\n      ss: '%d ثانية',\n      m: 'دقيقة',\n      mm: '%d دقائق',\n      h: 'ساعة',\n      hh: '%d ساعات',\n      d: 'يوم',\n      dd: '%d أيام',\n      M: 'شهر',\n      MM: '%d أشهر',\n      y: 'سنة',\n      yy: '%d سنوات'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return arMa;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ar-ma.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ar-ps.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ar-ps.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Arabic (Palestine) [ar-ps]\n//! author : Majd Al-Shihabi : https://github.com/majdal\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '١',\n      2: '٢',\n      3: '٣',\n      4: '٤',\n      5: '٥',\n      6: '٦',\n      7: '٧',\n      8: '٨',\n      9: '٩',\n      0: '٠'\n    },\n    numberMap = {\n      '١': '1',\n      '٢': '2',\n      '٣': '3',\n      '٤': '4',\n      '٥': '5',\n      '٦': '6',\n      '٧': '7',\n      '٨': '8',\n      '٩': '9',\n      '٠': '0'\n    };\n  var arPs = moment.defineLocale('ar-ps', {\n    months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split('_'),\n    monthsShort: 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),\n    weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ص|م/,\n    isPM: function (input) {\n      return 'م' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ص';\n      } else {\n        return 'م';\n      }\n    },\n    calendar: {\n      sameDay: '[اليوم على الساعة] LT',\n      nextDay: '[غدا على الساعة] LT',\n      nextWeek: 'dddd [على الساعة] LT',\n      lastDay: '[أمس على الساعة] LT',\n      lastWeek: 'dddd [على الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'في %s',\n      past: 'منذ %s',\n      s: 'ثوان',\n      ss: '%d ثانية',\n      m: 'دقيقة',\n      mm: '%d دقائق',\n      h: 'ساعة',\n      hh: '%d ساعات',\n      d: 'يوم',\n      dd: '%d أيام',\n      M: 'شهر',\n      MM: '%d أشهر',\n      y: 'سنة',\n      yy: '%d سنوات'\n    },\n    preparse: function (string) {\n      return string.replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {\n        return numberMap[match];\n      }).split('') // reversed since negative lookbehind not supported everywhere\n      .reverse().join('').replace(/[١٢](?![\\u062a\\u0643])/g, function (match) {\n        return numberMap[match];\n      }).split('').reverse().join('').replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      }).replace(/,/g, '،');\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return arPs;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ar-ps.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ar-sa.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ar-sa.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '١',\n      2: '٢',\n      3: '٣',\n      4: '٤',\n      5: '٥',\n      6: '٦',\n      7: '٧',\n      8: '٨',\n      9: '٩',\n      0: '٠'\n    },\n    numberMap = {\n      '١': '1',\n      '٢': '2',\n      '٣': '3',\n      '٤': '4',\n      '٥': '5',\n      '٦': '6',\n      '٧': '7',\n      '٨': '8',\n      '٩': '9',\n      '٠': '0'\n    };\n  var arSa = moment.defineLocale('ar-sa', {\n    months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n    monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n    weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ص|م/,\n    isPM: function (input) {\n      return 'م' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ص';\n      } else {\n        return 'م';\n      }\n    },\n    calendar: {\n      sameDay: '[اليوم على الساعة] LT',\n      nextDay: '[غدا على الساعة] LT',\n      nextWeek: 'dddd [على الساعة] LT',\n      lastDay: '[أمس على الساعة] LT',\n      lastWeek: 'dddd [على الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'في %s',\n      past: 'منذ %s',\n      s: 'ثوان',\n      ss: '%d ثانية',\n      m: 'دقيقة',\n      mm: '%d دقائق',\n      h: 'ساعة',\n      hh: '%d ساعات',\n      d: 'يوم',\n      dd: '%d أيام',\n      M: 'شهر',\n      MM: '%d أشهر',\n      y: 'سنة',\n      yy: '%d سنوات'\n    },\n    preparse: function (string) {\n      return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n        return numberMap[match];\n      }).replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      }).replace(/,/g, '،');\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return arSa;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ar-sa.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ar-tn.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ar-tn.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale  :  Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var arTn = moment.defineLocale('ar-tn', {\n    months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n    monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n    weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[اليوم على الساعة] LT',\n      nextDay: '[غدا على الساعة] LT',\n      nextWeek: 'dddd [على الساعة] LT',\n      lastDay: '[أمس على الساعة] LT',\n      lastWeek: 'dddd [على الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'في %s',\n      past: 'منذ %s',\n      s: 'ثوان',\n      ss: '%d ثانية',\n      m: 'دقيقة',\n      mm: '%d دقائق',\n      h: 'ساعة',\n      hh: '%d ساعات',\n      d: 'يوم',\n      dd: '%d أيام',\n      M: 'شهر',\n      MM: '%d أشهر',\n      y: 'سنة',\n      yy: '%d سنوات'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return arTn;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ar-tn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ar.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ar.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '١',\n      2: '٢',\n      3: '٣',\n      4: '٤',\n      5: '٥',\n      6: '٦',\n      7: '٧',\n      8: '٨',\n      9: '٩',\n      0: '٠'\n    },\n    numberMap = {\n      '١': '1',\n      '٢': '2',\n      '٣': '3',\n      '٤': '4',\n      '٥': '5',\n      '٦': '6',\n      '٧': '7',\n      '٨': '8',\n      '٩': '9',\n      '٠': '0'\n    },\n    pluralForm = function (n) {\n      return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n    },\n    plurals = {\n      s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n      m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n      h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n      d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n      M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n      y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n    },\n    pluralize = function (u) {\n      return function (number, withoutSuffix, string, isFuture) {\n        var f = pluralForm(number),\n          str = plurals[u][pluralForm(number)];\n        if (f === 2) {\n          str = str[withoutSuffix ? 0 : 1];\n        }\n        return str.replace(/%d/i, number);\n      };\n    },\n    months = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'];\n  var ar = moment.defineLocale('ar', {\n    months: months,\n    monthsShort: months,\n    weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n    weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'D/\\u200FM/\\u200FYYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ص|م/,\n    isPM: function (input) {\n      return 'م' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ص';\n      } else {\n        return 'م';\n      }\n    },\n    calendar: {\n      sameDay: '[اليوم عند الساعة] LT',\n      nextDay: '[غدًا عند الساعة] LT',\n      nextWeek: 'dddd [عند الساعة] LT',\n      lastDay: '[أمس عند الساعة] LT',\n      lastWeek: 'dddd [عند الساعة] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'بعد %s',\n      past: 'منذ %s',\n      s: pluralize('s'),\n      ss: pluralize('s'),\n      m: pluralize('m'),\n      mm: pluralize('m'),\n      h: pluralize('h'),\n      hh: pluralize('h'),\n      d: pluralize('d'),\n      dd: pluralize('d'),\n      M: pluralize('M'),\n      MM: pluralize('M'),\n      y: pluralize('y'),\n      yy: pluralize('y')\n    },\n    preparse: function (string) {\n      return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n        return numberMap[match];\n      }).replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      }).replace(/,/g, '،');\n    },\n    week: {\n      dow: 6,\n      // Saturday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n    }\n  });\n  return ar;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ar.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/az.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/az.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var suffixes = {\n    1: '-inci',\n    5: '-inci',\n    8: '-inci',\n    70: '-inci',\n    80: '-inci',\n    2: '-nci',\n    7: '-nci',\n    20: '-nci',\n    50: '-nci',\n    3: '-üncü',\n    4: '-üncü',\n    100: '-üncü',\n    6: '-ncı',\n    9: '-uncu',\n    10: '-uncu',\n    30: '-uncu',\n    60: '-ıncı',\n    90: '-ıncı'\n  };\n  var az = moment.defineLocale('az', {\n    months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),\n    monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n    weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),\n    weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n    weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[bugün saat] LT',\n      nextDay: '[sabah saat] LT',\n      nextWeek: '[gələn həftə] dddd [saat] LT',\n      lastDay: '[dünən] LT',\n      lastWeek: '[keçən həftə] dddd [saat] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s sonra',\n      past: '%s əvvəl',\n      s: 'bir neçə saniyə',\n      ss: '%d saniyə',\n      m: 'bir dəqiqə',\n      mm: '%d dəqiqə',\n      h: 'bir saat',\n      hh: '%d saat',\n      d: 'bir gün',\n      dd: '%d gün',\n      M: 'bir ay',\n      MM: '%d ay',\n      y: 'bir il',\n      yy: '%d il'\n    },\n    meridiemParse: /gecə|səhər|gündüz|axşam/,\n    isPM: function (input) {\n      return /^(gündüz|axşam)$/.test(input);\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'gecə';\n      } else if (hour < 12) {\n        return 'səhər';\n      } else if (hour < 17) {\n        return 'gündüz';\n      } else {\n        return 'axşam';\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n    ordinal: function (number) {\n      if (number === 0) {\n        // special case for zero\n        return number + '-ıncı';\n      }\n      var a = number % 10,\n        b = number % 100 - a,\n        c = number >= 100 ? 100 : null;\n      return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return az;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/az.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/be.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/be.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function plural(word, num) {\n    var forms = word.split('_');\n    return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n  }\n  function relativeTimeWithPlural(number, withoutSuffix, key) {\n    var format = {\n      ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n      mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n      hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n      dd: 'дзень_дні_дзён',\n      MM: 'месяц_месяцы_месяцаў',\n      yy: 'год_гады_гадоў'\n    };\n    if (key === 'm') {\n      return withoutSuffix ? 'хвіліна' : 'хвіліну';\n    } else if (key === 'h') {\n      return withoutSuffix ? 'гадзіна' : 'гадзіну';\n    } else {\n      return number + ' ' + plural(format[key], +number);\n    }\n  }\n  var be = moment.defineLocale('be', {\n    months: {\n      format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split('_'),\n      standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')\n    },\n    monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n    weekdays: {\n      format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),\n      standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),\n      isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/\n    },\n    weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n    weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY г.',\n      LLL: 'D MMMM YYYY г., HH:mm',\n      LLLL: 'dddd, D MMMM YYYY г., HH:mm'\n    },\n    calendar: {\n      sameDay: '[Сёння ў] LT',\n      nextDay: '[Заўтра ў] LT',\n      lastDay: '[Учора ў] LT',\n      nextWeek: function () {\n        return '[У] dddd [ў] LT';\n      },\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n          case 3:\n          case 5:\n          case 6:\n            return '[У мінулую] dddd [ў] LT';\n          case 1:\n          case 2:\n          case 4:\n            return '[У мінулы] dddd [ў] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'праз %s',\n      past: '%s таму',\n      s: 'некалькі секунд',\n      m: relativeTimeWithPlural,\n      mm: relativeTimeWithPlural,\n      h: relativeTimeWithPlural,\n      hh: relativeTimeWithPlural,\n      d: 'дзень',\n      dd: relativeTimeWithPlural,\n      M: 'месяц',\n      MM: relativeTimeWithPlural,\n      y: 'год',\n      yy: relativeTimeWithPlural\n    },\n    meridiemParse: /ночы|раніцы|дня|вечара/,\n    isPM: function (input) {\n      return /^(дня|вечара)$/.test(input);\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'ночы';\n      } else if (hour < 12) {\n        return 'раніцы';\n      } else if (hour < 17) {\n        return 'дня';\n      } else {\n        return 'вечара';\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'M':\n        case 'd':\n        case 'DDD':\n        case 'w':\n        case 'W':\n          return (number % 10 === 2 || number % 10 === 3) && number % 100 !== 12 && number % 100 !== 13 ? number + '-і' : number + '-ы';\n        case 'D':\n          return number + '-га';\n        default:\n          return number;\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return be;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/be.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/bg.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/bg.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var bg = moment.defineLocale('bg', {\n    months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),\n    monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n    weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),\n    weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n    weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'D.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY H:mm',\n      LLLL: 'dddd, D MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[Днес в] LT',\n      nextDay: '[Утре в] LT',\n      nextWeek: 'dddd [в] LT',\n      lastDay: '[Вчера в] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n          case 3:\n          case 6:\n            return '[Миналата] dddd [в] LT';\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[Миналия] dddd [в] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'след %s',\n      past: 'преди %s',\n      s: 'няколко секунди',\n      ss: '%d секунди',\n      m: 'минута',\n      mm: '%d минути',\n      h: 'час',\n      hh: '%d часа',\n      d: 'ден',\n      dd: '%d дена',\n      w: 'седмица',\n      ww: '%d седмици',\n      M: 'месец',\n      MM: '%d месеца',\n      y: 'година',\n      yy: '%d години'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n    ordinal: function (number) {\n      var lastDigit = number % 10,\n        last2Digits = number % 100;\n      if (number === 0) {\n        return number + '-ев';\n      } else if (last2Digits === 0) {\n        return number + '-ен';\n      } else if (last2Digits > 10 && last2Digits < 20) {\n        return number + '-ти';\n      } else if (lastDigit === 1) {\n        return number + '-ви';\n      } else if (lastDigit === 2) {\n        return number + '-ри';\n      } else if (lastDigit === 7 || lastDigit === 8) {\n        return number + '-ми';\n      } else {\n        return number + '-ти';\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return bg;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/bg.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/bm.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/bm.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var bm = moment.defineLocale('bm', {\n    months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split('_'),\n    monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n    weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n    weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n    weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'MMMM [tile] D [san] YYYY',\n      LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n      LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm'\n    },\n    calendar: {\n      sameDay: '[Bi lɛrɛ] LT',\n      nextDay: '[Sini lɛrɛ] LT',\n      nextWeek: 'dddd [don lɛrɛ] LT',\n      lastDay: '[Kunu lɛrɛ] LT',\n      lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s kɔnɔ',\n      past: 'a bɛ %s bɔ',\n      s: 'sanga dama dama',\n      ss: 'sekondi %d',\n      m: 'miniti kelen',\n      mm: 'miniti %d',\n      h: 'lɛrɛ kelen',\n      hh: 'lɛrɛ %d',\n      d: 'tile kelen',\n      dd: 'tile %d',\n      M: 'kalo kelen',\n      MM: 'kalo %d',\n      y: 'san kelen',\n      yy: 'san %d'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return bm;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/bm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/bn-bd.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/bn-bd.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '১',\n      2: '২',\n      3: '৩',\n      4: '৪',\n      5: '৫',\n      6: '৬',\n      7: '৭',\n      8: '৮',\n      9: '৯',\n      0: '০'\n    },\n    numberMap = {\n      '১': '1',\n      '২': '2',\n      '৩': '3',\n      '৪': '4',\n      '৫': '5',\n      '৬': '6',\n      '৭': '7',\n      '৮': '8',\n      '৯': '9',\n      '০': '0'\n    };\n  var bnBd = moment.defineLocale('bn-bd', {\n    months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),\n    monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),\n    weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),\n    weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n    weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm সময়',\n      LTS: 'A h:mm:ss সময়',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm সময়',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm সময়'\n    },\n    calendar: {\n      sameDay: '[আজ] LT',\n      nextDay: '[আগামীকাল] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[গতকাল] LT',\n      lastWeek: '[গত] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s পরে',\n      past: '%s আগে',\n      s: 'কয়েক সেকেন্ড',\n      ss: '%d সেকেন্ড',\n      m: 'এক মিনিট',\n      mm: '%d মিনিট',\n      h: 'এক ঘন্টা',\n      hh: '%d ঘন্টা',\n      d: 'এক দিন',\n      dd: '%d দিন',\n      M: 'এক মাস',\n      MM: '%d মাস',\n      y: 'এক বছর',\n      yy: '%d বছর'\n    },\n    preparse: function (string) {\n      return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'রাত') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'ভোর') {\n        return hour;\n      } else if (meridiem === 'সকাল') {\n        return hour;\n      } else if (meridiem === 'দুপুর') {\n        return hour >= 3 ? hour : hour + 12;\n      } else if (meridiem === 'বিকাল') {\n        return hour + 12;\n      } else if (meridiem === 'সন্ধ্যা') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'রাত';\n      } else if (hour < 6) {\n        return 'ভোর';\n      } else if (hour < 12) {\n        return 'সকাল';\n      } else if (hour < 15) {\n        return 'দুপুর';\n      } else if (hour < 18) {\n        return 'বিকাল';\n      } else if (hour < 20) {\n        return 'সন্ধ্যা';\n      } else {\n        return 'রাত';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return bnBd;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/bn-bd.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/bn.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/bn.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '১',\n      2: '২',\n      3: '৩',\n      4: '৪',\n      5: '৫',\n      6: '৬',\n      7: '৭',\n      8: '৮',\n      9: '৯',\n      0: '০'\n    },\n    numberMap = {\n      '১': '1',\n      '২': '2',\n      '৩': '3',\n      '৪': '4',\n      '৫': '5',\n      '৬': '6',\n      '৭': '7',\n      '৮': '8',\n      '৯': '9',\n      '০': '0'\n    };\n  var bn = moment.defineLocale('bn', {\n    months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),\n    monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),\n    weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),\n    weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n    weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm সময়',\n      LTS: 'A h:mm:ss সময়',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm সময়',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm সময়'\n    },\n    calendar: {\n      sameDay: '[আজ] LT',\n      nextDay: '[আগামীকাল] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[গতকাল] LT',\n      lastWeek: '[গত] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s পরে',\n      past: '%s আগে',\n      s: 'কয়েক সেকেন্ড',\n      ss: '%d সেকেন্ড',\n      m: 'এক মিনিট',\n      mm: '%d মিনিট',\n      h: 'এক ঘন্টা',\n      hh: '%d ঘন্টা',\n      d: 'এক দিন',\n      dd: '%d দিন',\n      M: 'এক মাস',\n      MM: '%d মাস',\n      y: 'এক বছর',\n      yy: '%d বছর'\n    },\n    preparse: function (string) {\n      return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'রাত' && hour >= 4 || meridiem === 'দুপুর' && hour < 5 || meridiem === 'বিকাল') {\n        return hour + 12;\n      } else {\n        return hour;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'রাত';\n      } else if (hour < 10) {\n        return 'সকাল';\n      } else if (hour < 17) {\n        return 'দুপুর';\n      } else if (hour < 20) {\n        return 'বিকাল';\n      } else {\n        return 'রাত';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return bn;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/bn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/bo.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/bo.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '༡',\n      2: '༢',\n      3: '༣',\n      4: '༤',\n      5: '༥',\n      6: '༦',\n      7: '༧',\n      8: '༨',\n      9: '༩',\n      0: '༠'\n    },\n    numberMap = {\n      '༡': '1',\n      '༢': '2',\n      '༣': '3',\n      '༤': '4',\n      '༥': '5',\n      '༦': '6',\n      '༧': '7',\n      '༨': '8',\n      '༩': '9',\n      '༠': '0'\n    };\n  var bo = moment.defineLocale('bo', {\n    months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n    monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split('_'),\n    monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n    monthsParseExact: true,\n    weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split('_'),\n    weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split('_'),\n    weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm',\n      LTS: 'A h:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm'\n    },\n    calendar: {\n      sameDay: '[དི་རིང] LT',\n      nextDay: '[སང་ཉིན] LT',\n      nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n      lastDay: '[ཁ་སང] LT',\n      lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s ལ་',\n      past: '%s སྔན་ལ',\n      s: 'ལམ་སང',\n      ss: '%d སྐར་ཆ།',\n      m: 'སྐར་མ་གཅིག',\n      mm: '%d སྐར་མ',\n      h: 'ཆུ་ཚོད་གཅིག',\n      hh: '%d ཆུ་ཚོད',\n      d: 'ཉིན་གཅིག',\n      dd: '%d ཉིན་',\n      M: 'ཟླ་བ་གཅིག',\n      MM: '%d ཟླ་བ',\n      y: 'ལོ་གཅིག',\n      yy: '%d ལོ'\n    },\n    preparse: function (string) {\n      return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'མཚན་མོ' && hour >= 4 || meridiem === 'ཉིན་གུང' && hour < 5 || meridiem === 'དགོང་དག') {\n        return hour + 12;\n      } else {\n        return hour;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'མཚན་མོ';\n      } else if (hour < 10) {\n        return 'ཞོགས་ཀས';\n      } else if (hour < 17) {\n        return 'ཉིན་གུང';\n      } else if (hour < 20) {\n        return 'དགོང་དག';\n      } else {\n        return 'མཚན་མོ';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return bo;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/bo.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/br.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/br.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function relativeTimeWithMutation(number, withoutSuffix, key) {\n    var format = {\n      mm: 'munutenn',\n      MM: 'miz',\n      dd: 'devezh'\n    };\n    return number + ' ' + mutation(format[key], number);\n  }\n  function specialMutationForYears(number) {\n    switch (lastNumber(number)) {\n      case 1:\n      case 3:\n      case 4:\n      case 5:\n      case 9:\n        return number + ' bloaz';\n      default:\n        return number + ' vloaz';\n    }\n  }\n  function lastNumber(number) {\n    if (number > 9) {\n      return lastNumber(number % 10);\n    }\n    return number;\n  }\n  function mutation(text, number) {\n    if (number === 2) {\n      return softMutation(text);\n    }\n    return text;\n  }\n  function softMutation(text) {\n    var mutationTable = {\n      m: 'v',\n      b: 'v',\n      d: 'z'\n    };\n    if (mutationTable[text.charAt(0)] === undefined) {\n      return text;\n    }\n    return mutationTable[text.charAt(0)] + text.substring(1);\n  }\n  var monthsParse = [/^gen/i, /^c[ʼ\\']hwe/i, /^meu/i, /^ebr/i, /^mae/i, /^(mez|eve)/i, /^gou/i, /^eos/i, /^gwe/i, /^her/i, /^du/i, /^ker/i],\n    monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n    monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n    monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n    fullWeekdaysParse = [/^sul/i, /^lun/i, /^meurzh/i, /^merc[ʼ\\']her/i, /^yaou/i, /^gwener/i, /^sadorn/i],\n    shortWeekdaysParse = [/^Sul/i, /^Lun/i, /^Meu/i, /^Mer/i, /^Yao/i, /^Gwe/i, /^Sad/i],\n    minWeekdaysParse = [/^Su/i, /^Lu/i, /^Me([^r]|$)/i, /^Mer/i, /^Ya/i, /^Gw/i, /^Sa/i];\n  var br = moment.defineLocale('br', {\n    months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),\n    monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n    weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n    weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n    weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n    weekdaysParse: minWeekdaysParse,\n    fullWeekdaysParse: fullWeekdaysParse,\n    shortWeekdaysParse: shortWeekdaysParse,\n    minWeekdaysParse: minWeekdaysParse,\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: monthsStrictRegex,\n    monthsShortStrictRegex: monthsShortStrictRegex,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D [a viz] MMMM YYYY',\n      LLL: 'D [a viz] MMMM YYYY HH:mm',\n      LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Hiziv da] LT',\n      nextDay: '[Warcʼhoazh da] LT',\n      nextWeek: 'dddd [da] LT',\n      lastDay: '[Decʼh da] LT',\n      lastWeek: 'dddd [paset da] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'a-benn %s',\n      past: '%s ʼzo',\n      s: 'un nebeud segondennoù',\n      ss: '%d eilenn',\n      m: 'ur vunutenn',\n      mm: relativeTimeWithMutation,\n      h: 'un eur',\n      hh: '%d eur',\n      d: 'un devezh',\n      dd: relativeTimeWithMutation,\n      M: 'ur miz',\n      MM: relativeTimeWithMutation,\n      y: 'ur bloaz',\n      yy: specialMutationForYears\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n    ordinal: function (number) {\n      var output = number === 1 ? 'añ' : 'vet';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    },\n    meridiemParse: /a.m.|g.m./,\n    // goude merenn | a-raok merenn\n    isPM: function (token) {\n      return token === 'g.m.';\n    },\n    meridiem: function (hour, minute, isLower) {\n      return hour < 12 ? 'a.m.' : 'g.m.';\n    }\n  });\n  return br;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/br.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/bs.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/bs.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! author : Rasid Redzic : https://github.com/rasidre\n//! based on (hr) translation by Bojan Marković\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    switch (key) {\n      case 'm':\n        return withoutSuffix ? 'jedna minuta' : isFuture ? 'jednu minutu' : 'jedne minute';\n    }\n  }\n  function translate(number, withoutSuffix, key) {\n    var result = number + ' ';\n    switch (key) {\n      case 'ss':\n        if (number === 1) {\n          result += 'sekunda';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'sekunde';\n        } else {\n          result += 'sekundi';\n        }\n        return result;\n      case 'mm':\n        if (number === 1) {\n          result += 'minuta';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'minute';\n        } else {\n          result += 'minuta';\n        }\n        return result;\n      case 'h':\n        return withoutSuffix ? 'jedan sat' : 'jedan sat';\n      case 'hh':\n        if (number === 1) {\n          result += 'sat';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'sata';\n        } else {\n          result += 'sati';\n        }\n        return result;\n      case 'dd':\n        if (number === 1) {\n          result += 'dan';\n        } else {\n          result += 'dana';\n        }\n        return result;\n      case 'MM':\n        if (number === 1) {\n          result += 'mjesec';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'mjeseca';\n        } else {\n          result += 'mjeseci';\n        }\n        return result;\n      case 'yy':\n        if (number === 1) {\n          result += 'godina';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'godine';\n        } else {\n          result += 'godina';\n        }\n        return result;\n    }\n  }\n  var bs = moment.defineLocale('bs', {\n    months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split('_'),\n    monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n    weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n    weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY H:mm',\n      LLLL: 'dddd, D. MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[danas u] LT',\n      nextDay: '[sutra u] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[u] [nedjelju] [u] LT';\n          case 3:\n            return '[u] [srijedu] [u] LT';\n          case 6:\n            return '[u] [subotu] [u] LT';\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[u] dddd [u] LT';\n        }\n      },\n      lastDay: '[jučer u] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n          case 3:\n            return '[prošlu] dddd [u] LT';\n          case 6:\n            return '[prošle] [subote] [u] LT';\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[prošli] dddd [u] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'za %s',\n      past: 'prije %s',\n      s: 'par sekundi',\n      ss: translate,\n      m: processRelativeTime,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: 'dan',\n      dd: translate,\n      M: 'mjesec',\n      MM: translate,\n      y: 'godinu',\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return bs;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/bs.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ca.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ca.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var ca = moment.defineLocale('ca', {\n    months: {\n      standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\n      format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split('_'),\n      isFormat: /D[oD]?(\\s)+MMMM/\n    },\n    monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\n    weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n    weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM [de] YYYY',\n      ll: 'D MMM YYYY',\n      LLL: 'D MMMM [de] YYYY [a les] H:mm',\n      lll: 'D MMM YYYY, H:mm',\n      LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n      llll: 'ddd D MMM YYYY, H:mm'\n    },\n    calendar: {\n      sameDay: function () {\n        return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n      },\n      nextDay: function () {\n        return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n      },\n      nextWeek: function () {\n        return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n      },\n      lastDay: function () {\n        return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n      },\n      lastWeek: function () {\n        return '[el] dddd [passat a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: \"d'aquí %s\",\n      past: 'fa %s',\n      s: 'uns segons',\n      ss: '%d segons',\n      m: 'un minut',\n      mm: '%d minuts',\n      h: 'una hora',\n      hh: '%d hores',\n      d: 'un dia',\n      dd: '%d dies',\n      M: 'un mes',\n      MM: '%d mesos',\n      y: 'un any',\n      yy: '%d anys'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n    ordinal: function (number, period) {\n      var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è';\n      if (period === 'w' || period === 'W') {\n        output = 'a';\n      }\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return ca;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ca.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/cs.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/cs.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var months = {\n      standalone: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),\n      format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split('_'),\n      isFormat: /DD?[o.]?(\\[[^\\[\\]]*\\]|\\s)+MMMM/\n    },\n    monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n    monthsParse = [/^led/i, /^úno/i, /^bře/i, /^dub/i, /^kvě/i, /^(čvn|červen$|června)/i, /^(čvc|červenec|července)/i, /^srp/i, /^zář/i, /^říj/i, /^lis/i, /^pro/i],\n    // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n    // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n    monthsRegex = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n  function plural(n) {\n    return n > 1 && n < 5 && ~~(n / 10) !== 1;\n  }\n  function translate(number, withoutSuffix, key, isFuture) {\n    var result = number + ' ';\n    switch (key) {\n      case 's':\n        // a few seconds / in a few seconds / a few seconds ago\n        return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n      case 'ss':\n        // 9 seconds / in 9 seconds / 9 seconds ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'sekundy' : 'sekund');\n        } else {\n          return result + 'sekundami';\n        }\n      case 'm':\n        // a minute / in a minute / a minute ago\n        return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n      case 'mm':\n        // 9 minutes / in 9 minutes / 9 minutes ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'minuty' : 'minut');\n        } else {\n          return result + 'minutami';\n        }\n      case 'h':\n        // an hour / in an hour / an hour ago\n        return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n      case 'hh':\n        // 9 hours / in 9 hours / 9 hours ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'hodiny' : 'hodin');\n        } else {\n          return result + 'hodinami';\n        }\n      case 'd':\n        // a day / in a day / a day ago\n        return withoutSuffix || isFuture ? 'den' : 'dnem';\n      case 'dd':\n        // 9 days / in 9 days / 9 days ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'dny' : 'dní');\n        } else {\n          return result + 'dny';\n        }\n      case 'M':\n        // a month / in a month / a month ago\n        return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n      case 'MM':\n        // 9 months / in 9 months / 9 months ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'měsíce' : 'měsíců');\n        } else {\n          return result + 'měsíci';\n        }\n      case 'y':\n        // a year / in a year / a year ago\n        return withoutSuffix || isFuture ? 'rok' : 'rokem';\n      case 'yy':\n        // 9 years / in 9 years / 9 years ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'roky' : 'let');\n        } else {\n          return result + 'lety';\n        }\n    }\n  }\n  var cs = moment.defineLocale('cs', {\n    months: months,\n    monthsShort: monthsShort,\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n    // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n    monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n    monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n    weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n    weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY H:mm',\n      LLLL: 'dddd D. MMMM YYYY H:mm',\n      l: 'D. M. YYYY'\n    },\n    calendar: {\n      sameDay: '[dnes v] LT',\n      nextDay: '[zítra v] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[v neděli v] LT';\n          case 1:\n          case 2:\n            return '[v] dddd [v] LT';\n          case 3:\n            return '[ve středu v] LT';\n          case 4:\n            return '[ve čtvrtek v] LT';\n          case 5:\n            return '[v pátek v] LT';\n          case 6:\n            return '[v sobotu v] LT';\n        }\n      },\n      lastDay: '[včera v] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[minulou neděli v] LT';\n          case 1:\n          case 2:\n            return '[minulé] dddd [v] LT';\n          case 3:\n            return '[minulou středu v] LT';\n          case 4:\n          case 5:\n            return '[minulý] dddd [v] LT';\n          case 6:\n            return '[minulou sobotu v] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'za %s',\n      past: 'před %s',\n      s: translate,\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: translate,\n      dd: translate,\n      M: translate,\n      MM: translate,\n      y: translate,\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return cs;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/cs.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/cv.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/cv.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var cv = moment.defineLocale('cv', {\n    months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),\n    monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n    weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),\n    weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n    weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD-MM-YYYY',\n      LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n      LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n      LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'\n    },\n    calendar: {\n      sameDay: '[Паян] LT [сехетре]',\n      nextDay: '[Ыран] LT [сехетре]',\n      lastDay: '[Ӗнер] LT [сехетре]',\n      nextWeek: '[Ҫитес] dddd LT [сехетре]',\n      lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: function (output) {\n        var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';\n        return output + affix;\n      },\n      past: '%s каялла',\n      s: 'пӗр-ик ҫеккунт',\n      ss: '%d ҫеккунт',\n      m: 'пӗр минут',\n      mm: '%d минут',\n      h: 'пӗр сехет',\n      hh: '%d сехет',\n      d: 'пӗр кун',\n      dd: '%d кун',\n      M: 'пӗр уйӑх',\n      MM: '%d уйӑх',\n      y: 'пӗр ҫул',\n      yy: '%d ҫул'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n    ordinal: '%d-мӗш',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return cv;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/cv.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/cy.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/cy.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var cy = moment.defineLocale('cy', {\n    months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),\n    monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),\n    weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),\n    weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n    weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n    weekdaysParseExact: true,\n    // time formats are the same as en-gb\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Heddiw am] LT',\n      nextDay: '[Yfory am] LT',\n      nextWeek: 'dddd [am] LT',\n      lastDay: '[Ddoe am] LT',\n      lastWeek: 'dddd [diwethaf am] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'mewn %s',\n      past: '%s yn ôl',\n      s: 'ychydig eiliadau',\n      ss: '%d eiliad',\n      m: 'munud',\n      mm: '%d munud',\n      h: 'awr',\n      hh: '%d awr',\n      d: 'diwrnod',\n      dd: '%d diwrnod',\n      M: 'mis',\n      MM: '%d mis',\n      y: 'blwyddyn',\n      yy: '%d flynedd'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n    // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n    ordinal: function (number) {\n      var b = number,\n        output = '',\n        lookup = ['', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed',\n        // 1af to 10fed\n        'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n        ];\n      if (b > 20) {\n        if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n          output = 'fed'; // not 30ain, 70ain or 90ain\n        } else {\n          output = 'ain';\n        }\n      } else if (b > 0) {\n        output = lookup[b];\n      }\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return cy;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/cy.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/da.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/da.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var da = moment.defineLocale('da', {\n    months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),\n    monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n    weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n    weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n    weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY HH:mm',\n      LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n    },\n    calendar: {\n      sameDay: '[i dag kl.] LT',\n      nextDay: '[i morgen kl.] LT',\n      nextWeek: 'på dddd [kl.] LT',\n      lastDay: '[i går kl.] LT',\n      lastWeek: '[i] dddd[s kl.] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'om %s',\n      past: '%s siden',\n      s: 'få sekunder',\n      ss: '%d sekunder',\n      m: 'et minut',\n      mm: '%d minutter',\n      h: 'en time',\n      hh: '%d timer',\n      d: 'en dag',\n      dd: '%d dage',\n      M: 'en måned',\n      MM: '%d måneder',\n      y: 'et år',\n      yy: '%d år'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return da;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/da.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/de-at.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/de-at.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      m: ['eine Minute', 'einer Minute'],\n      h: ['eine Stunde', 'einer Stunde'],\n      d: ['ein Tag', 'einem Tag'],\n      dd: [number + ' Tage', number + ' Tagen'],\n      w: ['eine Woche', 'einer Woche'],\n      M: ['ein Monat', 'einem Monat'],\n      MM: [number + ' Monate', number + ' Monaten'],\n      y: ['ein Jahr', 'einem Jahr'],\n      yy: [number + ' Jahre', number + ' Jahren']\n    };\n    return withoutSuffix ? format[key][0] : format[key][1];\n  }\n  var deAt = moment.defineLocale('de-at', {\n    months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n    monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n    weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n    weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY HH:mm',\n      LLLL: 'dddd, D. MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[heute um] LT [Uhr]',\n      sameElse: 'L',\n      nextDay: '[morgen um] LT [Uhr]',\n      nextWeek: 'dddd [um] LT [Uhr]',\n      lastDay: '[gestern um] LT [Uhr]',\n      lastWeek: '[letzten] dddd [um] LT [Uhr]'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: 'vor %s',\n      s: 'ein paar Sekunden',\n      ss: '%d Sekunden',\n      m: processRelativeTime,\n      mm: '%d Minuten',\n      h: processRelativeTime,\n      hh: '%d Stunden',\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      w: processRelativeTime,\n      ww: '%d Wochen',\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return deAt;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/de-at.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/de-ch.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/de-ch.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      m: ['eine Minute', 'einer Minute'],\n      h: ['eine Stunde', 'einer Stunde'],\n      d: ['ein Tag', 'einem Tag'],\n      dd: [number + ' Tage', number + ' Tagen'],\n      w: ['eine Woche', 'einer Woche'],\n      M: ['ein Monat', 'einem Monat'],\n      MM: [number + ' Monate', number + ' Monaten'],\n      y: ['ein Jahr', 'einem Jahr'],\n      yy: [number + ' Jahre', number + ' Jahren']\n    };\n    return withoutSuffix ? format[key][0] : format[key][1];\n  }\n  var deCh = moment.defineLocale('de-ch', {\n    months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n    monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n    weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n    weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY HH:mm',\n      LLLL: 'dddd, D. MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[heute um] LT [Uhr]',\n      sameElse: 'L',\n      nextDay: '[morgen um] LT [Uhr]',\n      nextWeek: 'dddd [um] LT [Uhr]',\n      lastDay: '[gestern um] LT [Uhr]',\n      lastWeek: '[letzten] dddd [um] LT [Uhr]'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: 'vor %s',\n      s: 'ein paar Sekunden',\n      ss: '%d Sekunden',\n      m: processRelativeTime,\n      mm: '%d Minuten',\n      h: processRelativeTime,\n      hh: '%d Stunden',\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      w: processRelativeTime,\n      ww: '%d Wochen',\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return deCh;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/de-ch.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/de.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/de.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      m: ['eine Minute', 'einer Minute'],\n      h: ['eine Stunde', 'einer Stunde'],\n      d: ['ein Tag', 'einem Tag'],\n      dd: [number + ' Tage', number + ' Tagen'],\n      w: ['eine Woche', 'einer Woche'],\n      M: ['ein Monat', 'einem Monat'],\n      MM: [number + ' Monate', number + ' Monaten'],\n      y: ['ein Jahr', 'einem Jahr'],\n      yy: [number + ' Jahre', number + ' Jahren']\n    };\n    return withoutSuffix ? format[key][0] : format[key][1];\n  }\n  var de = moment.defineLocale('de', {\n    months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n    monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n    weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n    weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY HH:mm',\n      LLLL: 'dddd, D. MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[heute um] LT [Uhr]',\n      sameElse: 'L',\n      nextDay: '[morgen um] LT [Uhr]',\n      nextWeek: 'dddd [um] LT [Uhr]',\n      lastDay: '[gestern um] LT [Uhr]',\n      lastWeek: '[letzten] dddd [um] LT [Uhr]'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: 'vor %s',\n      s: 'ein paar Sekunden',\n      ss: '%d Sekunden',\n      m: processRelativeTime,\n      mm: '%d Minuten',\n      h: processRelativeTime,\n      hh: '%d Stunden',\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      w: processRelativeTime,\n      ww: '%d Wochen',\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return de;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/de.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/dv.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/dv.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var months = ['ޖެނުއަރީ', 'ފެބްރުއަރީ', 'މާރިޗު', 'އޭޕްރީލު', 'މޭ', 'ޖޫން', 'ޖުލައި', 'އޯގަސްޓު', 'ސެޕްޓެމްބަރު', 'އޮކްޓޯބަރު', 'ނޮވެމްބަރު', 'ޑިސެމްބަރު'],\n    weekdays = ['އާދިއްތަ', 'ހޯމަ', 'އަންގާރަ', 'ބުދަ', 'ބުރާސްފަތި', 'ހުކުރު', 'ހޮނިހިރު'];\n  var dv = moment.defineLocale('dv', {\n    months: months,\n    monthsShort: months,\n    weekdays: weekdays,\n    weekdaysShort: weekdays,\n    weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'D/M/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /މކ|މފ/,\n    isPM: function (input) {\n      return 'މފ' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'މކ';\n      } else {\n        return 'މފ';\n      }\n    },\n    calendar: {\n      sameDay: '[މިއަދު] LT',\n      nextDay: '[މާދަމާ] LT',\n      nextWeek: 'dddd LT',\n      lastDay: '[އިއްޔެ] LT',\n      lastWeek: '[ފާއިތުވި] dddd LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'ތެރޭގައި %s',\n      past: 'ކުރިން %s',\n      s: 'ސިކުންތުކޮޅެއް',\n      ss: 'd% ސިކުންތު',\n      m: 'މިނިޓެއް',\n      mm: 'މިނިޓު %d',\n      h: 'ގަޑިއިރެއް',\n      hh: 'ގަޑިއިރު %d',\n      d: 'ދުވަހެއް',\n      dd: 'ދުވަސް %d',\n      M: 'މަހެއް',\n      MM: 'މަސް %d',\n      y: 'އަހަރެއް',\n      yy: 'އަހަރު %d'\n    },\n    preparse: function (string) {\n      return string.replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/,/g, '،');\n    },\n    week: {\n      dow: 7,\n      // Sunday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n    }\n  });\n  return dv;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/dv.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/el.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/el.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function isFunction(input) {\n    return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n  }\n  var el = moment.defineLocale('el', {\n    monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),\n    monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),\n    months: function (momentToFormat, format) {\n      if (!momentToFormat) {\n        return this._monthsNominativeEl;\n      } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) {\n        // if there is a day number before 'MMMM'\n        return this._monthsGenitiveEl[momentToFormat.month()];\n      } else {\n        return this._monthsNominativeEl[momentToFormat.month()];\n      }\n    },\n    monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n    weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split('_'),\n    weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n    weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n    meridiem: function (hours, minutes, isLower) {\n      if (hours > 11) {\n        return isLower ? 'μμ' : 'ΜΜ';\n      } else {\n        return isLower ? 'πμ' : 'ΠΜ';\n      }\n    },\n    isPM: function (input) {\n      return (input + '').toLowerCase()[0] === 'μ';\n    },\n    meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY h:mm A',\n      LLLL: 'dddd, D MMMM YYYY h:mm A'\n    },\n    calendarEl: {\n      sameDay: '[Σήμερα {}] LT',\n      nextDay: '[Αύριο {}] LT',\n      nextWeek: 'dddd [{}] LT',\n      lastDay: '[Χθες {}] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 6:\n            return '[το προηγούμενο] dddd [{}] LT';\n          default:\n            return '[την προηγούμενη] dddd [{}] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    calendar: function (key, mom) {\n      var output = this._calendarEl[key],\n        hours = mom && mom.hours();\n      if (isFunction(output)) {\n        output = output.apply(mom);\n      }\n      return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n    },\n    relativeTime: {\n      future: 'σε %s',\n      past: '%s πριν',\n      s: 'λίγα δευτερόλεπτα',\n      ss: '%d δευτερόλεπτα',\n      m: 'ένα λεπτό',\n      mm: '%d λεπτά',\n      h: 'μία ώρα',\n      hh: '%d ώρες',\n      d: 'μία μέρα',\n      dd: '%d μέρες',\n      M: 'ένας μήνας',\n      MM: '%d μήνες',\n      y: 'ένας χρόνος',\n      yy: '%d χρόνια'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}η/,\n    ordinal: '%dη',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4st is the first week of the year.\n    }\n  });\n  return el;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/el.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/en-au.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/en-au.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var enAu = moment.defineLocale('en-au', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY h:mm A',\n      LLLL: 'dddd, D MMMM YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n        output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return enAu;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/en-au.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/en-ca.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/en-ca.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var enCa = moment.defineLocale('en-ca', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'YYYY-MM-DD',\n      LL: 'MMMM D, YYYY',\n      LLL: 'MMMM D, YYYY h:mm A',\n      LLLL: 'dddd, MMMM D, YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n        output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    }\n  });\n  return enCa;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/en-ca.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/en-gb.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/en-gb.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var enGb = moment.defineLocale('en-gb', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n        output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return enGb;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/en-gb.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/en-ie.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/en-ie.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var enIe = moment.defineLocale('en-ie', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n        output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return enIe;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/en-ie.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/en-il.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/en-il.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var enIl = moment.defineLocale('en-il', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n        output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    }\n  });\n  return enIl;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/en-il.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/en-in.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/en-in.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var enIn = moment.defineLocale('en-in', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY h:mm A',\n      LLLL: 'dddd, D MMMM YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n        output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 1st is the first week of the year.\n    }\n  });\n  return enIn;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/en-in.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/en-nz.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/en-nz.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var enNz = moment.defineLocale('en-nz', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY h:mm A',\n      LLLL: 'dddd, D MMMM YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n        output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return enNz;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/en-nz.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/en-sg.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/en-sg.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var enSg = moment.defineLocale('en-sg', {\n    months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Today at] LT',\n      nextDay: '[Tomorrow at] LT',\n      nextWeek: 'dddd [at] LT',\n      lastDay: '[Yesterday at] LT',\n      lastWeek: '[Last] dddd [at] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'in %s',\n      past: '%s ago',\n      s: 'a few seconds',\n      ss: '%d seconds',\n      m: 'a minute',\n      mm: '%d minutes',\n      h: 'an hour',\n      hh: '%d hours',\n      d: 'a day',\n      dd: '%d days',\n      M: 'a month',\n      MM: '%d months',\n      y: 'a year',\n      yy: '%d years'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n        output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return enSg;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/en-sg.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/eo.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/eo.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var eo = moment.defineLocale('eo', {\n    months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),\n    monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n    weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n    weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n    weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY-MM-DD',\n      LL: '[la] D[-an de] MMMM, YYYY',\n      LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n      LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n      llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm'\n    },\n    meridiemParse: /[ap]\\.t\\.m/i,\n    isPM: function (input) {\n      return input.charAt(0).toLowerCase() === 'p';\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours > 11) {\n        return isLower ? 'p.t.m.' : 'P.T.M.';\n      } else {\n        return isLower ? 'a.t.m.' : 'A.T.M.';\n      }\n    },\n    calendar: {\n      sameDay: '[Hodiaŭ je] LT',\n      nextDay: '[Morgaŭ je] LT',\n      nextWeek: 'dddd[n je] LT',\n      lastDay: '[Hieraŭ je] LT',\n      lastWeek: '[pasintan] dddd[n je] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'post %s',\n      past: 'antaŭ %s',\n      s: 'kelkaj sekundoj',\n      ss: '%d sekundoj',\n      m: 'unu minuto',\n      mm: '%d minutoj',\n      h: 'unu horo',\n      hh: '%d horoj',\n      d: 'unu tago',\n      //ne 'diurno', ĉar estas uzita por proksimumo\n      dd: '%d tagoj',\n      M: 'unu monato',\n      MM: '%d monatoj',\n      y: 'unu jaro',\n      yy: '%d jaroj'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}a/,\n    ordinal: '%da',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return eo;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/eo.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/es-do.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/es-do.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n    monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n    monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n    monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n  var esDo = moment.defineLocale('es-do', {\n    months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n    monthsShort: function (m, format) {\n      if (!m) {\n        return monthsShortDot;\n      } else if (/-MMM-/.test(format)) {\n        return monthsShort[m.month()];\n      } else {\n        return monthsShortDot[m.month()];\n      }\n    },\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n    monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n    weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n    weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'DD/MM/YYYY',\n      LL: 'D [de] MMMM [de] YYYY',\n      LLL: 'D [de] MMMM [de] YYYY h:mm A',\n      LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: function () {\n        return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextDay: function () {\n        return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextWeek: function () {\n        return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastDay: function () {\n        return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastWeek: function () {\n        return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'en %s',\n      past: 'hace %s',\n      s: 'unos segundos',\n      ss: '%d segundos',\n      m: 'un minuto',\n      mm: '%d minutos',\n      h: 'una hora',\n      hh: '%d horas',\n      d: 'un día',\n      dd: '%d días',\n      w: 'una semana',\n      ww: '%d semanas',\n      M: 'un mes',\n      MM: '%d meses',\n      y: 'un año',\n      yy: '%d años'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return esDo;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/es-do.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/es-mx.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/es-mx.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n    monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n    monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n    monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n  var esMx = moment.defineLocale('es-mx', {\n    months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n    monthsShort: function (m, format) {\n      if (!m) {\n        return monthsShortDot;\n      } else if (/-MMM-/.test(format)) {\n        return monthsShort[m.month()];\n      } else {\n        return monthsShortDot[m.month()];\n      }\n    },\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n    monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n    weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n    weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D [de] MMMM [de] YYYY',\n      LLL: 'D [de] MMMM [de] YYYY H:mm',\n      LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n    },\n    calendar: {\n      sameDay: function () {\n        return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextDay: function () {\n        return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextWeek: function () {\n        return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastDay: function () {\n        return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastWeek: function () {\n        return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'en %s',\n      past: 'hace %s',\n      s: 'unos segundos',\n      ss: '%d segundos',\n      m: 'un minuto',\n      mm: '%d minutos',\n      h: 'una hora',\n      hh: '%d horas',\n      d: 'un día',\n      dd: '%d días',\n      w: 'una semana',\n      ww: '%d semanas',\n      M: 'un mes',\n      MM: '%d meses',\n      y: 'un año',\n      yy: '%d años'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    },\n    invalidDate: 'Fecha inválida'\n  });\n  return esMx;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/es-mx.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/es-us.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/es-us.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n    monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n    monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n    monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n  var esUs = moment.defineLocale('es-us', {\n    months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n    monthsShort: function (m, format) {\n      if (!m) {\n        return monthsShortDot;\n      } else if (/-MMM-/.test(format)) {\n        return monthsShort[m.month()];\n      } else {\n        return monthsShortDot[m.month()];\n      }\n    },\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n    monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n    weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n    weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'MM/DD/YYYY',\n      LL: 'D [de] MMMM [de] YYYY',\n      LLL: 'D [de] MMMM [de] YYYY h:mm A',\n      LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: function () {\n        return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextDay: function () {\n        return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextWeek: function () {\n        return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastDay: function () {\n        return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastWeek: function () {\n        return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'en %s',\n      past: 'hace %s',\n      s: 'unos segundos',\n      ss: '%d segundos',\n      m: 'un minuto',\n      mm: '%d minutos',\n      h: 'una hora',\n      hh: '%d horas',\n      d: 'un día',\n      dd: '%d días',\n      w: 'una semana',\n      ww: '%d semanas',\n      M: 'un mes',\n      MM: '%d meses',\n      y: 'un año',\n      yy: '%d años'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return esUs;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/es-us.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/es.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/es.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n    monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n    monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n    monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n  var es = moment.defineLocale('es', {\n    months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n    monthsShort: function (m, format) {\n      if (!m) {\n        return monthsShortDot;\n      } else if (/-MMM-/.test(format)) {\n        return monthsShort[m.month()];\n      } else {\n        return monthsShortDot[m.month()];\n      }\n    },\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n    monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n    weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n    weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D [de] MMMM [de] YYYY',\n      LLL: 'D [de] MMMM [de] YYYY H:mm',\n      LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n    },\n    calendar: {\n      sameDay: function () {\n        return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextDay: function () {\n        return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      nextWeek: function () {\n        return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastDay: function () {\n        return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      lastWeek: function () {\n        return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'en %s',\n      past: 'hace %s',\n      s: 'unos segundos',\n      ss: '%d segundos',\n      m: 'un minuto',\n      mm: '%d minutos',\n      h: 'una hora',\n      hh: '%d horas',\n      d: 'un día',\n      dd: '%d días',\n      w: 'una semana',\n      ww: '%d semanas',\n      M: 'un mes',\n      MM: '%d meses',\n      y: 'un año',\n      yy: '%d años'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    },\n    invalidDate: 'Fecha inválida'\n  });\n  return es;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/es.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/et.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/et.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n      ss: [number + 'sekundi', number + 'sekundit'],\n      m: ['ühe minuti', 'üks minut'],\n      mm: [number + ' minuti', number + ' minutit'],\n      h: ['ühe tunni', 'tund aega', 'üks tund'],\n      hh: [number + ' tunni', number + ' tundi'],\n      d: ['ühe päeva', 'üks päev'],\n      M: ['kuu aja', 'kuu aega', 'üks kuu'],\n      MM: [number + ' kuu', number + ' kuud'],\n      y: ['ühe aasta', 'aasta', 'üks aasta'],\n      yy: [number + ' aasta', number + ' aastat']\n    };\n    if (withoutSuffix) {\n      return format[key][2] ? format[key][2] : format[key][1];\n    }\n    return isFuture ? format[key][0] : format[key][1];\n  }\n  var et = moment.defineLocale('et', {\n    months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n    monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n    weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n    weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n    weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY H:mm',\n      LLLL: 'dddd, D. MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[Täna,] LT',\n      nextDay: '[Homme,] LT',\n      nextWeek: '[Järgmine] dddd LT',\n      lastDay: '[Eile,] LT',\n      lastWeek: '[Eelmine] dddd LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s pärast',\n      past: '%s tagasi',\n      s: processRelativeTime,\n      ss: processRelativeTime,\n      m: processRelativeTime,\n      mm: processRelativeTime,\n      h: processRelativeTime,\n      hh: processRelativeTime,\n      d: processRelativeTime,\n      dd: '%d päeva',\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return et;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/et.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/eu.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/eu.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var eu = moment.defineLocale('eu', {\n    months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n    monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\n    weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n    weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY-MM-DD',\n      LL: 'YYYY[ko] MMMM[ren] D[a]',\n      LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n      LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n      l: 'YYYY-M-D',\n      ll: 'YYYY[ko] MMM D[a]',\n      lll: 'YYYY[ko] MMM D[a] HH:mm',\n      llll: 'ddd, YYYY[ko] MMM D[a] HH:mm'\n    },\n    calendar: {\n      sameDay: '[gaur] LT[etan]',\n      nextDay: '[bihar] LT[etan]',\n      nextWeek: 'dddd LT[etan]',\n      lastDay: '[atzo] LT[etan]',\n      lastWeek: '[aurreko] dddd LT[etan]',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s barru',\n      past: 'duela %s',\n      s: 'segundo batzuk',\n      ss: '%d segundo',\n      m: 'minutu bat',\n      mm: '%d minutu',\n      h: 'ordu bat',\n      hh: '%d ordu',\n      d: 'egun bat',\n      dd: '%d egun',\n      M: 'hilabete bat',\n      MM: '%d hilabete',\n      y: 'urte bat',\n      yy: '%d urte'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return eu;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/eu.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/fa.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/fa.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '۱',\n      2: '۲',\n      3: '۳',\n      4: '۴',\n      5: '۵',\n      6: '۶',\n      7: '۷',\n      8: '۸',\n      9: '۹',\n      0: '۰'\n    },\n    numberMap = {\n      '۱': '1',\n      '۲': '2',\n      '۳': '3',\n      '۴': '4',\n      '۵': '5',\n      '۶': '6',\n      '۷': '7',\n      '۸': '8',\n      '۹': '9',\n      '۰': '0'\n    };\n  var fa = moment.defineLocale('fa', {\n    months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n    monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n    weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n    weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split('_'),\n    weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /قبل از ظهر|بعد از ظهر/,\n    isPM: function (input) {\n      return /بعد از ظهر/.test(input);\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'قبل از ظهر';\n      } else {\n        return 'بعد از ظهر';\n      }\n    },\n    calendar: {\n      sameDay: '[امروز ساعت] LT',\n      nextDay: '[فردا ساعت] LT',\n      nextWeek: 'dddd [ساعت] LT',\n      lastDay: '[دیروز ساعت] LT',\n      lastWeek: 'dddd [پیش] [ساعت] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'در %s',\n      past: '%s پیش',\n      s: 'چند ثانیه',\n      ss: '%d ثانیه',\n      m: 'یک دقیقه',\n      mm: '%d دقیقه',\n      h: 'یک ساعت',\n      hh: '%d ساعت',\n      d: 'یک روز',\n      dd: '%d روز',\n      M: 'یک ماه',\n      MM: '%d ماه',\n      y: 'یک سال',\n      yy: '%d سال'\n    },\n    preparse: function (string) {\n      return string.replace(/[۰-۹]/g, function (match) {\n        return numberMap[match];\n      }).replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      }).replace(/,/g, '،');\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}م/,\n    ordinal: '%dم',\n    week: {\n      dow: 6,\n      // Saturday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n    }\n  });\n  return fa;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/fa.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/fi.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/fi.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n    numbersFuture = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', numbersPast[7], numbersPast[8], numbersPast[9]];\n  function translate(number, withoutSuffix, key, isFuture) {\n    var result = '';\n    switch (key) {\n      case 's':\n        return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n      case 'ss':\n        result = isFuture ? 'sekunnin' : 'sekuntia';\n        break;\n      case 'm':\n        return isFuture ? 'minuutin' : 'minuutti';\n      case 'mm':\n        result = isFuture ? 'minuutin' : 'minuuttia';\n        break;\n      case 'h':\n        return isFuture ? 'tunnin' : 'tunti';\n      case 'hh':\n        result = isFuture ? 'tunnin' : 'tuntia';\n        break;\n      case 'd':\n        return isFuture ? 'päivän' : 'päivä';\n      case 'dd':\n        result = isFuture ? 'päivän' : 'päivää';\n        break;\n      case 'M':\n        return isFuture ? 'kuukauden' : 'kuukausi';\n      case 'MM':\n        result = isFuture ? 'kuukauden' : 'kuukautta';\n        break;\n      case 'y':\n        return isFuture ? 'vuoden' : 'vuosi';\n      case 'yy':\n        result = isFuture ? 'vuoden' : 'vuotta';\n        break;\n    }\n    result = verbalNumber(number, isFuture) + ' ' + result;\n    return result;\n  }\n  function verbalNumber(number, isFuture) {\n    return number < 10 ? isFuture ? numbersFuture[number] : numbersPast[number] : number;\n  }\n  var fi = moment.defineLocale('fi', {\n    months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n    monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n    weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n    weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n    weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n    longDateFormat: {\n      LT: 'HH.mm',\n      LTS: 'HH.mm.ss',\n      L: 'DD.MM.YYYY',\n      LL: 'Do MMMM[ta] YYYY',\n      LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n      LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n      l: 'D.M.YYYY',\n      ll: 'Do MMM YYYY',\n      lll: 'Do MMM YYYY, [klo] HH.mm',\n      llll: 'ddd, Do MMM YYYY, [klo] HH.mm'\n    },\n    calendar: {\n      sameDay: '[tänään] [klo] LT',\n      nextDay: '[huomenna] [klo] LT',\n      nextWeek: 'dddd [klo] LT',\n      lastDay: '[eilen] [klo] LT',\n      lastWeek: '[viime] dddd[na] [klo] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s päästä',\n      past: '%s sitten',\n      s: translate,\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: translate,\n      dd: translate,\n      M: translate,\n      MM: translate,\n      y: translate,\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return fi;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/fi.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/fil.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/fil.js ***!
  \*****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var fil = moment.defineLocale('fil', {\n    months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n    monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n    weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n    weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n    weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'MM/D/YYYY',\n      LL: 'MMMM D, YYYY',\n      LLL: 'MMMM D, YYYY HH:mm',\n      LLLL: 'dddd, MMMM DD, YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: 'LT [ngayong araw]',\n      nextDay: '[Bukas ng] LT',\n      nextWeek: 'LT [sa susunod na] dddd',\n      lastDay: 'LT [kahapon]',\n      lastWeek: 'LT [noong nakaraang] dddd',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'sa loob ng %s',\n      past: '%s ang nakalipas',\n      s: 'ilang segundo',\n      ss: '%d segundo',\n      m: 'isang minuto',\n      mm: '%d minuto',\n      h: 'isang oras',\n      hh: '%d oras',\n      d: 'isang araw',\n      dd: '%d araw',\n      M: 'isang buwan',\n      MM: '%d buwan',\n      y: 'isang taon',\n      yy: '%d taon'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}/,\n    ordinal: function (number) {\n      return number;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return fil;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/fil.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/fo.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/fo.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var fo = moment.defineLocale('fo', {\n    months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n    monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n    weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),\n    weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n    weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D. MMMM, YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Í dag kl.] LT',\n      nextDay: '[Í morgin kl.] LT',\n      nextWeek: 'dddd [kl.] LT',\n      lastDay: '[Í gjár kl.] LT',\n      lastWeek: '[síðstu] dddd [kl] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'um %s',\n      past: '%s síðani',\n      s: 'fá sekund',\n      ss: '%d sekundir',\n      m: 'ein minuttur',\n      mm: '%d minuttir',\n      h: 'ein tími',\n      hh: '%d tímar',\n      d: 'ein dagur',\n      dd: '%d dagar',\n      M: 'ein mánaður',\n      MM: '%d mánaðir',\n      y: 'eitt ár',\n      yy: '%d ár'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return fo;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/fo.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/fr-ca.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/fr-ca.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var frCa = moment.defineLocale('fr-ca', {\n    months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n    monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n    weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n    weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY-MM-DD',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Aujourd’hui à] LT',\n      nextDay: '[Demain à] LT',\n      nextWeek: 'dddd [à] LT',\n      lastDay: '[Hier à] LT',\n      lastWeek: 'dddd [dernier à] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'dans %s',\n      past: 'il y a %s',\n      s: 'quelques secondes',\n      ss: '%d secondes',\n      m: 'une minute',\n      mm: '%d minutes',\n      h: 'une heure',\n      hh: '%d heures',\n      d: 'un jour',\n      dd: '%d jours',\n      M: 'un mois',\n      MM: '%d mois',\n      y: 'un an',\n      yy: '%d ans'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        // Words with masculine grammatical gender: mois, trimestre, jour\n        default:\n        case 'M':\n        case 'Q':\n        case 'D':\n        case 'DDD':\n        case 'd':\n          return number + (number === 1 ? 'er' : 'e');\n\n        // Words with feminine grammatical gender: semaine\n        case 'w':\n        case 'W':\n          return number + (number === 1 ? 're' : 'e');\n      }\n    }\n  });\n  return frCa;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/fr-ca.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/fr-ch.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/fr-ch.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var frCh = moment.defineLocale('fr-ch', {\n    months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n    monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n    weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n    weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Aujourd’hui à] LT',\n      nextDay: '[Demain à] LT',\n      nextWeek: 'dddd [à] LT',\n      lastDay: '[Hier à] LT',\n      lastWeek: 'dddd [dernier à] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'dans %s',\n      past: 'il y a %s',\n      s: 'quelques secondes',\n      ss: '%d secondes',\n      m: 'une minute',\n      mm: '%d minutes',\n      h: 'une heure',\n      hh: '%d heures',\n      d: 'un jour',\n      dd: '%d jours',\n      M: 'un mois',\n      MM: '%d mois',\n      y: 'un an',\n      yy: '%d ans'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        // Words with masculine grammatical gender: mois, trimestre, jour\n        default:\n        case 'M':\n        case 'Q':\n        case 'D':\n        case 'DDD':\n        case 'd':\n          return number + (number === 1 ? 'er' : 'e');\n\n        // Words with feminine grammatical gender: semaine\n        case 'w':\n        case 'W':\n          return number + (number === 1 ? 're' : 'e');\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return frCh;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/fr-ch.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/fr.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/fr.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n    monthsShortStrictRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n    monthsRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n    monthsParse = [/^janv/i, /^févr/i, /^mars/i, /^avr/i, /^mai/i, /^juin/i, /^juil/i, /^août/i, /^sept/i, /^oct/i, /^nov/i, /^déc/i];\n  var fr = moment.defineLocale('fr', {\n    months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n    monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: monthsStrictRegex,\n    monthsShortStrictRegex: monthsShortStrictRegex,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n    weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n    weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Aujourd’hui à] LT',\n      nextDay: '[Demain à] LT',\n      nextWeek: 'dddd [à] LT',\n      lastDay: '[Hier à] LT',\n      lastWeek: 'dddd [dernier à] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'dans %s',\n      past: 'il y a %s',\n      s: 'quelques secondes',\n      ss: '%d secondes',\n      m: 'une minute',\n      mm: '%d minutes',\n      h: 'une heure',\n      hh: '%d heures',\n      d: 'un jour',\n      dd: '%d jours',\n      w: 'une semaine',\n      ww: '%d semaines',\n      M: 'un mois',\n      MM: '%d mois',\n      y: 'un an',\n      yy: '%d ans'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        // TODO: Return 'e' when day of month > 1. Move this case inside\n        // block for masculine words below.\n        // See https://github.com/moment/moment/issues/3375\n        case 'D':\n          return number + (number === 1 ? 'er' : '');\n\n        // Words with masculine grammatical gender: mois, trimestre, jour\n        default:\n        case 'M':\n        case 'Q':\n        case 'DDD':\n        case 'd':\n          return number + (number === 1 ? 'er' : 'e');\n\n        // Words with feminine grammatical gender: semaine\n        case 'w':\n        case 'W':\n          return number + (number === 1 ? 're' : 'e');\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return fr;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/fr.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/fy.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/fy.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n    monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n  var fy = moment.defineLocale('fy', {\n    months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),\n    monthsShort: function (m, format) {\n      if (!m) {\n        return monthsShortWithDots;\n      } else if (/-MMM-/.test(format)) {\n        return monthsShortWithoutDots[m.month()];\n      } else {\n        return monthsShortWithDots[m.month()];\n      }\n    },\n    monthsParseExact: true,\n    weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),\n    weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n    weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD-MM-YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[hjoed om] LT',\n      nextDay: '[moarn om] LT',\n      nextWeek: 'dddd [om] LT',\n      lastDay: '[juster om] LT',\n      lastWeek: '[ôfrûne] dddd [om] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'oer %s',\n      past: '%s lyn',\n      s: 'in pear sekonden',\n      ss: '%d sekonden',\n      m: 'ien minút',\n      mm: '%d minuten',\n      h: 'ien oere',\n      hh: '%d oeren',\n      d: 'ien dei',\n      dd: '%d dagen',\n      M: 'ien moanne',\n      MM: '%d moannen',\n      y: 'ien jier',\n      yy: '%d jierren'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n    ordinal: function (number) {\n      return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return fy;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/fy.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ga.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ga.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var months = ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Meitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deireadh Fómhair', 'Samhain', 'Nollaig'],\n    monthsShort = ['Ean', 'Feabh', 'Márt', 'Aib', 'Beal', 'Meith', 'Iúil', 'Lún', 'M.F.', 'D.F.', 'Samh', 'Noll'],\n    weekdays = ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Sathairn'],\n    weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n    weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n  var ga = moment.defineLocale('ga', {\n    months: months,\n    monthsShort: monthsShort,\n    monthsParseExact: true,\n    weekdays: weekdays,\n    weekdaysShort: weekdaysShort,\n    weekdaysMin: weekdaysMin,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Inniu ag] LT',\n      nextDay: '[Amárach ag] LT',\n      nextWeek: 'dddd [ag] LT',\n      lastDay: '[Inné ag] LT',\n      lastWeek: 'dddd [seo caite] [ag] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'i %s',\n      past: '%s ó shin',\n      s: 'cúpla soicind',\n      ss: '%d soicind',\n      m: 'nóiméad',\n      mm: '%d nóiméad',\n      h: 'uair an chloig',\n      hh: '%d uair an chloig',\n      d: 'lá',\n      dd: '%d lá',\n      M: 'mí',\n      MM: '%d míonna',\n      y: 'bliain',\n      yy: '%d bliain'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n    ordinal: function (number) {\n      var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return ga;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ga.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/gd.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/gd.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var months = ['Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'],\n    monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'],\n    weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'],\n    weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n    weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n  var gd = moment.defineLocale('gd', {\n    months: months,\n    monthsShort: monthsShort,\n    monthsParseExact: true,\n    weekdays: weekdays,\n    weekdaysShort: weekdaysShort,\n    weekdaysMin: weekdaysMin,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[An-diugh aig] LT',\n      nextDay: '[A-màireach aig] LT',\n      nextWeek: 'dddd [aig] LT',\n      lastDay: '[An-dè aig] LT',\n      lastWeek: 'dddd [seo chaidh] [aig] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'ann an %s',\n      past: 'bho chionn %s',\n      s: 'beagan diogan',\n      ss: '%d diogan',\n      m: 'mionaid',\n      mm: '%d mionaidean',\n      h: 'uair',\n      hh: '%d uairean',\n      d: 'latha',\n      dd: '%d latha',\n      M: 'mìos',\n      MM: '%d mìosan',\n      y: 'bliadhna',\n      yy: '%d bliadhna'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n    ordinal: function (number) {\n      var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return gd;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/gd.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/gl.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/gl.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var gl = moment.defineLocale('gl', {\n    months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n    monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n    weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n    weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D [de] MMMM [de] YYYY',\n      LLL: 'D [de] MMMM [de] YYYY H:mm',\n      LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n    },\n    calendar: {\n      sameDay: function () {\n        return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n      },\n      nextDay: function () {\n        return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n      },\n      nextWeek: function () {\n        return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n      },\n      lastDay: function () {\n        return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n      },\n      lastWeek: function () {\n        return '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: function (str) {\n        if (str.indexOf('un') === 0) {\n          return 'n' + str;\n        }\n        return 'en ' + str;\n      },\n      past: 'hai %s',\n      s: 'uns segundos',\n      ss: '%d segundos',\n      m: 'un minuto',\n      mm: '%d minutos',\n      h: 'unha hora',\n      hh: '%d horas',\n      d: 'un día',\n      dd: '%d días',\n      M: 'un mes',\n      MM: '%d meses',\n      y: 'un ano',\n      yy: '%d anos'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return gl;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/gl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/gom-deva.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/gom-deva.js ***!
  \**********************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n      ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n      m: ['एका मिणटान', 'एक मिनूट'],\n      mm: [number + ' मिणटांनी', number + ' मिणटां'],\n      h: ['एका वरान', 'एक वर'],\n      hh: [number + ' वरांनी', number + ' वरां'],\n      d: ['एका दिसान', 'एक दीस'],\n      dd: [number + ' दिसांनी', number + ' दीस'],\n      M: ['एका म्हयन्यान', 'एक म्हयनो'],\n      MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n      y: ['एका वर्सान', 'एक वर्स'],\n      yy: [number + ' वर्सांनी', number + ' वर्सां']\n    };\n    return isFuture ? format[key][0] : format[key][1];\n  }\n  var gomDeva = moment.defineLocale('gom-deva', {\n    months: {\n      standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),\n      format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split('_'),\n      isFormat: /MMMM(\\s)+D[oD]?/\n    },\n    monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n    weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n    weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'A h:mm [वाजतां]',\n      LTS: 'A h:mm:ss [वाजतां]',\n      L: 'DD-MM-YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n      LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n      llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]'\n    },\n    calendar: {\n      sameDay: '[आयज] LT',\n      nextDay: '[फाल्यां] LT',\n      nextWeek: '[फुडलो] dddd[,] LT',\n      lastDay: '[काल] LT',\n      lastWeek: '[फाटलो] dddd[,] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s',\n      past: '%s आदीं',\n      s: processRelativeTime,\n      ss: processRelativeTime,\n      m: processRelativeTime,\n      mm: processRelativeTime,\n      h: processRelativeTime,\n      hh: processRelativeTime,\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        // the ordinal 'वेर' only applies to day of the month\n        case 'D':\n          return number + 'वेर';\n        default:\n        case 'M':\n        case 'Q':\n        case 'DDD':\n        case 'd':\n        case 'w':\n        case 'W':\n          return number;\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week\n      doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n    },\n    meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'राती') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'सकाळीं') {\n        return hour;\n      } else if (meridiem === 'दनपारां') {\n        return hour > 12 ? hour : hour + 12;\n      } else if (meridiem === 'सांजे') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'राती';\n      } else if (hour < 12) {\n        return 'सकाळीं';\n      } else if (hour < 16) {\n        return 'दनपारां';\n      } else if (hour < 20) {\n        return 'सांजे';\n      } else {\n        return 'राती';\n      }\n    }\n  });\n  return gomDeva;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/gom-deva.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/gom-latn.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/gom-latn.js ***!
  \**********************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      s: ['thoddea sekondamni', 'thodde sekond'],\n      ss: [number + ' sekondamni', number + ' sekond'],\n      m: ['eka mintan', 'ek minut'],\n      mm: [number + ' mintamni', number + ' mintam'],\n      h: ['eka voran', 'ek vor'],\n      hh: [number + ' voramni', number + ' voram'],\n      d: ['eka disan', 'ek dis'],\n      dd: [number + ' disamni', number + ' dis'],\n      M: ['eka mhoinean', 'ek mhoino'],\n      MM: [number + ' mhoineamni', number + ' mhoine'],\n      y: ['eka vorsan', 'ek voros'],\n      yy: [number + ' vorsamni', number + ' vorsam']\n    };\n    return isFuture ? format[key][0] : format[key][1];\n  }\n  var gomLatn = moment.defineLocale('gom-latn', {\n    months: {\n      standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n      format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split('_'),\n      isFormat: /MMMM(\\s)+D[oD]?/\n    },\n    monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n    monthsParseExact: true,\n    weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n    weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n    weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'A h:mm [vazta]',\n      LTS: 'A h:mm:ss [vazta]',\n      L: 'DD-MM-YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY A h:mm [vazta]',\n      LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n      llll: 'ddd, D MMM YYYY, A h:mm [vazta]'\n    },\n    calendar: {\n      sameDay: '[Aiz] LT',\n      nextDay: '[Faleam] LT',\n      nextWeek: '[Fuddlo] dddd[,] LT',\n      lastDay: '[Kal] LT',\n      lastWeek: '[Fattlo] dddd[,] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s',\n      past: '%s adim',\n      s: processRelativeTime,\n      ss: processRelativeTime,\n      m: processRelativeTime,\n      mm: processRelativeTime,\n      h: processRelativeTime,\n      hh: processRelativeTime,\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        // the ordinal 'er' only applies to day of the month\n        case 'D':\n          return number + 'er';\n        default:\n        case 'M':\n        case 'Q':\n        case 'DDD':\n        case 'd':\n        case 'w':\n        case 'W':\n          return number;\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week\n      doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n    },\n    meridiemParse: /rati|sokallim|donparam|sanje/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'rati') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'sokallim') {\n        return hour;\n      } else if (meridiem === 'donparam') {\n        return hour > 12 ? hour : hour + 12;\n      } else if (meridiem === 'sanje') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'rati';\n      } else if (hour < 12) {\n        return 'sokallim';\n      } else if (hour < 16) {\n        return 'donparam';\n      } else if (hour < 20) {\n        return 'sanje';\n      } else {\n        return 'rati';\n      }\n    }\n  });\n  return gomLatn;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/gom-latn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/gu.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/gu.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '૧',\n      2: '૨',\n      3: '૩',\n      4: '૪',\n      5: '૫',\n      6: '૬',\n      7: '૭',\n      8: '૮',\n      9: '૯',\n      0: '૦'\n    },\n    numberMap = {\n      '૧': '1',\n      '૨': '2',\n      '૩': '3',\n      '૪': '4',\n      '૫': '5',\n      '૬': '6',\n      '૭': '7',\n      '૮': '8',\n      '૯': '9',\n      '૦': '0'\n    };\n  var gu = moment.defineLocale('gu', {\n    months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),\n    monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),\n    weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n    weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm વાગ્યે',\n      LTS: 'A h:mm:ss વાગ્યે',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'\n    },\n    calendar: {\n      sameDay: '[આજ] LT',\n      nextDay: '[કાલે] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[ગઇકાલે] LT',\n      lastWeek: '[પાછલા] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s મા',\n      past: '%s પહેલા',\n      s: 'અમુક પળો',\n      ss: '%d સેકંડ',\n      m: 'એક મિનિટ',\n      mm: '%d મિનિટ',\n      h: 'એક કલાક',\n      hh: '%d કલાક',\n      d: 'એક દિવસ',\n      dd: '%d દિવસ',\n      M: 'એક મહિનો',\n      MM: '%d મહિનો',\n      y: 'એક વર્ષ',\n      yy: '%d વર્ષ'\n    },\n    preparse: function (string) {\n      return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n    // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n    meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'રાત') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'સવાર') {\n        return hour;\n      } else if (meridiem === 'બપોર') {\n        return hour >= 10 ? hour : hour + 12;\n      } else if (meridiem === 'સાંજ') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'રાત';\n      } else if (hour < 10) {\n        return 'સવાર';\n      } else if (hour < 17) {\n        return 'બપોર';\n      } else if (hour < 20) {\n        return 'સાંજ';\n      } else {\n        return 'રાત';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return gu;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/gu.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/he.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/he.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var he = moment.defineLocale('he', {\n    months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),\n    monthsShort: 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n    weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n    weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n    weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D [ב]MMMM YYYY',\n      LLL: 'D [ב]MMMM YYYY HH:mm',\n      LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n      l: 'D/M/YYYY',\n      ll: 'D MMM YYYY',\n      lll: 'D MMM YYYY HH:mm',\n      llll: 'ddd, D MMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[היום ב־]LT',\n      nextDay: '[מחר ב־]LT',\n      nextWeek: 'dddd [בשעה] LT',\n      lastDay: '[אתמול ב־]LT',\n      lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'בעוד %s',\n      past: 'לפני %s',\n      s: 'מספר שניות',\n      ss: '%d שניות',\n      m: 'דקה',\n      mm: '%d דקות',\n      h: 'שעה',\n      hh: function (number) {\n        if (number === 2) {\n          return 'שעתיים';\n        }\n        return number + ' שעות';\n      },\n      d: 'יום',\n      dd: function (number) {\n        if (number === 2) {\n          return 'יומיים';\n        }\n        return number + ' ימים';\n      },\n      M: 'חודש',\n      MM: function (number) {\n        if (number === 2) {\n          return 'חודשיים';\n        }\n        return number + ' חודשים';\n      },\n      y: 'שנה',\n      yy: function (number) {\n        if (number === 2) {\n          return 'שנתיים';\n        } else if (number % 10 === 0 && number !== 10) {\n          return number + ' שנה';\n        }\n        return number + ' שנים';\n      }\n    },\n    meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n    isPM: function (input) {\n      return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 5) {\n        return 'לפנות בוקר';\n      } else if (hour < 10) {\n        return 'בבוקר';\n      } else if (hour < 12) {\n        return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n      } else if (hour < 18) {\n        return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n      } else {\n        return 'בערב';\n      }\n    }\n  });\n  return he;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/he.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/hi.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/hi.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '१',\n      2: '२',\n      3: '३',\n      4: '४',\n      5: '५',\n      6: '६',\n      7: '७',\n      8: '८',\n      9: '९',\n      0: '०'\n    },\n    numberMap = {\n      '१': '1',\n      '२': '2',\n      '३': '3',\n      '४': '4',\n      '५': '5',\n      '६': '6',\n      '७': '7',\n      '८': '8',\n      '९': '9',\n      '०': '0'\n    },\n    monthsParse = [/^जन/i, /^फ़र|फर/i, /^मार्च/i, /^अप्रै/i, /^मई/i, /^जून/i, /^जुल/i, /^अग/i, /^सितं|सित/i, /^अक्टू/i, /^नव|नवं/i, /^दिसं|दिस/i],\n    shortMonthsParse = [/^जन/i, /^फ़र/i, /^मार्च/i, /^अप्रै/i, /^मई/i, /^जून/i, /^जुल/i, /^अग/i, /^सित/i, /^अक्टू/i, /^नव/i, /^दिस/i];\n  var hi = moment.defineLocale('hi', {\n    months: {\n      format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),\n      standalone: 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split('_')\n    },\n    monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n    weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n    weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n    weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm बजे',\n      LTS: 'A h:mm:ss बजे',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm बजे',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm बजे'\n    },\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: shortMonthsParse,\n    monthsRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n    monthsShortRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n    monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n    monthsShortStrictRegex: /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n    calendar: {\n      sameDay: '[आज] LT',\n      nextDay: '[कल] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[कल] LT',\n      lastWeek: '[पिछले] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s में',\n      past: '%s पहले',\n      s: 'कुछ ही क्षण',\n      ss: '%d सेकंड',\n      m: 'एक मिनट',\n      mm: '%d मिनट',\n      h: 'एक घंटा',\n      hh: '%d घंटे',\n      d: 'एक दिन',\n      dd: '%d दिन',\n      M: 'एक महीने',\n      MM: '%d महीने',\n      y: 'एक वर्ष',\n      yy: '%d वर्ष'\n    },\n    preparse: function (string) {\n      return string.replace(/[१२३४५६७८९०]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n    // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n    meridiemParse: /रात|सुबह|दोपहर|शाम/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'रात') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'सुबह') {\n        return hour;\n      } else if (meridiem === 'दोपहर') {\n        return hour >= 10 ? hour : hour + 12;\n      } else if (meridiem === 'शाम') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'रात';\n      } else if (hour < 10) {\n        return 'सुबह';\n      } else if (hour < 17) {\n        return 'दोपहर';\n      } else if (hour < 20) {\n        return 'शाम';\n      } else {\n        return 'रात';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return hi;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/hi.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/hr.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/hr.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function translate(number, withoutSuffix, key) {\n    var result = number + ' ';\n    switch (key) {\n      case 'ss':\n        if (number === 1) {\n          result += 'sekunda';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'sekunde';\n        } else {\n          result += 'sekundi';\n        }\n        return result;\n      case 'm':\n        return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n      case 'mm':\n        if (number === 1) {\n          result += 'minuta';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'minute';\n        } else {\n          result += 'minuta';\n        }\n        return result;\n      case 'h':\n        return withoutSuffix ? 'jedan sat' : 'jednog sata';\n      case 'hh':\n        if (number === 1) {\n          result += 'sat';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'sata';\n        } else {\n          result += 'sati';\n        }\n        return result;\n      case 'dd':\n        if (number === 1) {\n          result += 'dan';\n        } else {\n          result += 'dana';\n        }\n        return result;\n      case 'MM':\n        if (number === 1) {\n          result += 'mjesec';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'mjeseca';\n        } else {\n          result += 'mjeseci';\n        }\n        return result;\n      case 'yy':\n        if (number === 1) {\n          result += 'godina';\n        } else if (number === 2 || number === 3 || number === 4) {\n          result += 'godine';\n        } else {\n          result += 'godina';\n        }\n        return result;\n    }\n  }\n  var hr = moment.defineLocale('hr', {\n    months: {\n      format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),\n      standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')\n    },\n    monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n    weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n    weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'Do MMMM YYYY',\n      LLL: 'Do MMMM YYYY H:mm',\n      LLLL: 'dddd, Do MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[danas u] LT',\n      nextDay: '[sutra u] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[u] [nedjelju] [u] LT';\n          case 3:\n            return '[u] [srijedu] [u] LT';\n          case 6:\n            return '[u] [subotu] [u] LT';\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[u] dddd [u] LT';\n        }\n      },\n      lastDay: '[jučer u] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[prošlu] [nedjelju] [u] LT';\n          case 3:\n            return '[prošlu] [srijedu] [u] LT';\n          case 6:\n            return '[prošle] [subote] [u] LT';\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[prošli] dddd [u] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'za %s',\n      past: 'prije %s',\n      s: 'par sekundi',\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: 'dan',\n      dd: translate,\n      M: 'mjesec',\n      MM: translate,\n      y: 'godinu',\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return hr;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/hr.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/hu.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/hu.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt  : https://github.com/passatgt\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n  function translate(number, withoutSuffix, key, isFuture) {\n    var num = number;\n    switch (key) {\n      case 's':\n        return isFuture || withoutSuffix ? 'néhány másodperc' : 'néhány másodperce';\n      case 'ss':\n        return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';\n      case 'm':\n        return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n      case 'mm':\n        return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n      case 'h':\n        return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n      case 'hh':\n        return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n      case 'd':\n        return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n      case 'dd':\n        return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n      case 'M':\n        return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n      case 'MM':\n        return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n      case 'y':\n        return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n      case 'yy':\n        return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n    }\n    return '';\n  }\n  function week(isFuture) {\n    return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';\n  }\n  var hu = moment.defineLocale('hu', {\n    months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n    monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n    weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n    weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'YYYY.MM.DD.',\n      LL: 'YYYY. MMMM D.',\n      LLL: 'YYYY. MMMM D. H:mm',\n      LLLL: 'YYYY. MMMM D., dddd H:mm'\n    },\n    meridiemParse: /de|du/i,\n    isPM: function (input) {\n      return input.charAt(1).toLowerCase() === 'u';\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 12) {\n        return isLower === true ? 'de' : 'DE';\n      } else {\n        return isLower === true ? 'du' : 'DU';\n      }\n    },\n    calendar: {\n      sameDay: '[ma] LT[-kor]',\n      nextDay: '[holnap] LT[-kor]',\n      nextWeek: function () {\n        return week.call(this, true);\n      },\n      lastDay: '[tegnap] LT[-kor]',\n      lastWeek: function () {\n        return week.call(this, false);\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s múlva',\n      past: '%s',\n      s: translate,\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: translate,\n      dd: translate,\n      M: translate,\n      MM: translate,\n      y: translate,\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return hu;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/hu.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/hy-am.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/hy-am.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var hyAm = moment.defineLocale('hy-am', {\n    months: {\n      format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),\n      standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')\n    },\n    monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n    weekdays: 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_'),\n    weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n    weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY թ.',\n      LLL: 'D MMMM YYYY թ., HH:mm',\n      LLLL: 'dddd, D MMMM YYYY թ., HH:mm'\n    },\n    calendar: {\n      sameDay: '[այսօր] LT',\n      nextDay: '[վաղը] LT',\n      lastDay: '[երեկ] LT',\n      nextWeek: function () {\n        return 'dddd [օրը ժամը] LT';\n      },\n      lastWeek: function () {\n        return '[անցած] dddd [օրը ժամը] LT';\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s հետո',\n      past: '%s առաջ',\n      s: 'մի քանի վայրկյան',\n      ss: '%d վայրկյան',\n      m: 'րոպե',\n      mm: '%d րոպե',\n      h: 'ժամ',\n      hh: '%d ժամ',\n      d: 'օր',\n      dd: '%d օր',\n      M: 'ամիս',\n      MM: '%d ամիս',\n      y: 'տարի',\n      yy: '%d տարի'\n    },\n    meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n    isPM: function (input) {\n      return /^(ցերեկվա|երեկոյան)$/.test(input);\n    },\n    meridiem: function (hour) {\n      if (hour < 4) {\n        return 'գիշերվա';\n      } else if (hour < 12) {\n        return 'առավոտվա';\n      } else if (hour < 17) {\n        return 'ցերեկվա';\n      } else {\n        return 'երեկոյան';\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'DDD':\n        case 'w':\n        case 'W':\n        case 'DDDo':\n          if (number === 1) {\n            return number + '-ին';\n          }\n          return number + '-րդ';\n        default:\n          return number;\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return hyAm;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/hy-am.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/id.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/id.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var id = moment.defineLocale('id', {\n    months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n    weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n    weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n    weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n    longDateFormat: {\n      LT: 'HH.mm',\n      LTS: 'HH.mm.ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY [pukul] HH.mm',\n      LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n    },\n    meridiemParse: /pagi|siang|sore|malam/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'pagi') {\n        return hour;\n      } else if (meridiem === 'siang') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === 'sore' || meridiem === 'malam') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 11) {\n        return 'pagi';\n      } else if (hours < 15) {\n        return 'siang';\n      } else if (hours < 19) {\n        return 'sore';\n      } else {\n        return 'malam';\n      }\n    },\n    calendar: {\n      sameDay: '[Hari ini pukul] LT',\n      nextDay: '[Besok pukul] LT',\n      nextWeek: 'dddd [pukul] LT',\n      lastDay: '[Kemarin pukul] LT',\n      lastWeek: 'dddd [lalu pukul] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'dalam %s',\n      past: '%s yang lalu',\n      s: 'beberapa detik',\n      ss: '%d detik',\n      m: 'semenit',\n      mm: '%d menit',\n      h: 'sejam',\n      hh: '%d jam',\n      d: 'sehari',\n      dd: '%d hari',\n      M: 'sebulan',\n      MM: '%d bulan',\n      y: 'setahun',\n      yy: '%d tahun'\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return id;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/id.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/is.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/is.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function plural(n) {\n    if (n % 100 === 11) {\n      return true;\n    } else if (n % 10 === 1) {\n      return false;\n    }\n    return true;\n  }\n  function translate(number, withoutSuffix, key, isFuture) {\n    var result = number + ' ';\n    switch (key) {\n      case 's':\n        return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n      case 'ss':\n        if (plural(number)) {\n          return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n        }\n        return result + 'sekúnda';\n      case 'm':\n        return withoutSuffix ? 'mínúta' : 'mínútu';\n      case 'mm':\n        if (plural(number)) {\n          return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');\n        } else if (withoutSuffix) {\n          return result + 'mínúta';\n        }\n        return result + 'mínútu';\n      case 'hh':\n        if (plural(number)) {\n          return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n        }\n        return result + 'klukkustund';\n      case 'd':\n        if (withoutSuffix) {\n          return 'dagur';\n        }\n        return isFuture ? 'dag' : 'degi';\n      case 'dd':\n        if (plural(number)) {\n          if (withoutSuffix) {\n            return result + 'dagar';\n          }\n          return result + (isFuture ? 'daga' : 'dögum');\n        } else if (withoutSuffix) {\n          return result + 'dagur';\n        }\n        return result + (isFuture ? 'dag' : 'degi');\n      case 'M':\n        if (withoutSuffix) {\n          return 'mánuður';\n        }\n        return isFuture ? 'mánuð' : 'mánuði';\n      case 'MM':\n        if (plural(number)) {\n          if (withoutSuffix) {\n            return result + 'mánuðir';\n          }\n          return result + (isFuture ? 'mánuði' : 'mánuðum');\n        } else if (withoutSuffix) {\n          return result + 'mánuður';\n        }\n        return result + (isFuture ? 'mánuð' : 'mánuði');\n      case 'y':\n        return withoutSuffix || isFuture ? 'ár' : 'ári';\n      case 'yy':\n        if (plural(number)) {\n          return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n        }\n        return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n    }\n  }\n  var is = moment.defineLocale('is', {\n    months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),\n    monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n    weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n    weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n    weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY [kl.] H:mm',\n      LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm'\n    },\n    calendar: {\n      sameDay: '[í dag kl.] LT',\n      nextDay: '[á morgun kl.] LT',\n      nextWeek: 'dddd [kl.] LT',\n      lastDay: '[í gær kl.] LT',\n      lastWeek: '[síðasta] dddd [kl.] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'eftir %s',\n      past: 'fyrir %s síðan',\n      s: translate,\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: 'klukkustund',\n      hh: translate,\n      d: translate,\n      dd: translate,\n      M: translate,\n      MM: translate,\n      y: translate,\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return is;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/is.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/it-ch.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/it-ch.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var itCh = moment.defineLocale('it-ch', {\n    months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n    monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n    weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n    weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n    weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Oggi alle] LT',\n      nextDay: '[Domani alle] LT',\n      nextWeek: 'dddd [alle] LT',\n      lastDay: '[Ieri alle] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[la scorsa] dddd [alle] LT';\n          default:\n            return '[lo scorso] dddd [alle] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: function (s) {\n        return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n      },\n      past: '%s fa',\n      s: 'alcuni secondi',\n      ss: '%d secondi',\n      m: 'un minuto',\n      mm: '%d minuti',\n      h: \"un'ora\",\n      hh: '%d ore',\n      d: 'un giorno',\n      dd: '%d giorni',\n      M: 'un mese',\n      MM: '%d mesi',\n      y: 'un anno',\n      yy: '%d anni'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return itCh;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/it-ch.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/it.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/it.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var it = moment.defineLocale('it', {\n    months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n    monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n    weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n    weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n    weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: function () {\n        return '[Oggi a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n      },\n      nextDay: function () {\n        return '[Domani a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n      },\n      nextWeek: function () {\n        return 'dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n      },\n      lastDay: function () {\n        return '[Ieri a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n      },\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[La scorsa] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n          default:\n            return '[Lo scorso] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'tra %s',\n      past: '%s fa',\n      s: 'alcuni secondi',\n      ss: '%d secondi',\n      m: 'un minuto',\n      mm: '%d minuti',\n      h: \"un'ora\",\n      hh: '%d ore',\n      d: 'un giorno',\n      dd: '%d giorni',\n      w: 'una settimana',\n      ww: '%d settimane',\n      M: 'un mese',\n      MM: '%d mesi',\n      y: 'un anno',\n      yy: '%d anni'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return it;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/it.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ja.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ja.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var ja = moment.defineLocale('ja', {\n    eras: [{\n      since: '2019-05-01',\n      offset: 1,\n      name: '令和',\n      narrow: '㋿',\n      abbr: 'R'\n    }, {\n      since: '1989-01-08',\n      until: '2019-04-30',\n      offset: 1,\n      name: '平成',\n      narrow: '㍻',\n      abbr: 'H'\n    }, {\n      since: '1926-12-25',\n      until: '1989-01-07',\n      offset: 1,\n      name: '昭和',\n      narrow: '㍼',\n      abbr: 'S'\n    }, {\n      since: '1912-07-30',\n      until: '1926-12-24',\n      offset: 1,\n      name: '大正',\n      narrow: '㍽',\n      abbr: 'T'\n    }, {\n      since: '1873-01-01',\n      until: '1912-07-29',\n      offset: 6,\n      name: '明治',\n      narrow: '㍾',\n      abbr: 'M'\n    }, {\n      since: '0001-01-01',\n      until: '1873-12-31',\n      offset: 1,\n      name: '西暦',\n      narrow: 'AD',\n      abbr: 'AD'\n    }, {\n      since: '0000-12-31',\n      until: -Infinity,\n      offset: 1,\n      name: '紀元前',\n      narrow: 'BC',\n      abbr: 'BC'\n    }],\n    eraYearOrdinalRegex: /(元|\\d+)年/,\n    eraYearOrdinalParse: function (input, match) {\n      return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n    },\n    months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n    monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n    weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n    weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n    weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY/MM/DD',\n      LL: 'YYYY年M月D日',\n      LLL: 'YYYY年M月D日 HH:mm',\n      LLLL: 'YYYY年M月D日 dddd HH:mm',\n      l: 'YYYY/MM/DD',\n      ll: 'YYYY年M月D日',\n      lll: 'YYYY年M月D日 HH:mm',\n      llll: 'YYYY年M月D日(ddd) HH:mm'\n    },\n    meridiemParse: /午前|午後/i,\n    isPM: function (input) {\n      return input === '午後';\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return '午前';\n      } else {\n        return '午後';\n      }\n    },\n    calendar: {\n      sameDay: '[今日] LT',\n      nextDay: '[明日] LT',\n      nextWeek: function (now) {\n        if (now.week() !== this.week()) {\n          return '[来週]dddd LT';\n        } else {\n          return 'dddd LT';\n        }\n      },\n      lastDay: '[昨日] LT',\n      lastWeek: function (now) {\n        if (this.week() !== now.week()) {\n          return '[先週]dddd LT';\n        } else {\n          return 'dddd LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}日/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'y':\n          return number === 1 ? '元年' : number + '年';\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + '日';\n        default:\n          return number;\n      }\n    },\n    relativeTime: {\n      future: '%s後',\n      past: '%s前',\n      s: '数秒',\n      ss: '%d秒',\n      m: '1分',\n      mm: '%d分',\n      h: '1時間',\n      hh: '%d時間',\n      d: '1日',\n      dd: '%d日',\n      M: '1ヶ月',\n      MM: '%dヶ月',\n      y: '1年',\n      yy: '%d年'\n    }\n  });\n  return ja;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ja.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/jv.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/jv.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var jv = moment.defineLocale('jv', {\n    months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),\n    monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n    weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n    weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n    weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n    longDateFormat: {\n      LT: 'HH.mm',\n      LTS: 'HH.mm.ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY [pukul] HH.mm',\n      LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n    },\n    meridiemParse: /enjing|siyang|sonten|ndalu/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'enjing') {\n        return hour;\n      } else if (meridiem === 'siyang') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 11) {\n        return 'enjing';\n      } else if (hours < 15) {\n        return 'siyang';\n      } else if (hours < 19) {\n        return 'sonten';\n      } else {\n        return 'ndalu';\n      }\n    },\n    calendar: {\n      sameDay: '[Dinten puniko pukul] LT',\n      nextDay: '[Mbenjang pukul] LT',\n      nextWeek: 'dddd [pukul] LT',\n      lastDay: '[Kala wingi pukul] LT',\n      lastWeek: 'dddd [kepengker pukul] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'wonten ing %s',\n      past: '%s ingkang kepengker',\n      s: 'sawetawis detik',\n      ss: '%d detik',\n      m: 'setunggal menit',\n      mm: '%d menit',\n      h: 'setunggal jam',\n      hh: '%d jam',\n      d: 'sedinten',\n      dd: '%d dinten',\n      M: 'sewulan',\n      MM: '%d wulan',\n      y: 'setaun',\n      yy: '%d taun'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return jv;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/jv.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ka.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ka.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var ka = moment.defineLocale('ka', {\n    months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),\n    monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n    weekdays: {\n      standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),\n      format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),\n      isFormat: /(წინა|შემდეგ)/\n    },\n    weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n    weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[დღეს] LT[-ზე]',\n      nextDay: '[ხვალ] LT[-ზე]',\n      lastDay: '[გუშინ] LT[-ზე]',\n      nextWeek: '[შემდეგ] dddd LT[-ზე]',\n      lastWeek: '[წინა] dddd LT-ზე',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: function (s) {\n        return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function ($0, $1, $2) {\n          return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n        });\n      },\n      past: function (s) {\n        if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n          return s.replace(/(ი|ე)$/, 'ის წინ');\n        }\n        if (/წელი/.test(s)) {\n          return s.replace(/წელი$/, 'წლის წინ');\n        }\n        return s;\n      },\n      s: 'რამდენიმე წამი',\n      ss: '%d წამი',\n      m: 'წუთი',\n      mm: '%d წუთი',\n      h: 'საათი',\n      hh: '%d საათი',\n      d: 'დღე',\n      dd: '%d დღე',\n      M: 'თვე',\n      MM: '%d თვე',\n      y: 'წელი',\n      yy: '%d წელი'\n    },\n    dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n    ordinal: function (number) {\n      if (number === 0) {\n        return number;\n      }\n      if (number === 1) {\n        return number + '-ლი';\n      }\n      if (number < 20 || number <= 100 && number % 20 === 0 || number % 100 === 0) {\n        return 'მე-' + number;\n      }\n      return number + '-ე';\n    },\n    week: {\n      dow: 1,\n      doy: 7\n    }\n  });\n  return ka;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ka.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/kk.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/kk.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var suffixes = {\n    0: '-ші',\n    1: '-ші',\n    2: '-ші',\n    3: '-ші',\n    4: '-ші',\n    5: '-ші',\n    6: '-шы',\n    7: '-ші',\n    8: '-ші',\n    9: '-шы',\n    10: '-шы',\n    20: '-шы',\n    30: '-шы',\n    40: '-шы',\n    50: '-ші',\n    60: '-шы',\n    70: '-ші',\n    80: '-ші',\n    90: '-шы',\n    100: '-ші'\n  };\n  var kk = moment.defineLocale('kk', {\n    months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),\n    monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n    weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split('_'),\n    weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n    weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Бүгін сағат] LT',\n      nextDay: '[Ертең сағат] LT',\n      nextWeek: 'dddd [сағат] LT',\n      lastDay: '[Кеше сағат] LT',\n      lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s ішінде',\n      past: '%s бұрын',\n      s: 'бірнеше секунд',\n      ss: '%d секунд',\n      m: 'бір минут',\n      mm: '%d минут',\n      h: 'бір сағат',\n      hh: '%d сағат',\n      d: 'бір күн',\n      dd: '%d күн',\n      M: 'бір ай',\n      MM: '%d ай',\n      y: 'бір жыл',\n      yy: '%d жыл'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n    ordinal: function (number) {\n      var a = number % 10,\n        b = number >= 100 ? 100 : null;\n      return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return kk;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/kk.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/km.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/km.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '១',\n      2: '២',\n      3: '៣',\n      4: '៤',\n      5: '៥',\n      6: '៦',\n      7: '៧',\n      8: '៨',\n      9: '៩',\n      0: '០'\n    },\n    numberMap = {\n      '១': '1',\n      '២': '2',\n      '៣': '3',\n      '៤': '4',\n      '៥': '5',\n      '៦': '6',\n      '៧': '7',\n      '៨': '8',\n      '៩': '9',\n      '០': '0'\n    };\n  var km = moment.defineLocale('km', {\n    months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),\n    monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),\n    weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n    weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n    weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ព្រឹក|ល្ងាច/,\n    isPM: function (input) {\n      return input === 'ល្ងាច';\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ព្រឹក';\n      } else {\n        return 'ល្ងាច';\n      }\n    },\n    calendar: {\n      sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n      nextDay: '[ស្អែក ម៉ោង] LT',\n      nextWeek: 'dddd [ម៉ោង] LT',\n      lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n      lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%sទៀត',\n      past: '%sមុន',\n      s: 'ប៉ុន្មានវិនាទី',\n      ss: '%d វិនាទី',\n      m: 'មួយនាទី',\n      mm: '%d នាទី',\n      h: 'មួយម៉ោង',\n      hh: '%d ម៉ោង',\n      d: 'មួយថ្ងៃ',\n      dd: '%d ថ្ងៃ',\n      M: 'មួយខែ',\n      MM: '%d ខែ',\n      y: 'មួយឆ្នាំ',\n      yy: '%d ឆ្នាំ'\n    },\n    dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n    ordinal: 'ទី%d',\n    preparse: function (string) {\n      return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return km;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/km.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/kn.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/kn.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '೧',\n      2: '೨',\n      3: '೩',\n      4: '೪',\n      5: '೫',\n      6: '೬',\n      7: '೭',\n      8: '೮',\n      9: '೯',\n      0: '೦'\n    },\n    numberMap = {\n      '೧': '1',\n      '೨': '2',\n      '೩': '3',\n      '೪': '4',\n      '೫': '5',\n      '೬': '6',\n      '೭': '7',\n      '೮': '8',\n      '೯': '9',\n      '೦': '0'\n    };\n  var kn = moment.defineLocale('kn', {\n    months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),\n    monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split('_'),\n    weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n    weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm',\n      LTS: 'A h:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm'\n    },\n    calendar: {\n      sameDay: '[ಇಂದು] LT',\n      nextDay: '[ನಾಳೆ] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[ನಿನ್ನೆ] LT',\n      lastWeek: '[ಕೊನೆಯ] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s ನಂತರ',\n      past: '%s ಹಿಂದೆ',\n      s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n      ss: '%d ಸೆಕೆಂಡುಗಳು',\n      m: 'ಒಂದು ನಿಮಿಷ',\n      mm: '%d ನಿಮಿಷ',\n      h: 'ಒಂದು ಗಂಟೆ',\n      hh: '%d ಗಂಟೆ',\n      d: 'ಒಂದು ದಿನ',\n      dd: '%d ದಿನ',\n      M: 'ಒಂದು ತಿಂಗಳು',\n      MM: '%d ತಿಂಗಳು',\n      y: 'ಒಂದು ವರ್ಷ',\n      yy: '%d ವರ್ಷ'\n    },\n    preparse: function (string) {\n      return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'ರಾತ್ರಿ') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n        return hour;\n      } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n        return hour >= 10 ? hour : hour + 12;\n      } else if (meridiem === 'ಸಂಜೆ') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'ರಾತ್ರಿ';\n      } else if (hour < 10) {\n        return 'ಬೆಳಿಗ್ಗೆ';\n      } else if (hour < 17) {\n        return 'ಮಧ್ಯಾಹ್ನ';\n      } else if (hour < 20) {\n        return 'ಸಂಜೆ';\n      } else {\n        return 'ರಾತ್ರಿ';\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n    ordinal: function (number) {\n      return number + 'ನೇ';\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return kn;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/kn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ko.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ko.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var ko = moment.defineLocale('ko', {\n    months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n    monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n    weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n    weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n    weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm',\n      LTS: 'A h:mm:ss',\n      L: 'YYYY.MM.DD.',\n      LL: 'YYYY년 MMMM D일',\n      LLL: 'YYYY년 MMMM D일 A h:mm',\n      LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n      l: 'YYYY.MM.DD.',\n      ll: 'YYYY년 MMMM D일',\n      lll: 'YYYY년 MMMM D일 A h:mm',\n      llll: 'YYYY년 MMMM D일 dddd A h:mm'\n    },\n    calendar: {\n      sameDay: '오늘 LT',\n      nextDay: '내일 LT',\n      nextWeek: 'dddd LT',\n      lastDay: '어제 LT',\n      lastWeek: '지난주 dddd LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s 후',\n      past: '%s 전',\n      s: '몇 초',\n      ss: '%d초',\n      m: '1분',\n      mm: '%d분',\n      h: '한 시간',\n      hh: '%d시간',\n      d: '하루',\n      dd: '%d일',\n      M: '한 달',\n      MM: '%d달',\n      y: '일 년',\n      yy: '%d년'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + '일';\n        case 'M':\n          return number + '월';\n        case 'w':\n        case 'W':\n          return number + '주';\n        default:\n          return number;\n      }\n    },\n    meridiemParse: /오전|오후/,\n    isPM: function (token) {\n      return token === '오후';\n    },\n    meridiem: function (hour, minute, isUpper) {\n      return hour < 12 ? '오전' : '오후';\n    }\n  });\n  return ko;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ko.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ku-kmr.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ku-kmr.js ***!
  \********************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Northern Kurdish [ku-kmr]\n//! authors : Mazlum Özdogan : https://github.com/mergehez\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function processRelativeTime(num, withoutSuffix, key, isFuture) {\n    var format = {\n      s: ['çend sanîye', 'çend sanîyeyan'],\n      ss: [num + ' sanîye', num + ' sanîyeyan'],\n      m: ['deqîqeyek', 'deqîqeyekê'],\n      mm: [num + ' deqîqe', num + ' deqîqeyan'],\n      h: ['saetek', 'saetekê'],\n      hh: [num + ' saet', num + ' saetan'],\n      d: ['rojek', 'rojekê'],\n      dd: [num + ' roj', num + ' rojan'],\n      w: ['hefteyek', 'hefteyekê'],\n      ww: [num + ' hefte', num + ' hefteyan'],\n      M: ['mehek', 'mehekê'],\n      MM: [num + ' meh', num + ' mehan'],\n      y: ['salek', 'salekê'],\n      yy: [num + ' sal', num + ' salan']\n    };\n    return withoutSuffix ? format[key][0] : format[key][1];\n  }\n  // function obliqueNumSuffix(num) {\n  //     if(num.includes(':'))\n  //         num = parseInt(num.split(':')[0]);\n  //     else\n  //         num = parseInt(num);\n  //     return num == 0 || num % 10 == 1 ? 'ê'\n  //                         : (num > 10 && num % 10 == 0 ? 'î' : 'an');\n  // }\n  function ezafeNumSuffix(num) {\n    num = '' + num;\n    var l = num.substring(num.length - 1),\n      ll = num.length > 1 ? num.substring(num.length - 2) : '';\n    if (!(ll == 12 || ll == 13) && (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')) return 'yê';\n    return 'ê';\n  }\n  var kuKmr = moment.defineLocale('ku-kmr', {\n    // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)\n    // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'\n    // But the names below are more well known and handy\n    months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split('_'),\n    monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),\n    weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),\n    weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 12) {\n        return isLower ? 'bn' : 'BN';\n      } else {\n        return isLower ? 'pn' : 'PN';\n      }\n    },\n    meridiemParse: /bn|BN|pn|PN/,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'Do MMMM[a] YYYY[an]',\n      LLL: 'Do MMMM[a] YYYY[an] HH:mm',\n      LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',\n      ll: 'Do MMM[.] YYYY[an]',\n      lll: 'Do MMM[.] YYYY[an] HH:mm',\n      llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm'\n    },\n    calendar: {\n      sameDay: '[Îro di saet] LT [de]',\n      nextDay: '[Sibê di saet] LT [de]',\n      nextWeek: 'dddd [di saet] LT [de]',\n      lastDay: '[Duh di saet] LT [de]',\n      lastWeek: 'dddd[a borî di saet] LT [de]',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'di %s de',\n      past: 'berî %s',\n      s: processRelativeTime,\n      ss: processRelativeTime,\n      m: processRelativeTime,\n      mm: processRelativeTime,\n      h: processRelativeTime,\n      hh: processRelativeTime,\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      w: processRelativeTime,\n      ww: processRelativeTime,\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(?:yê|ê|\\.)/,\n    ordinal: function (num, period) {\n      var p = period.toLowerCase();\n      if (p.includes('w') || p.includes('m')) return num + '.';\n      return num + ezafeNumSuffix(num);\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return kuKmr;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ku-kmr.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ku.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ku.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '١',\n      2: '٢',\n      3: '٣',\n      4: '٤',\n      5: '٥',\n      6: '٦',\n      7: '٧',\n      8: '٨',\n      9: '٩',\n      0: '٠'\n    },\n    numberMap = {\n      '١': '1',\n      '٢': '2',\n      '٣': '3',\n      '٤': '4',\n      '٥': '5',\n      '٦': '6',\n      '٧': '7',\n      '٨': '8',\n      '٩': '9',\n      '٠': '0'\n    },\n    months = ['کانونی دووەم', 'شوبات', 'ئازار', 'نیسان', 'ئایار', 'حوزەیران', 'تەمموز', 'ئاب', 'ئەیلوول', 'تشرینی یەكەم', 'تشرینی دووەم', 'كانونی یەکەم'];\n  var ku = moment.defineLocale('ku', {\n    months: months,\n    monthsShort: months,\n    weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split('_'),\n    weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n    weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ئێواره‌|به‌یانی/,\n    isPM: function (input) {\n      return /ئێواره‌/.test(input);\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'به‌یانی';\n      } else {\n        return 'ئێواره‌';\n      }\n    },\n    calendar: {\n      sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n      nextDay: '[به‌یانی كاتژمێر] LT',\n      nextWeek: 'dddd [كاتژمێر] LT',\n      lastDay: '[دوێنێ كاتژمێر] LT',\n      lastWeek: 'dddd [كاتژمێر] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'له‌ %s',\n      past: '%s',\n      s: 'چه‌ند چركه‌یه‌ك',\n      ss: 'چركه‌ %d',\n      m: 'یه‌ك خوله‌ك',\n      mm: '%d خوله‌ك',\n      h: 'یه‌ك كاتژمێر',\n      hh: '%d كاتژمێر',\n      d: 'یه‌ك ڕۆژ',\n      dd: '%d ڕۆژ',\n      M: 'یه‌ك مانگ',\n      MM: '%d مانگ',\n      y: 'یه‌ك ساڵ',\n      yy: '%d ساڵ'\n    },\n    preparse: function (string) {\n      return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n        return numberMap[match];\n      }).replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      }).replace(/,/g, '،');\n    },\n    week: {\n      dow: 6,\n      // Saturday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n    }\n  });\n  return ku;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ku.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ky.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ky.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var suffixes = {\n    0: '-чү',\n    1: '-чи',\n    2: '-чи',\n    3: '-чү',\n    4: '-чү',\n    5: '-чи',\n    6: '-чы',\n    7: '-чи',\n    8: '-чи',\n    9: '-чу',\n    10: '-чу',\n    20: '-чы',\n    30: '-чу',\n    40: '-чы',\n    50: '-чү',\n    60: '-чы',\n    70: '-чи',\n    80: '-чи',\n    90: '-чу',\n    100: '-чү'\n  };\n  var ky = moment.defineLocale('ky', {\n    months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),\n    monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),\n    weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split('_'),\n    weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n    weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Бүгүн саат] LT',\n      nextDay: '[Эртең саат] LT',\n      nextWeek: 'dddd [саат] LT',\n      lastDay: '[Кечээ саат] LT',\n      lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s ичинде',\n      past: '%s мурун',\n      s: 'бирнече секунд',\n      ss: '%d секунд',\n      m: 'бир мүнөт',\n      mm: '%d мүнөт',\n      h: 'бир саат',\n      hh: '%d саат',\n      d: 'бир күн',\n      dd: '%d күн',\n      M: 'бир ай',\n      MM: '%d ай',\n      y: 'бир жыл',\n      yy: '%d жыл'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n    ordinal: function (number) {\n      var a = number % 10,\n        b = number >= 100 ? 100 : null;\n      return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return ky;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ky.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/lb.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/lb.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      m: ['eng Minutt', 'enger Minutt'],\n      h: ['eng Stonn', 'enger Stonn'],\n      d: ['een Dag', 'engem Dag'],\n      M: ['ee Mount', 'engem Mount'],\n      y: ['ee Joer', 'engem Joer']\n    };\n    return withoutSuffix ? format[key][0] : format[key][1];\n  }\n  function processFutureTime(string) {\n    var number = string.substr(0, string.indexOf(' '));\n    if (eifelerRegelAppliesToNumber(number)) {\n      return 'a ' + string;\n    }\n    return 'an ' + string;\n  }\n  function processPastTime(string) {\n    var number = string.substr(0, string.indexOf(' '));\n    if (eifelerRegelAppliesToNumber(number)) {\n      return 'viru ' + string;\n    }\n    return 'virun ' + string;\n  }\n  /**\n   * Returns true if the word before the given number loses the '-n' ending.\n   * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n   *\n   * @param number {integer}\n   * @returns {boolean}\n   */\n  function eifelerRegelAppliesToNumber(number) {\n    number = parseInt(number, 10);\n    if (isNaN(number)) {\n      return false;\n    }\n    if (number < 0) {\n      // Negative Number --> always true\n      return true;\n    } else if (number < 10) {\n      // Only 1 digit\n      if (4 <= number && number <= 7) {\n        return true;\n      }\n      return false;\n    } else if (number < 100) {\n      // 2 digits\n      var lastDigit = number % 10,\n        firstDigit = number / 10;\n      if (lastDigit === 0) {\n        return eifelerRegelAppliesToNumber(firstDigit);\n      }\n      return eifelerRegelAppliesToNumber(lastDigit);\n    } else if (number < 10000) {\n      // 3 or 4 digits --> recursively check first digit\n      while (number >= 10) {\n        number = number / 10;\n      }\n      return eifelerRegelAppliesToNumber(number);\n    } else {\n      // Anything larger than 4 digits: recursively check first n-3 digits\n      number = number / 1000;\n      return eifelerRegelAppliesToNumber(number);\n    }\n  }\n  var lb = moment.defineLocale('lb', {\n    months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n    monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\n    weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n    weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm [Auer]',\n      LTS: 'H:mm:ss [Auer]',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY H:mm [Auer]',\n      LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'\n    },\n    calendar: {\n      sameDay: '[Haut um] LT',\n      sameElse: 'L',\n      nextDay: '[Muer um] LT',\n      nextWeek: 'dddd [um] LT',\n      lastDay: '[Gëschter um] LT',\n      lastWeek: function () {\n        // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n        switch (this.day()) {\n          case 2:\n          case 4:\n            return '[Leschten] dddd [um] LT';\n          default:\n            return '[Leschte] dddd [um] LT';\n        }\n      }\n    },\n    relativeTime: {\n      future: processFutureTime,\n      past: processPastTime,\n      s: 'e puer Sekonnen',\n      ss: '%d Sekonnen',\n      m: processRelativeTime,\n      mm: '%d Minutten',\n      h: processRelativeTime,\n      hh: '%d Stonnen',\n      d: processRelativeTime,\n      dd: '%d Deeg',\n      M: processRelativeTime,\n      MM: '%d Méint',\n      y: processRelativeTime,\n      yy: '%d Joer'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return lb;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/lb.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/lo.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/lo.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var lo = moment.defineLocale('lo', {\n    months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n    monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n    weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n    weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n    weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'ວັນdddd D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n    isPM: function (input) {\n      return input === 'ຕອນແລງ';\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ຕອນເຊົ້າ';\n      } else {\n        return 'ຕອນແລງ';\n      }\n    },\n    calendar: {\n      sameDay: '[ມື້ນີ້ເວລາ] LT',\n      nextDay: '[ມື້ອື່ນເວລາ] LT',\n      nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n      lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n      lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'ອີກ %s',\n      past: '%sຜ່ານມາ',\n      s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n      ss: '%d ວິນາທີ',\n      m: '1 ນາທີ',\n      mm: '%d ນາທີ',\n      h: '1 ຊົ່ວໂມງ',\n      hh: '%d ຊົ່ວໂມງ',\n      d: '1 ມື້',\n      dd: '%d ມື້',\n      M: '1 ເດືອນ',\n      MM: '%d ເດືອນ',\n      y: '1 ປີ',\n      yy: '%d ປີ'\n    },\n    dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n    ordinal: function (number) {\n      return 'ທີ່' + number;\n    }\n  });\n  return lo;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/lo.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/lt.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/lt.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var units = {\n    ss: 'sekundė_sekundžių_sekundes',\n    m: 'minutė_minutės_minutę',\n    mm: 'minutės_minučių_minutes',\n    h: 'valanda_valandos_valandą',\n    hh: 'valandos_valandų_valandas',\n    d: 'diena_dienos_dieną',\n    dd: 'dienos_dienų_dienas',\n    M: 'mėnuo_mėnesio_mėnesį',\n    MM: 'mėnesiai_mėnesių_mėnesius',\n    y: 'metai_metų_metus',\n    yy: 'metai_metų_metus'\n  };\n  function translateSeconds(number, withoutSuffix, key, isFuture) {\n    if (withoutSuffix) {\n      return 'kelios sekundės';\n    } else {\n      return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n    }\n  }\n  function translateSingular(number, withoutSuffix, key, isFuture) {\n    return withoutSuffix ? forms(key)[0] : isFuture ? forms(key)[1] : forms(key)[2];\n  }\n  function special(number) {\n    return number % 10 === 0 || number > 10 && number < 20;\n  }\n  function forms(key) {\n    return units[key].split('_');\n  }\n  function translate(number, withoutSuffix, key, isFuture) {\n    var result = number + ' ';\n    if (number === 1) {\n      return result + translateSingular(number, withoutSuffix, key[0], isFuture);\n    } else if (withoutSuffix) {\n      return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n    } else {\n      if (isFuture) {\n        return result + forms(key)[1];\n      } else {\n        return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n      }\n    }\n  }\n  var lt = moment.defineLocale('lt', {\n    months: {\n      format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),\n      standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),\n      isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n    },\n    monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n    weekdays: {\n      format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),\n      standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),\n      isFormat: /dddd HH:mm/\n    },\n    weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n    weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY-MM-DD',\n      LL: 'YYYY [m.] MMMM D [d.]',\n      LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n      LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n      l: 'YYYY-MM-DD',\n      ll: 'YYYY [m.] MMMM D [d.]',\n      lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n      llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n    },\n    calendar: {\n      sameDay: '[Šiandien] LT',\n      nextDay: '[Rytoj] LT',\n      nextWeek: 'dddd LT',\n      lastDay: '[Vakar] LT',\n      lastWeek: '[Praėjusį] dddd LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'po %s',\n      past: 'prieš %s',\n      s: translateSeconds,\n      ss: translate,\n      m: translateSingular,\n      mm: translate,\n      h: translateSingular,\n      hh: translate,\n      d: translateSingular,\n      dd: translate,\n      M: translateSingular,\n      MM: translate,\n      y: translateSingular,\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n    ordinal: function (number) {\n      return number + '-oji';\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return lt;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/lt.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/lv.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/lv.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var units = {\n    ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n    m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n    mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n    h: 'stundas_stundām_stunda_stundas'.split('_'),\n    hh: 'stundas_stundām_stunda_stundas'.split('_'),\n    d: 'dienas_dienām_diena_dienas'.split('_'),\n    dd: 'dienas_dienām_diena_dienas'.split('_'),\n    M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n    MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n    y: 'gada_gadiem_gads_gadi'.split('_'),\n    yy: 'gada_gadiem_gads_gadi'.split('_')\n  };\n  /**\n   * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n   */\n  function format(forms, number, withoutSuffix) {\n    if (withoutSuffix) {\n      // E.g. \"21 minūte\", \"3 minūtes\".\n      return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n    } else {\n      // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n      // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n      return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n    }\n  }\n  function relativeTimeWithPlural(number, withoutSuffix, key) {\n    return number + ' ' + format(units[key], number, withoutSuffix);\n  }\n  function relativeTimeWithSingular(number, withoutSuffix, key) {\n    return format(units[key], number, withoutSuffix);\n  }\n  function relativeSeconds(number, withoutSuffix) {\n    return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n  }\n  var lv = moment.defineLocale('lv', {\n    months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split('_'),\n    monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n    weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),\n    weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n    weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY.',\n      LL: 'YYYY. [gada] D. MMMM',\n      LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n      LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm'\n    },\n    calendar: {\n      sameDay: '[Šodien pulksten] LT',\n      nextDay: '[Rīt pulksten] LT',\n      nextWeek: 'dddd [pulksten] LT',\n      lastDay: '[Vakar pulksten] LT',\n      lastWeek: '[Pagājušā] dddd [pulksten] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'pēc %s',\n      past: 'pirms %s',\n      s: relativeSeconds,\n      ss: relativeTimeWithPlural,\n      m: relativeTimeWithSingular,\n      mm: relativeTimeWithPlural,\n      h: relativeTimeWithSingular,\n      hh: relativeTimeWithPlural,\n      d: relativeTimeWithSingular,\n      dd: relativeTimeWithPlural,\n      M: relativeTimeWithSingular,\n      MM: relativeTimeWithPlural,\n      y: relativeTimeWithSingular,\n      yy: relativeTimeWithPlural\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return lv;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/lv.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/me.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/me.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var translator = {\n    words: {\n      //Different grammatical cases\n      ss: ['sekund', 'sekunda', 'sekundi'],\n      m: ['jedan minut', 'jednog minuta'],\n      mm: ['minut', 'minuta', 'minuta'],\n      h: ['jedan sat', 'jednog sata'],\n      hh: ['sat', 'sata', 'sati'],\n      dd: ['dan', 'dana', 'dana'],\n      MM: ['mjesec', 'mjeseca', 'mjeseci'],\n      yy: ['godina', 'godine', 'godina']\n    },\n    correctGrammaticalCase: function (number, wordKey) {\n      return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2];\n    },\n    translate: function (number, withoutSuffix, key) {\n      var wordKey = translator.words[key];\n      if (key.length === 1) {\n        return withoutSuffix ? wordKey[0] : wordKey[1];\n      } else {\n        return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n      }\n    }\n  };\n  var me = moment.defineLocale('me', {\n    months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n    monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n    weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n    weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY H:mm',\n      LLLL: 'dddd, D. MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[danas u] LT',\n      nextDay: '[sjutra u] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[u] [nedjelju] [u] LT';\n          case 3:\n            return '[u] [srijedu] [u] LT';\n          case 6:\n            return '[u] [subotu] [u] LT';\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[u] dddd [u] LT';\n        }\n      },\n      lastDay: '[juče u] LT',\n      lastWeek: function () {\n        var lastWeekDays = ['[prošle] [nedjelje] [u] LT', '[prošlog] [ponedjeljka] [u] LT', '[prošlog] [utorka] [u] LT', '[prošle] [srijede] [u] LT', '[prošlog] [četvrtka] [u] LT', '[prošlog] [petka] [u] LT', '[prošle] [subote] [u] LT'];\n        return lastWeekDays[this.day()];\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'za %s',\n      past: 'prije %s',\n      s: 'nekoliko sekundi',\n      ss: translator.translate,\n      m: translator.translate,\n      mm: translator.translate,\n      h: translator.translate,\n      hh: translator.translate,\n      d: 'dan',\n      dd: translator.translate,\n      M: 'mjesec',\n      MM: translator.translate,\n      y: 'godinu',\n      yy: translator.translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return me;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/me.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/mi.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/mi.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var mi = moment.defineLocale('mi', {\n    months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split('_'),\n    monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),\n    monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n    monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n    monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n    monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n    weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n    weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n    weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY [i] HH:mm',\n      LLLL: 'dddd, D MMMM YYYY [i] HH:mm'\n    },\n    calendar: {\n      sameDay: '[i teie mahana, i] LT',\n      nextDay: '[apopo i] LT',\n      nextWeek: 'dddd [i] LT',\n      lastDay: '[inanahi i] LT',\n      lastWeek: 'dddd [whakamutunga i] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'i roto i %s',\n      past: '%s i mua',\n      s: 'te hēkona ruarua',\n      ss: '%d hēkona',\n      m: 'he meneti',\n      mm: '%d meneti',\n      h: 'te haora',\n      hh: '%d haora',\n      d: 'he ra',\n      dd: '%d ra',\n      M: 'he marama',\n      MM: '%d marama',\n      y: 'he tau',\n      yy: '%d tau'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return mi;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/mi.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/mk.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/mk.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var mk = moment.defineLocale('mk', {\n    months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),\n    monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n    weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),\n    weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n    weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'D.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY H:mm',\n      LLLL: 'dddd, D MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[Денес во] LT',\n      nextDay: '[Утре во] LT',\n      nextWeek: '[Во] dddd [во] LT',\n      lastDay: '[Вчера во] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n          case 3:\n          case 6:\n            return '[Изминатата] dddd [во] LT';\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[Изминатиот] dddd [во] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'за %s',\n      past: 'пред %s',\n      s: 'неколку секунди',\n      ss: '%d секунди',\n      m: 'една минута',\n      mm: '%d минути',\n      h: 'еден час',\n      hh: '%d часа',\n      d: 'еден ден',\n      dd: '%d дена',\n      M: 'еден месец',\n      MM: '%d месеци',\n      y: 'една година',\n      yy: '%d години'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n    ordinal: function (number) {\n      var lastDigit = number % 10,\n        last2Digits = number % 100;\n      if (number === 0) {\n        return number + '-ев';\n      } else if (last2Digits === 0) {\n        return number + '-ен';\n      } else if (last2Digits > 10 && last2Digits < 20) {\n        return number + '-ти';\n      } else if (lastDigit === 1) {\n        return number + '-ви';\n      } else if (lastDigit === 2) {\n        return number + '-ри';\n      } else if (lastDigit === 7 || lastDigit === 8) {\n        return number + '-ми';\n      } else {\n        return number + '-ти';\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return mk;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/mk.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ml.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ml.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var ml = moment.defineLocale('ml', {\n    months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),\n    monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split('_'),\n    weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n    weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm -നു',\n      LTS: 'A h:mm:ss -നു',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm -നു',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm -നു'\n    },\n    calendar: {\n      sameDay: '[ഇന്ന്] LT',\n      nextDay: '[നാളെ] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[ഇന്നലെ] LT',\n      lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s കഴിഞ്ഞ്',\n      past: '%s മുൻപ്',\n      s: 'അൽപ നിമിഷങ്ങൾ',\n      ss: '%d സെക്കൻഡ്',\n      m: 'ഒരു മിനിറ്റ്',\n      mm: '%d മിനിറ്റ്',\n      h: 'ഒരു മണിക്കൂർ',\n      hh: '%d മണിക്കൂർ',\n      d: 'ഒരു ദിവസം',\n      dd: '%d ദിവസം',\n      M: 'ഒരു മാസം',\n      MM: '%d മാസം',\n      y: 'ഒരു വർഷം',\n      yy: '%d വർഷം'\n    },\n    meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'രാത്രി' && hour >= 4 || meridiem === 'ഉച്ച കഴിഞ്ഞ്' || meridiem === 'വൈകുന്നേരം') {\n        return hour + 12;\n      } else {\n        return hour;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'രാത്രി';\n      } else if (hour < 12) {\n        return 'രാവിലെ';\n      } else if (hour < 17) {\n        return 'ഉച്ച കഴിഞ്ഞ്';\n      } else if (hour < 20) {\n        return 'വൈകുന്നേരം';\n      } else {\n        return 'രാത്രി';\n      }\n    }\n  });\n  return ml;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ml.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/mn.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/mn.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function translate(number, withoutSuffix, key, isFuture) {\n    switch (key) {\n      case 's':\n        return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n      case 'ss':\n        return number + (withoutSuffix ? ' секунд' : ' секундын');\n      case 'm':\n      case 'mm':\n        return number + (withoutSuffix ? ' минут' : ' минутын');\n      case 'h':\n      case 'hh':\n        return number + (withoutSuffix ? ' цаг' : ' цагийн');\n      case 'd':\n      case 'dd':\n        return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n      case 'M':\n      case 'MM':\n        return number + (withoutSuffix ? ' сар' : ' сарын');\n      case 'y':\n      case 'yy':\n        return number + (withoutSuffix ? ' жил' : ' жилийн');\n      default:\n        return number;\n    }\n  }\n  var mn = moment.defineLocale('mn', {\n    months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),\n    monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n    weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n    weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY-MM-DD',\n      LL: 'YYYY оны MMMMын D',\n      LLL: 'YYYY оны MMMMын D HH:mm',\n      LLLL: 'dddd, YYYY оны MMMMын D HH:mm'\n    },\n    meridiemParse: /ҮӨ|ҮХ/i,\n    isPM: function (input) {\n      return input === 'ҮХ';\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ҮӨ';\n      } else {\n        return 'ҮХ';\n      }\n    },\n    calendar: {\n      sameDay: '[Өнөөдөр] LT',\n      nextDay: '[Маргааш] LT',\n      nextWeek: '[Ирэх] dddd LT',\n      lastDay: '[Өчигдөр] LT',\n      lastWeek: '[Өнгөрсөн] dddd LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s дараа',\n      past: '%s өмнө',\n      s: translate,\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: translate,\n      dd: translate,\n      M: translate,\n      MM: translate,\n      y: translate,\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + ' өдөр';\n        default:\n          return number;\n      }\n    }\n  });\n  return mn;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/mn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/mr.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/mr.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '१',\n      2: '२',\n      3: '३',\n      4: '४',\n      5: '५',\n      6: '६',\n      7: '७',\n      8: '८',\n      9: '९',\n      0: '०'\n    },\n    numberMap = {\n      '१': '1',\n      '२': '2',\n      '३': '3',\n      '४': '4',\n      '५': '5',\n      '६': '6',\n      '७': '7',\n      '८': '8',\n      '९': '9',\n      '०': '0'\n    };\n  function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n    var output = '';\n    if (withoutSuffix) {\n      switch (string) {\n        case 's':\n          output = 'काही सेकंद';\n          break;\n        case 'ss':\n          output = '%d सेकंद';\n          break;\n        case 'm':\n          output = 'एक मिनिट';\n          break;\n        case 'mm':\n          output = '%d मिनिटे';\n          break;\n        case 'h':\n          output = 'एक तास';\n          break;\n        case 'hh':\n          output = '%d तास';\n          break;\n        case 'd':\n          output = 'एक दिवस';\n          break;\n        case 'dd':\n          output = '%d दिवस';\n          break;\n        case 'M':\n          output = 'एक महिना';\n          break;\n        case 'MM':\n          output = '%d महिने';\n          break;\n        case 'y':\n          output = 'एक वर्ष';\n          break;\n        case 'yy':\n          output = '%d वर्षे';\n          break;\n      }\n    } else {\n      switch (string) {\n        case 's':\n          output = 'काही सेकंदां';\n          break;\n        case 'ss':\n          output = '%d सेकंदां';\n          break;\n        case 'm':\n          output = 'एका मिनिटा';\n          break;\n        case 'mm':\n          output = '%d मिनिटां';\n          break;\n        case 'h':\n          output = 'एका तासा';\n          break;\n        case 'hh':\n          output = '%d तासां';\n          break;\n        case 'd':\n          output = 'एका दिवसा';\n          break;\n        case 'dd':\n          output = '%d दिवसां';\n          break;\n        case 'M':\n          output = 'एका महिन्या';\n          break;\n        case 'MM':\n          output = '%d महिन्यां';\n          break;\n        case 'y':\n          output = 'एका वर्षा';\n          break;\n        case 'yy':\n          output = '%d वर्षां';\n          break;\n      }\n    }\n    return output.replace(/%d/i, number);\n  }\n  var mr = moment.defineLocale('mr', {\n    months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),\n    monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n    weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n    weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm वाजता',\n      LTS: 'A h:mm:ss वाजता',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm वाजता',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता'\n    },\n    calendar: {\n      sameDay: '[आज] LT',\n      nextDay: '[उद्या] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[काल] LT',\n      lastWeek: '[मागील] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%sमध्ये',\n      past: '%sपूर्वी',\n      s: relativeTimeMr,\n      ss: relativeTimeMr,\n      m: relativeTimeMr,\n      mm: relativeTimeMr,\n      h: relativeTimeMr,\n      hh: relativeTimeMr,\n      d: relativeTimeMr,\n      dd: relativeTimeMr,\n      M: relativeTimeMr,\n      MM: relativeTimeMr,\n      y: relativeTimeMr,\n      yy: relativeTimeMr\n    },\n    preparse: function (string) {\n      return string.replace(/[१२३४५६७८९०]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n        return hour;\n      } else if (meridiem === 'दुपारी' || meridiem === 'सायंकाळी' || meridiem === 'रात्री') {\n        return hour >= 12 ? hour : hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour >= 0 && hour < 6) {\n        return 'पहाटे';\n      } else if (hour < 12) {\n        return 'सकाळी';\n      } else if (hour < 17) {\n        return 'दुपारी';\n      } else if (hour < 20) {\n        return 'सायंकाळी';\n      } else {\n        return 'रात्री';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return mr;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/mr.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ms-my.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ms-my.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var msMy = moment.defineLocale('ms-my', {\n    months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n    monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n    weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n    weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n    weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n    longDateFormat: {\n      LT: 'HH.mm',\n      LTS: 'HH.mm.ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY [pukul] HH.mm',\n      LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n    },\n    meridiemParse: /pagi|tengahari|petang|malam/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'pagi') {\n        return hour;\n      } else if (meridiem === 'tengahari') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === 'petang' || meridiem === 'malam') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 11) {\n        return 'pagi';\n      } else if (hours < 15) {\n        return 'tengahari';\n      } else if (hours < 19) {\n        return 'petang';\n      } else {\n        return 'malam';\n      }\n    },\n    calendar: {\n      sameDay: '[Hari ini pukul] LT',\n      nextDay: '[Esok pukul] LT',\n      nextWeek: 'dddd [pukul] LT',\n      lastDay: '[Kelmarin pukul] LT',\n      lastWeek: 'dddd [lepas pukul] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'dalam %s',\n      past: '%s yang lepas',\n      s: 'beberapa saat',\n      ss: '%d saat',\n      m: 'seminit',\n      mm: '%d minit',\n      h: 'sejam',\n      hh: '%d jam',\n      d: 'sehari',\n      dd: '%d hari',\n      M: 'sebulan',\n      MM: '%d bulan',\n      y: 'setahun',\n      yy: '%d tahun'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return msMy;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ms-my.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ms.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ms.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var ms = moment.defineLocale('ms', {\n    months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\n    monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n    weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n    weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n    weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n    longDateFormat: {\n      LT: 'HH.mm',\n      LTS: 'HH.mm.ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY [pukul] HH.mm',\n      LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm'\n    },\n    meridiemParse: /pagi|tengahari|petang|malam/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'pagi') {\n        return hour;\n      } else if (meridiem === 'tengahari') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === 'petang' || meridiem === 'malam') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 11) {\n        return 'pagi';\n      } else if (hours < 15) {\n        return 'tengahari';\n      } else if (hours < 19) {\n        return 'petang';\n      } else {\n        return 'malam';\n      }\n    },\n    calendar: {\n      sameDay: '[Hari ini pukul] LT',\n      nextDay: '[Esok pukul] LT',\n      nextWeek: 'dddd [pukul] LT',\n      lastDay: '[Kelmarin pukul] LT',\n      lastWeek: 'dddd [lepas pukul] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'dalam %s',\n      past: '%s yang lepas',\n      s: 'beberapa saat',\n      ss: '%d saat',\n      m: 'seminit',\n      mm: '%d minit',\n      h: 'sejam',\n      hh: '%d jam',\n      d: 'sehari',\n      dd: '%d hari',\n      M: 'sebulan',\n      MM: '%d bulan',\n      y: 'setahun',\n      yy: '%d tahun'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return ms;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ms.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/mt.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/mt.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var mt = moment.defineLocale('mt', {\n    months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),\n    monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n    weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),\n    weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n    weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Illum fil-]LT',\n      nextDay: '[Għada fil-]LT',\n      nextWeek: 'dddd [fil-]LT',\n      lastDay: '[Il-bieraħ fil-]LT',\n      lastWeek: 'dddd [li għadda] [fil-]LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'f’ %s',\n      past: '%s ilu',\n      s: 'ftit sekondi',\n      ss: '%d sekondi',\n      m: 'minuta',\n      mm: '%d minuti',\n      h: 'siegħa',\n      hh: '%d siegħat',\n      d: 'ġurnata',\n      dd: '%d ġranet',\n      M: 'xahar',\n      MM: '%d xhur',\n      y: 'sena',\n      yy: '%d sni'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return mt;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/mt.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/my.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/my.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '၁',\n      2: '၂',\n      3: '၃',\n      4: '၄',\n      5: '၅',\n      6: '၆',\n      7: '၇',\n      8: '၈',\n      9: '၉',\n      0: '၀'\n    },\n    numberMap = {\n      '၁': '1',\n      '၂': '2',\n      '၃': '3',\n      '၄': '4',\n      '၅': '5',\n      '၆': '6',\n      '၇': '7',\n      '၈': '8',\n      '၉': '9',\n      '၀': '0'\n    };\n  var my = moment.defineLocale('my', {\n    months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),\n    monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n    weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split('_'),\n    weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n    weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[ယနေ.] LT [မှာ]',\n      nextDay: '[မနက်ဖြန်] LT [မှာ]',\n      nextWeek: 'dddd LT [မှာ]',\n      lastDay: '[မနေ.က] LT [မှာ]',\n      lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'လာမည့် %s မှာ',\n      past: 'လွန်ခဲ့သော %s က',\n      s: 'စက္ကန်.အနည်းငယ်',\n      ss: '%d စက္ကန့်',\n      m: 'တစ်မိနစ်',\n      mm: '%d မိနစ်',\n      h: 'တစ်နာရီ',\n      hh: '%d နာရီ',\n      d: 'တစ်ရက်',\n      dd: '%d ရက်',\n      M: 'တစ်လ',\n      MM: '%d လ',\n      y: 'တစ်နှစ်',\n      yy: '%d နှစ်'\n    },\n    preparse: function (string) {\n      return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return my;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/my.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/nb.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/nb.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//!           Sigurd Gartmann : https://github.com/sigurdga\n//!           Stephen Ramthun : https://github.com/stephenramthun\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var nb = moment.defineLocale('nb', {\n    months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n    monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n    weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n    weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY [kl.] HH:mm',\n      LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n    },\n    calendar: {\n      sameDay: '[i dag kl.] LT',\n      nextDay: '[i morgen kl.] LT',\n      nextWeek: 'dddd [kl.] LT',\n      lastDay: '[i går kl.] LT',\n      lastWeek: '[forrige] dddd [kl.] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'om %s',\n      past: '%s siden',\n      s: 'noen sekunder',\n      ss: '%d sekunder',\n      m: 'ett minutt',\n      mm: '%d minutter',\n      h: 'én time',\n      hh: '%d timer',\n      d: 'én dag',\n      dd: '%d dager',\n      w: 'én uke',\n      ww: '%d uker',\n      M: 'én måned',\n      MM: '%d måneder',\n      y: 'ett år',\n      yy: '%d år'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return nb;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/nb.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ne.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ne.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '१',\n      2: '२',\n      3: '३',\n      4: '४',\n      5: '५',\n      6: '६',\n      7: '७',\n      8: '८',\n      9: '९',\n      0: '०'\n    },\n    numberMap = {\n      '१': '1',\n      '२': '2',\n      '३': '3',\n      '४': '4',\n      '५': '5',\n      '६': '6',\n      '७': '7',\n      '८': '8',\n      '९': '9',\n      '०': '0'\n    };\n  var ne = moment.defineLocale('ne', {\n    months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),\n    monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),\n    weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n    weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'Aको h:mm बजे',\n      LTS: 'Aको h:mm:ss बजे',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, Aको h:mm बजे',\n      LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे'\n    },\n    preparse: function (string) {\n      return string.replace(/[१२३४५६७८९०]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'राति') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'बिहान') {\n        return hour;\n      } else if (meridiem === 'दिउँसो') {\n        return hour >= 10 ? hour : hour + 12;\n      } else if (meridiem === 'साँझ') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 3) {\n        return 'राति';\n      } else if (hour < 12) {\n        return 'बिहान';\n      } else if (hour < 16) {\n        return 'दिउँसो';\n      } else if (hour < 20) {\n        return 'साँझ';\n      } else {\n        return 'राति';\n      }\n    },\n    calendar: {\n      sameDay: '[आज] LT',\n      nextDay: '[भोलि] LT',\n      nextWeek: '[आउँदो] dddd[,] LT',\n      lastDay: '[हिजो] LT',\n      lastWeek: '[गएको] dddd[,] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%sमा',\n      past: '%s अगाडि',\n      s: 'केही क्षण',\n      ss: '%d सेकेण्ड',\n      m: 'एक मिनेट',\n      mm: '%d मिनेट',\n      h: 'एक घण्टा',\n      hh: '%d घण्टा',\n      d: 'एक दिन',\n      dd: '%d दिन',\n      M: 'एक महिना',\n      MM: '%d महिना',\n      y: 'एक बर्ष',\n      yy: '%d बर्ष'\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return ne;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ne.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/nl-be.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/nl-be.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n    monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n    monthsParse = [/^jan/i, /^feb/i, /^(maart|mrt\\.?)$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i],\n    monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n  var nlBe = moment.defineLocale('nl-be', {\n    months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n    monthsShort: function (m, format) {\n      if (!m) {\n        return monthsShortWithDots;\n      } else if (/-MMM-/.test(format)) {\n        return monthsShortWithoutDots[m.month()];\n      } else {\n        return monthsShortWithDots[m.month()];\n      }\n    },\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n    monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n    weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n    weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[vandaag om] LT',\n      nextDay: '[morgen om] LT',\n      nextWeek: 'dddd [om] LT',\n      lastDay: '[gisteren om] LT',\n      lastWeek: '[afgelopen] dddd [om] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'over %s',\n      past: '%s geleden',\n      s: 'een paar seconden',\n      ss: '%d seconden',\n      m: 'één minuut',\n      mm: '%d minuten',\n      h: 'één uur',\n      hh: '%d uur',\n      d: 'één dag',\n      dd: '%d dagen',\n      M: 'één maand',\n      MM: '%d maanden',\n      y: 'één jaar',\n      yy: '%d jaar'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n    ordinal: function (number) {\n      return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return nlBe;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/nl-be.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/nl.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/nl.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n    monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n    monthsParse = [/^jan/i, /^feb/i, /^(maart|mrt\\.?)$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i],\n    monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n  var nl = moment.defineLocale('nl', {\n    months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n    monthsShort: function (m, format) {\n      if (!m) {\n        return monthsShortWithDots;\n      } else if (/-MMM-/.test(format)) {\n        return monthsShortWithoutDots[m.month()];\n      } else {\n        return monthsShortWithDots[m.month()];\n      }\n    },\n    monthsRegex: monthsRegex,\n    monthsShortRegex: monthsRegex,\n    monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n    monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n    weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n    weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD-MM-YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[vandaag om] LT',\n      nextDay: '[morgen om] LT',\n      nextWeek: 'dddd [om] LT',\n      lastDay: '[gisteren om] LT',\n      lastWeek: '[afgelopen] dddd [om] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'over %s',\n      past: '%s geleden',\n      s: 'een paar seconden',\n      ss: '%d seconden',\n      m: 'één minuut',\n      mm: '%d minuten',\n      h: 'één uur',\n      hh: '%d uur',\n      d: 'één dag',\n      dd: '%d dagen',\n      w: 'één week',\n      ww: '%d weken',\n      M: 'één maand',\n      MM: '%d maanden',\n      y: 'één jaar',\n      yy: '%d jaar'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n    ordinal: function (number) {\n      return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return nl;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/nl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/nn.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/nn.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//!           Stephen Ramthun : https://github.com/stephenramthun\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var nn = moment.defineLocale('nn', {\n    months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n    monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n    weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n    weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY [kl.] H:mm',\n      LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n    },\n    calendar: {\n      sameDay: '[I dag klokka] LT',\n      nextDay: '[I morgon klokka] LT',\n      nextWeek: 'dddd [klokka] LT',\n      lastDay: '[I går klokka] LT',\n      lastWeek: '[Føregåande] dddd [klokka] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'om %s',\n      past: '%s sidan',\n      s: 'nokre sekund',\n      ss: '%d sekund',\n      m: 'eit minutt',\n      mm: '%d minutt',\n      h: 'ein time',\n      hh: '%d timar',\n      d: 'ein dag',\n      dd: '%d dagar',\n      w: 'ei veke',\n      ww: '%d veker',\n      M: 'ein månad',\n      MM: '%d månader',\n      y: 'eit år',\n      yy: '%d år'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return nn;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/nn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/oc-lnc.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/oc-lnc.js ***!
  \********************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var ocLnc = moment.defineLocale('oc-lnc', {\n    months: {\n      standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split('_'),\n      format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split('_'),\n      isFormat: /D[oD]?(\\s)+MMMM/\n    },\n    monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split('_'),\n    weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n    weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM [de] YYYY',\n      ll: 'D MMM YYYY',\n      LLL: 'D MMMM [de] YYYY [a] H:mm',\n      lll: 'D MMM YYYY, H:mm',\n      LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n      llll: 'ddd D MMM YYYY, H:mm'\n    },\n    calendar: {\n      sameDay: '[uèi a] LT',\n      nextDay: '[deman a] LT',\n      nextWeek: 'dddd [a] LT',\n      lastDay: '[ièr a] LT',\n      lastWeek: 'dddd [passat a] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: \"d'aquí %s\",\n      past: 'fa %s',\n      s: 'unas segondas',\n      ss: '%d segondas',\n      m: 'una minuta',\n      mm: '%d minutas',\n      h: 'una ora',\n      hh: '%d oras',\n      d: 'un jorn',\n      dd: '%d jorns',\n      M: 'un mes',\n      MM: '%d meses',\n      y: 'un an',\n      yy: '%d ans'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n    ordinal: function (number, period) {\n      var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è';\n      if (period === 'w' || period === 'W') {\n        output = 'a';\n      }\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4\n    }\n  });\n  return ocLnc;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/oc-lnc.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/pa-in.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/pa-in.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '੧',\n      2: '੨',\n      3: '੩',\n      4: '੪',\n      5: '੫',\n      6: '੬',\n      7: '੭',\n      8: '੮',\n      9: '੯',\n      0: '੦'\n    },\n    numberMap = {\n      '੧': '1',\n      '੨': '2',\n      '੩': '3',\n      '੪': '4',\n      '੫': '5',\n      '੬': '6',\n      '੭': '7',\n      '੮': '8',\n      '੯': '9',\n      '੦': '0'\n    };\n  var paIn = moment.defineLocale('pa-in', {\n    // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n    months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n    monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split('_'),\n    weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split('_'),\n    weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n    weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm ਵਜੇ',\n      LTS: 'A h:mm:ss ਵਜੇ',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ'\n    },\n    calendar: {\n      sameDay: '[ਅਜ] LT',\n      nextDay: '[ਕਲ] LT',\n      nextWeek: '[ਅਗਲਾ] dddd, LT',\n      lastDay: '[ਕਲ] LT',\n      lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s ਵਿੱਚ',\n      past: '%s ਪਿਛਲੇ',\n      s: 'ਕੁਝ ਸਕਿੰਟ',\n      ss: '%d ਸਕਿੰਟ',\n      m: 'ਇਕ ਮਿੰਟ',\n      mm: '%d ਮਿੰਟ',\n      h: 'ਇੱਕ ਘੰਟਾ',\n      hh: '%d ਘੰਟੇ',\n      d: 'ਇੱਕ ਦਿਨ',\n      dd: '%d ਦਿਨ',\n      M: 'ਇੱਕ ਮਹੀਨਾ',\n      MM: '%d ਮਹੀਨੇ',\n      y: 'ਇੱਕ ਸਾਲ',\n      yy: '%d ਸਾਲ'\n    },\n    preparse: function (string) {\n      return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n    // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n    meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'ਰਾਤ') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'ਸਵੇਰ') {\n        return hour;\n      } else if (meridiem === 'ਦੁਪਹਿਰ') {\n        return hour >= 10 ? hour : hour + 12;\n      } else if (meridiem === 'ਸ਼ਾਮ') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'ਰਾਤ';\n      } else if (hour < 10) {\n        return 'ਸਵੇਰ';\n      } else if (hour < 17) {\n        return 'ਦੁਪਹਿਰ';\n      } else if (hour < 20) {\n        return 'ਸ਼ਾਮ';\n      } else {\n        return 'ਰਾਤ';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return paIn;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/pa-in.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/pl.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/pl.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),\n    monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_'),\n    monthsParse = [/^sty/i, /^lut/i, /^mar/i, /^kwi/i, /^maj/i, /^cze/i, /^lip/i, /^sie/i, /^wrz/i, /^paź/i, /^lis/i, /^gru/i];\n  function plural(n) {\n    return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n  }\n  function translate(number, withoutSuffix, key) {\n    var result = number + ' ';\n    switch (key) {\n      case 'ss':\n        return result + (plural(number) ? 'sekundy' : 'sekund');\n      case 'm':\n        return withoutSuffix ? 'minuta' : 'minutę';\n      case 'mm':\n        return result + (plural(number) ? 'minuty' : 'minut');\n      case 'h':\n        return withoutSuffix ? 'godzina' : 'godzinę';\n      case 'hh':\n        return result + (plural(number) ? 'godziny' : 'godzin');\n      case 'ww':\n        return result + (plural(number) ? 'tygodnie' : 'tygodni');\n      case 'MM':\n        return result + (plural(number) ? 'miesiące' : 'miesięcy');\n      case 'yy':\n        return result + (plural(number) ? 'lata' : 'lat');\n    }\n  }\n  var pl = moment.defineLocale('pl', {\n    months: function (momentToFormat, format) {\n      if (!momentToFormat) {\n        return monthsNominative;\n      } else if (/D MMMM/.test(format)) {\n        return monthsSubjective[momentToFormat.month()];\n      } else {\n        return monthsNominative[momentToFormat.month()];\n      }\n    },\n    monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n    weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n    weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Dziś o] LT',\n      nextDay: '[Jutro o] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[W niedzielę o] LT';\n          case 2:\n            return '[We wtorek o] LT';\n          case 3:\n            return '[W środę o] LT';\n          case 6:\n            return '[W sobotę o] LT';\n          default:\n            return '[W] dddd [o] LT';\n        }\n      },\n      lastDay: '[Wczoraj o] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[W zeszłą niedzielę o] LT';\n          case 3:\n            return '[W zeszłą środę o] LT';\n          case 6:\n            return '[W zeszłą sobotę o] LT';\n          default:\n            return '[W zeszły] dddd [o] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'za %s',\n      past: '%s temu',\n      s: 'kilka sekund',\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: '1 dzień',\n      dd: '%d dni',\n      w: 'tydzień',\n      ww: translate,\n      M: 'miesiąc',\n      MM: translate,\n      y: 'rok',\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return pl;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/pl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/pt-br.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/pt-br.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var ptBr = moment.defineLocale('pt-br', {\n    months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n    monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n    weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'),\n    weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n    weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D [de] MMMM [de] YYYY',\n      LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n      LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'\n    },\n    calendar: {\n      sameDay: '[Hoje às] LT',\n      nextDay: '[Amanhã às] LT',\n      nextWeek: 'dddd [às] LT',\n      lastDay: '[Ontem às] LT',\n      lastWeek: function () {\n        return this.day() === 0 || this.day() === 6 ? '[Último] dddd [às] LT' // Saturday + Sunday\n        : '[Última] dddd [às] LT'; // Monday - Friday\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'em %s',\n      past: 'há %s',\n      s: 'poucos segundos',\n      ss: '%d segundos',\n      m: 'um minuto',\n      mm: '%d minutos',\n      h: 'uma hora',\n      hh: '%d horas',\n      d: 'um dia',\n      dd: '%d dias',\n      M: 'um mês',\n      MM: '%d meses',\n      y: 'um ano',\n      yy: '%d anos'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    invalidDate: 'Data inválida'\n  });\n  return ptBr;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/pt-br.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/pt.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/pt.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var pt = moment.defineLocale('pt', {\n    months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n    monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n    weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n    weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n    weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D [de] MMMM [de] YYYY',\n      LLL: 'D [de] MMMM [de] YYYY HH:mm',\n      LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Hoje às] LT',\n      nextDay: '[Amanhã às] LT',\n      nextWeek: 'dddd [às] LT',\n      lastDay: '[Ontem às] LT',\n      lastWeek: function () {\n        return this.day() === 0 || this.day() === 6 ? '[Último] dddd [às] LT' // Saturday + Sunday\n        : '[Última] dddd [às] LT'; // Monday - Friday\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'em %s',\n      past: 'há %s',\n      s: 'segundos',\n      ss: '%d segundos',\n      m: 'um minuto',\n      mm: '%d minutos',\n      h: 'uma hora',\n      hh: '%d horas',\n      d: 'um dia',\n      dd: '%d dias',\n      w: 'uma semana',\n      ww: '%d semanas',\n      M: 'um mês',\n      MM: '%d meses',\n      y: 'um ano',\n      yy: '%d anos'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}º/,\n    ordinal: '%dº',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return pt;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/pt.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ro.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ro.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function relativeTimeWithPlural(number, withoutSuffix, key) {\n    var format = {\n        ss: 'secunde',\n        mm: 'minute',\n        hh: 'ore',\n        dd: 'zile',\n        ww: 'săptămâni',\n        MM: 'luni',\n        yy: 'ani'\n      },\n      separator = ' ';\n    if (number % 100 >= 20 || number >= 100 && number % 100 === 0) {\n      separator = ' de ';\n    }\n    return number + separator + format[key];\n  }\n  var ro = moment.defineLocale('ro', {\n    months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n    monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n    weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n    weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY H:mm',\n      LLLL: 'dddd, D MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[azi la] LT',\n      nextDay: '[mâine la] LT',\n      nextWeek: 'dddd [la] LT',\n      lastDay: '[ieri la] LT',\n      lastWeek: '[fosta] dddd [la] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'peste %s',\n      past: '%s în urmă',\n      s: 'câteva secunde',\n      ss: relativeTimeWithPlural,\n      m: 'un minut',\n      mm: relativeTimeWithPlural,\n      h: 'o oră',\n      hh: relativeTimeWithPlural,\n      d: 'o zi',\n      dd: relativeTimeWithPlural,\n      w: 'o săptămână',\n      ww: relativeTimeWithPlural,\n      M: 'o lună',\n      MM: relativeTimeWithPlural,\n      y: 'un an',\n      yy: relativeTimeWithPlural\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return ro;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ro.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ru.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ru.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function plural(word, num) {\n    var forms = word.split('_');\n    return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n  }\n  function relativeTimeWithPlural(number, withoutSuffix, key) {\n    var format = {\n      ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n      mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n      hh: 'час_часа_часов',\n      dd: 'день_дня_дней',\n      ww: 'неделя_недели_недель',\n      MM: 'месяц_месяца_месяцев',\n      yy: 'год_года_лет'\n    };\n    if (key === 'm') {\n      return withoutSuffix ? 'минута' : 'минуту';\n    } else {\n      return number + ' ' + plural(format[key], +number);\n    }\n  }\n  var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i];\n\n  // http://new.gramota.ru/spravka/rules/139-prop : § 103\n  // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n  // CLDR data:          http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n  var ru = moment.defineLocale('ru', {\n    months: {\n      format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\n      standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\n    },\n    monthsShort: {\n      // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n      format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\n      standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\n    },\n    weekdays: {\n      standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n      format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\n      isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/\n    },\n    weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n    weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n    monthsParse: monthsParse,\n    longMonthsParse: monthsParse,\n    shortMonthsParse: monthsParse,\n    // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n    monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n    // копия предыдущего\n    monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n    // полные названия с падежами\n    monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n    // Выражение, которое соответствует только сокращённым формам\n    monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY г.',\n      LLL: 'D MMMM YYYY г., H:mm',\n      LLLL: 'dddd, D MMMM YYYY г., H:mm'\n    },\n    calendar: {\n      sameDay: '[Сегодня, в] LT',\n      nextDay: '[Завтра, в] LT',\n      lastDay: '[Вчера, в] LT',\n      nextWeek: function (now) {\n        if (now.week() !== this.week()) {\n          switch (this.day()) {\n            case 0:\n              return '[В следующее] dddd, [в] LT';\n            case 1:\n            case 2:\n            case 4:\n              return '[В следующий] dddd, [в] LT';\n            case 3:\n            case 5:\n            case 6:\n              return '[В следующую] dddd, [в] LT';\n          }\n        } else {\n          if (this.day() === 2) {\n            return '[Во] dddd, [в] LT';\n          } else {\n            return '[В] dddd, [в] LT';\n          }\n        }\n      },\n      lastWeek: function (now) {\n        if (now.week() !== this.week()) {\n          switch (this.day()) {\n            case 0:\n              return '[В прошлое] dddd, [в] LT';\n            case 1:\n            case 2:\n            case 4:\n              return '[В прошлый] dddd, [в] LT';\n            case 3:\n            case 5:\n            case 6:\n              return '[В прошлую] dddd, [в] LT';\n          }\n        } else {\n          if (this.day() === 2) {\n            return '[Во] dddd, [в] LT';\n          } else {\n            return '[В] dddd, [в] LT';\n          }\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'через %s',\n      past: '%s назад',\n      s: 'несколько секунд',\n      ss: relativeTimeWithPlural,\n      m: relativeTimeWithPlural,\n      mm: relativeTimeWithPlural,\n      h: 'час',\n      hh: relativeTimeWithPlural,\n      d: 'день',\n      dd: relativeTimeWithPlural,\n      w: 'неделя',\n      ww: relativeTimeWithPlural,\n      M: 'месяц',\n      MM: relativeTimeWithPlural,\n      y: 'год',\n      yy: relativeTimeWithPlural\n    },\n    meridiemParse: /ночи|утра|дня|вечера/i,\n    isPM: function (input) {\n      return /^(дня|вечера)$/.test(input);\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'ночи';\n      } else if (hour < 12) {\n        return 'утра';\n      } else if (hour < 17) {\n        return 'дня';\n      } else {\n        return 'вечера';\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'M':\n        case 'd':\n        case 'DDD':\n          return number + '-й';\n        case 'D':\n          return number + '-го';\n        case 'w':\n        case 'W':\n          return number + '-я';\n        default:\n          return number;\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return ru;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ru.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/sd.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/sd.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var months = ['جنوري', 'فيبروري', 'مارچ', 'اپريل', 'مئي', 'جون', 'جولاءِ', 'آگسٽ', 'سيپٽمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'],\n    days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n  var sd = moment.defineLocale('sd', {\n    months: months,\n    monthsShort: months,\n    weekdays: days,\n    weekdaysShort: days,\n    weekdaysMin: days,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd، D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /صبح|شام/,\n    isPM: function (input) {\n      return 'شام' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'صبح';\n      }\n      return 'شام';\n    },\n    calendar: {\n      sameDay: '[اڄ] LT',\n      nextDay: '[سڀاڻي] LT',\n      nextWeek: 'dddd [اڳين هفتي تي] LT',\n      lastDay: '[ڪالهه] LT',\n      lastWeek: '[گزريل هفتي] dddd [تي] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s پوء',\n      past: '%s اڳ',\n      s: 'چند سيڪنڊ',\n      ss: '%d سيڪنڊ',\n      m: 'هڪ منٽ',\n      mm: '%d منٽ',\n      h: 'هڪ ڪلاڪ',\n      hh: '%d ڪلاڪ',\n      d: 'هڪ ڏينهن',\n      dd: '%d ڏينهن',\n      M: 'هڪ مهينو',\n      MM: '%d مهينا',\n      y: 'هڪ سال',\n      yy: '%d سال'\n    },\n    preparse: function (string) {\n      return string.replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/,/g, '،');\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return sd;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/sd.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/se.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/se.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var se = moment.defineLocale('se', {\n    months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split('_'),\n    monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n    weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),\n    weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n    weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'MMMM D. [b.] YYYY',\n      LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n      LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm'\n    },\n    calendar: {\n      sameDay: '[otne ti] LT',\n      nextDay: '[ihttin ti] LT',\n      nextWeek: 'dddd [ti] LT',\n      lastDay: '[ikte ti] LT',\n      lastWeek: '[ovddit] dddd [ti] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s geažes',\n      past: 'maŋit %s',\n      s: 'moadde sekunddat',\n      ss: '%d sekunddat',\n      m: 'okta minuhta',\n      mm: '%d minuhtat',\n      h: 'okta diimmu',\n      hh: '%d diimmut',\n      d: 'okta beaivi',\n      dd: '%d beaivvit',\n      M: 'okta mánnu',\n      MM: '%d mánut',\n      y: 'okta jahki',\n      yy: '%d jagit'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return se;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/se.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/si.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/si.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n\n  /*jshint -W100*/\n  var si = moment.defineLocale('si', {\n    months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),\n    monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),\n    weekdays: 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split('_'),\n    weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n    weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'a h:mm',\n      LTS: 'a h:mm:ss',\n      L: 'YYYY/MM/DD',\n      LL: 'YYYY MMMM D',\n      LLL: 'YYYY MMMM D, a h:mm',\n      LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss'\n    },\n    calendar: {\n      sameDay: '[අද] LT[ට]',\n      nextDay: '[හෙට] LT[ට]',\n      nextWeek: 'dddd LT[ට]',\n      lastDay: '[ඊයේ] LT[ට]',\n      lastWeek: '[පසුගිය] dddd LT[ට]',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%sකින්',\n      past: '%sකට පෙර',\n      s: 'තත්පර කිහිපය',\n      ss: 'තත්පර %d',\n      m: 'මිනිත්තුව',\n      mm: 'මිනිත්තු %d',\n      h: 'පැය',\n      hh: 'පැය %d',\n      d: 'දිනය',\n      dd: 'දින %d',\n      M: 'මාසය',\n      MM: 'මාස %d',\n      y: 'වසර',\n      yy: 'වසර %d'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n    ordinal: function (number) {\n      return number + ' වැනි';\n    },\n    meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n    isPM: function (input) {\n      return input === 'ප.ව.' || input === 'පස් වරු';\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours > 11) {\n        return isLower ? 'ප.ව.' : 'පස් වරු';\n      } else {\n        return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n      }\n    }\n  });\n  return si;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/si.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/sk.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/sk.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),\n    monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n  function plural(n) {\n    return n > 1 && n < 5;\n  }\n  function translate(number, withoutSuffix, key, isFuture) {\n    var result = number + ' ';\n    switch (key) {\n      case 's':\n        // a few seconds / in a few seconds / a few seconds ago\n        return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n      case 'ss':\n        // 9 seconds / in 9 seconds / 9 seconds ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'sekundy' : 'sekúnd');\n        } else {\n          return result + 'sekundami';\n        }\n      case 'm':\n        // a minute / in a minute / a minute ago\n        return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n      case 'mm':\n        // 9 minutes / in 9 minutes / 9 minutes ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'minúty' : 'minút');\n        } else {\n          return result + 'minútami';\n        }\n      case 'h':\n        // an hour / in an hour / an hour ago\n        return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n      case 'hh':\n        // 9 hours / in 9 hours / 9 hours ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'hodiny' : 'hodín');\n        } else {\n          return result + 'hodinami';\n        }\n      case 'd':\n        // a day / in a day / a day ago\n        return withoutSuffix || isFuture ? 'deň' : 'dňom';\n      case 'dd':\n        // 9 days / in 9 days / 9 days ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'dni' : 'dní');\n        } else {\n          return result + 'dňami';\n        }\n      case 'M':\n        // a month / in a month / a month ago\n        return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n      case 'MM':\n        // 9 months / in 9 months / 9 months ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'mesiace' : 'mesiacov');\n        } else {\n          return result + 'mesiacmi';\n        }\n      case 'y':\n        // a year / in a year / a year ago\n        return withoutSuffix || isFuture ? 'rok' : 'rokom';\n      case 'yy':\n        // 9 years / in 9 years / 9 years ago\n        if (withoutSuffix || isFuture) {\n          return result + (plural(number) ? 'roky' : 'rokov');\n        } else {\n          return result + 'rokmi';\n        }\n    }\n  }\n  var sk = moment.defineLocale('sk', {\n    months: months,\n    monthsShort: monthsShort,\n    weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n    weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n    weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY H:mm',\n      LLLL: 'dddd D. MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[dnes o] LT',\n      nextDay: '[zajtra o] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[v nedeľu o] LT';\n          case 1:\n          case 2:\n            return '[v] dddd [o] LT';\n          case 3:\n            return '[v stredu o] LT';\n          case 4:\n            return '[vo štvrtok o] LT';\n          case 5:\n            return '[v piatok o] LT';\n          case 6:\n            return '[v sobotu o] LT';\n        }\n      },\n      lastDay: '[včera o] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[minulú nedeľu o] LT';\n          case 1:\n          case 2:\n            return '[minulý] dddd [o] LT';\n          case 3:\n            return '[minulú stredu o] LT';\n          case 4:\n          case 5:\n            return '[minulý] dddd [o] LT';\n          case 6:\n            return '[minulú sobotu o] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'za %s',\n      past: 'pred %s',\n      s: translate,\n      ss: translate,\n      m: translate,\n      mm: translate,\n      h: translate,\n      hh: translate,\n      d: translate,\n      dd: translate,\n      M: translate,\n      MM: translate,\n      y: translate,\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return sk;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/sk.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/sl.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/sl.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var result = number + ' ';\n    switch (key) {\n      case 's':\n        return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n      case 'ss':\n        if (number === 1) {\n          result += withoutSuffix ? 'sekundo' : 'sekundi';\n        } else if (number === 2) {\n          result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n        } else if (number < 5) {\n          result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n        } else {\n          result += 'sekund';\n        }\n        return result;\n      case 'm':\n        return withoutSuffix ? 'ena minuta' : 'eno minuto';\n      case 'mm':\n        if (number === 1) {\n          result += withoutSuffix ? 'minuta' : 'minuto';\n        } else if (number === 2) {\n          result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n        } else if (number < 5) {\n          result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n        } else {\n          result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n        }\n        return result;\n      case 'h':\n        return withoutSuffix ? 'ena ura' : 'eno uro';\n      case 'hh':\n        if (number === 1) {\n          result += withoutSuffix ? 'ura' : 'uro';\n        } else if (number === 2) {\n          result += withoutSuffix || isFuture ? 'uri' : 'urama';\n        } else if (number < 5) {\n          result += withoutSuffix || isFuture ? 'ure' : 'urami';\n        } else {\n          result += withoutSuffix || isFuture ? 'ur' : 'urami';\n        }\n        return result;\n      case 'd':\n        return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n      case 'dd':\n        if (number === 1) {\n          result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n        } else if (number === 2) {\n          result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n        } else {\n          result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n        }\n        return result;\n      case 'M':\n        return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n      case 'MM':\n        if (number === 1) {\n          result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n        } else if (number === 2) {\n          result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n        } else if (number < 5) {\n          result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n        } else {\n          result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n        }\n        return result;\n      case 'y':\n        return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n      case 'yy':\n        if (number === 1) {\n          result += withoutSuffix || isFuture ? 'leto' : 'letom';\n        } else if (number === 2) {\n          result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n        } else if (number < 5) {\n          result += withoutSuffix || isFuture ? 'leta' : 'leti';\n        } else {\n          result += withoutSuffix || isFuture ? 'let' : 'leti';\n        }\n        return result;\n    }\n  }\n  var sl = moment.defineLocale('sl', {\n    months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n    monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n    weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n    weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD. MM. YYYY',\n      LL: 'D. MMMM YYYY',\n      LLL: 'D. MMMM YYYY H:mm',\n      LLLL: 'dddd, D. MMMM YYYY H:mm'\n    },\n    calendar: {\n      sameDay: '[danes ob] LT',\n      nextDay: '[jutri ob] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[v] [nedeljo] [ob] LT';\n          case 3:\n            return '[v] [sredo] [ob] LT';\n          case 6:\n            return '[v] [soboto] [ob] LT';\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[v] dddd [ob] LT';\n        }\n      },\n      lastDay: '[včeraj ob] LT',\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[prejšnjo] [nedeljo] [ob] LT';\n          case 3:\n            return '[prejšnjo] [sredo] [ob] LT';\n          case 6:\n            return '[prejšnjo] [soboto] [ob] LT';\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[prejšnji] dddd [ob] LT';\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'čez %s',\n      past: 'pred %s',\n      s: processRelativeTime,\n      ss: processRelativeTime,\n      m: processRelativeTime,\n      mm: processRelativeTime,\n      h: processRelativeTime,\n      hh: processRelativeTime,\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return sl;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/sl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/sq.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/sq.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var sq = moment.defineLocale('sq', {\n    months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n    monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n    weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n    weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n    weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n    weekdaysParseExact: true,\n    meridiemParse: /PD|MD/,\n    isPM: function (input) {\n      return input.charAt(0) === 'M';\n    },\n    meridiem: function (hours, minutes, isLower) {\n      return hours < 12 ? 'PD' : 'MD';\n    },\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Sot në] LT',\n      nextDay: '[Nesër në] LT',\n      nextWeek: 'dddd [në] LT',\n      lastDay: '[Dje në] LT',\n      lastWeek: 'dddd [e kaluar në] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'në %s',\n      past: '%s më parë',\n      s: 'disa sekonda',\n      ss: '%d sekonda',\n      m: 'një minutë',\n      mm: '%d minuta',\n      h: 'një orë',\n      hh: '%d orë',\n      d: 'një ditë',\n      dd: '%d ditë',\n      M: 'një muaj',\n      MM: '%d muaj',\n      y: 'një vit',\n      yy: '%d vite'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return sq;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/sq.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/sr-cyrl.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/sr-cyrl.js ***!
  \*********************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var translator = {\n    words: {\n      //Different grammatical cases\n      ss: ['секунда', 'секунде', 'секунди'],\n      m: ['један минут', 'једног минута'],\n      mm: ['минут', 'минута', 'минута'],\n      h: ['један сат', 'једног сата'],\n      hh: ['сат', 'сата', 'сати'],\n      d: ['један дан', 'једног дана'],\n      dd: ['дан', 'дана', 'дана'],\n      M: ['један месец', 'једног месеца'],\n      MM: ['месец', 'месеца', 'месеци'],\n      y: ['једну годину', 'једне године'],\n      yy: ['годину', 'године', 'година']\n    },\n    correctGrammaticalCase: function (number, wordKey) {\n      if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n        return number % 10 === 1 ? wordKey[0] : wordKey[1];\n      }\n      return wordKey[2];\n    },\n    translate: function (number, withoutSuffix, key, isFuture) {\n      var wordKey = translator.words[key],\n        word;\n      if (key.length === 1) {\n        // Nominativ\n        if (key === 'y' && withoutSuffix) return 'једна година';\n        return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n      }\n      word = translator.correctGrammaticalCase(number, wordKey);\n      // Nominativ\n      if (key === 'yy' && withoutSuffix && word === 'годину') {\n        return number + ' година';\n      }\n      return number + ' ' + word;\n    }\n  };\n  var srCyrl = moment.defineLocale('sr-cyrl', {\n    months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),\n    monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n    weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n    weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'D. M. YYYY.',\n      LL: 'D. MMMM YYYY.',\n      LLL: 'D. MMMM YYYY. H:mm',\n      LLLL: 'dddd, D. MMMM YYYY. H:mm'\n    },\n    calendar: {\n      sameDay: '[данас у] LT',\n      nextDay: '[сутра у] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[у] [недељу] [у] LT';\n          case 3:\n            return '[у] [среду] [у] LT';\n          case 6:\n            return '[у] [суботу] [у] LT';\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[у] dddd [у] LT';\n        }\n      },\n      lastDay: '[јуче у] LT',\n      lastWeek: function () {\n        var lastWeekDays = ['[прошле] [недеље] [у] LT', '[прошлог] [понедељка] [у] LT', '[прошлог] [уторка] [у] LT', '[прошле] [среде] [у] LT', '[прошлог] [четвртка] [у] LT', '[прошлог] [петка] [у] LT', '[прошле] [суботе] [у] LT'];\n        return lastWeekDays[this.day()];\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'за %s',\n      past: 'пре %s',\n      s: 'неколико секунди',\n      ss: translator.translate,\n      m: translator.translate,\n      mm: translator.translate,\n      h: translator.translate,\n      hh: translator.translate,\n      d: translator.translate,\n      dd: translator.translate,\n      M: translator.translate,\n      MM: translator.translate,\n      y: translator.translate,\n      yy: translator.translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 1st is the first week of the year.\n    }\n  });\n  return srCyrl;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/sr-cyrl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/sr.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/sr.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var translator = {\n    words: {\n      //Different grammatical cases\n      ss: ['sekunda', 'sekunde', 'sekundi'],\n      m: ['jedan minut', 'jednog minuta'],\n      mm: ['minut', 'minuta', 'minuta'],\n      h: ['jedan sat', 'jednog sata'],\n      hh: ['sat', 'sata', 'sati'],\n      d: ['jedan dan', 'jednog dana'],\n      dd: ['dan', 'dana', 'dana'],\n      M: ['jedan mesec', 'jednog meseca'],\n      MM: ['mesec', 'meseca', 'meseci'],\n      y: ['jednu godinu', 'jedne godine'],\n      yy: ['godinu', 'godine', 'godina']\n    },\n    correctGrammaticalCase: function (number, wordKey) {\n      if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {\n        return number % 10 === 1 ? wordKey[0] : wordKey[1];\n      }\n      return wordKey[2];\n    },\n    translate: function (number, withoutSuffix, key, isFuture) {\n      var wordKey = translator.words[key],\n        word;\n      if (key.length === 1) {\n        // Nominativ\n        if (key === 'y' && withoutSuffix) return 'jedna godina';\n        return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n      }\n      word = translator.correctGrammaticalCase(number, wordKey);\n      // Nominativ\n      if (key === 'yy' && withoutSuffix && word === 'godinu') {\n        return number + ' godina';\n      }\n      return number + ' ' + word;\n    }\n  };\n  var sr = moment.defineLocale('sr', {\n    months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n    monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split('_'),\n    weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n    weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'D. M. YYYY.',\n      LL: 'D. MMMM YYYY.',\n      LLL: 'D. MMMM YYYY. H:mm',\n      LLLL: 'dddd, D. MMMM YYYY. H:mm'\n    },\n    calendar: {\n      sameDay: '[danas u] LT',\n      nextDay: '[sutra u] LT',\n      nextWeek: function () {\n        switch (this.day()) {\n          case 0:\n            return '[u] [nedelju] [u] LT';\n          case 3:\n            return '[u] [sredu] [u] LT';\n          case 6:\n            return '[u] [subotu] [u] LT';\n          case 1:\n          case 2:\n          case 4:\n          case 5:\n            return '[u] dddd [u] LT';\n        }\n      },\n      lastDay: '[juče u] LT',\n      lastWeek: function () {\n        var lastWeekDays = ['[prošle] [nedelje] [u] LT', '[prošlog] [ponedeljka] [u] LT', '[prošlog] [utorka] [u] LT', '[prošle] [srede] [u] LT', '[prošlog] [četvrtka] [u] LT', '[prošlog] [petka] [u] LT', '[prošle] [subote] [u] LT'];\n        return lastWeekDays[this.day()];\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'za %s',\n      past: 'pre %s',\n      s: 'nekoliko sekundi',\n      ss: translator.translate,\n      m: translator.translate,\n      mm: translator.translate,\n      h: translator.translate,\n      hh: translator.translate,\n      d: translator.translate,\n      dd: translator.translate,\n      M: translator.translate,\n      MM: translator.translate,\n      y: translator.translate,\n      yy: translator.translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return sr;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/sr.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ss.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ss.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var ss = moment.defineLocale('ss', {\n    months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split('_'),\n    monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n    weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),\n    weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n    weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY h:mm A',\n      LLLL: 'dddd, D MMMM YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: '[Namuhla nga] LT',\n      nextDay: '[Kusasa nga] LT',\n      nextWeek: 'dddd [nga] LT',\n      lastDay: '[Itolo nga] LT',\n      lastWeek: 'dddd [leliphelile] [nga] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'nga %s',\n      past: 'wenteka nga %s',\n      s: 'emizuzwana lomcane',\n      ss: '%d mzuzwana',\n      m: 'umzuzu',\n      mm: '%d emizuzu',\n      h: 'lihora',\n      hh: '%d emahora',\n      d: 'lilanga',\n      dd: '%d emalanga',\n      M: 'inyanga',\n      MM: '%d tinyanga',\n      y: 'umnyaka',\n      yy: '%d iminyaka'\n    },\n    meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 11) {\n        return 'ekuseni';\n      } else if (hours < 15) {\n        return 'emini';\n      } else if (hours < 19) {\n        return 'entsambama';\n      } else {\n        return 'ebusuku';\n      }\n    },\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'ekuseni') {\n        return hour;\n      } else if (meridiem === 'emini') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n        if (hour === 0) {\n          return 0;\n        }\n        return hour + 12;\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}/,\n    ordinal: '%d',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return ss;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ss.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/sv.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/sv.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var sv = moment.defineLocale('sv', {\n    months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n    monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n    weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n    weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n    weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY-MM-DD',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY [kl.] HH:mm',\n      LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n      lll: 'D MMM YYYY HH:mm',\n      llll: 'ddd D MMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Idag] LT',\n      nextDay: '[Imorgon] LT',\n      lastDay: '[Igår] LT',\n      nextWeek: '[På] dddd LT',\n      lastWeek: '[I] dddd[s] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'om %s',\n      past: 'för %s sedan',\n      s: 'några sekunder',\n      ss: '%d sekunder',\n      m: 'en minut',\n      mm: '%d minuter',\n      h: 'en timme',\n      hh: '%d timmar',\n      d: 'en dag',\n      dd: '%d dagar',\n      M: 'en månad',\n      MM: '%d månader',\n      y: 'ett år',\n      yy: '%d år'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n    ordinal: function (number) {\n      var b = number % 10,\n        output = ~~(number % 100 / 10) === 1 ? ':e' : b === 1 ? ':a' : b === 2 ? ':a' : b === 3 ? ':e' : ':e';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return sv;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/sv.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/sw.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/sw.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var sw = moment.defineLocale('sw', {\n    months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),\n    monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n    weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),\n    weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n    weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'hh:mm A',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[leo saa] LT',\n      nextDay: '[kesho saa] LT',\n      nextWeek: '[wiki ijayo] dddd [saat] LT',\n      lastDay: '[jana] LT',\n      lastWeek: '[wiki iliyopita] dddd [saat] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s baadaye',\n      past: 'tokea %s',\n      s: 'hivi punde',\n      ss: 'sekunde %d',\n      m: 'dakika moja',\n      mm: 'dakika %d',\n      h: 'saa limoja',\n      hh: 'masaa %d',\n      d: 'siku moja',\n      dd: 'siku %d',\n      M: 'mwezi mmoja',\n      MM: 'miezi %d',\n      y: 'mwaka mmoja',\n      yy: 'miaka %d'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return sw;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/sw.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ta.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ta.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var symbolMap = {\n      1: '௧',\n      2: '௨',\n      3: '௩',\n      4: '௪',\n      5: '௫',\n      6: '௬',\n      7: '௭',\n      8: '௮',\n      9: '௯',\n      0: '௦'\n    },\n    numberMap = {\n      '௧': '1',\n      '௨': '2',\n      '௩': '3',\n      '௪': '4',\n      '௫': '5',\n      '௬': '6',\n      '௭': '7',\n      '௮': '8',\n      '௯': '9',\n      '௦': '0'\n    };\n  var ta = moment.defineLocale('ta', {\n    months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n    monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n    weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),\n    weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),\n    weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, HH:mm',\n      LLLL: 'dddd, D MMMM YYYY, HH:mm'\n    },\n    calendar: {\n      sameDay: '[இன்று] LT',\n      nextDay: '[நாளை] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[நேற்று] LT',\n      lastWeek: '[கடந்த வாரம்] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s இல்',\n      past: '%s முன்',\n      s: 'ஒரு சில விநாடிகள்',\n      ss: '%d விநாடிகள்',\n      m: 'ஒரு நிமிடம்',\n      mm: '%d நிமிடங்கள்',\n      h: 'ஒரு மணி நேரம்',\n      hh: '%d மணி நேரம்',\n      d: 'ஒரு நாள்',\n      dd: '%d நாட்கள்',\n      M: 'ஒரு மாதம்',\n      MM: '%d மாதங்கள்',\n      y: 'ஒரு வருடம்',\n      yy: '%d ஆண்டுகள்'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n    ordinal: function (number) {\n      return number + 'வது';\n    },\n    preparse: function (string) {\n      return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n        return numberMap[match];\n      });\n    },\n    postformat: function (string) {\n      return string.replace(/\\d/g, function (match) {\n        return symbolMap[match];\n      });\n    },\n    // refer http://ta.wikipedia.org/s/1er1\n    meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 2) {\n        return ' யாமம்';\n      } else if (hour < 6) {\n        return ' வைகறை'; // வைகறை\n      } else if (hour < 10) {\n        return ' காலை'; // காலை\n      } else if (hour < 14) {\n        return ' நண்பகல்'; // நண்பகல்\n      } else if (hour < 18) {\n        return ' எற்பாடு'; // எற்பாடு\n      } else if (hour < 22) {\n        return ' மாலை'; // மாலை\n      } else {\n        return ' யாமம்';\n      }\n    },\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'யாமம்') {\n        return hour < 2 ? hour : hour + 12;\n      } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n        return hour;\n      } else if (meridiem === 'நண்பகல்') {\n        return hour >= 10 ? hour : hour + 12;\n      } else {\n        return hour + 12;\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return ta;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ta.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/te.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/te.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var te = moment.defineLocale('te', {\n    months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),\n    monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split('_'),\n    weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n    weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n    longDateFormat: {\n      LT: 'A h:mm',\n      LTS: 'A h:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY, A h:mm',\n      LLLL: 'dddd, D MMMM YYYY, A h:mm'\n    },\n    calendar: {\n      sameDay: '[నేడు] LT',\n      nextDay: '[రేపు] LT',\n      nextWeek: 'dddd, LT',\n      lastDay: '[నిన్న] LT',\n      lastWeek: '[గత] dddd, LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s లో',\n      past: '%s క్రితం',\n      s: 'కొన్ని క్షణాలు',\n      ss: '%d సెకన్లు',\n      m: 'ఒక నిమిషం',\n      mm: '%d నిమిషాలు',\n      h: 'ఒక గంట',\n      hh: '%d గంటలు',\n      d: 'ఒక రోజు',\n      dd: '%d రోజులు',\n      M: 'ఒక నెల',\n      MM: '%d నెలలు',\n      y: 'ఒక సంవత్సరం',\n      yy: '%d సంవత్సరాలు'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n    ordinal: '%dవ',\n    meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'రాత్రి') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'ఉదయం') {\n        return hour;\n      } else if (meridiem === 'మధ్యాహ్నం') {\n        return hour >= 10 ? hour : hour + 12;\n      } else if (meridiem === 'సాయంత్రం') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'రాత్రి';\n      } else if (hour < 10) {\n        return 'ఉదయం';\n      } else if (hour < 17) {\n        return 'మధ్యాహ్నం';\n      } else if (hour < 20) {\n        return 'సాయంత్రం';\n      } else {\n        return 'రాత్రి';\n      }\n    },\n    week: {\n      dow: 0,\n      // Sunday is the first day of the week.\n      doy: 6 // The week that contains Jan 6th is the first week of the year.\n    }\n  });\n  return te;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/te.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/tet.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/tet.js ***!
  \*****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var tet = moment.defineLocale('tet', {\n    months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),\n    monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n    weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n    weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n    weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Ohin iha] LT',\n      nextDay: '[Aban iha] LT',\n      nextWeek: 'dddd [iha] LT',\n      lastDay: '[Horiseik iha] LT',\n      lastWeek: 'dddd [semana kotuk] [iha] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'iha %s',\n      past: '%s liuba',\n      s: 'segundu balun',\n      ss: 'segundu %d',\n      m: 'minutu ida',\n      mm: 'minutu %d',\n      h: 'oras ida',\n      hh: 'oras %d',\n      d: 'loron ida',\n      dd: 'loron %d',\n      M: 'fulan ida',\n      MM: 'fulan %d',\n      y: 'tinan ida',\n      yy: 'tinan %d'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n    ordinal: function (number) {\n      var b = number % 10,\n        output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return tet;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/tet.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/tg.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/tg.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var suffixes = {\n    0: '-ум',\n    1: '-ум',\n    2: '-юм',\n    3: '-юм',\n    4: '-ум',\n    5: '-ум',\n    6: '-ум',\n    7: '-ум',\n    8: '-ум',\n    9: '-ум',\n    10: '-ум',\n    12: '-ум',\n    13: '-ум',\n    20: '-ум',\n    30: '-юм',\n    40: '-ум',\n    50: '-ум',\n    60: '-ум',\n    70: '-ум',\n    80: '-ум',\n    90: '-ум',\n    100: '-ум'\n  };\n  var tg = moment.defineLocale('tg', {\n    months: {\n      format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split('_'),\n      standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_')\n    },\n    monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n    weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),\n    weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n    weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Имрӯз соати] LT',\n      nextDay: '[Фардо соати] LT',\n      lastDay: '[Дирӯз соати] LT',\n      nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n      lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'баъди %s',\n      past: '%s пеш',\n      s: 'якчанд сония',\n      m: 'як дақиқа',\n      mm: '%d дақиқа',\n      h: 'як соат',\n      hh: '%d соат',\n      d: 'як рӯз',\n      dd: '%d рӯз',\n      M: 'як моҳ',\n      MM: '%d моҳ',\n      y: 'як сол',\n      yy: '%d сол'\n    },\n    meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'шаб') {\n        return hour < 4 ? hour : hour + 12;\n      } else if (meridiem === 'субҳ') {\n        return hour;\n      } else if (meridiem === 'рӯз') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === 'бегоҳ') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'шаб';\n      } else if (hour < 11) {\n        return 'субҳ';\n      } else if (hour < 16) {\n        return 'рӯз';\n      } else if (hour < 19) {\n        return 'бегоҳ';\n      } else {\n        return 'шаб';\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n    ordinal: function (number) {\n      var a = number % 10,\n        b = number >= 100 ? 100 : null;\n      return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 1th is the first week of the year.\n    }\n  });\n  return tg;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/tg.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/th.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/th.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var th = moment.defineLocale('th', {\n    months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n    monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n    weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'),\n    // yes, three characters difference\n    weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'H:mm',\n      LTS: 'H:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY เวลา H:mm',\n      LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm'\n    },\n    meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n    isPM: function (input) {\n      return input === 'หลังเที่ยง';\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'ก่อนเที่ยง';\n      } else {\n        return 'หลังเที่ยง';\n      }\n    },\n    calendar: {\n      sameDay: '[วันนี้ เวลา] LT',\n      nextDay: '[พรุ่งนี้ เวลา] LT',\n      nextWeek: 'dddd[หน้า เวลา] LT',\n      lastDay: '[เมื่อวานนี้ เวลา] LT',\n      lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'อีก %s',\n      past: '%sที่แล้ว',\n      s: 'ไม่กี่วินาที',\n      ss: '%d วินาที',\n      m: '1 นาที',\n      mm: '%d นาที',\n      h: '1 ชั่วโมง',\n      hh: '%d ชั่วโมง',\n      d: '1 วัน',\n      dd: '%d วัน',\n      w: '1 สัปดาห์',\n      ww: '%d สัปดาห์',\n      M: '1 เดือน',\n      MM: '%d เดือน',\n      y: '1 ปี',\n      yy: '%d ปี'\n    }\n  });\n  return th;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/th.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/tk.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/tk.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var suffixes = {\n    1: \"'inji\",\n    5: \"'inji\",\n    8: \"'inji\",\n    70: \"'inji\",\n    80: \"'inji\",\n    2: \"'nji\",\n    7: \"'nji\",\n    20: \"'nji\",\n    50: \"'nji\",\n    3: \"'ünji\",\n    4: \"'ünji\",\n    100: \"'ünji\",\n    6: \"'njy\",\n    9: \"'unjy\",\n    10: \"'unjy\",\n    30: \"'unjy\",\n    60: \"'ynjy\",\n    90: \"'ynjy\"\n  };\n  var tk = moment.defineLocale('tk', {\n    months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split('_'),\n    monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n    weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split('_'),\n    weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n    weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[bugün sagat] LT',\n      nextDay: '[ertir sagat] LT',\n      nextWeek: '[indiki] dddd [sagat] LT',\n      lastDay: '[düýn] LT',\n      lastWeek: '[geçen] dddd [sagat] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s soň',\n      past: '%s öň',\n      s: 'birnäçe sekunt',\n      m: 'bir minut',\n      mm: '%d minut',\n      h: 'bir sagat',\n      hh: '%d sagat',\n      d: 'bir gün',\n      dd: '%d gün',\n      M: 'bir aý',\n      MM: '%d aý',\n      y: 'bir ýyl',\n      yy: '%d ýyl'\n    },\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'Do':\n        case 'DD':\n          return number;\n        default:\n          if (number === 0) {\n            // special case for zero\n            return number + \"'unjy\";\n          }\n          var a = number % 10,\n            b = number % 100 - a,\n            c = number >= 100 ? 100 : null;\n          return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return tk;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/tk.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/tl-ph.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/tl-ph.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var tlPh = moment.defineLocale('tl-ph', {\n    months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n    monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n    weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n    weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n    weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'MM/D/YYYY',\n      LL: 'MMMM D, YYYY',\n      LLL: 'MMMM D, YYYY HH:mm',\n      LLLL: 'dddd, MMMM DD, YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: 'LT [ngayong araw]',\n      nextDay: '[Bukas ng] LT',\n      nextWeek: 'LT [sa susunod na] dddd',\n      lastDay: 'LT [kahapon]',\n      lastWeek: 'LT [noong nakaraang] dddd',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'sa loob ng %s',\n      past: '%s ang nakalipas',\n      s: 'ilang segundo',\n      ss: '%d segundo',\n      m: 'isang minuto',\n      mm: '%d minuto',\n      h: 'isang oras',\n      hh: '%d oras',\n      d: 'isang araw',\n      dd: '%d araw',\n      M: 'isang buwan',\n      MM: '%d buwan',\n      y: 'isang taon',\n      yy: '%d taon'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}/,\n    ordinal: function (number) {\n      return number;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return tlPh;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/tl-ph.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/tlh.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/tlh.js ***!
  \*****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n  function translateFuture(output) {\n    var time = output;\n    time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'leS' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'waQ' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'nem' : time + ' pIq';\n    return time;\n  }\n  function translatePast(output) {\n    var time = output;\n    time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'Hu’' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'wen' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'ben' : time + ' ret';\n    return time;\n  }\n  function translate(number, withoutSuffix, string, isFuture) {\n    var numberNoun = numberAsNoun(number);\n    switch (string) {\n      case 'ss':\n        return numberNoun + ' lup';\n      case 'mm':\n        return numberNoun + ' tup';\n      case 'hh':\n        return numberNoun + ' rep';\n      case 'dd':\n        return numberNoun + ' jaj';\n      case 'MM':\n        return numberNoun + ' jar';\n      case 'yy':\n        return numberNoun + ' DIS';\n    }\n  }\n  function numberAsNoun(number) {\n    var hundred = Math.floor(number % 1000 / 100),\n      ten = Math.floor(number % 100 / 10),\n      one = number % 10,\n      word = '';\n    if (hundred > 0) {\n      word += numbersNouns[hundred] + 'vatlh';\n    }\n    if (ten > 0) {\n      word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n    }\n    if (one > 0) {\n      word += (word !== '' ? ' ' : '') + numbersNouns[one];\n    }\n    return word === '' ? 'pagh' : word;\n  }\n  var tlh = moment.defineLocale('tlh', {\n    months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),\n    monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n    weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n    weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[DaHjaj] LT',\n      nextDay: '[wa’leS] LT',\n      nextWeek: 'LLL',\n      lastDay: '[wa’Hu’] LT',\n      lastWeek: 'LLL',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: translateFuture,\n      past: translatePast,\n      s: 'puS lup',\n      ss: translate,\n      m: 'wa’ tup',\n      mm: translate,\n      h: 'wa’ rep',\n      hh: translate,\n      d: 'wa’ jaj',\n      dd: translate,\n      M: 'wa’ jar',\n      MM: translate,\n      y: 'wa’ DIS',\n      yy: translate\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return tlh;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/tlh.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/tr.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/tr.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//!           Burak Yiğit Kaya: https://github.com/BYK\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var suffixes = {\n    1: \"'inci\",\n    5: \"'inci\",\n    8: \"'inci\",\n    70: \"'inci\",\n    80: \"'inci\",\n    2: \"'nci\",\n    7: \"'nci\",\n    20: \"'nci\",\n    50: \"'nci\",\n    3: \"'üncü\",\n    4: \"'üncü\",\n    100: \"'üncü\",\n    6: \"'ncı\",\n    9: \"'uncu\",\n    10: \"'uncu\",\n    30: \"'uncu\",\n    60: \"'ıncı\",\n    90: \"'ıncı\"\n  };\n  var tr = moment.defineLocale('tr', {\n    months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n    monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n    weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n    weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n    weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 12) {\n        return isLower ? 'öö' : 'ÖÖ';\n      } else {\n        return isLower ? 'ös' : 'ÖS';\n      }\n    },\n    meridiemParse: /öö|ÖÖ|ös|ÖS/,\n    isPM: function (input) {\n      return input === 'ös' || input === 'ÖS';\n    },\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[bugün saat] LT',\n      nextDay: '[yarın saat] LT',\n      nextWeek: '[gelecek] dddd [saat] LT',\n      lastDay: '[dün] LT',\n      lastWeek: '[geçen] dddd [saat] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s sonra',\n      past: '%s önce',\n      s: 'birkaç saniye',\n      ss: '%d saniye',\n      m: 'bir dakika',\n      mm: '%d dakika',\n      h: 'bir saat',\n      hh: '%d saat',\n      d: 'bir gün',\n      dd: '%d gün',\n      w: 'bir hafta',\n      ww: '%d hafta',\n      M: 'bir ay',\n      MM: '%d ay',\n      y: 'bir yıl',\n      yy: '%d yıl'\n    },\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'Do':\n        case 'DD':\n          return number;\n        default:\n          if (number === 0) {\n            // special case for zero\n            return number + \"'ıncı\";\n          }\n          var a = number % 10,\n            b = number % 100 - a,\n            c = number >= 100 ? 100 : null;\n          return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return tr;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/tr.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/tzl.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/tzl.js ***!
  \*****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n\n  // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n  // This is currently too difficult (maybe even impossible) to add.\n  var tzl = moment.defineLocale('tzl', {\n    months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),\n    monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n    weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n    weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n    weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n    longDateFormat: {\n      LT: 'HH.mm',\n      LTS: 'HH.mm.ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D. MMMM [dallas] YYYY',\n      LLL: 'D. MMMM [dallas] YYYY HH.mm',\n      LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'\n    },\n    meridiemParse: /d\\'o|d\\'a/i,\n    isPM: function (input) {\n      return \"d'o\" === input.toLowerCase();\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours > 11) {\n        return isLower ? \"d'o\" : \"D'O\";\n      } else {\n        return isLower ? \"d'a\" : \"D'A\";\n      }\n    },\n    calendar: {\n      sameDay: '[oxhi à] LT',\n      nextDay: '[demà à] LT',\n      nextWeek: 'dddd [à] LT',\n      lastDay: '[ieiri à] LT',\n      lastWeek: '[sür el] dddd [lasteu à] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'osprei %s',\n      past: 'ja%s',\n      s: processRelativeTime,\n      ss: processRelativeTime,\n      m: processRelativeTime,\n      mm: processRelativeTime,\n      h: processRelativeTime,\n      hh: processRelativeTime,\n      d: processRelativeTime,\n      dd: processRelativeTime,\n      M: processRelativeTime,\n      MM: processRelativeTime,\n      y: processRelativeTime,\n      yy: processRelativeTime\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n    ordinal: '%d.',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  function processRelativeTime(number, withoutSuffix, key, isFuture) {\n    var format = {\n      s: ['viensas secunds', \"'iensas secunds\"],\n      ss: [number + ' secunds', '' + number + ' secunds'],\n      m: [\"'n míut\", \"'iens míut\"],\n      mm: [number + ' míuts', '' + number + ' míuts'],\n      h: [\"'n þora\", \"'iensa þora\"],\n      hh: [number + ' þoras', '' + number + ' þoras'],\n      d: [\"'n ziua\", \"'iensa ziua\"],\n      dd: [number + ' ziuas', '' + number + ' ziuas'],\n      M: [\"'n mes\", \"'iens mes\"],\n      MM: [number + ' mesen', '' + number + ' mesen'],\n      y: [\"'n ar\", \"'iens ar\"],\n      yy: [number + ' ars', '' + number + ' ars']\n    };\n    return isFuture ? format[key][0] : withoutSuffix ? format[key][0] : format[key][1];\n  }\n  return tzl;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/tzl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/tzm-latn.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/tzm-latn.js ***!
  \**********************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var tzmLatn = moment.defineLocale('tzm-latn', {\n    months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n    monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\n    weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n    weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n    weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[asdkh g] LT',\n      nextDay: '[aska g] LT',\n      nextWeek: 'dddd [g] LT',\n      lastDay: '[assant g] LT',\n      lastWeek: 'dddd [g] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'dadkh s yan %s',\n      past: 'yan %s',\n      s: 'imik',\n      ss: '%d imik',\n      m: 'minuḍ',\n      mm: '%d minuḍ',\n      h: 'saɛa',\n      hh: '%d tassaɛin',\n      d: 'ass',\n      dd: '%d ossan',\n      M: 'ayowr',\n      MM: '%d iyyirn',\n      y: 'asgas',\n      yy: '%d isgasn'\n    },\n    week: {\n      dow: 6,\n      // Saturday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n    }\n  });\n  return tzmLatn;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/tzm-latn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/tzm.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/tzm.js ***!
  \*****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var tzm = moment.defineLocale('tzm', {\n    months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n    monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n    weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n    weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n    weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n      nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n      nextWeek: 'dddd [ⴴ] LT',\n      lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n      lastWeek: 'dddd [ⴴ] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n      past: 'ⵢⴰⵏ %s',\n      s: 'ⵉⵎⵉⴽ',\n      ss: '%d ⵉⵎⵉⴽ',\n      m: 'ⵎⵉⵏⵓⴺ',\n      mm: '%d ⵎⵉⵏⵓⴺ',\n      h: 'ⵙⴰⵄⴰ',\n      hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n      d: 'ⴰⵙⵙ',\n      dd: '%d oⵙⵙⴰⵏ',\n      M: 'ⴰⵢoⵓⵔ',\n      MM: '%d ⵉⵢⵢⵉⵔⵏ',\n      y: 'ⴰⵙⴳⴰⵙ',\n      yy: '%d ⵉⵙⴳⴰⵙⵏ'\n    },\n    week: {\n      dow: 6,\n      // Saturday is the first day of the week.\n      doy: 12 // The week that contains Jan 12th is the first week of the year.\n    }\n  });\n  return tzm;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/tzm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ug-cn.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ug-cn.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var ugCn = moment.defineLocale('ug-cn', {\n    months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split('_'),\n    monthsShort: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split('_'),\n    weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split('_'),\n    weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n    weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY-MM-DD',\n      LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n      LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n      LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm'\n    },\n    meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === 'يېرىم كېچە' || meridiem === 'سەھەر' || meridiem === 'چۈشتىن بۇرۇن') {\n        return hour;\n      } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n        return hour + 12;\n      } else {\n        return hour >= 11 ? hour : hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      var hm = hour * 100 + minute;\n      if (hm < 600) {\n        return 'يېرىم كېچە';\n      } else if (hm < 900) {\n        return 'سەھەر';\n      } else if (hm < 1130) {\n        return 'چۈشتىن بۇرۇن';\n      } else if (hm < 1230) {\n        return 'چۈش';\n      } else if (hm < 1800) {\n        return 'چۈشتىن كېيىن';\n      } else {\n        return 'كەچ';\n      }\n    },\n    calendar: {\n      sameDay: '[بۈگۈن سائەت] LT',\n      nextDay: '[ئەتە سائەت] LT',\n      nextWeek: '[كېلەركى] dddd [سائەت] LT',\n      lastDay: '[تۆنۈگۈن] LT',\n      lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s كېيىن',\n      past: '%s بۇرۇن',\n      s: 'نەچچە سېكونت',\n      ss: '%d سېكونت',\n      m: 'بىر مىنۇت',\n      mm: '%d مىنۇت',\n      h: 'بىر سائەت',\n      hh: '%d سائەت',\n      d: 'بىر كۈن',\n      dd: '%d كۈن',\n      M: 'بىر ئاي',\n      MM: '%d ئاي',\n      y: 'بىر يىل',\n      yy: '%d يىل'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + '-كۈنى';\n        case 'w':\n        case 'W':\n          return number + '-ھەپتە';\n        default:\n          return number;\n      }\n    },\n    preparse: function (string) {\n      return string.replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/,/g, '،');\n    },\n    week: {\n      // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 1st is the first week of the year.\n    }\n  });\n  return ugCn;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ug-cn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/uk.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/uk.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  function plural(word, num) {\n    var forms = word.split('_');\n    return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n  }\n  function relativeTimeWithPlural(number, withoutSuffix, key) {\n    var format = {\n      ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n      mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n      hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n      dd: 'день_дні_днів',\n      MM: 'місяць_місяці_місяців',\n      yy: 'рік_роки_років'\n    };\n    if (key === 'm') {\n      return withoutSuffix ? 'хвилина' : 'хвилину';\n    } else if (key === 'h') {\n      return withoutSuffix ? 'година' : 'годину';\n    } else {\n      return number + ' ' + plural(format[key], +number);\n    }\n  }\n  function weekdaysCaseReplace(m, format) {\n    var weekdays = {\n        nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n        accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n        genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n      },\n      nounCase;\n    if (m === true) {\n      return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1));\n    }\n    if (!m) {\n      return weekdays['nominative'];\n    }\n    nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format) ? 'accusative' : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format) ? 'genitive' : 'nominative';\n    return weekdays[nounCase][m.day()];\n  }\n  function processHoursFunction(str) {\n    return function () {\n      return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n    };\n  }\n  var uk = moment.defineLocale('uk', {\n    months: {\n      format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),\n      standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n    },\n    monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\n    weekdays: weekdaysCaseReplace,\n    weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n    weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD.MM.YYYY',\n      LL: 'D MMMM YYYY р.',\n      LLL: 'D MMMM YYYY р., HH:mm',\n      LLLL: 'dddd, D MMMM YYYY р., HH:mm'\n    },\n    calendar: {\n      sameDay: processHoursFunction('[Сьогодні '),\n      nextDay: processHoursFunction('[Завтра '),\n      lastDay: processHoursFunction('[Вчора '),\n      nextWeek: processHoursFunction('[У] dddd ['),\n      lastWeek: function () {\n        switch (this.day()) {\n          case 0:\n          case 3:\n          case 5:\n          case 6:\n            return processHoursFunction('[Минулої] dddd [').call(this);\n          case 1:\n          case 2:\n          case 4:\n            return processHoursFunction('[Минулого] dddd [').call(this);\n        }\n      },\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'за %s',\n      past: '%s тому',\n      s: 'декілька секунд',\n      ss: relativeTimeWithPlural,\n      m: relativeTimeWithPlural,\n      mm: relativeTimeWithPlural,\n      h: 'годину',\n      hh: relativeTimeWithPlural,\n      d: 'день',\n      dd: relativeTimeWithPlural,\n      M: 'місяць',\n      MM: relativeTimeWithPlural,\n      y: 'рік',\n      yy: relativeTimeWithPlural\n    },\n    // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n    meridiemParse: /ночі|ранку|дня|вечора/,\n    isPM: function (input) {\n      return /^(дня|вечора)$/.test(input);\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 4) {\n        return 'ночі';\n      } else if (hour < 12) {\n        return 'ранку';\n      } else if (hour < 17) {\n        return 'дня';\n      } else {\n        return 'вечора';\n      }\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'M':\n        case 'd':\n        case 'DDD':\n        case 'w':\n        case 'W':\n          return number + '-й';\n        case 'D':\n          return number + '-го';\n        default:\n          return number;\n      }\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return uk;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/uk.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/ur.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/ur.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var months = ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'],\n    days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n  var ur = moment.defineLocale('ur', {\n    months: months,\n    monthsShort: months,\n    weekdays: days,\n    weekdaysShort: days,\n    weekdaysMin: days,\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd، D MMMM YYYY HH:mm'\n    },\n    meridiemParse: /صبح|شام/,\n    isPM: function (input) {\n      return 'شام' === input;\n    },\n    meridiem: function (hour, minute, isLower) {\n      if (hour < 12) {\n        return 'صبح';\n      }\n      return 'شام';\n    },\n    calendar: {\n      sameDay: '[آج بوقت] LT',\n      nextDay: '[کل بوقت] LT',\n      nextWeek: 'dddd [بوقت] LT',\n      lastDay: '[گذشتہ روز بوقت] LT',\n      lastWeek: '[گذشتہ] dddd [بوقت] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s بعد',\n      past: '%s قبل',\n      s: 'چند سیکنڈ',\n      ss: '%d سیکنڈ',\n      m: 'ایک منٹ',\n      mm: '%d منٹ',\n      h: 'ایک گھنٹہ',\n      hh: '%d گھنٹے',\n      d: 'ایک دن',\n      dd: '%d دن',\n      M: 'ایک ماہ',\n      MM: '%d ماہ',\n      y: 'ایک سال',\n      yy: '%d سال'\n    },\n    preparse: function (string) {\n      return string.replace(/،/g, ',');\n    },\n    postformat: function (string) {\n      return string.replace(/,/g, '،');\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return ur;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/ur.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/uz-latn.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/uz-latn.js ***!
  \*********************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var uzLatn = moment.defineLocale('uz-latn', {\n    months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n    monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n    weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\n    weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n    weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'D MMMM YYYY, dddd HH:mm'\n    },\n    calendar: {\n      sameDay: '[Bugun soat] LT [da]',\n      nextDay: '[Ertaga] LT [da]',\n      nextWeek: 'dddd [kuni soat] LT [da]',\n      lastDay: '[Kecha soat] LT [da]',\n      lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'Yaqin %s ichida',\n      past: 'Bir necha %s oldin',\n      s: 'soniya',\n      ss: '%d soniya',\n      m: 'bir daqiqa',\n      mm: '%d daqiqa',\n      h: 'bir soat',\n      hh: '%d soat',\n      d: 'bir kun',\n      dd: '%d kun',\n      M: 'bir oy',\n      MM: '%d oy',\n      y: 'bir yil',\n      yy: '%d yil'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 7th is the first week of the year.\n    }\n  });\n  return uzLatn;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/uz-latn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/uz.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/uz.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var uz = moment.defineLocale('uz', {\n    months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n    monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n    weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n    weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n    weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'D MMMM YYYY, dddd HH:mm'\n    },\n    calendar: {\n      sameDay: '[Бугун соат] LT [да]',\n      nextDay: '[Эртага] LT [да]',\n      nextWeek: 'dddd [куни соат] LT [да]',\n      lastDay: '[Кеча соат] LT [да]',\n      lastWeek: '[Утган] dddd [куни соат] LT [да]',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'Якин %s ичида',\n      past: 'Бир неча %s олдин',\n      s: 'фурсат',\n      ss: '%d фурсат',\n      m: 'бир дакика',\n      mm: '%d дакика',\n      h: 'бир соат',\n      hh: '%d соат',\n      d: 'бир кун',\n      dd: '%d кун',\n      M: 'бир ой',\n      MM: '%d ой',\n      y: 'бир йил',\n      yy: '%d йил'\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 7 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return uz;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/uz.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/vi.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/vi.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var vi = moment.defineLocale('vi', {\n    months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n    monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),\n    weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n    weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n    weekdaysParseExact: true,\n    meridiemParse: /sa|ch/i,\n    isPM: function (input) {\n      return /^ch$/i.test(input);\n    },\n    meridiem: function (hours, minutes, isLower) {\n      if (hours < 12) {\n        return isLower ? 'sa' : 'SA';\n      } else {\n        return isLower ? 'ch' : 'CH';\n      }\n    },\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM [năm] YYYY',\n      LLL: 'D MMMM [năm] YYYY HH:mm',\n      LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n      l: 'DD/M/YYYY',\n      ll: 'D MMM YYYY',\n      lll: 'D MMM YYYY HH:mm',\n      llll: 'ddd, D MMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[Hôm nay lúc] LT',\n      nextDay: '[Ngày mai lúc] LT',\n      nextWeek: 'dddd [tuần tới lúc] LT',\n      lastDay: '[Hôm qua lúc] LT',\n      lastWeek: 'dddd [tuần trước lúc] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: '%s tới',\n      past: '%s trước',\n      s: 'vài giây',\n      ss: '%d giây',\n      m: 'một phút',\n      mm: '%d phút',\n      h: 'một giờ',\n      hh: '%d giờ',\n      d: 'một ngày',\n      dd: '%d ngày',\n      w: 'một tuần',\n      ww: '%d tuần',\n      M: 'một tháng',\n      MM: '%d tháng',\n      y: 'một năm',\n      yy: '%d năm'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}/,\n    ordinal: function (number) {\n      return number;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return vi;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/vi.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/x-pseudo.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/x-pseudo.js ***!
  \**********************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var xPseudo = moment.defineLocale('x-pseudo', {\n    months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split('_'),\n    monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),\n    monthsParseExact: true,\n    weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),\n    weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n    weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n    weekdaysParseExact: true,\n    longDateFormat: {\n      LT: 'HH:mm',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY HH:mm',\n      LLLL: 'dddd, D MMMM YYYY HH:mm'\n    },\n    calendar: {\n      sameDay: '[T~ódá~ý át] LT',\n      nextDay: '[T~ómó~rró~w át] LT',\n      nextWeek: 'dddd [át] LT',\n      lastDay: '[Ý~ést~érdá~ý át] LT',\n      lastWeek: '[L~ást] dddd [át] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'í~ñ %s',\n      past: '%s á~gó',\n      s: 'á ~féw ~sécó~ñds',\n      ss: '%d s~écóñ~ds',\n      m: 'á ~míñ~úté',\n      mm: '%d m~íñú~tés',\n      h: 'á~ñ hó~úr',\n      hh: '%d h~óúrs',\n      d: 'á ~dáý',\n      dd: '%d d~áýs',\n      M: 'á ~móñ~th',\n      MM: '%d m~óñt~hs',\n      y: 'á ~ýéár',\n      yy: '%d ý~éárs'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n    ordinal: function (number) {\n      var b = number % 10,\n        output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    },\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return xPseudo;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/x-pseudo.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/yo.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/yo.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var yo = moment.defineLocale('yo', {\n    months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split('_'),\n    monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n    weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n    weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n    weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n    longDateFormat: {\n      LT: 'h:mm A',\n      LTS: 'h:mm:ss A',\n      L: 'DD/MM/YYYY',\n      LL: 'D MMMM YYYY',\n      LLL: 'D MMMM YYYY h:mm A',\n      LLLL: 'dddd, D MMMM YYYY h:mm A'\n    },\n    calendar: {\n      sameDay: '[Ònì ni] LT',\n      nextDay: '[Ọ̀la ni] LT',\n      nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n      lastDay: '[Àna ni] LT',\n      lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n      sameElse: 'L'\n    },\n    relativeTime: {\n      future: 'ní %s',\n      past: '%s kọjá',\n      s: 'ìsẹjú aayá die',\n      ss: 'aayá %d',\n      m: 'ìsẹjú kan',\n      mm: 'ìsẹjú %d',\n      h: 'wákati kan',\n      hh: 'wákati %d',\n      d: 'ọjọ́ kan',\n      dd: 'ọjọ́ %d',\n      M: 'osù kan',\n      MM: 'osù %d',\n      y: 'ọdún kan',\n      yy: 'ọdún %d'\n    },\n    dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n    ordinal: 'ọjọ́ %d',\n    week: {\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return yo;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/yo.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/zh-cn.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/zh-cn.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var zhCn = moment.defineLocale('zh-cn', {\n    months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n    monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n    weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n    weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n    weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY/MM/DD',\n      LL: 'YYYY年M月D日',\n      LLL: 'YYYY年M月D日Ah点mm分',\n      LLLL: 'YYYY年M月D日ddddAh点mm分',\n      l: 'YYYY/M/D',\n      ll: 'YYYY年M月D日',\n      lll: 'YYYY年M月D日 HH:mm',\n      llll: 'YYYY年M月D日dddd HH:mm'\n    },\n    meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n        return hour;\n      } else if (meridiem === '下午' || meridiem === '晚上') {\n        return hour + 12;\n      } else {\n        // '中午'\n        return hour >= 11 ? hour : hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      var hm = hour * 100 + minute;\n      if (hm < 600) {\n        return '凌晨';\n      } else if (hm < 900) {\n        return '早上';\n      } else if (hm < 1130) {\n        return '上午';\n      } else if (hm < 1230) {\n        return '中午';\n      } else if (hm < 1800) {\n        return '下午';\n      } else {\n        return '晚上';\n      }\n    },\n    calendar: {\n      sameDay: '[今天]LT',\n      nextDay: '[明天]LT',\n      nextWeek: function (now) {\n        if (now.week() !== this.week()) {\n          return '[下]dddLT';\n        } else {\n          return '[本]dddLT';\n        }\n      },\n      lastDay: '[昨天]LT',\n      lastWeek: function (now) {\n        if (this.week() !== now.week()) {\n          return '[上]dddLT';\n        } else {\n          return '[本]dddLT';\n        }\n      },\n      sameElse: 'L'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + '日';\n        case 'M':\n          return number + '月';\n        case 'w':\n        case 'W':\n          return number + '周';\n        default:\n          return number;\n      }\n    },\n    relativeTime: {\n      future: '%s后',\n      past: '%s前',\n      s: '几秒',\n      ss: '%d 秒',\n      m: '1 分钟',\n      mm: '%d 分钟',\n      h: '1 小时',\n      hh: '%d 小时',\n      d: '1 天',\n      dd: '%d 天',\n      w: '1 周',\n      ww: '%d 周',\n      M: '1 个月',\n      MM: '%d 个月',\n      y: '1 年',\n      yy: '%d 年'\n    },\n    week: {\n      // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n      dow: 1,\n      // Monday is the first day of the week.\n      doy: 4 // The week that contains Jan 4th is the first week of the year.\n    }\n  });\n  return zhCn;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/zh-cn.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/zh-hk.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/zh-hk.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var zhHk = moment.defineLocale('zh-hk', {\n    months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n    monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n    weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n    weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n    weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY/MM/DD',\n      LL: 'YYYY年M月D日',\n      LLL: 'YYYY年M月D日 HH:mm',\n      LLLL: 'YYYY年M月D日dddd HH:mm',\n      l: 'YYYY/M/D',\n      ll: 'YYYY年M月D日',\n      lll: 'YYYY年M月D日 HH:mm',\n      llll: 'YYYY年M月D日dddd HH:mm'\n    },\n    meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n        return hour;\n      } else if (meridiem === '中午') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === '下午' || meridiem === '晚上') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      var hm = hour * 100 + minute;\n      if (hm < 600) {\n        return '凌晨';\n      } else if (hm < 900) {\n        return '早上';\n      } else if (hm < 1200) {\n        return '上午';\n      } else if (hm === 1200) {\n        return '中午';\n      } else if (hm < 1800) {\n        return '下午';\n      } else {\n        return '晚上';\n      }\n    },\n    calendar: {\n      sameDay: '[今天]LT',\n      nextDay: '[明天]LT',\n      nextWeek: '[下]ddddLT',\n      lastDay: '[昨天]LT',\n      lastWeek: '[上]ddddLT',\n      sameElse: 'L'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + '日';\n        case 'M':\n          return number + '月';\n        case 'w':\n        case 'W':\n          return number + '週';\n        default:\n          return number;\n      }\n    },\n    relativeTime: {\n      future: '%s後',\n      past: '%s前',\n      s: '幾秒',\n      ss: '%d 秒',\n      m: '1 分鐘',\n      mm: '%d 分鐘',\n      h: '1 小時',\n      hh: '%d 小時',\n      d: '1 天',\n      dd: '%d 天',\n      M: '1 個月',\n      MM: '%d 個月',\n      y: '1 年',\n      yy: '%d 年'\n    }\n  });\n  return zhHk;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/zh-hk.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/zh-mo.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/zh-mo.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var zhMo = moment.defineLocale('zh-mo', {\n    months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n    monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n    weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n    weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n    weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'DD/MM/YYYY',\n      LL: 'YYYY年M月D日',\n      LLL: 'YYYY年M月D日 HH:mm',\n      LLLL: 'YYYY年M月D日dddd HH:mm',\n      l: 'D/M/YYYY',\n      ll: 'YYYY年M月D日',\n      lll: 'YYYY年M月D日 HH:mm',\n      llll: 'YYYY年M月D日dddd HH:mm'\n    },\n    meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n        return hour;\n      } else if (meridiem === '中午') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === '下午' || meridiem === '晚上') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      var hm = hour * 100 + minute;\n      if (hm < 600) {\n        return '凌晨';\n      } else if (hm < 900) {\n        return '早上';\n      } else if (hm < 1130) {\n        return '上午';\n      } else if (hm < 1230) {\n        return '中午';\n      } else if (hm < 1800) {\n        return '下午';\n      } else {\n        return '晚上';\n      }\n    },\n    calendar: {\n      sameDay: '[今天] LT',\n      nextDay: '[明天] LT',\n      nextWeek: '[下]dddd LT',\n      lastDay: '[昨天] LT',\n      lastWeek: '[上]dddd LT',\n      sameElse: 'L'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + '日';\n        case 'M':\n          return number + '月';\n        case 'w':\n        case 'W':\n          return number + '週';\n        default:\n          return number;\n      }\n    },\n    relativeTime: {\n      future: '%s內',\n      past: '%s前',\n      s: '幾秒',\n      ss: '%d 秒',\n      m: '1 分鐘',\n      mm: '%d 分鐘',\n      h: '1 小時',\n      hh: '%d 小時',\n      d: '1 天',\n      dd: '%d 天',\n      M: '1 個月',\n      MM: '%d 個月',\n      y: '1 年',\n      yy: '%d 年'\n    }\n  });\n  return zhMo;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/zh-mo.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/locale/zh-tw.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/moment/locale/zh-tw.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {

eval("{//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;\n(function (global, factory) {\n   true ? factory(__webpack_require__(/*! ../moment */ \"../react-ui/node_modules/moment/moment.js\")) : 0;\n})(this, function (moment) {\n  'use strict';\n\n  //! moment.js locale configuration\n  var zhTw = moment.defineLocale('zh-tw', {\n    months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n    monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n    weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n    weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n    weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n    longDateFormat: {\n      LT: 'HH:mm',\n      LTS: 'HH:mm:ss',\n      L: 'YYYY/MM/DD',\n      LL: 'YYYY年M月D日',\n      LLL: 'YYYY年M月D日 HH:mm',\n      LLLL: 'YYYY年M月D日dddd HH:mm',\n      l: 'YYYY/M/D',\n      ll: 'YYYY年M月D日',\n      lll: 'YYYY年M月D日 HH:mm',\n      llll: 'YYYY年M月D日dddd HH:mm'\n    },\n    meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n    meridiemHour: function (hour, meridiem) {\n      if (hour === 12) {\n        hour = 0;\n      }\n      if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n        return hour;\n      } else if (meridiem === '中午') {\n        return hour >= 11 ? hour : hour + 12;\n      } else if (meridiem === '下午' || meridiem === '晚上') {\n        return hour + 12;\n      }\n    },\n    meridiem: function (hour, minute, isLower) {\n      var hm = hour * 100 + minute;\n      if (hm < 600) {\n        return '凌晨';\n      } else if (hm < 900) {\n        return '早上';\n      } else if (hm < 1130) {\n        return '上午';\n      } else if (hm < 1230) {\n        return '中午';\n      } else if (hm < 1800) {\n        return '下午';\n      } else {\n        return '晚上';\n      }\n    },\n    calendar: {\n      sameDay: '[今天] LT',\n      nextDay: '[明天] LT',\n      nextWeek: '[下]dddd LT',\n      lastDay: '[昨天] LT',\n      lastWeek: '[上]dddd LT',\n      sameElse: 'L'\n    },\n    dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n    ordinal: function (number, period) {\n      switch (period) {\n        case 'd':\n        case 'D':\n        case 'DDD':\n          return number + '日';\n        case 'M':\n          return number + '月';\n        case 'w':\n        case 'W':\n          return number + '週';\n        default:\n          return number;\n      }\n    },\n    relativeTime: {\n      future: '%s後',\n      past: '%s前',\n      s: '幾秒',\n      ss: '%d 秒',\n      m: '1 分鐘',\n      mm: '%d 分鐘',\n      h: '1 小時',\n      hh: '%d 小時',\n      d: '1 天',\n      dd: '%d 天',\n      M: '1 個月',\n      MM: '%d 個月',\n      y: '1 年',\n      yy: '%d 年'\n    }\n  });\n  return zhTw;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/locale/zh-tw.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/moment/moment.js":
/*!*************************************************!*\
  !*** ../react-ui/node_modules/moment/moment.js ***!
  \*************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("{/* module decorator */ module = __webpack_require__.nmd(module);\n//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;\n(function (global, factory) {\n   true ? module.exports = factory() : 0;\n})(this, function () {\n  'use strict';\n\n  var hookCallback;\n  function hooks() {\n    return hookCallback.apply(null, arguments);\n  }\n\n  // This is done to register the method called with moment()\n  // without creating circular dependencies.\n  function setHookCallback(callback) {\n    hookCallback = callback;\n  }\n  function isArray(input) {\n    return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n  }\n  function isObject(input) {\n    // IE8 will treat undefined and null as object if it wasn't for\n    // input != null\n    return input != null && Object.prototype.toString.call(input) === '[object Object]';\n  }\n  function hasOwnProp(a, b) {\n    return Object.prototype.hasOwnProperty.call(a, b);\n  }\n  function isObjectEmpty(obj) {\n    if (Object.getOwnPropertyNames) {\n      return Object.getOwnPropertyNames(obj).length === 0;\n    } else {\n      var k;\n      for (k in obj) {\n        if (hasOwnProp(obj, k)) {\n          return false;\n        }\n      }\n      return true;\n    }\n  }\n  function isUndefined(input) {\n    return input === void 0;\n  }\n  function isNumber(input) {\n    return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n  }\n  function isDate(input) {\n    return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n  }\n  function map(arr, fn) {\n    var res = [],\n      i,\n      arrLen = arr.length;\n    for (i = 0; i < arrLen; ++i) {\n      res.push(fn(arr[i], i));\n    }\n    return res;\n  }\n  function extend(a, b) {\n    for (var i in b) {\n      if (hasOwnProp(b, i)) {\n        a[i] = b[i];\n      }\n    }\n    if (hasOwnProp(b, 'toString')) {\n      a.toString = b.toString;\n    }\n    if (hasOwnProp(b, 'valueOf')) {\n      a.valueOf = b.valueOf;\n    }\n    return a;\n  }\n  function createUTC(input, format, locale, strict) {\n    return createLocalOrUTC(input, format, locale, strict, true).utc();\n  }\n  function defaultParsingFlags() {\n    // We need to deep clone this object.\n    return {\n      empty: false,\n      unusedTokens: [],\n      unusedInput: [],\n      overflow: -2,\n      charsLeftOver: 0,\n      nullInput: false,\n      invalidEra: null,\n      invalidMonth: null,\n      invalidFormat: false,\n      userInvalidated: false,\n      iso: false,\n      parsedDateParts: [],\n      era: null,\n      meridiem: null,\n      rfc2822: false,\n      weekdayMismatch: false\n    };\n  }\n  function getParsingFlags(m) {\n    if (m._pf == null) {\n      m._pf = defaultParsingFlags();\n    }\n    return m._pf;\n  }\n  var some;\n  if (Array.prototype.some) {\n    some = Array.prototype.some;\n  } else {\n    some = function (fun) {\n      var t = Object(this),\n        len = t.length >>> 0,\n        i;\n      for (i = 0; i < len; i++) {\n        if (i in t && fun.call(this, t[i], i, t)) {\n          return true;\n        }\n      }\n      return false;\n    };\n  }\n  function isValid(m) {\n    var flags = null,\n      parsedParts = false,\n      isNowValid = m._d && !isNaN(m._d.getTime());\n    if (isNowValid) {\n      flags = getParsingFlags(m);\n      parsedParts = some.call(flags.parsedDateParts, function (i) {\n        return i != null;\n      });\n      isNowValid = flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n      if (m._strict) {\n        isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n      }\n    }\n    if (Object.isFrozen == null || !Object.isFrozen(m)) {\n      m._isValid = isNowValid;\n    } else {\n      return isNowValid;\n    }\n    return m._isValid;\n  }\n  function createInvalid(flags) {\n    var m = createUTC(NaN);\n    if (flags != null) {\n      extend(getParsingFlags(m), flags);\n    } else {\n      getParsingFlags(m).userInvalidated = true;\n    }\n    return m;\n  }\n\n  // Plugins that add properties should also add the key here (null value),\n  // so we can properly clone ourselves.\n  var momentProperties = hooks.momentProperties = [],\n    updateInProgress = false;\n  function copyConfig(to, from) {\n    var i,\n      prop,\n      val,\n      momentPropertiesLen = momentProperties.length;\n    if (!isUndefined(from._isAMomentObject)) {\n      to._isAMomentObject = from._isAMomentObject;\n    }\n    if (!isUndefined(from._i)) {\n      to._i = from._i;\n    }\n    if (!isUndefined(from._f)) {\n      to._f = from._f;\n    }\n    if (!isUndefined(from._l)) {\n      to._l = from._l;\n    }\n    if (!isUndefined(from._strict)) {\n      to._strict = from._strict;\n    }\n    if (!isUndefined(from._tzm)) {\n      to._tzm = from._tzm;\n    }\n    if (!isUndefined(from._isUTC)) {\n      to._isUTC = from._isUTC;\n    }\n    if (!isUndefined(from._offset)) {\n      to._offset = from._offset;\n    }\n    if (!isUndefined(from._pf)) {\n      to._pf = getParsingFlags(from);\n    }\n    if (!isUndefined(from._locale)) {\n      to._locale = from._locale;\n    }\n    if (momentPropertiesLen > 0) {\n      for (i = 0; i < momentPropertiesLen; i++) {\n        prop = momentProperties[i];\n        val = from[prop];\n        if (!isUndefined(val)) {\n          to[prop] = val;\n        }\n      }\n    }\n    return to;\n  }\n\n  // Moment prototype object\n  function Moment(config) {\n    copyConfig(this, config);\n    this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n    if (!this.isValid()) {\n      this._d = new Date(NaN);\n    }\n    // Prevent infinite loop in case updateOffset creates new moment\n    // objects.\n    if (updateInProgress === false) {\n      updateInProgress = true;\n      hooks.updateOffset(this);\n      updateInProgress = false;\n    }\n  }\n  function isMoment(obj) {\n    return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n  }\n  function warn(msg) {\n    if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n      console.warn('Deprecation warning: ' + msg);\n    }\n  }\n  function deprecate(msg, fn) {\n    var firstTime = true;\n    return extend(function () {\n      if (hooks.deprecationHandler != null) {\n        hooks.deprecationHandler(null, msg);\n      }\n      if (firstTime) {\n        var args = [],\n          arg,\n          i,\n          key,\n          argLen = arguments.length;\n        for (i = 0; i < argLen; i++) {\n          arg = '';\n          if (typeof arguments[i] === 'object') {\n            arg += '\\n[' + i + '] ';\n            for (key in arguments[0]) {\n              if (hasOwnProp(arguments[0], key)) {\n                arg += key + ': ' + arguments[0][key] + ', ';\n              }\n            }\n            arg = arg.slice(0, -2); // Remove trailing comma and space\n          } else {\n            arg = arguments[i];\n          }\n          args.push(arg);\n        }\n        warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n        firstTime = false;\n      }\n      return fn.apply(this, arguments);\n    }, fn);\n  }\n  var deprecations = {};\n  function deprecateSimple(name, msg) {\n    if (hooks.deprecationHandler != null) {\n      hooks.deprecationHandler(name, msg);\n    }\n    if (!deprecations[name]) {\n      warn(msg);\n      deprecations[name] = true;\n    }\n  }\n  hooks.suppressDeprecationWarnings = false;\n  hooks.deprecationHandler = null;\n  function isFunction(input) {\n    return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n  }\n  function set(config) {\n    var prop, i;\n    for (i in config) {\n      if (hasOwnProp(config, i)) {\n        prop = config[i];\n        if (isFunction(prop)) {\n          this[i] = prop;\n        } else {\n          this['_' + i] = prop;\n        }\n      }\n    }\n    this._config = config;\n    // Lenient ordinal parsing accepts just a number in addition to\n    // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n    // TODO: Remove \"ordinalParse\" fallback in next major release.\n    this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n  }\n  function mergeConfigs(parentConfig, childConfig) {\n    var res = extend({}, parentConfig),\n      prop;\n    for (prop in childConfig) {\n      if (hasOwnProp(childConfig, prop)) {\n        if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n          res[prop] = {};\n          extend(res[prop], parentConfig[prop]);\n          extend(res[prop], childConfig[prop]);\n        } else if (childConfig[prop] != null) {\n          res[prop] = childConfig[prop];\n        } else {\n          delete res[prop];\n        }\n      }\n    }\n    for (prop in parentConfig) {\n      if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n        // make sure changes to properties don't modify parent config\n        res[prop] = extend({}, res[prop]);\n      }\n    }\n    return res;\n  }\n  function Locale(config) {\n    if (config != null) {\n      this.set(config);\n    }\n  }\n  var keys;\n  if (Object.keys) {\n    keys = Object.keys;\n  } else {\n    keys = function (obj) {\n      var i,\n        res = [];\n      for (i in obj) {\n        if (hasOwnProp(obj, i)) {\n          res.push(i);\n        }\n      }\n      return res;\n    };\n  }\n  var defaultCalendar = {\n    sameDay: '[Today at] LT',\n    nextDay: '[Tomorrow at] LT',\n    nextWeek: 'dddd [at] LT',\n    lastDay: '[Yesterday at] LT',\n    lastWeek: '[Last] dddd [at] LT',\n    sameElse: 'L'\n  };\n  function calendar(key, mom, now) {\n    var output = this._calendar[key] || this._calendar['sameElse'];\n    return isFunction(output) ? output.call(mom, now) : output;\n  }\n  function zeroFill(number, targetLength, forceSign) {\n    var absNumber = '' + Math.abs(number),\n      zerosToFill = targetLength - absNumber.length,\n      sign = number >= 0;\n    return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n  }\n  var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n    localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n    formatFunctions = {},\n    formatTokenFunctions = {};\n\n  // token:    'M'\n  // padded:   ['MM', 2]\n  // ordinal:  'Mo'\n  // callback: function () { this.month() + 1 }\n  function addFormatToken(token, padded, ordinal, callback) {\n    var func = callback;\n    if (typeof callback === 'string') {\n      func = function () {\n        return this[callback]();\n      };\n    }\n    if (token) {\n      formatTokenFunctions[token] = func;\n    }\n    if (padded) {\n      formatTokenFunctions[padded[0]] = function () {\n        return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n      };\n    }\n    if (ordinal) {\n      formatTokenFunctions[ordinal] = function () {\n        return this.localeData().ordinal(func.apply(this, arguments), token);\n      };\n    }\n  }\n  function removeFormattingTokens(input) {\n    if (input.match(/\\[[\\s\\S]/)) {\n      return input.replace(/^\\[|\\]$/g, '');\n    }\n    return input.replace(/\\\\/g, '');\n  }\n  function makeFormatFunction(format) {\n    var array = format.match(formattingTokens),\n      i,\n      length;\n    for (i = 0, length = array.length; i < length; i++) {\n      if (formatTokenFunctions[array[i]]) {\n        array[i] = formatTokenFunctions[array[i]];\n      } else {\n        array[i] = removeFormattingTokens(array[i]);\n      }\n    }\n    return function (mom) {\n      var output = '',\n        i;\n      for (i = 0; i < length; i++) {\n        output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n      }\n      return output;\n    };\n  }\n\n  // format date using native date object\n  function formatMoment(m, format) {\n    if (!m.isValid()) {\n      return m.localeData().invalidDate();\n    }\n    format = expandFormat(format, m.localeData());\n    formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n    return formatFunctions[format](m);\n  }\n  function expandFormat(format, locale) {\n    var i = 5;\n    function replaceLongDateFormatTokens(input) {\n      return locale.longDateFormat(input) || input;\n    }\n    localFormattingTokens.lastIndex = 0;\n    while (i >= 0 && localFormattingTokens.test(format)) {\n      format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n      localFormattingTokens.lastIndex = 0;\n      i -= 1;\n    }\n    return format;\n  }\n  var defaultLongDateFormat = {\n    LTS: 'h:mm:ss A',\n    LT: 'h:mm A',\n    L: 'MM/DD/YYYY',\n    LL: 'MMMM D, YYYY',\n    LLL: 'MMMM D, YYYY h:mm A',\n    LLLL: 'dddd, MMMM D, YYYY h:mm A'\n  };\n  function longDateFormat(key) {\n    var format = this._longDateFormat[key],\n      formatUpper = this._longDateFormat[key.toUpperCase()];\n    if (format || !formatUpper) {\n      return format;\n    }\n    this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n      if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n        return tok.slice(1);\n      }\n      return tok;\n    }).join('');\n    return this._longDateFormat[key];\n  }\n  var defaultInvalidDate = 'Invalid date';\n  function invalidDate() {\n    return this._invalidDate;\n  }\n  var defaultOrdinal = '%d',\n    defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n  function ordinal(number) {\n    return this._ordinal.replace('%d', number);\n  }\n  var defaultRelativeTime = {\n    future: 'in %s',\n    past: '%s ago',\n    s: 'a few seconds',\n    ss: '%d seconds',\n    m: 'a minute',\n    mm: '%d minutes',\n    h: 'an hour',\n    hh: '%d hours',\n    d: 'a day',\n    dd: '%d days',\n    w: 'a week',\n    ww: '%d weeks',\n    M: 'a month',\n    MM: '%d months',\n    y: 'a year',\n    yy: '%d years'\n  };\n  function relativeTime(number, withoutSuffix, string, isFuture) {\n    var output = this._relativeTime[string];\n    return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n  }\n  function pastFuture(diff, output) {\n    var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n    return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n  }\n  var aliases = {\n    D: 'date',\n    dates: 'date',\n    date: 'date',\n    d: 'day',\n    days: 'day',\n    day: 'day',\n    e: 'weekday',\n    weekdays: 'weekday',\n    weekday: 'weekday',\n    E: 'isoWeekday',\n    isoweekdays: 'isoWeekday',\n    isoweekday: 'isoWeekday',\n    DDD: 'dayOfYear',\n    dayofyears: 'dayOfYear',\n    dayofyear: 'dayOfYear',\n    h: 'hour',\n    hours: 'hour',\n    hour: 'hour',\n    ms: 'millisecond',\n    milliseconds: 'millisecond',\n    millisecond: 'millisecond',\n    m: 'minute',\n    minutes: 'minute',\n    minute: 'minute',\n    M: 'month',\n    months: 'month',\n    month: 'month',\n    Q: 'quarter',\n    quarters: 'quarter',\n    quarter: 'quarter',\n    s: 'second',\n    seconds: 'second',\n    second: 'second',\n    gg: 'weekYear',\n    weekyears: 'weekYear',\n    weekyear: 'weekYear',\n    GG: 'isoWeekYear',\n    isoweekyears: 'isoWeekYear',\n    isoweekyear: 'isoWeekYear',\n    w: 'week',\n    weeks: 'week',\n    week: 'week',\n    W: 'isoWeek',\n    isoweeks: 'isoWeek',\n    isoweek: 'isoWeek',\n    y: 'year',\n    years: 'year',\n    year: 'year'\n  };\n  function normalizeUnits(units) {\n    return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n  }\n  function normalizeObjectUnits(inputObject) {\n    var normalizedInput = {},\n      normalizedProp,\n      prop;\n    for (prop in inputObject) {\n      if (hasOwnProp(inputObject, prop)) {\n        normalizedProp = normalizeUnits(prop);\n        if (normalizedProp) {\n          normalizedInput[normalizedProp] = inputObject[prop];\n        }\n      }\n    }\n    return normalizedInput;\n  }\n  var priorities = {\n    date: 9,\n    day: 11,\n    weekday: 11,\n    isoWeekday: 11,\n    dayOfYear: 4,\n    hour: 13,\n    millisecond: 16,\n    minute: 14,\n    month: 8,\n    quarter: 7,\n    second: 15,\n    weekYear: 1,\n    isoWeekYear: 1,\n    week: 5,\n    isoWeek: 5,\n    year: 1\n  };\n  function getPrioritizedUnits(unitsObj) {\n    var units = [],\n      u;\n    for (u in unitsObj) {\n      if (hasOwnProp(unitsObj, u)) {\n        units.push({\n          unit: u,\n          priority: priorities[u]\n        });\n      }\n    }\n    units.sort(function (a, b) {\n      return a.priority - b.priority;\n    });\n    return units;\n  }\n  var match1 = /\\d/,\n    //       0 - 9\n    match2 = /\\d\\d/,\n    //      00 - 99\n    match3 = /\\d{3}/,\n    //     000 - 999\n    match4 = /\\d{4}/,\n    //    0000 - 9999\n    match6 = /[+-]?\\d{6}/,\n    // -999999 - 999999\n    match1to2 = /\\d\\d?/,\n    //       0 - 99\n    match3to4 = /\\d\\d\\d\\d?/,\n    //     999 - 9999\n    match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n    //   99999 - 999999\n    match1to3 = /\\d{1,3}/,\n    //       0 - 999\n    match1to4 = /\\d{1,4}/,\n    //       0 - 9999\n    match1to6 = /[+-]?\\d{1,6}/,\n    // -999999 - 999999\n    matchUnsigned = /\\d+/,\n    //       0 - inf\n    matchSigned = /[+-]?\\d+/,\n    //    -inf - inf\n    matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n    // +00:00 -00:00 +0000 -0000 or Z\n    matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n    // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n    matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n    // 123456789 123456789.123\n    // any word (or two) characters or numbers including two/three word month in arabic.\n    // includes scottish gaelic two word and hyphenated months\n    matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n    match1to2NoLeadingZero = /^[1-9]\\d?/,\n    //         1-99\n    match1to2HasZero = /^([1-9]\\d|\\d)/,\n    //           0-99\n    regexes;\n  regexes = {};\n  function addRegexToken(token, regex, strictRegex) {\n    regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n      return isStrict && strictRegex ? strictRegex : regex;\n    };\n  }\n  function getParseRegexForToken(token, config) {\n    if (!hasOwnProp(regexes, token)) {\n      return new RegExp(unescapeFormat(token));\n    }\n    return regexes[token](config._strict, config._locale);\n  }\n\n  // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n  function unescapeFormat(s) {\n    return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n      return p1 || p2 || p3 || p4;\n    }));\n  }\n  function regexEscape(s) {\n    return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n  }\n  function absFloor(number) {\n    if (number < 0) {\n      // -0 -> 0\n      return Math.ceil(number) || 0;\n    } else {\n      return Math.floor(number);\n    }\n  }\n  function toInt(argumentForCoercion) {\n    var coercedNumber = +argumentForCoercion,\n      value = 0;\n    if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n      value = absFloor(coercedNumber);\n    }\n    return value;\n  }\n  var tokens = {};\n  function addParseToken(token, callback) {\n    var i,\n      func = callback,\n      tokenLen;\n    if (typeof token === 'string') {\n      token = [token];\n    }\n    if (isNumber(callback)) {\n      func = function (input, array) {\n        array[callback] = toInt(input);\n      };\n    }\n    tokenLen = token.length;\n    for (i = 0; i < tokenLen; i++) {\n      tokens[token[i]] = func;\n    }\n  }\n  function addWeekParseToken(token, callback) {\n    addParseToken(token, function (input, array, config, token) {\n      config._w = config._w || {};\n      callback(input, config._w, config, token);\n    });\n  }\n  function addTimeToArrayFromToken(token, input, config) {\n    if (input != null && hasOwnProp(tokens, token)) {\n      tokens[token](input, config._a, config, token);\n    }\n  }\n  function isLeapYear(year) {\n    return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n  }\n  var YEAR = 0,\n    MONTH = 1,\n    DATE = 2,\n    HOUR = 3,\n    MINUTE = 4,\n    SECOND = 5,\n    MILLISECOND = 6,\n    WEEK = 7,\n    WEEKDAY = 8;\n\n  // FORMATTING\n\n  addFormatToken('Y', 0, 0, function () {\n    var y = this.year();\n    return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n  });\n  addFormatToken(0, ['YY', 2], 0, function () {\n    return this.year() % 100;\n  });\n  addFormatToken(0, ['YYYY', 4], 0, 'year');\n  addFormatToken(0, ['YYYYY', 5], 0, 'year');\n  addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n  // PARSING\n\n  addRegexToken('Y', matchSigned);\n  addRegexToken('YY', match1to2, match2);\n  addRegexToken('YYYY', match1to4, match4);\n  addRegexToken('YYYYY', match1to6, match6);\n  addRegexToken('YYYYYY', match1to6, match6);\n  addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n  addParseToken('YYYY', function (input, array) {\n    array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n  });\n  addParseToken('YY', function (input, array) {\n    array[YEAR] = hooks.parseTwoDigitYear(input);\n  });\n  addParseToken('Y', function (input, array) {\n    array[YEAR] = parseInt(input, 10);\n  });\n\n  // HELPERS\n\n  function daysInYear(year) {\n    return isLeapYear(year) ? 366 : 365;\n  }\n\n  // HOOKS\n\n  hooks.parseTwoDigitYear = function (input) {\n    return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n  };\n\n  // MOMENTS\n\n  var getSetYear = makeGetSet('FullYear', true);\n  function getIsLeapYear() {\n    return isLeapYear(this.year());\n  }\n  function makeGetSet(unit, keepTime) {\n    return function (value) {\n      if (value != null) {\n        set$1(this, unit, value);\n        hooks.updateOffset(this, keepTime);\n        return this;\n      } else {\n        return get(this, unit);\n      }\n    };\n  }\n  function get(mom, unit) {\n    if (!mom.isValid()) {\n      return NaN;\n    }\n    var d = mom._d,\n      isUTC = mom._isUTC;\n    switch (unit) {\n      case 'Milliseconds':\n        return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n      case 'Seconds':\n        return isUTC ? d.getUTCSeconds() : d.getSeconds();\n      case 'Minutes':\n        return isUTC ? d.getUTCMinutes() : d.getMinutes();\n      case 'Hours':\n        return isUTC ? d.getUTCHours() : d.getHours();\n      case 'Date':\n        return isUTC ? d.getUTCDate() : d.getDate();\n      case 'Day':\n        return isUTC ? d.getUTCDay() : d.getDay();\n      case 'Month':\n        return isUTC ? d.getUTCMonth() : d.getMonth();\n      case 'FullYear':\n        return isUTC ? d.getUTCFullYear() : d.getFullYear();\n      default:\n        return NaN;\n      // Just in case\n    }\n  }\n  function set$1(mom, unit, value) {\n    var d, isUTC, year, month, date;\n    if (!mom.isValid() || isNaN(value)) {\n      return;\n    }\n    d = mom._d;\n    isUTC = mom._isUTC;\n    switch (unit) {\n      case 'Milliseconds':\n        return void (isUTC ? d.setUTCMilliseconds(value) : d.setMilliseconds(value));\n      case 'Seconds':\n        return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n      case 'Minutes':\n        return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n      case 'Hours':\n        return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n      case 'Date':\n        return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n      // case 'Day': // Not real\n      //    return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n      // case 'Month': // Not used because we need to pass two variables\n      //     return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n      case 'FullYear':\n        break;\n      // See below ...\n      default:\n        return;\n      // Just in case\n    }\n    year = value;\n    month = mom.month();\n    date = mom.date();\n    date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n    void (isUTC ? d.setUTCFullYear(year, month, date) : d.setFullYear(year, month, date));\n  }\n\n  // MOMENTS\n\n  function stringGet(units) {\n    units = normalizeUnits(units);\n    if (isFunction(this[units])) {\n      return this[units]();\n    }\n    return this;\n  }\n  function stringSet(units, value) {\n    if (typeof units === 'object') {\n      units = normalizeObjectUnits(units);\n      var prioritized = getPrioritizedUnits(units),\n        i,\n        prioritizedLen = prioritized.length;\n      for (i = 0; i < prioritizedLen; i++) {\n        this[prioritized[i].unit](units[prioritized[i].unit]);\n      }\n    } else {\n      units = normalizeUnits(units);\n      if (isFunction(this[units])) {\n        return this[units](value);\n      }\n    }\n    return this;\n  }\n  function mod(n, x) {\n    return (n % x + x) % x;\n  }\n  var indexOf;\n  if (Array.prototype.indexOf) {\n    indexOf = Array.prototype.indexOf;\n  } else {\n    indexOf = function (o) {\n      // I know\n      var i;\n      for (i = 0; i < this.length; ++i) {\n        if (this[i] === o) {\n          return i;\n        }\n      }\n      return -1;\n    };\n  }\n  function daysInMonth(year, month) {\n    if (isNaN(year) || isNaN(month)) {\n      return NaN;\n    }\n    var modMonth = mod(month, 12);\n    year += (month - modMonth) / 12;\n    return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n  }\n\n  // FORMATTING\n\n  addFormatToken('M', ['MM', 2], 'Mo', function () {\n    return this.month() + 1;\n  });\n  addFormatToken('MMM', 0, 0, function (format) {\n    return this.localeData().monthsShort(this, format);\n  });\n  addFormatToken('MMMM', 0, 0, function (format) {\n    return this.localeData().months(this, format);\n  });\n\n  // PARSING\n\n  addRegexToken('M', match1to2, match1to2NoLeadingZero);\n  addRegexToken('MM', match1to2, match2);\n  addRegexToken('MMM', function (isStrict, locale) {\n    return locale.monthsShortRegex(isStrict);\n  });\n  addRegexToken('MMMM', function (isStrict, locale) {\n    return locale.monthsRegex(isStrict);\n  });\n  addParseToken(['M', 'MM'], function (input, array) {\n    array[MONTH] = toInt(input) - 1;\n  });\n  addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n    var month = config._locale.monthsParse(input, token, config._strict);\n    // if we didn't find a month name, mark the date as invalid.\n    if (month != null) {\n      array[MONTH] = month;\n    } else {\n      getParsingFlags(config).invalidMonth = input;\n    }\n  });\n\n  // LOCALES\n\n  var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n    defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n    MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n    defaultMonthsShortRegex = matchWord,\n    defaultMonthsRegex = matchWord;\n  function localeMonths(m, format) {\n    if (!m) {\n      return isArray(this._months) ? this._months : this._months['standalone'];\n    }\n    return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n  }\n  function localeMonthsShort(m, format) {\n    if (!m) {\n      return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n    }\n    return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n  }\n  function handleStrictParse(monthName, format, strict) {\n    var i,\n      ii,\n      mom,\n      llc = monthName.toLocaleLowerCase();\n    if (!this._monthsParse) {\n      // this is not used\n      this._monthsParse = [];\n      this._longMonthsParse = [];\n      this._shortMonthsParse = [];\n      for (i = 0; i < 12; ++i) {\n        mom = createUTC([2000, i]);\n        this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n        this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n      }\n    }\n    if (strict) {\n      if (format === 'MMM') {\n        ii = indexOf.call(this._shortMonthsParse, llc);\n        return ii !== -1 ? ii : null;\n      } else {\n        ii = indexOf.call(this._longMonthsParse, llc);\n        return ii !== -1 ? ii : null;\n      }\n    } else {\n      if (format === 'MMM') {\n        ii = indexOf.call(this._shortMonthsParse, llc);\n        if (ii !== -1) {\n          return ii;\n        }\n        ii = indexOf.call(this._longMonthsParse, llc);\n        return ii !== -1 ? ii : null;\n      } else {\n        ii = indexOf.call(this._longMonthsParse, llc);\n        if (ii !== -1) {\n          return ii;\n        }\n        ii = indexOf.call(this._shortMonthsParse, llc);\n        return ii !== -1 ? ii : null;\n      }\n    }\n  }\n  function localeMonthsParse(monthName, format, strict) {\n    var i, mom, regex;\n    if (this._monthsParseExact) {\n      return handleStrictParse.call(this, monthName, format, strict);\n    }\n    if (!this._monthsParse) {\n      this._monthsParse = [];\n      this._longMonthsParse = [];\n      this._shortMonthsParse = [];\n    }\n\n    // TODO: add sorting\n    // Sorting makes sure if one month (or abbr) is a prefix of another\n    // see sorting in computeMonthsParse\n    for (i = 0; i < 12; i++) {\n      // make the regex if we don't have it already\n      mom = createUTC([2000, i]);\n      if (strict && !this._longMonthsParse[i]) {\n        this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n        this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n      }\n      if (!strict && !this._monthsParse[i]) {\n        regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n        this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n      }\n      // test the regex\n      if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n        return i;\n      } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n        return i;\n      } else if (!strict && this._monthsParse[i].test(monthName)) {\n        return i;\n      }\n    }\n  }\n\n  // MOMENTS\n\n  function setMonth(mom, value) {\n    if (!mom.isValid()) {\n      // No op\n      return mom;\n    }\n    if (typeof value === 'string') {\n      if (/^\\d+$/.test(value)) {\n        value = toInt(value);\n      } else {\n        value = mom.localeData().monthsParse(value);\n        // TODO: Another silent failure?\n        if (!isNumber(value)) {\n          return mom;\n        }\n      }\n    }\n    var month = value,\n      date = mom.date();\n    date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n    void (mom._isUTC ? mom._d.setUTCMonth(month, date) : mom._d.setMonth(month, date));\n    return mom;\n  }\n  function getSetMonth(value) {\n    if (value != null) {\n      setMonth(this, value);\n      hooks.updateOffset(this, true);\n      return this;\n    } else {\n      return get(this, 'Month');\n    }\n  }\n  function getDaysInMonth() {\n    return daysInMonth(this.year(), this.month());\n  }\n  function monthsShortRegex(isStrict) {\n    if (this._monthsParseExact) {\n      if (!hasOwnProp(this, '_monthsRegex')) {\n        computeMonthsParse.call(this);\n      }\n      if (isStrict) {\n        return this._monthsShortStrictRegex;\n      } else {\n        return this._monthsShortRegex;\n      }\n    } else {\n      if (!hasOwnProp(this, '_monthsShortRegex')) {\n        this._monthsShortRegex = defaultMonthsShortRegex;\n      }\n      return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n    }\n  }\n  function monthsRegex(isStrict) {\n    if (this._monthsParseExact) {\n      if (!hasOwnProp(this, '_monthsRegex')) {\n        computeMonthsParse.call(this);\n      }\n      if (isStrict) {\n        return this._monthsStrictRegex;\n      } else {\n        return this._monthsRegex;\n      }\n    } else {\n      if (!hasOwnProp(this, '_monthsRegex')) {\n        this._monthsRegex = defaultMonthsRegex;\n      }\n      return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n    }\n  }\n  function computeMonthsParse() {\n    function cmpLenRev(a, b) {\n      return b.length - a.length;\n    }\n    var shortPieces = [],\n      longPieces = [],\n      mixedPieces = [],\n      i,\n      mom,\n      shortP,\n      longP;\n    for (i = 0; i < 12; i++) {\n      // make the regex if we don't have it already\n      mom = createUTC([2000, i]);\n      shortP = regexEscape(this.monthsShort(mom, ''));\n      longP = regexEscape(this.months(mom, ''));\n      shortPieces.push(shortP);\n      longPieces.push(longP);\n      mixedPieces.push(longP);\n      mixedPieces.push(shortP);\n    }\n    // Sorting makes sure if one month (or abbr) is a prefix of another it\n    // will match the longer piece.\n    shortPieces.sort(cmpLenRev);\n    longPieces.sort(cmpLenRev);\n    mixedPieces.sort(cmpLenRev);\n    this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n    this._monthsShortRegex = this._monthsRegex;\n    this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n    this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n  }\n  function createDate(y, m, d, h, M, s, ms) {\n    // can't just apply() to create a date:\n    // https://stackoverflow.com/q/181348\n    var date;\n    // the date constructor remaps years 0-99 to 1900-1999\n    if (y < 100 && y >= 0) {\n      // preserve leap years using a full 400 year cycle, then reset\n      date = new Date(y + 400, m, d, h, M, s, ms);\n      if (isFinite(date.getFullYear())) {\n        date.setFullYear(y);\n      }\n    } else {\n      date = new Date(y, m, d, h, M, s, ms);\n    }\n    return date;\n  }\n  function createUTCDate(y) {\n    var date, args;\n    // the Date.UTC function remaps years 0-99 to 1900-1999\n    if (y < 100 && y >= 0) {\n      args = Array.prototype.slice.call(arguments);\n      // preserve leap years using a full 400 year cycle, then reset\n      args[0] = y + 400;\n      date = new Date(Date.UTC.apply(null, args));\n      if (isFinite(date.getUTCFullYear())) {\n        date.setUTCFullYear(y);\n      }\n    } else {\n      date = new Date(Date.UTC.apply(null, arguments));\n    }\n    return date;\n  }\n\n  // start-of-first-week - start-of-year\n  function firstWeekOffset(year, dow, doy) {\n    var\n      // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n      fwd = 7 + dow - doy,\n      // first-week day local weekday -- which local weekday is fwd\n      fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n    return -fwdlw + fwd - 1;\n  }\n\n  // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n  function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n    var localWeekday = (7 + weekday - dow) % 7,\n      weekOffset = firstWeekOffset(year, dow, doy),\n      dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n      resYear,\n      resDayOfYear;\n    if (dayOfYear <= 0) {\n      resYear = year - 1;\n      resDayOfYear = daysInYear(resYear) + dayOfYear;\n    } else if (dayOfYear > daysInYear(year)) {\n      resYear = year + 1;\n      resDayOfYear = dayOfYear - daysInYear(year);\n    } else {\n      resYear = year;\n      resDayOfYear = dayOfYear;\n    }\n    return {\n      year: resYear,\n      dayOfYear: resDayOfYear\n    };\n  }\n  function weekOfYear(mom, dow, doy) {\n    var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n      week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n      resWeek,\n      resYear;\n    if (week < 1) {\n      resYear = mom.year() - 1;\n      resWeek = week + weeksInYear(resYear, dow, doy);\n    } else if (week > weeksInYear(mom.year(), dow, doy)) {\n      resWeek = week - weeksInYear(mom.year(), dow, doy);\n      resYear = mom.year() + 1;\n    } else {\n      resYear = mom.year();\n      resWeek = week;\n    }\n    return {\n      week: resWeek,\n      year: resYear\n    };\n  }\n  function weeksInYear(year, dow, doy) {\n    var weekOffset = firstWeekOffset(year, dow, doy),\n      weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n    return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n  }\n\n  // FORMATTING\n\n  addFormatToken('w', ['ww', 2], 'wo', 'week');\n  addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n  // PARSING\n\n  addRegexToken('w', match1to2, match1to2NoLeadingZero);\n  addRegexToken('ww', match1to2, match2);\n  addRegexToken('W', match1to2, match1to2NoLeadingZero);\n  addRegexToken('WW', match1to2, match2);\n  addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n    week[token.substr(0, 1)] = toInt(input);\n  });\n\n  // HELPERS\n\n  // LOCALES\n\n  function localeWeek(mom) {\n    return weekOfYear(mom, this._week.dow, this._week.doy).week;\n  }\n  var defaultLocaleWeek = {\n    dow: 0,\n    // Sunday is the first day of the week.\n    doy: 6 // The week that contains Jan 6th is the first week of the year.\n  };\n  function localeFirstDayOfWeek() {\n    return this._week.dow;\n  }\n  function localeFirstDayOfYear() {\n    return this._week.doy;\n  }\n\n  // MOMENTS\n\n  function getSetWeek(input) {\n    var week = this.localeData().week(this);\n    return input == null ? week : this.add((input - week) * 7, 'd');\n  }\n  function getSetISOWeek(input) {\n    var week = weekOfYear(this, 1, 4).week;\n    return input == null ? week : this.add((input - week) * 7, 'd');\n  }\n\n  // FORMATTING\n\n  addFormatToken('d', 0, 'do', 'day');\n  addFormatToken('dd', 0, 0, function (format) {\n    return this.localeData().weekdaysMin(this, format);\n  });\n  addFormatToken('ddd', 0, 0, function (format) {\n    return this.localeData().weekdaysShort(this, format);\n  });\n  addFormatToken('dddd', 0, 0, function (format) {\n    return this.localeData().weekdays(this, format);\n  });\n  addFormatToken('e', 0, 0, 'weekday');\n  addFormatToken('E', 0, 0, 'isoWeekday');\n\n  // PARSING\n\n  addRegexToken('d', match1to2);\n  addRegexToken('e', match1to2);\n  addRegexToken('E', match1to2);\n  addRegexToken('dd', function (isStrict, locale) {\n    return locale.weekdaysMinRegex(isStrict);\n  });\n  addRegexToken('ddd', function (isStrict, locale) {\n    return locale.weekdaysShortRegex(isStrict);\n  });\n  addRegexToken('dddd', function (isStrict, locale) {\n    return locale.weekdaysRegex(isStrict);\n  });\n  addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n    var weekday = config._locale.weekdaysParse(input, token, config._strict);\n    // if we didn't get a weekday name, mark the date as invalid\n    if (weekday != null) {\n      week.d = weekday;\n    } else {\n      getParsingFlags(config).invalidWeekday = input;\n    }\n  });\n  addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n    week[token] = toInt(input);\n  });\n\n  // HELPERS\n\n  function parseWeekday(input, locale) {\n    if (typeof input !== 'string') {\n      return input;\n    }\n    if (!isNaN(input)) {\n      return parseInt(input, 10);\n    }\n    input = locale.weekdaysParse(input);\n    if (typeof input === 'number') {\n      return input;\n    }\n    return null;\n  }\n  function parseIsoWeekday(input, locale) {\n    if (typeof input === 'string') {\n      return locale.weekdaysParse(input) % 7 || 7;\n    }\n    return isNaN(input) ? null : input;\n  }\n\n  // LOCALES\n  function shiftWeekdays(ws, n) {\n    return ws.slice(n, 7).concat(ws.slice(0, n));\n  }\n  var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n    defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n    defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n    defaultWeekdaysRegex = matchWord,\n    defaultWeekdaysShortRegex = matchWord,\n    defaultWeekdaysMinRegex = matchWord;\n  function localeWeekdays(m, format) {\n    var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n    return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n  }\n  function localeWeekdaysShort(m) {\n    return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n  }\n  function localeWeekdaysMin(m) {\n    return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n  }\n  function handleStrictParse$1(weekdayName, format, strict) {\n    var i,\n      ii,\n      mom,\n      llc = weekdayName.toLocaleLowerCase();\n    if (!this._weekdaysParse) {\n      this._weekdaysParse = [];\n      this._shortWeekdaysParse = [];\n      this._minWeekdaysParse = [];\n      for (i = 0; i < 7; ++i) {\n        mom = createUTC([2000, 1]).day(i);\n        this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n        this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n        this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n      }\n    }\n    if (strict) {\n      if (format === 'dddd') {\n        ii = indexOf.call(this._weekdaysParse, llc);\n        return ii !== -1 ? ii : null;\n      } else if (format === 'ddd') {\n        ii = indexOf.call(this._shortWeekdaysParse, llc);\n        return ii !== -1 ? ii : null;\n      } else {\n        ii = indexOf.call(this._minWeekdaysParse, llc);\n        return ii !== -1 ? ii : null;\n      }\n    } else {\n      if (format === 'dddd') {\n        ii = indexOf.call(this._weekdaysParse, llc);\n        if (ii !== -1) {\n          return ii;\n        }\n        ii = indexOf.call(this._shortWeekdaysParse, llc);\n        if (ii !== -1) {\n          return ii;\n        }\n        ii = indexOf.call(this._minWeekdaysParse, llc);\n        return ii !== -1 ? ii : null;\n      } else if (format === 'ddd') {\n        ii = indexOf.call(this._shortWeekdaysParse, llc);\n        if (ii !== -1) {\n          return ii;\n        }\n        ii = indexOf.call(this._weekdaysParse, llc);\n        if (ii !== -1) {\n          return ii;\n        }\n        ii = indexOf.call(this._minWeekdaysParse, llc);\n        return ii !== -1 ? ii : null;\n      } else {\n        ii = indexOf.call(this._minWeekdaysParse, llc);\n        if (ii !== -1) {\n          return ii;\n        }\n        ii = indexOf.call(this._weekdaysParse, llc);\n        if (ii !== -1) {\n          return ii;\n        }\n        ii = indexOf.call(this._shortWeekdaysParse, llc);\n        return ii !== -1 ? ii : null;\n      }\n    }\n  }\n  function localeWeekdaysParse(weekdayName, format, strict) {\n    var i, mom, regex;\n    if (this._weekdaysParseExact) {\n      return handleStrictParse$1.call(this, weekdayName, format, strict);\n    }\n    if (!this._weekdaysParse) {\n      this._weekdaysParse = [];\n      this._minWeekdaysParse = [];\n      this._shortWeekdaysParse = [];\n      this._fullWeekdaysParse = [];\n    }\n    for (i = 0; i < 7; i++) {\n      // make the regex if we don't have it already\n\n      mom = createUTC([2000, 1]).day(i);\n      if (strict && !this._fullWeekdaysParse[i]) {\n        this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n        this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n        this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n      }\n      if (!this._weekdaysParse[i]) {\n        regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n        this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n      }\n      // test the regex\n      if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n        return i;\n      } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n        return i;\n      } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n        return i;\n      } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n        return i;\n      }\n    }\n  }\n\n  // MOMENTS\n\n  function getSetDayOfWeek(input) {\n    if (!this.isValid()) {\n      return input != null ? this : NaN;\n    }\n    var day = get(this, 'Day');\n    if (input != null) {\n      input = parseWeekday(input, this.localeData());\n      return this.add(input - day, 'd');\n    } else {\n      return day;\n    }\n  }\n  function getSetLocaleDayOfWeek(input) {\n    if (!this.isValid()) {\n      return input != null ? this : NaN;\n    }\n    var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n    return input == null ? weekday : this.add(input - weekday, 'd');\n  }\n  function getSetISODayOfWeek(input) {\n    if (!this.isValid()) {\n      return input != null ? this : NaN;\n    }\n\n    // behaves the same as moment#day except\n    // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n    // as a setter, sunday should belong to the previous week.\n\n    if (input != null) {\n      var weekday = parseIsoWeekday(input, this.localeData());\n      return this.day(this.day() % 7 ? weekday : weekday - 7);\n    } else {\n      return this.day() || 7;\n    }\n  }\n  function weekdaysRegex(isStrict) {\n    if (this._weekdaysParseExact) {\n      if (!hasOwnProp(this, '_weekdaysRegex')) {\n        computeWeekdaysParse.call(this);\n      }\n      if (isStrict) {\n        return this._weekdaysStrictRegex;\n      } else {\n        return this._weekdaysRegex;\n      }\n    } else {\n      if (!hasOwnProp(this, '_weekdaysRegex')) {\n        this._weekdaysRegex = defaultWeekdaysRegex;\n      }\n      return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n    }\n  }\n  function weekdaysShortRegex(isStrict) {\n    if (this._weekdaysParseExact) {\n      if (!hasOwnProp(this, '_weekdaysRegex')) {\n        computeWeekdaysParse.call(this);\n      }\n      if (isStrict) {\n        return this._weekdaysShortStrictRegex;\n      } else {\n        return this._weekdaysShortRegex;\n      }\n    } else {\n      if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n        this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n      }\n      return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n    }\n  }\n  function weekdaysMinRegex(isStrict) {\n    if (this._weekdaysParseExact) {\n      if (!hasOwnProp(this, '_weekdaysRegex')) {\n        computeWeekdaysParse.call(this);\n      }\n      if (isStrict) {\n        return this._weekdaysMinStrictRegex;\n      } else {\n        return this._weekdaysMinRegex;\n      }\n    } else {\n      if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n        this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n      }\n      return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n    }\n  }\n  function computeWeekdaysParse() {\n    function cmpLenRev(a, b) {\n      return b.length - a.length;\n    }\n    var minPieces = [],\n      shortPieces = [],\n      longPieces = [],\n      mixedPieces = [],\n      i,\n      mom,\n      minp,\n      shortp,\n      longp;\n    for (i = 0; i < 7; i++) {\n      // make the regex if we don't have it already\n      mom = createUTC([2000, 1]).day(i);\n      minp = regexEscape(this.weekdaysMin(mom, ''));\n      shortp = regexEscape(this.weekdaysShort(mom, ''));\n      longp = regexEscape(this.weekdays(mom, ''));\n      minPieces.push(minp);\n      shortPieces.push(shortp);\n      longPieces.push(longp);\n      mixedPieces.push(minp);\n      mixedPieces.push(shortp);\n      mixedPieces.push(longp);\n    }\n    // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n    // will match the longer piece.\n    minPieces.sort(cmpLenRev);\n    shortPieces.sort(cmpLenRev);\n    longPieces.sort(cmpLenRev);\n    mixedPieces.sort(cmpLenRev);\n    this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n    this._weekdaysShortRegex = this._weekdaysRegex;\n    this._weekdaysMinRegex = this._weekdaysRegex;\n    this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n    this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n    this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n  }\n\n  // FORMATTING\n\n  function hFormat() {\n    return this.hours() % 12 || 12;\n  }\n  function kFormat() {\n    return this.hours() || 24;\n  }\n  addFormatToken('H', ['HH', 2], 0, 'hour');\n  addFormatToken('h', ['hh', 2], 0, hFormat);\n  addFormatToken('k', ['kk', 2], 0, kFormat);\n  addFormatToken('hmm', 0, 0, function () {\n    return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n  });\n  addFormatToken('hmmss', 0, 0, function () {\n    return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n  });\n  addFormatToken('Hmm', 0, 0, function () {\n    return '' + this.hours() + zeroFill(this.minutes(), 2);\n  });\n  addFormatToken('Hmmss', 0, 0, function () {\n    return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n  });\n  function meridiem(token, lowercase) {\n    addFormatToken(token, 0, 0, function () {\n      return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n    });\n  }\n  meridiem('a', true);\n  meridiem('A', false);\n\n  // PARSING\n\n  function matchMeridiem(isStrict, locale) {\n    return locale._meridiemParse;\n  }\n  addRegexToken('a', matchMeridiem);\n  addRegexToken('A', matchMeridiem);\n  addRegexToken('H', match1to2, match1to2HasZero);\n  addRegexToken('h', match1to2, match1to2NoLeadingZero);\n  addRegexToken('k', match1to2, match1to2NoLeadingZero);\n  addRegexToken('HH', match1to2, match2);\n  addRegexToken('hh', match1to2, match2);\n  addRegexToken('kk', match1to2, match2);\n  addRegexToken('hmm', match3to4);\n  addRegexToken('hmmss', match5to6);\n  addRegexToken('Hmm', match3to4);\n  addRegexToken('Hmmss', match5to6);\n  addParseToken(['H', 'HH'], HOUR);\n  addParseToken(['k', 'kk'], function (input, array, config) {\n    var kInput = toInt(input);\n    array[HOUR] = kInput === 24 ? 0 : kInput;\n  });\n  addParseToken(['a', 'A'], function (input, array, config) {\n    config._isPm = config._locale.isPM(input);\n    config._meridiem = input;\n  });\n  addParseToken(['h', 'hh'], function (input, array, config) {\n    array[HOUR] = toInt(input);\n    getParsingFlags(config).bigHour = true;\n  });\n  addParseToken('hmm', function (input, array, config) {\n    var pos = input.length - 2;\n    array[HOUR] = toInt(input.substr(0, pos));\n    array[MINUTE] = toInt(input.substr(pos));\n    getParsingFlags(config).bigHour = true;\n  });\n  addParseToken('hmmss', function (input, array, config) {\n    var pos1 = input.length - 4,\n      pos2 = input.length - 2;\n    array[HOUR] = toInt(input.substr(0, pos1));\n    array[MINUTE] = toInt(input.substr(pos1, 2));\n    array[SECOND] = toInt(input.substr(pos2));\n    getParsingFlags(config).bigHour = true;\n  });\n  addParseToken('Hmm', function (input, array, config) {\n    var pos = input.length - 2;\n    array[HOUR] = toInt(input.substr(0, pos));\n    array[MINUTE] = toInt(input.substr(pos));\n  });\n  addParseToken('Hmmss', function (input, array, config) {\n    var pos1 = input.length - 4,\n      pos2 = input.length - 2;\n    array[HOUR] = toInt(input.substr(0, pos1));\n    array[MINUTE] = toInt(input.substr(pos1, 2));\n    array[SECOND] = toInt(input.substr(pos2));\n  });\n\n  // LOCALES\n\n  function localeIsPM(input) {\n    // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n    // Using charAt should be more compatible.\n    return (input + '').toLowerCase().charAt(0) === 'p';\n  }\n  var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n    // Setting the hour should keep the time, because the user explicitly\n    // specified which hour they want. So trying to maintain the same hour (in\n    // a new timezone) makes sense. Adding/subtracting hours does not follow\n    // this rule.\n    getSetHour = makeGetSet('Hours', true);\n  function localeMeridiem(hours, minutes, isLower) {\n    if (hours > 11) {\n      return isLower ? 'pm' : 'PM';\n    } else {\n      return isLower ? 'am' : 'AM';\n    }\n  }\n  var baseConfig = {\n    calendar: defaultCalendar,\n    longDateFormat: defaultLongDateFormat,\n    invalidDate: defaultInvalidDate,\n    ordinal: defaultOrdinal,\n    dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n    relativeTime: defaultRelativeTime,\n    months: defaultLocaleMonths,\n    monthsShort: defaultLocaleMonthsShort,\n    week: defaultLocaleWeek,\n    weekdays: defaultLocaleWeekdays,\n    weekdaysMin: defaultLocaleWeekdaysMin,\n    weekdaysShort: defaultLocaleWeekdaysShort,\n    meridiemParse: defaultLocaleMeridiemParse\n  };\n\n  // internal storage for locale config files\n  var locales = {},\n    localeFamilies = {},\n    globalLocale;\n  function commonPrefix(arr1, arr2) {\n    var i,\n      minl = Math.min(arr1.length, arr2.length);\n    for (i = 0; i < minl; i += 1) {\n      if (arr1[i] !== arr2[i]) {\n        return i;\n      }\n    }\n    return minl;\n  }\n  function normalizeLocale(key) {\n    return key ? key.toLowerCase().replace('_', '-') : key;\n  }\n\n  // pick the locale from the array\n  // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n  // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n  function chooseLocale(names) {\n    var i = 0,\n      j,\n      next,\n      locale,\n      split;\n    while (i < names.length) {\n      split = normalizeLocale(names[i]).split('-');\n      j = split.length;\n      next = normalizeLocale(names[i + 1]);\n      next = next ? next.split('-') : null;\n      while (j > 0) {\n        locale = loadLocale(split.slice(0, j).join('-'));\n        if (locale) {\n          return locale;\n        }\n        if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {\n          //the next array item is better than a shallower substring of this one\n          break;\n        }\n        j--;\n      }\n      i++;\n    }\n    return globalLocale;\n  }\n  function isLocaleNameSane(name) {\n    // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n    // Ensure name is available and function returns boolean\n    return !!(name && name.match('^[^/\\\\\\\\]*$'));\n  }\n  function loadLocale(name) {\n    var oldLocale = null,\n      aliasedRequire;\n    // TODO: Find a better way to register and load all the locales in Node\n    if (locales[name] === undefined && \"object\" !== 'undefined' && module && module.exports && isLocaleNameSane(name)) {\n      try {\n        oldLocale = globalLocale._abbr;\n        aliasedRequire = undefined;\n        __webpack_require__(\"../react-ui/node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\")(\"./\" + name);\n        getSetGlobalLocale(oldLocale);\n      } catch (e) {\n        // mark as not found to avoid repeating expensive file require call causing high CPU\n        // when trying to find en-US, en_US, en-us for every format call\n        locales[name] = null; // null means not found\n      }\n    }\n    return locales[name];\n  }\n\n  // This function will load locale and then set the global locale.  If\n  // no arguments are passed in, it will simply return the current global\n  // locale key.\n  function getSetGlobalLocale(key, values) {\n    var data;\n    if (key) {\n      if (isUndefined(values)) {\n        data = getLocale(key);\n      } else {\n        data = defineLocale(key, values);\n      }\n      if (data) {\n        // moment.duration._locale = moment._locale = data;\n        globalLocale = data;\n      } else {\n        if (typeof console !== 'undefined' && console.warn) {\n          //warn user if arguments are passed but the locale could not be set\n          console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n        }\n      }\n    }\n    return globalLocale._abbr;\n  }\n  function defineLocale(name, config) {\n    if (config !== null) {\n      var locale,\n        parentConfig = baseConfig;\n      config.abbr = name;\n      if (locales[name] != null) {\n        deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n        parentConfig = locales[name]._config;\n      } else if (config.parentLocale != null) {\n        if (locales[config.parentLocale] != null) {\n          parentConfig = locales[config.parentLocale]._config;\n        } else {\n          locale = loadLocale(config.parentLocale);\n          if (locale != null) {\n            parentConfig = locale._config;\n          } else {\n            if (!localeFamilies[config.parentLocale]) {\n              localeFamilies[config.parentLocale] = [];\n            }\n            localeFamilies[config.parentLocale].push({\n              name: name,\n              config: config\n            });\n            return null;\n          }\n        }\n      }\n      locales[name] = new Locale(mergeConfigs(parentConfig, config));\n      if (localeFamilies[name]) {\n        localeFamilies[name].forEach(function (x) {\n          defineLocale(x.name, x.config);\n        });\n      }\n\n      // backwards compat for now: also set the locale\n      // make sure we set the locale AFTER all child locales have been\n      // created, so we won't end up with the child locale set.\n      getSetGlobalLocale(name);\n      return locales[name];\n    } else {\n      // useful for testing\n      delete locales[name];\n      return null;\n    }\n  }\n  function updateLocale(name, config) {\n    if (config != null) {\n      var locale,\n        tmpLocale,\n        parentConfig = baseConfig;\n      if (locales[name] != null && locales[name].parentLocale != null) {\n        // Update existing child locale in-place to avoid memory-leaks\n        locales[name].set(mergeConfigs(locales[name]._config, config));\n      } else {\n        // MERGE\n        tmpLocale = loadLocale(name);\n        if (tmpLocale != null) {\n          parentConfig = tmpLocale._config;\n        }\n        config = mergeConfigs(parentConfig, config);\n        if (tmpLocale == null) {\n          // updateLocale is called for creating a new locale\n          // Set abbr so it will have a name (getters return\n          // undefined otherwise).\n          config.abbr = name;\n        }\n        locale = new Locale(config);\n        locale.parentLocale = locales[name];\n        locales[name] = locale;\n      }\n\n      // backwards compat for now: also set the locale\n      getSetGlobalLocale(name);\n    } else {\n      // pass null for config to unupdate, useful for tests\n      if (locales[name] != null) {\n        if (locales[name].parentLocale != null) {\n          locales[name] = locales[name].parentLocale;\n          if (name === getSetGlobalLocale()) {\n            getSetGlobalLocale(name);\n          }\n        } else if (locales[name] != null) {\n          delete locales[name];\n        }\n      }\n    }\n    return locales[name];\n  }\n\n  // returns locale data\n  function getLocale(key) {\n    var locale;\n    if (key && key._locale && key._locale._abbr) {\n      key = key._locale._abbr;\n    }\n    if (!key) {\n      return globalLocale;\n    }\n    if (!isArray(key)) {\n      //short-circuit everything else\n      locale = loadLocale(key);\n      if (locale) {\n        return locale;\n      }\n      key = [key];\n    }\n    return chooseLocale(key);\n  }\n  function listLocales() {\n    return keys(locales);\n  }\n  function checkOverflow(m) {\n    var overflow,\n      a = m._a;\n    if (a && getParsingFlags(m).overflow === -2) {\n      overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n      if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n        overflow = DATE;\n      }\n      if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n        overflow = WEEK;\n      }\n      if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n        overflow = WEEKDAY;\n      }\n      getParsingFlags(m).overflow = overflow;\n    }\n    return m;\n  }\n\n  // iso 8601 regex\n  // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n  var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n    basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n    tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n    isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n    // iso time formats and regexes\n    isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]],\n    aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n    // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n    rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n    obsOffsets = {\n      UT: 0,\n      GMT: 0,\n      EDT: -4 * 60,\n      EST: -5 * 60,\n      CDT: -5 * 60,\n      CST: -6 * 60,\n      MDT: -6 * 60,\n      MST: -7 * 60,\n      PDT: -7 * 60,\n      PST: -8 * 60\n    };\n\n  // date from iso format\n  function configFromISO(config) {\n    var i,\n      l,\n      string = config._i,\n      match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n      allowTime,\n      dateFormat,\n      timeFormat,\n      tzFormat,\n      isoDatesLen = isoDates.length,\n      isoTimesLen = isoTimes.length;\n    if (match) {\n      getParsingFlags(config).iso = true;\n      for (i = 0, l = isoDatesLen; i < l; i++) {\n        if (isoDates[i][1].exec(match[1])) {\n          dateFormat = isoDates[i][0];\n          allowTime = isoDates[i][2] !== false;\n          break;\n        }\n      }\n      if (dateFormat == null) {\n        config._isValid = false;\n        return;\n      }\n      if (match[3]) {\n        for (i = 0, l = isoTimesLen; i < l; i++) {\n          if (isoTimes[i][1].exec(match[3])) {\n            // match[2] should be 'T' or space\n            timeFormat = (match[2] || ' ') + isoTimes[i][0];\n            break;\n          }\n        }\n        if (timeFormat == null) {\n          config._isValid = false;\n          return;\n        }\n      }\n      if (!allowTime && timeFormat != null) {\n        config._isValid = false;\n        return;\n      }\n      if (match[4]) {\n        if (tzRegex.exec(match[4])) {\n          tzFormat = 'Z';\n        } else {\n          config._isValid = false;\n          return;\n        }\n      }\n      config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n      configFromStringAndFormat(config);\n    } else {\n      config._isValid = false;\n    }\n  }\n  function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n    var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n    if (secondStr) {\n      result.push(parseInt(secondStr, 10));\n    }\n    return result;\n  }\n  function untruncateYear(yearStr) {\n    var year = parseInt(yearStr, 10);\n    if (year <= 49) {\n      return 2000 + year;\n    } else if (year <= 999) {\n      return 1900 + year;\n    }\n    return year;\n  }\n  function preprocessRFC2822(s) {\n    // Remove comments and folding whitespace and replace multiple-spaces with a single space\n    return s.replace(/\\([^()]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n  }\n  function checkWeekday(weekdayStr, parsedInput, config) {\n    if (weekdayStr) {\n      // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n      var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n        weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n      if (weekdayProvided !== weekdayActual) {\n        getParsingFlags(config).weekdayMismatch = true;\n        config._isValid = false;\n        return false;\n      }\n    }\n    return true;\n  }\n  function calculateOffset(obsOffset, militaryOffset, numOffset) {\n    if (obsOffset) {\n      return obsOffsets[obsOffset];\n    } else if (militaryOffset) {\n      // the only allowed military tz is Z\n      return 0;\n    } else {\n      var hm = parseInt(numOffset, 10),\n        m = hm % 100,\n        h = (hm - m) / 100;\n      return h * 60 + m;\n    }\n  }\n\n  // date and time from ref 2822 format\n  function configFromRFC2822(config) {\n    var match = rfc2822.exec(preprocessRFC2822(config._i)),\n      parsedArray;\n    if (match) {\n      parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n      if (!checkWeekday(match[1], parsedArray, config)) {\n        return;\n      }\n      config._a = parsedArray;\n      config._tzm = calculateOffset(match[8], match[9], match[10]);\n      config._d = createUTCDate.apply(null, config._a);\n      config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n      getParsingFlags(config).rfc2822 = true;\n    } else {\n      config._isValid = false;\n    }\n  }\n\n  // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n  function configFromString(config) {\n    var matched = aspNetJsonRegex.exec(config._i);\n    if (matched !== null) {\n      config._d = new Date(+matched[1]);\n      return;\n    }\n    configFromISO(config);\n    if (config._isValid === false) {\n      delete config._isValid;\n    } else {\n      return;\n    }\n    configFromRFC2822(config);\n    if (config._isValid === false) {\n      delete config._isValid;\n    } else {\n      return;\n    }\n    if (config._strict) {\n      config._isValid = false;\n    } else {\n      // Final attempt, use Input Fallback\n      hooks.createFromInputFallback(config);\n    }\n  }\n  hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n    config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n  });\n\n  // Pick the first defined of two or three arguments.\n  function defaults(a, b, c) {\n    if (a != null) {\n      return a;\n    }\n    if (b != null) {\n      return b;\n    }\n    return c;\n  }\n  function currentDateArray(config) {\n    // hooks is actually the exported moment object\n    var nowValue = new Date(hooks.now());\n    if (config._useUTC) {\n      return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n    }\n    return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n  }\n\n  // convert an array to a date.\n  // the array should mirror the parameters below\n  // note: all values past the year are optional and will default to the lowest possible value.\n  // [year, month, day , hour, minute, second, millisecond]\n  function configFromArray(config) {\n    var i,\n      date,\n      input = [],\n      currentDate,\n      expectedWeekday,\n      yearToUse;\n    if (config._d) {\n      return;\n    }\n    currentDate = currentDateArray(config);\n\n    //compute day of the year from weeks and weekdays\n    if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n      dayOfYearFromWeekInfo(config);\n    }\n\n    //if the day of the year is set, figure out what it is\n    if (config._dayOfYear != null) {\n      yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n      if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n        getParsingFlags(config)._overflowDayOfYear = true;\n      }\n      date = createUTCDate(yearToUse, 0, config._dayOfYear);\n      config._a[MONTH] = date.getUTCMonth();\n      config._a[DATE] = date.getUTCDate();\n    }\n\n    // Default to current date.\n    // * if no year, month, day of month are given, default to today\n    // * if day of month is given, default month and year\n    // * if month is given, default only year\n    // * if year is given, don't default anything\n    for (i = 0; i < 3 && config._a[i] == null; ++i) {\n      config._a[i] = input[i] = currentDate[i];\n    }\n\n    // Zero out whatever was not defaulted, including time\n    for (; i < 7; i++) {\n      config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n    }\n\n    // Check for 24:00:00.000\n    if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n      config._nextDay = true;\n      config._a[HOUR] = 0;\n    }\n    config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n    expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n    // Apply timezone offset from input. The actual utcOffset can be changed\n    // with parseZone.\n    if (config._tzm != null) {\n      config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n    }\n    if (config._nextDay) {\n      config._a[HOUR] = 24;\n    }\n\n    // check for mismatching day of week\n    if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n      getParsingFlags(config).weekdayMismatch = true;\n    }\n  }\n  function dayOfYearFromWeekInfo(config) {\n    var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n    w = config._w;\n    if (w.GG != null || w.W != null || w.E != null) {\n      dow = 1;\n      doy = 4;\n\n      // TODO: We need to take the current isoWeekYear, but that depends on\n      // how we interpret now (local, utc, fixed offset). So create\n      // a now version of current config (take local/utc/offset flags, and\n      // create now).\n      weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n      week = defaults(w.W, 1);\n      weekday = defaults(w.E, 1);\n      if (weekday < 1 || weekday > 7) {\n        weekdayOverflow = true;\n      }\n    } else {\n      dow = config._locale._week.dow;\n      doy = config._locale._week.doy;\n      curWeek = weekOfYear(createLocal(), dow, doy);\n      weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n      // Default to current week.\n      week = defaults(w.w, curWeek.week);\n      if (w.d != null) {\n        // weekday -- low day numbers are considered next week\n        weekday = w.d;\n        if (weekday < 0 || weekday > 6) {\n          weekdayOverflow = true;\n        }\n      } else if (w.e != null) {\n        // local weekday -- counting starts from beginning of week\n        weekday = w.e + dow;\n        if (w.e < 0 || w.e > 6) {\n          weekdayOverflow = true;\n        }\n      } else {\n        // default to beginning of week\n        weekday = dow;\n      }\n    }\n    if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n      getParsingFlags(config)._overflowWeeks = true;\n    } else if (weekdayOverflow != null) {\n      getParsingFlags(config)._overflowWeekday = true;\n    } else {\n      temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n      config._a[YEAR] = temp.year;\n      config._dayOfYear = temp.dayOfYear;\n    }\n  }\n\n  // constant that refers to the ISO standard\n  hooks.ISO_8601 = function () {};\n\n  // constant that refers to the RFC 2822 form\n  hooks.RFC_2822 = function () {};\n\n  // date from string and format string\n  function configFromStringAndFormat(config) {\n    // TODO: Move this to another part of the creation flow to prevent circular deps\n    if (config._f === hooks.ISO_8601) {\n      configFromISO(config);\n      return;\n    }\n    if (config._f === hooks.RFC_2822) {\n      configFromRFC2822(config);\n      return;\n    }\n    config._a = [];\n    getParsingFlags(config).empty = true;\n\n    // This array is used to make a Date, either with `new Date` or `Date.UTC`\n    var string = '' + config._i,\n      i,\n      parsedInput,\n      tokens,\n      token,\n      skipped,\n      stringLength = string.length,\n      totalParsedInputLength = 0,\n      era,\n      tokenLen;\n    tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n    tokenLen = tokens.length;\n    for (i = 0; i < tokenLen; i++) {\n      token = tokens[i];\n      parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n      if (parsedInput) {\n        skipped = string.substr(0, string.indexOf(parsedInput));\n        if (skipped.length > 0) {\n          getParsingFlags(config).unusedInput.push(skipped);\n        }\n        string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n        totalParsedInputLength += parsedInput.length;\n      }\n      // don't parse if it's not a known token\n      if (formatTokenFunctions[token]) {\n        if (parsedInput) {\n          getParsingFlags(config).empty = false;\n        } else {\n          getParsingFlags(config).unusedTokens.push(token);\n        }\n        addTimeToArrayFromToken(token, parsedInput, config);\n      } else if (config._strict && !parsedInput) {\n        getParsingFlags(config).unusedTokens.push(token);\n      }\n    }\n\n    // add remaining unparsed input length to the string\n    getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n    if (string.length > 0) {\n      getParsingFlags(config).unusedInput.push(string);\n    }\n\n    // clear _12h flag if hour is <= 12\n    if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n      getParsingFlags(config).bigHour = undefined;\n    }\n    getParsingFlags(config).parsedDateParts = config._a.slice(0);\n    getParsingFlags(config).meridiem = config._meridiem;\n    // handle meridiem\n    config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n    // handle era\n    era = getParsingFlags(config).era;\n    if (era !== null) {\n      config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n    }\n    configFromArray(config);\n    checkOverflow(config);\n  }\n  function meridiemFixWrap(locale, hour, meridiem) {\n    var isPm;\n    if (meridiem == null) {\n      // nothing to do\n      return hour;\n    }\n    if (locale.meridiemHour != null) {\n      return locale.meridiemHour(hour, meridiem);\n    } else if (locale.isPM != null) {\n      // Fallback\n      isPm = locale.isPM(meridiem);\n      if (isPm && hour < 12) {\n        hour += 12;\n      }\n      if (!isPm && hour === 12) {\n        hour = 0;\n      }\n      return hour;\n    } else {\n      // this is not supposed to happen\n      return hour;\n    }\n  }\n\n  // date from string and array of format strings\n  function configFromStringAndArray(config) {\n    var tempConfig,\n      bestMoment,\n      scoreToBeat,\n      i,\n      currentScore,\n      validFormatFound,\n      bestFormatIsValid = false,\n      configfLen = config._f.length;\n    if (configfLen === 0) {\n      getParsingFlags(config).invalidFormat = true;\n      config._d = new Date(NaN);\n      return;\n    }\n    for (i = 0; i < configfLen; i++) {\n      currentScore = 0;\n      validFormatFound = false;\n      tempConfig = copyConfig({}, config);\n      if (config._useUTC != null) {\n        tempConfig._useUTC = config._useUTC;\n      }\n      tempConfig._f = config._f[i];\n      configFromStringAndFormat(tempConfig);\n      if (isValid(tempConfig)) {\n        validFormatFound = true;\n      }\n\n      // if there is any input that was not parsed add a penalty for that format\n      currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n      //or tokens\n      currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n      getParsingFlags(tempConfig).score = currentScore;\n      if (!bestFormatIsValid) {\n        if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n          scoreToBeat = currentScore;\n          bestMoment = tempConfig;\n          if (validFormatFound) {\n            bestFormatIsValid = true;\n          }\n        }\n      } else {\n        if (currentScore < scoreToBeat) {\n          scoreToBeat = currentScore;\n          bestMoment = tempConfig;\n        }\n      }\n    }\n    extend(config, bestMoment || tempConfig);\n  }\n  function configFromObject(config) {\n    if (config._d) {\n      return;\n    }\n    var i = normalizeObjectUnits(config._i),\n      dayOrDate = i.day === undefined ? i.date : i.day;\n    config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n      return obj && parseInt(obj, 10);\n    });\n    configFromArray(config);\n  }\n  function createFromConfig(config) {\n    var res = new Moment(checkOverflow(prepareConfig(config)));\n    if (res._nextDay) {\n      // Adding is smart enough around DST\n      res.add(1, 'd');\n      res._nextDay = undefined;\n    }\n    return res;\n  }\n  function prepareConfig(config) {\n    var input = config._i,\n      format = config._f;\n    config._locale = config._locale || getLocale(config._l);\n    if (input === null || format === undefined && input === '') {\n      return createInvalid({\n        nullInput: true\n      });\n    }\n    if (typeof input === 'string') {\n      config._i = input = config._locale.preparse(input);\n    }\n    if (isMoment(input)) {\n      return new Moment(checkOverflow(input));\n    } else if (isDate(input)) {\n      config._d = input;\n    } else if (isArray(format)) {\n      configFromStringAndArray(config);\n    } else if (format) {\n      configFromStringAndFormat(config);\n    } else {\n      configFromInput(config);\n    }\n    if (!isValid(config)) {\n      config._d = null;\n    }\n    return config;\n  }\n  function configFromInput(config) {\n    var input = config._i;\n    if (isUndefined(input)) {\n      config._d = new Date(hooks.now());\n    } else if (isDate(input)) {\n      config._d = new Date(input.valueOf());\n    } else if (typeof input === 'string') {\n      configFromString(config);\n    } else if (isArray(input)) {\n      config._a = map(input.slice(0), function (obj) {\n        return parseInt(obj, 10);\n      });\n      configFromArray(config);\n    } else if (isObject(input)) {\n      configFromObject(config);\n    } else if (isNumber(input)) {\n      // from milliseconds\n      config._d = new Date(input);\n    } else {\n      hooks.createFromInputFallback(config);\n    }\n  }\n  function createLocalOrUTC(input, format, locale, strict, isUTC) {\n    var c = {};\n    if (format === true || format === false) {\n      strict = format;\n      format = undefined;\n    }\n    if (locale === true || locale === false) {\n      strict = locale;\n      locale = undefined;\n    }\n    if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n      input = undefined;\n    }\n    // object construction must be done this way.\n    // https://github.com/moment/moment/issues/1423\n    c._isAMomentObject = true;\n    c._useUTC = c._isUTC = isUTC;\n    c._l = locale;\n    c._i = input;\n    c._f = format;\n    c._strict = strict;\n    return createFromConfig(c);\n  }\n  function createLocal(input, format, locale, strict) {\n    return createLocalOrUTC(input, format, locale, strict, false);\n  }\n  var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n      var other = createLocal.apply(null, arguments);\n      if (this.isValid() && other.isValid()) {\n        return other < this ? this : other;\n      } else {\n        return createInvalid();\n      }\n    }),\n    prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n      var other = createLocal.apply(null, arguments);\n      if (this.isValid() && other.isValid()) {\n        return other > this ? this : other;\n      } else {\n        return createInvalid();\n      }\n    });\n\n  // Pick a moment m from moments so that m[fn](other) is true for all\n  // other. This relies on the function fn to be transitive.\n  //\n  // moments should either be an array of moment objects or an array, whose\n  // first element is an array of moment objects.\n  function pickBy(fn, moments) {\n    var res, i;\n    if (moments.length === 1 && isArray(moments[0])) {\n      moments = moments[0];\n    }\n    if (!moments.length) {\n      return createLocal();\n    }\n    res = moments[0];\n    for (i = 1; i < moments.length; ++i) {\n      if (!moments[i].isValid() || moments[i][fn](res)) {\n        res = moments[i];\n      }\n    }\n    return res;\n  }\n\n  // TODO: Use [].sort instead?\n  function min() {\n    var args = [].slice.call(arguments, 0);\n    return pickBy('isBefore', args);\n  }\n  function max() {\n    var args = [].slice.call(arguments, 0);\n    return pickBy('isAfter', args);\n  }\n  var now = function () {\n    return Date.now ? Date.now() : +new Date();\n  };\n  var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n  function isDurationValid(m) {\n    var key,\n      unitHasDecimal = false,\n      i,\n      orderLen = ordering.length;\n    for (key in m) {\n      if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n        return false;\n      }\n    }\n    for (i = 0; i < orderLen; ++i) {\n      if (m[ordering[i]]) {\n        if (unitHasDecimal) {\n          return false; // only allow non-integers for smallest unit\n        }\n        if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n          unitHasDecimal = true;\n        }\n      }\n    }\n    return true;\n  }\n  function isValid$1() {\n    return this._isValid;\n  }\n  function createInvalid$1() {\n    return createDuration(NaN);\n  }\n  function Duration(duration) {\n    var normalizedInput = normalizeObjectUnits(duration),\n      years = normalizedInput.year || 0,\n      quarters = normalizedInput.quarter || 0,\n      months = normalizedInput.month || 0,\n      weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n      days = normalizedInput.day || 0,\n      hours = normalizedInput.hour || 0,\n      minutes = normalizedInput.minute || 0,\n      seconds = normalizedInput.second || 0,\n      milliseconds = normalizedInput.millisecond || 0;\n    this._isValid = isDurationValid(normalizedInput);\n\n    // representation for dateAddRemove\n    this._milliseconds = +milliseconds + seconds * 1e3 +\n    // 1000\n    minutes * 6e4 +\n    // 1000 * 60\n    hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n    // Because of dateAddRemove treats 24 hours as different from a\n    // day when working around DST, we need to store them separately\n    this._days = +days + weeks * 7;\n    // It is impossible to translate months into days without knowing\n    // which months you are are talking about, so we have to store\n    // it separately.\n    this._months = +months + quarters * 3 + years * 12;\n    this._data = {};\n    this._locale = getLocale();\n    this._bubble();\n  }\n  function isDuration(obj) {\n    return obj instanceof Duration;\n  }\n  function absRound(number) {\n    if (number < 0) {\n      return Math.round(-1 * number) * -1;\n    } else {\n      return Math.round(number);\n    }\n  }\n\n  // compare two arrays, return the number of differences\n  function compareArrays(array1, array2, dontConvert) {\n    var len = Math.min(array1.length, array2.length),\n      lengthDiff = Math.abs(array1.length - array2.length),\n      diffs = 0,\n      i;\n    for (i = 0; i < len; i++) {\n      if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n        diffs++;\n      }\n    }\n    return diffs + lengthDiff;\n  }\n\n  // FORMATTING\n\n  function offset(token, separator) {\n    addFormatToken(token, 0, 0, function () {\n      var offset = this.utcOffset(),\n        sign = '+';\n      if (offset < 0) {\n        offset = -offset;\n        sign = '-';\n      }\n      return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n    });\n  }\n  offset('Z', ':');\n  offset('ZZ', '');\n\n  // PARSING\n\n  addRegexToken('Z', matchShortOffset);\n  addRegexToken('ZZ', matchShortOffset);\n  addParseToken(['Z', 'ZZ'], function (input, array, config) {\n    config._useUTC = true;\n    config._tzm = offsetFromString(matchShortOffset, input);\n  });\n\n  // HELPERS\n\n  // timezone chunker\n  // '+10:00' > ['10',  '00']\n  // '-1530'  > ['-15', '30']\n  var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n  function offsetFromString(matcher, string) {\n    var matches = (string || '').match(matcher),\n      chunk,\n      parts,\n      minutes;\n    if (matches === null) {\n      return null;\n    }\n    chunk = matches[matches.length - 1] || [];\n    parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n    minutes = +(parts[1] * 60) + toInt(parts[2]);\n    return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n  }\n\n  // Return a moment from input, that is local/utc/zone equivalent to model.\n  function cloneWithOffset(input, model) {\n    var res, diff;\n    if (model._isUTC) {\n      res = model.clone();\n      diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n      // Use low-level api, because this fn is low-level api.\n      res._d.setTime(res._d.valueOf() + diff);\n      hooks.updateOffset(res, false);\n      return res;\n    } else {\n      return createLocal(input).local();\n    }\n  }\n  function getDateOffset(m) {\n    // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n    // https://github.com/moment/moment/pull/1871\n    return -Math.round(m._d.getTimezoneOffset());\n  }\n\n  // HOOKS\n\n  // This function will be called whenever a moment is mutated.\n  // It is intended to keep the offset in sync with the timezone.\n  hooks.updateOffset = function () {};\n\n  // MOMENTS\n\n  // keepLocalTime = true means only change the timezone, without\n  // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n  // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n  // +0200, so we adjust the time as needed, to be valid.\n  //\n  // Keeping the time actually adds/subtracts (one hour)\n  // from the actual represented time. That is why we call updateOffset\n  // a second time. In case it wants us to change the offset again\n  // _changeInProgress == true case, then we have to adjust, because\n  // there is no such time in the given timezone.\n  function getSetOffset(input, keepLocalTime, keepMinutes) {\n    var offset = this._offset || 0,\n      localAdjust;\n    if (!this.isValid()) {\n      return input != null ? this : NaN;\n    }\n    if (input != null) {\n      if (typeof input === 'string') {\n        input = offsetFromString(matchShortOffset, input);\n        if (input === null) {\n          return this;\n        }\n      } else if (Math.abs(input) < 16 && !keepMinutes) {\n        input = input * 60;\n      }\n      if (!this._isUTC && keepLocalTime) {\n        localAdjust = getDateOffset(this);\n      }\n      this._offset = input;\n      this._isUTC = true;\n      if (localAdjust != null) {\n        this.add(localAdjust, 'm');\n      }\n      if (offset !== input) {\n        if (!keepLocalTime || this._changeInProgress) {\n          addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n        } else if (!this._changeInProgress) {\n          this._changeInProgress = true;\n          hooks.updateOffset(this, true);\n          this._changeInProgress = null;\n        }\n      }\n      return this;\n    } else {\n      return this._isUTC ? offset : getDateOffset(this);\n    }\n  }\n  function getSetZone(input, keepLocalTime) {\n    if (input != null) {\n      if (typeof input !== 'string') {\n        input = -input;\n      }\n      this.utcOffset(input, keepLocalTime);\n      return this;\n    } else {\n      return -this.utcOffset();\n    }\n  }\n  function setOffsetToUTC(keepLocalTime) {\n    return this.utcOffset(0, keepLocalTime);\n  }\n  function setOffsetToLocal(keepLocalTime) {\n    if (this._isUTC) {\n      this.utcOffset(0, keepLocalTime);\n      this._isUTC = false;\n      if (keepLocalTime) {\n        this.subtract(getDateOffset(this), 'm');\n      }\n    }\n    return this;\n  }\n  function setOffsetToParsedOffset() {\n    if (this._tzm != null) {\n      this.utcOffset(this._tzm, false, true);\n    } else if (typeof this._i === 'string') {\n      var tZone = offsetFromString(matchOffset, this._i);\n      if (tZone != null) {\n        this.utcOffset(tZone);\n      } else {\n        this.utcOffset(0, true);\n      }\n    }\n    return this;\n  }\n  function hasAlignedHourOffset(input) {\n    if (!this.isValid()) {\n      return false;\n    }\n    input = input ? createLocal(input).utcOffset() : 0;\n    return (this.utcOffset() - input) % 60 === 0;\n  }\n  function isDaylightSavingTime() {\n    return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n  }\n  function isDaylightSavingTimeShifted() {\n    if (!isUndefined(this._isDSTShifted)) {\n      return this._isDSTShifted;\n    }\n    var c = {},\n      other;\n    copyConfig(c, this);\n    c = prepareConfig(c);\n    if (c._a) {\n      other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n      this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n    } else {\n      this._isDSTShifted = false;\n    }\n    return this._isDSTShifted;\n  }\n  function isLocal() {\n    return this.isValid() ? !this._isUTC : false;\n  }\n  function isUtcOffset() {\n    return this.isValid() ? this._isUTC : false;\n  }\n  function isUtc() {\n    return this.isValid() ? this._isUTC && this._offset === 0 : false;\n  }\n\n  // ASP.NET json date format regex\n  var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n    // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n    // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n    // and further modified to allow for strings containing both week and day\n    isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n  function createDuration(input, key) {\n    var duration = input,\n      // matching against regexp is expensive, do it on demand\n      match = null,\n      sign,\n      ret,\n      diffRes;\n    if (isDuration(input)) {\n      duration = {\n        ms: input._milliseconds,\n        d: input._days,\n        M: input._months\n      };\n    } else if (isNumber(input) || !isNaN(+input)) {\n      duration = {};\n      if (key) {\n        duration[key] = +input;\n      } else {\n        duration.milliseconds = +input;\n      }\n    } else if (match = aspNetRegex.exec(input)) {\n      sign = match[1] === '-' ? -1 : 1;\n      duration = {\n        y: 0,\n        d: toInt(match[DATE]) * sign,\n        h: toInt(match[HOUR]) * sign,\n        m: toInt(match[MINUTE]) * sign,\n        s: toInt(match[SECOND]) * sign,\n        ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n      };\n    } else if (match = isoRegex.exec(input)) {\n      sign = match[1] === '-' ? -1 : 1;\n      duration = {\n        y: parseIso(match[2], sign),\n        M: parseIso(match[3], sign),\n        w: parseIso(match[4], sign),\n        d: parseIso(match[5], sign),\n        h: parseIso(match[6], sign),\n        m: parseIso(match[7], sign),\n        s: parseIso(match[8], sign)\n      };\n    } else if (duration == null) {\n      // checks for null or undefined\n      duration = {};\n    } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n      diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n      duration = {};\n      duration.ms = diffRes.milliseconds;\n      duration.M = diffRes.months;\n    }\n    ret = new Duration(duration);\n    if (isDuration(input) && hasOwnProp(input, '_locale')) {\n      ret._locale = input._locale;\n    }\n    if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n      ret._isValid = input._isValid;\n    }\n    return ret;\n  }\n  createDuration.fn = Duration.prototype;\n  createDuration.invalid = createInvalid$1;\n  function parseIso(inp, sign) {\n    // We'd normally use ~~inp for this, but unfortunately it also\n    // converts floats to ints.\n    // inp may be undefined, so careful calling replace on it.\n    var res = inp && parseFloat(inp.replace(',', '.'));\n    // apply sign while we're at it\n    return (isNaN(res) ? 0 : res) * sign;\n  }\n  function positiveMomentsDifference(base, other) {\n    var res = {};\n    res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n    if (base.clone().add(res.months, 'M').isAfter(other)) {\n      --res.months;\n    }\n    res.milliseconds = +other - +base.clone().add(res.months, 'M');\n    return res;\n  }\n  function momentsDifference(base, other) {\n    var res;\n    if (!(base.isValid() && other.isValid())) {\n      return {\n        milliseconds: 0,\n        months: 0\n      };\n    }\n    other = cloneWithOffset(other, base);\n    if (base.isBefore(other)) {\n      res = positiveMomentsDifference(base, other);\n    } else {\n      res = positiveMomentsDifference(other, base);\n      res.milliseconds = -res.milliseconds;\n      res.months = -res.months;\n    }\n    return res;\n  }\n\n  // TODO: remove 'name' arg after deprecation is removed\n  function createAdder(direction, name) {\n    return function (val, period) {\n      var dur, tmp;\n      //invert the arguments, but complain about it\n      if (period !== null && !isNaN(+period)) {\n        deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n        tmp = val;\n        val = period;\n        period = tmp;\n      }\n      dur = createDuration(val, period);\n      addSubtract(this, dur, direction);\n      return this;\n    };\n  }\n  function addSubtract(mom, duration, isAdding, updateOffset) {\n    var milliseconds = duration._milliseconds,\n      days = absRound(duration._days),\n      months = absRound(duration._months);\n    if (!mom.isValid()) {\n      // No op\n      return;\n    }\n    updateOffset = updateOffset == null ? true : updateOffset;\n    if (months) {\n      setMonth(mom, get(mom, 'Month') + months * isAdding);\n    }\n    if (days) {\n      set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n    }\n    if (milliseconds) {\n      mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n    }\n    if (updateOffset) {\n      hooks.updateOffset(mom, days || months);\n    }\n  }\n  var add = createAdder(1, 'add'),\n    subtract = createAdder(-1, 'subtract');\n  function isString(input) {\n    return typeof input === 'string' || input instanceof String;\n  }\n\n  // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n  function isMomentInput(input) {\n    return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n  }\n  function isMomentInputObject(input) {\n    var objectTest = isObject(input) && !isObjectEmpty(input),\n      propertyTest = false,\n      properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n      i,\n      property,\n      propertyLen = properties.length;\n    for (i = 0; i < propertyLen; i += 1) {\n      property = properties[i];\n      propertyTest = propertyTest || hasOwnProp(input, property);\n    }\n    return objectTest && propertyTest;\n  }\n  function isNumberOrStringArray(input) {\n    var arrayTest = isArray(input),\n      dataTypeTest = false;\n    if (arrayTest) {\n      dataTypeTest = input.filter(function (item) {\n        return !isNumber(item) && isString(input);\n      }).length === 0;\n    }\n    return arrayTest && dataTypeTest;\n  }\n  function isCalendarSpec(input) {\n    var objectTest = isObject(input) && !isObjectEmpty(input),\n      propertyTest = false,\n      properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n      i,\n      property;\n    for (i = 0; i < properties.length; i += 1) {\n      property = properties[i];\n      propertyTest = propertyTest || hasOwnProp(input, property);\n    }\n    return objectTest && propertyTest;\n  }\n  function getCalendarFormat(myMoment, now) {\n    var diff = myMoment.diff(now, 'days', true);\n    return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n  }\n  function calendar$1(time, formats) {\n    // Support for single parameter, formats only overload to the calendar function\n    if (arguments.length === 1) {\n      if (!arguments[0]) {\n        time = undefined;\n        formats = undefined;\n      } else if (isMomentInput(arguments[0])) {\n        time = arguments[0];\n        formats = undefined;\n      } else if (isCalendarSpec(arguments[0])) {\n        formats = arguments[0];\n        time = undefined;\n      }\n    }\n    // We want to compare the start of today, vs this.\n    // Getting start-of-today depends on whether we're local/utc/offset or not.\n    var now = time || createLocal(),\n      sod = cloneWithOffset(now, this).startOf('day'),\n      format = hooks.calendarFormat(this, sod) || 'sameElse',\n      output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n    return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n  }\n  function clone() {\n    return new Moment(this);\n  }\n  function isAfter(input, units) {\n    var localInput = isMoment(input) ? input : createLocal(input);\n    if (!(this.isValid() && localInput.isValid())) {\n      return false;\n    }\n    units = normalizeUnits(units) || 'millisecond';\n    if (units === 'millisecond') {\n      return this.valueOf() > localInput.valueOf();\n    } else {\n      return localInput.valueOf() < this.clone().startOf(units).valueOf();\n    }\n  }\n  function isBefore(input, units) {\n    var localInput = isMoment(input) ? input : createLocal(input);\n    if (!(this.isValid() && localInput.isValid())) {\n      return false;\n    }\n    units = normalizeUnits(units) || 'millisecond';\n    if (units === 'millisecond') {\n      return this.valueOf() < localInput.valueOf();\n    } else {\n      return this.clone().endOf(units).valueOf() < localInput.valueOf();\n    }\n  }\n  function isBetween(from, to, units, inclusivity) {\n    var localFrom = isMoment(from) ? from : createLocal(from),\n      localTo = isMoment(to) ? to : createLocal(to);\n    if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n      return false;\n    }\n    inclusivity = inclusivity || '()';\n    return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n  }\n  function isSame(input, units) {\n    var localInput = isMoment(input) ? input : createLocal(input),\n      inputMs;\n    if (!(this.isValid() && localInput.isValid())) {\n      return false;\n    }\n    units = normalizeUnits(units) || 'millisecond';\n    if (units === 'millisecond') {\n      return this.valueOf() === localInput.valueOf();\n    } else {\n      inputMs = localInput.valueOf();\n      return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n    }\n  }\n  function isSameOrAfter(input, units) {\n    return this.isSame(input, units) || this.isAfter(input, units);\n  }\n  function isSameOrBefore(input, units) {\n    return this.isSame(input, units) || this.isBefore(input, units);\n  }\n  function diff(input, units, asFloat) {\n    var that, zoneDelta, output;\n    if (!this.isValid()) {\n      return NaN;\n    }\n    that = cloneWithOffset(input, this);\n    if (!that.isValid()) {\n      return NaN;\n    }\n    zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n    units = normalizeUnits(units);\n    switch (units) {\n      case 'year':\n        output = monthDiff(this, that) / 12;\n        break;\n      case 'month':\n        output = monthDiff(this, that);\n        break;\n      case 'quarter':\n        output = monthDiff(this, that) / 3;\n        break;\n      case 'second':\n        output = (this - that) / 1e3;\n        break;\n      // 1000\n      case 'minute':\n        output = (this - that) / 6e4;\n        break;\n      // 1000 * 60\n      case 'hour':\n        output = (this - that) / 36e5;\n        break;\n      // 1000 * 60 * 60\n      case 'day':\n        output = (this - that - zoneDelta) / 864e5;\n        break;\n      // 1000 * 60 * 60 * 24, negate dst\n      case 'week':\n        output = (this - that - zoneDelta) / 6048e5;\n        break;\n      // 1000 * 60 * 60 * 24 * 7, negate dst\n      default:\n        output = this - that;\n    }\n    return asFloat ? output : absFloor(output);\n  }\n  function monthDiff(a, b) {\n    if (a.date() < b.date()) {\n      // end-of-month calculations work correct when the start month has more\n      // days than the end month.\n      return -monthDiff(b, a);\n    }\n    // difference in months\n    var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n      // b is in (anchor - 1 month, anchor + 1 month)\n      anchor = a.clone().add(wholeMonthDiff, 'months'),\n      anchor2,\n      adjust;\n    if (b - anchor < 0) {\n      anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n      // linear across the month\n      adjust = (b - anchor) / (anchor - anchor2);\n    } else {\n      anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n      // linear across the month\n      adjust = (b - anchor) / (anchor2 - anchor);\n    }\n\n    //check for negative zero, return zero if negative zero\n    return -(wholeMonthDiff + adjust) || 0;\n  }\n  hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n  hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n  function toString() {\n    return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n  }\n  function toISOString(keepOffset) {\n    if (!this.isValid()) {\n      return null;\n    }\n    var utc = keepOffset !== true,\n      m = utc ? this.clone().utc() : this;\n    if (m.year() < 0 || m.year() > 9999) {\n      return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n    }\n    if (isFunction(Date.prototype.toISOString)) {\n      // native implementation is ~50x faster, use it when we can\n      if (utc) {\n        return this.toDate().toISOString();\n      } else {\n        return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n      }\n    }\n    return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n  }\n\n  /**\n   * Return a human readable representation of a moment that can\n   * also be evaluated to get a new moment which is the same\n   *\n   * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n   */\n  function inspect() {\n    if (!this.isValid()) {\n      return 'moment.invalid(/* ' + this._i + ' */)';\n    }\n    var func = 'moment',\n      zone = '',\n      prefix,\n      year,\n      datetime,\n      suffix;\n    if (!this.isLocal()) {\n      func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n      zone = 'Z';\n    }\n    prefix = '[' + func + '(\"]';\n    year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n    datetime = '-MM-DD[T]HH:mm:ss.SSS';\n    suffix = zone + '[\")]';\n    return this.format(prefix + year + datetime + suffix);\n  }\n  function format(inputString) {\n    if (!inputString) {\n      inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n    }\n    var output = formatMoment(this, inputString);\n    return this.localeData().postformat(output);\n  }\n  function from(time, withoutSuffix) {\n    if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n      return createDuration({\n        to: this,\n        from: time\n      }).locale(this.locale()).humanize(!withoutSuffix);\n    } else {\n      return this.localeData().invalidDate();\n    }\n  }\n  function fromNow(withoutSuffix) {\n    return this.from(createLocal(), withoutSuffix);\n  }\n  function to(time, withoutSuffix) {\n    if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n      return createDuration({\n        from: this,\n        to: time\n      }).locale(this.locale()).humanize(!withoutSuffix);\n    } else {\n      return this.localeData().invalidDate();\n    }\n  }\n  function toNow(withoutSuffix) {\n    return this.to(createLocal(), withoutSuffix);\n  }\n\n  // If passed a locale key, it will set the locale for this\n  // instance.  Otherwise, it will return the locale configuration\n  // variables for this instance.\n  function locale(key) {\n    var newLocaleData;\n    if (key === undefined) {\n      return this._locale._abbr;\n    } else {\n      newLocaleData = getLocale(key);\n      if (newLocaleData != null) {\n        this._locale = newLocaleData;\n      }\n      return this;\n    }\n  }\n  var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n    if (key === undefined) {\n      return this.localeData();\n    } else {\n      return this.locale(key);\n    }\n  });\n  function localeData() {\n    return this._locale;\n  }\n  var MS_PER_SECOND = 1000,\n    MS_PER_MINUTE = 60 * MS_PER_SECOND,\n    MS_PER_HOUR = 60 * MS_PER_MINUTE,\n    MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n  // actual modulo - handles negative numbers (for dates before 1970):\n  function mod$1(dividend, divisor) {\n    return (dividend % divisor + divisor) % divisor;\n  }\n  function localStartOfDate(y, m, d) {\n    // the date constructor remaps years 0-99 to 1900-1999\n    if (y < 100 && y >= 0) {\n      // preserve leap years using a full 400 year cycle, then reset\n      return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n    } else {\n      return new Date(y, m, d).valueOf();\n    }\n  }\n  function utcStartOfDate(y, m, d) {\n    // Date.UTC remaps years 0-99 to 1900-1999\n    if (y < 100 && y >= 0) {\n      // preserve leap years using a full 400 year cycle, then reset\n      return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n    } else {\n      return Date.UTC(y, m, d);\n    }\n  }\n  function startOf(units) {\n    var time, startOfDate;\n    units = normalizeUnits(units);\n    if (units === undefined || units === 'millisecond' || !this.isValid()) {\n      return this;\n    }\n    startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n    switch (units) {\n      case 'year':\n        time = startOfDate(this.year(), 0, 1);\n        break;\n      case 'quarter':\n        time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n        break;\n      case 'month':\n        time = startOfDate(this.year(), this.month(), 1);\n        break;\n      case 'week':\n        time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n        break;\n      case 'isoWeek':\n        time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n        break;\n      case 'day':\n      case 'date':\n        time = startOfDate(this.year(), this.month(), this.date());\n        break;\n      case 'hour':\n        time = this._d.valueOf();\n        time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n        break;\n      case 'minute':\n        time = this._d.valueOf();\n        time -= mod$1(time, MS_PER_MINUTE);\n        break;\n      case 'second':\n        time = this._d.valueOf();\n        time -= mod$1(time, MS_PER_SECOND);\n        break;\n    }\n    this._d.setTime(time);\n    hooks.updateOffset(this, true);\n    return this;\n  }\n  function endOf(units) {\n    var time, startOfDate;\n    units = normalizeUnits(units);\n    if (units === undefined || units === 'millisecond' || !this.isValid()) {\n      return this;\n    }\n    startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n    switch (units) {\n      case 'year':\n        time = startOfDate(this.year() + 1, 0, 1) - 1;\n        break;\n      case 'quarter':\n        time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n        break;\n      case 'month':\n        time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n        break;\n      case 'week':\n        time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n        break;\n      case 'isoWeek':\n        time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n        break;\n      case 'day':\n      case 'date':\n        time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n        break;\n      case 'hour':\n        time = this._d.valueOf();\n        time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n        break;\n      case 'minute':\n        time = this._d.valueOf();\n        time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n        break;\n      case 'second':\n        time = this._d.valueOf();\n        time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n        break;\n    }\n    this._d.setTime(time);\n    hooks.updateOffset(this, true);\n    return this;\n  }\n  function valueOf() {\n    return this._d.valueOf() - (this._offset || 0) * 60000;\n  }\n  function unix() {\n    return Math.floor(this.valueOf() / 1000);\n  }\n  function toDate() {\n    return new Date(this.valueOf());\n  }\n  function toArray() {\n    var m = this;\n    return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n  }\n  function toObject() {\n    var m = this;\n    return {\n      years: m.year(),\n      months: m.month(),\n      date: m.date(),\n      hours: m.hours(),\n      minutes: m.minutes(),\n      seconds: m.seconds(),\n      milliseconds: m.milliseconds()\n    };\n  }\n  function toJSON() {\n    // new Date(NaN).toJSON() === null\n    return this.isValid() ? this.toISOString() : null;\n  }\n  function isValid$2() {\n    return isValid(this);\n  }\n  function parsingFlags() {\n    return extend({}, getParsingFlags(this));\n  }\n  function invalidAt() {\n    return getParsingFlags(this).overflow;\n  }\n  function creationData() {\n    return {\n      input: this._i,\n      format: this._f,\n      locale: this._locale,\n      isUTC: this._isUTC,\n      strict: this._strict\n    };\n  }\n  addFormatToken('N', 0, 0, 'eraAbbr');\n  addFormatToken('NN', 0, 0, 'eraAbbr');\n  addFormatToken('NNN', 0, 0, 'eraAbbr');\n  addFormatToken('NNNN', 0, 0, 'eraName');\n  addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n  addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n  addFormatToken('y', ['yy', 2], 0, 'eraYear');\n  addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n  addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n  addRegexToken('N', matchEraAbbr);\n  addRegexToken('NN', matchEraAbbr);\n  addRegexToken('NNN', matchEraAbbr);\n  addRegexToken('NNNN', matchEraName);\n  addRegexToken('NNNNN', matchEraNarrow);\n  addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n    var era = config._locale.erasParse(input, token, config._strict);\n    if (era) {\n      getParsingFlags(config).era = era;\n    } else {\n      getParsingFlags(config).invalidEra = input;\n    }\n  });\n  addRegexToken('y', matchUnsigned);\n  addRegexToken('yy', matchUnsigned);\n  addRegexToken('yyy', matchUnsigned);\n  addRegexToken('yyyy', matchUnsigned);\n  addRegexToken('yo', matchEraYearOrdinal);\n  addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n  addParseToken(['yo'], function (input, array, config, token) {\n    var match;\n    if (config._locale._eraYearOrdinalRegex) {\n      match = input.match(config._locale._eraYearOrdinalRegex);\n    }\n    if (config._locale.eraYearOrdinalParse) {\n      array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n    } else {\n      array[YEAR] = parseInt(input, 10);\n    }\n  });\n  function localeEras(m, format) {\n    var i,\n      l,\n      date,\n      eras = this._eras || getLocale('en')._eras;\n    for (i = 0, l = eras.length; i < l; ++i) {\n      switch (typeof eras[i].since) {\n        case 'string':\n          // truncate time\n          date = hooks(eras[i].since).startOf('day');\n          eras[i].since = date.valueOf();\n          break;\n      }\n      switch (typeof eras[i].until) {\n        case 'undefined':\n          eras[i].until = +Infinity;\n          break;\n        case 'string':\n          // truncate time\n          date = hooks(eras[i].until).startOf('day').valueOf();\n          eras[i].until = date.valueOf();\n          break;\n      }\n    }\n    return eras;\n  }\n  function localeErasParse(eraName, format, strict) {\n    var i,\n      l,\n      eras = this.eras(),\n      name,\n      abbr,\n      narrow;\n    eraName = eraName.toUpperCase();\n    for (i = 0, l = eras.length; i < l; ++i) {\n      name = eras[i].name.toUpperCase();\n      abbr = eras[i].abbr.toUpperCase();\n      narrow = eras[i].narrow.toUpperCase();\n      if (strict) {\n        switch (format) {\n          case 'N':\n          case 'NN':\n          case 'NNN':\n            if (abbr === eraName) {\n              return eras[i];\n            }\n            break;\n          case 'NNNN':\n            if (name === eraName) {\n              return eras[i];\n            }\n            break;\n          case 'NNNNN':\n            if (narrow === eraName) {\n              return eras[i];\n            }\n            break;\n        }\n      } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n        return eras[i];\n      }\n    }\n  }\n  function localeErasConvertYear(era, year) {\n    var dir = era.since <= era.until ? +1 : -1;\n    if (year === undefined) {\n      return hooks(era.since).year();\n    } else {\n      return hooks(era.since).year() + (year - era.offset) * dir;\n    }\n  }\n  function getEraName() {\n    var i,\n      l,\n      val,\n      eras = this.localeData().eras();\n    for (i = 0, l = eras.length; i < l; ++i) {\n      // truncate time\n      val = this.clone().startOf('day').valueOf();\n      if (eras[i].since <= val && val <= eras[i].until) {\n        return eras[i].name;\n      }\n      if (eras[i].until <= val && val <= eras[i].since) {\n        return eras[i].name;\n      }\n    }\n    return '';\n  }\n  function getEraNarrow() {\n    var i,\n      l,\n      val,\n      eras = this.localeData().eras();\n    for (i = 0, l = eras.length; i < l; ++i) {\n      // truncate time\n      val = this.clone().startOf('day').valueOf();\n      if (eras[i].since <= val && val <= eras[i].until) {\n        return eras[i].narrow;\n      }\n      if (eras[i].until <= val && val <= eras[i].since) {\n        return eras[i].narrow;\n      }\n    }\n    return '';\n  }\n  function getEraAbbr() {\n    var i,\n      l,\n      val,\n      eras = this.localeData().eras();\n    for (i = 0, l = eras.length; i < l; ++i) {\n      // truncate time\n      val = this.clone().startOf('day').valueOf();\n      if (eras[i].since <= val && val <= eras[i].until) {\n        return eras[i].abbr;\n      }\n      if (eras[i].until <= val && val <= eras[i].since) {\n        return eras[i].abbr;\n      }\n    }\n    return '';\n  }\n  function getEraYear() {\n    var i,\n      l,\n      dir,\n      val,\n      eras = this.localeData().eras();\n    for (i = 0, l = eras.length; i < l; ++i) {\n      dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n      // truncate time\n      val = this.clone().startOf('day').valueOf();\n      if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n        return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n      }\n    }\n    return this.year();\n  }\n  function erasNameRegex(isStrict) {\n    if (!hasOwnProp(this, '_erasNameRegex')) {\n      computeErasParse.call(this);\n    }\n    return isStrict ? this._erasNameRegex : this._erasRegex;\n  }\n  function erasAbbrRegex(isStrict) {\n    if (!hasOwnProp(this, '_erasAbbrRegex')) {\n      computeErasParse.call(this);\n    }\n    return isStrict ? this._erasAbbrRegex : this._erasRegex;\n  }\n  function erasNarrowRegex(isStrict) {\n    if (!hasOwnProp(this, '_erasNarrowRegex')) {\n      computeErasParse.call(this);\n    }\n    return isStrict ? this._erasNarrowRegex : this._erasRegex;\n  }\n  function matchEraAbbr(isStrict, locale) {\n    return locale.erasAbbrRegex(isStrict);\n  }\n  function matchEraName(isStrict, locale) {\n    return locale.erasNameRegex(isStrict);\n  }\n  function matchEraNarrow(isStrict, locale) {\n    return locale.erasNarrowRegex(isStrict);\n  }\n  function matchEraYearOrdinal(isStrict, locale) {\n    return locale._eraYearOrdinalRegex || matchUnsigned;\n  }\n  function computeErasParse() {\n    var abbrPieces = [],\n      namePieces = [],\n      narrowPieces = [],\n      mixedPieces = [],\n      i,\n      l,\n      erasName,\n      erasAbbr,\n      erasNarrow,\n      eras = this.eras();\n    for (i = 0, l = eras.length; i < l; ++i) {\n      erasName = regexEscape(eras[i].name);\n      erasAbbr = regexEscape(eras[i].abbr);\n      erasNarrow = regexEscape(eras[i].narrow);\n      namePieces.push(erasName);\n      abbrPieces.push(erasAbbr);\n      narrowPieces.push(erasNarrow);\n      mixedPieces.push(erasName);\n      mixedPieces.push(erasAbbr);\n      mixedPieces.push(erasNarrow);\n    }\n    this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n    this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n    this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n    this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n  }\n\n  // FORMATTING\n\n  addFormatToken(0, ['gg', 2], 0, function () {\n    return this.weekYear() % 100;\n  });\n  addFormatToken(0, ['GG', 2], 0, function () {\n    return this.isoWeekYear() % 100;\n  });\n  function addWeekYearFormatToken(token, getter) {\n    addFormatToken(0, [token, token.length], 0, getter);\n  }\n  addWeekYearFormatToken('gggg', 'weekYear');\n  addWeekYearFormatToken('ggggg', 'weekYear');\n  addWeekYearFormatToken('GGGG', 'isoWeekYear');\n  addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n  // ALIASES\n\n  // PARSING\n\n  addRegexToken('G', matchSigned);\n  addRegexToken('g', matchSigned);\n  addRegexToken('GG', match1to2, match2);\n  addRegexToken('gg', match1to2, match2);\n  addRegexToken('GGGG', match1to4, match4);\n  addRegexToken('gggg', match1to4, match4);\n  addRegexToken('GGGGG', match1to6, match6);\n  addRegexToken('ggggg', match1to6, match6);\n  addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n    week[token.substr(0, 2)] = toInt(input);\n  });\n  addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n    week[token] = hooks.parseTwoDigitYear(input);\n  });\n\n  // MOMENTS\n\n  function getSetWeekYear(input) {\n    return getSetWeekYearHelper.call(this, input, this.week(), this.weekday() + this.localeData()._week.dow, this.localeData()._week.dow, this.localeData()._week.doy);\n  }\n  function getSetISOWeekYear(input) {\n    return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n  }\n  function getISOWeeksInYear() {\n    return weeksInYear(this.year(), 1, 4);\n  }\n  function getISOWeeksInISOWeekYear() {\n    return weeksInYear(this.isoWeekYear(), 1, 4);\n  }\n  function getWeeksInYear() {\n    var weekInfo = this.localeData()._week;\n    return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n  }\n  function getWeeksInWeekYear() {\n    var weekInfo = this.localeData()._week;\n    return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n  }\n  function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n    var weeksTarget;\n    if (input == null) {\n      return weekOfYear(this, dow, doy).year;\n    } else {\n      weeksTarget = weeksInYear(input, dow, doy);\n      if (week > weeksTarget) {\n        week = weeksTarget;\n      }\n      return setWeekAll.call(this, input, week, weekday, dow, doy);\n    }\n  }\n  function setWeekAll(weekYear, week, weekday, dow, doy) {\n    var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n      date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n    this.year(date.getUTCFullYear());\n    this.month(date.getUTCMonth());\n    this.date(date.getUTCDate());\n    return this;\n  }\n\n  // FORMATTING\n\n  addFormatToken('Q', 0, 'Qo', 'quarter');\n\n  // PARSING\n\n  addRegexToken('Q', match1);\n  addParseToken('Q', function (input, array) {\n    array[MONTH] = (toInt(input) - 1) * 3;\n  });\n\n  // MOMENTS\n\n  function getSetQuarter(input) {\n    return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n  }\n\n  // FORMATTING\n\n  addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n  // PARSING\n\n  addRegexToken('D', match1to2, match1to2NoLeadingZero);\n  addRegexToken('DD', match1to2, match2);\n  addRegexToken('Do', function (isStrict, locale) {\n    // TODO: Remove \"ordinalParse\" fallback in next major release.\n    return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n  });\n  addParseToken(['D', 'DD'], DATE);\n  addParseToken('Do', function (input, array) {\n    array[DATE] = toInt(input.match(match1to2)[0]);\n  });\n\n  // MOMENTS\n\n  var getSetDayOfMonth = makeGetSet('Date', true);\n\n  // FORMATTING\n\n  addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n  // PARSING\n\n  addRegexToken('DDD', match1to3);\n  addRegexToken('DDDD', match3);\n  addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n    config._dayOfYear = toInt(input);\n  });\n\n  // HELPERS\n\n  // MOMENTS\n\n  function getSetDayOfYear(input) {\n    var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n    return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n  }\n\n  // FORMATTING\n\n  addFormatToken('m', ['mm', 2], 0, 'minute');\n\n  // PARSING\n\n  addRegexToken('m', match1to2, match1to2HasZero);\n  addRegexToken('mm', match1to2, match2);\n  addParseToken(['m', 'mm'], MINUTE);\n\n  // MOMENTS\n\n  var getSetMinute = makeGetSet('Minutes', false);\n\n  // FORMATTING\n\n  addFormatToken('s', ['ss', 2], 0, 'second');\n\n  // PARSING\n\n  addRegexToken('s', match1to2, match1to2HasZero);\n  addRegexToken('ss', match1to2, match2);\n  addParseToken(['s', 'ss'], SECOND);\n\n  // MOMENTS\n\n  var getSetSecond = makeGetSet('Seconds', false);\n\n  // FORMATTING\n\n  addFormatToken('S', 0, 0, function () {\n    return ~~(this.millisecond() / 100);\n  });\n  addFormatToken(0, ['SS', 2], 0, function () {\n    return ~~(this.millisecond() / 10);\n  });\n  addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n  addFormatToken(0, ['SSSS', 4], 0, function () {\n    return this.millisecond() * 10;\n  });\n  addFormatToken(0, ['SSSSS', 5], 0, function () {\n    return this.millisecond() * 100;\n  });\n  addFormatToken(0, ['SSSSSS', 6], 0, function () {\n    return this.millisecond() * 1000;\n  });\n  addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n    return this.millisecond() * 10000;\n  });\n  addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n    return this.millisecond() * 100000;\n  });\n  addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n    return this.millisecond() * 1000000;\n  });\n\n  // PARSING\n\n  addRegexToken('S', match1to3, match1);\n  addRegexToken('SS', match1to3, match2);\n  addRegexToken('SSS', match1to3, match3);\n  var token, getSetMillisecond;\n  for (token = 'SSSS'; token.length <= 9; token += 'S') {\n    addRegexToken(token, matchUnsigned);\n  }\n  function parseMs(input, array) {\n    array[MILLISECOND] = toInt(('0.' + input) * 1000);\n  }\n  for (token = 'S'; token.length <= 9; token += 'S') {\n    addParseToken(token, parseMs);\n  }\n  getSetMillisecond = makeGetSet('Milliseconds', false);\n\n  // FORMATTING\n\n  addFormatToken('z', 0, 0, 'zoneAbbr');\n  addFormatToken('zz', 0, 0, 'zoneName');\n\n  // MOMENTS\n\n  function getZoneAbbr() {\n    return this._isUTC ? 'UTC' : '';\n  }\n  function getZoneName() {\n    return this._isUTC ? 'Coordinated Universal Time' : '';\n  }\n  var proto = Moment.prototype;\n  proto.add = add;\n  proto.calendar = calendar$1;\n  proto.clone = clone;\n  proto.diff = diff;\n  proto.endOf = endOf;\n  proto.format = format;\n  proto.from = from;\n  proto.fromNow = fromNow;\n  proto.to = to;\n  proto.toNow = toNow;\n  proto.get = stringGet;\n  proto.invalidAt = invalidAt;\n  proto.isAfter = isAfter;\n  proto.isBefore = isBefore;\n  proto.isBetween = isBetween;\n  proto.isSame = isSame;\n  proto.isSameOrAfter = isSameOrAfter;\n  proto.isSameOrBefore = isSameOrBefore;\n  proto.isValid = isValid$2;\n  proto.lang = lang;\n  proto.locale = locale;\n  proto.localeData = localeData;\n  proto.max = prototypeMax;\n  proto.min = prototypeMin;\n  proto.parsingFlags = parsingFlags;\n  proto.set = stringSet;\n  proto.startOf = startOf;\n  proto.subtract = subtract;\n  proto.toArray = toArray;\n  proto.toObject = toObject;\n  proto.toDate = toDate;\n  proto.toISOString = toISOString;\n  proto.inspect = inspect;\n  if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n    proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n      return 'Moment<' + this.format() + '>';\n    };\n  }\n  proto.toJSON = toJSON;\n  proto.toString = toString;\n  proto.unix = unix;\n  proto.valueOf = valueOf;\n  proto.creationData = creationData;\n  proto.eraName = getEraName;\n  proto.eraNarrow = getEraNarrow;\n  proto.eraAbbr = getEraAbbr;\n  proto.eraYear = getEraYear;\n  proto.year = getSetYear;\n  proto.isLeapYear = getIsLeapYear;\n  proto.weekYear = getSetWeekYear;\n  proto.isoWeekYear = getSetISOWeekYear;\n  proto.quarter = proto.quarters = getSetQuarter;\n  proto.month = getSetMonth;\n  proto.daysInMonth = getDaysInMonth;\n  proto.week = proto.weeks = getSetWeek;\n  proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n  proto.weeksInYear = getWeeksInYear;\n  proto.weeksInWeekYear = getWeeksInWeekYear;\n  proto.isoWeeksInYear = getISOWeeksInYear;\n  proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n  proto.date = getSetDayOfMonth;\n  proto.day = proto.days = getSetDayOfWeek;\n  proto.weekday = getSetLocaleDayOfWeek;\n  proto.isoWeekday = getSetISODayOfWeek;\n  proto.dayOfYear = getSetDayOfYear;\n  proto.hour = proto.hours = getSetHour;\n  proto.minute = proto.minutes = getSetMinute;\n  proto.second = proto.seconds = getSetSecond;\n  proto.millisecond = proto.milliseconds = getSetMillisecond;\n  proto.utcOffset = getSetOffset;\n  proto.utc = setOffsetToUTC;\n  proto.local = setOffsetToLocal;\n  proto.parseZone = setOffsetToParsedOffset;\n  proto.hasAlignedHourOffset = hasAlignedHourOffset;\n  proto.isDST = isDaylightSavingTime;\n  proto.isLocal = isLocal;\n  proto.isUtcOffset = isUtcOffset;\n  proto.isUtc = isUtc;\n  proto.isUTC = isUtc;\n  proto.zoneAbbr = getZoneAbbr;\n  proto.zoneName = getZoneName;\n  proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n  proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n  proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n  proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n  proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n  function createUnix(input) {\n    return createLocal(input * 1000);\n  }\n  function createInZone() {\n    return createLocal.apply(null, arguments).parseZone();\n  }\n  function preParsePostFormat(string) {\n    return string;\n  }\n  var proto$1 = Locale.prototype;\n  proto$1.calendar = calendar;\n  proto$1.longDateFormat = longDateFormat;\n  proto$1.invalidDate = invalidDate;\n  proto$1.ordinal = ordinal;\n  proto$1.preparse = preParsePostFormat;\n  proto$1.postformat = preParsePostFormat;\n  proto$1.relativeTime = relativeTime;\n  proto$1.pastFuture = pastFuture;\n  proto$1.set = set;\n  proto$1.eras = localeEras;\n  proto$1.erasParse = localeErasParse;\n  proto$1.erasConvertYear = localeErasConvertYear;\n  proto$1.erasAbbrRegex = erasAbbrRegex;\n  proto$1.erasNameRegex = erasNameRegex;\n  proto$1.erasNarrowRegex = erasNarrowRegex;\n  proto$1.months = localeMonths;\n  proto$1.monthsShort = localeMonthsShort;\n  proto$1.monthsParse = localeMonthsParse;\n  proto$1.monthsRegex = monthsRegex;\n  proto$1.monthsShortRegex = monthsShortRegex;\n  proto$1.week = localeWeek;\n  proto$1.firstDayOfYear = localeFirstDayOfYear;\n  proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n  proto$1.weekdays = localeWeekdays;\n  proto$1.weekdaysMin = localeWeekdaysMin;\n  proto$1.weekdaysShort = localeWeekdaysShort;\n  proto$1.weekdaysParse = localeWeekdaysParse;\n  proto$1.weekdaysRegex = weekdaysRegex;\n  proto$1.weekdaysShortRegex = weekdaysShortRegex;\n  proto$1.weekdaysMinRegex = weekdaysMinRegex;\n  proto$1.isPM = localeIsPM;\n  proto$1.meridiem = localeMeridiem;\n  function get$1(format, index, field, setter) {\n    var locale = getLocale(),\n      utc = createUTC().set(setter, index);\n    return locale[field](utc, format);\n  }\n  function listMonthsImpl(format, index, field) {\n    if (isNumber(format)) {\n      index = format;\n      format = undefined;\n    }\n    format = format || '';\n    if (index != null) {\n      return get$1(format, index, field, 'month');\n    }\n    var i,\n      out = [];\n    for (i = 0; i < 12; i++) {\n      out[i] = get$1(format, i, field, 'month');\n    }\n    return out;\n  }\n\n  // ()\n  // (5)\n  // (fmt, 5)\n  // (fmt)\n  // (true)\n  // (true, 5)\n  // (true, fmt, 5)\n  // (true, fmt)\n  function listWeekdaysImpl(localeSorted, format, index, field) {\n    if (typeof localeSorted === 'boolean') {\n      if (isNumber(format)) {\n        index = format;\n        format = undefined;\n      }\n      format = format || '';\n    } else {\n      format = localeSorted;\n      index = format;\n      localeSorted = false;\n      if (isNumber(format)) {\n        index = format;\n        format = undefined;\n      }\n      format = format || '';\n    }\n    var locale = getLocale(),\n      shift = localeSorted ? locale._week.dow : 0,\n      i,\n      out = [];\n    if (index != null) {\n      return get$1(format, (index + shift) % 7, field, 'day');\n    }\n    for (i = 0; i < 7; i++) {\n      out[i] = get$1(format, (i + shift) % 7, field, 'day');\n    }\n    return out;\n  }\n  function listMonths(format, index) {\n    return listMonthsImpl(format, index, 'months');\n  }\n  function listMonthsShort(format, index) {\n    return listMonthsImpl(format, index, 'monthsShort');\n  }\n  function listWeekdays(localeSorted, format, index) {\n    return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n  }\n  function listWeekdaysShort(localeSorted, format, index) {\n    return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n  }\n  function listWeekdaysMin(localeSorted, format, index) {\n    return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n  }\n  getSetGlobalLocale('en', {\n    eras: [{\n      since: '0001-01-01',\n      until: +Infinity,\n      offset: 1,\n      name: 'Anno Domini',\n      narrow: 'AD',\n      abbr: 'AD'\n    }, {\n      since: '0000-12-31',\n      until: -Infinity,\n      offset: 1,\n      name: 'Before Christ',\n      narrow: 'BC',\n      abbr: 'BC'\n    }],\n    dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n    ordinal: function (number) {\n      var b = number % 10,\n        output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n      return number + output;\n    }\n  });\n\n  // Side effect imports\n\n  hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n  hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n  var mathAbs = Math.abs;\n  function abs() {\n    var data = this._data;\n    this._milliseconds = mathAbs(this._milliseconds);\n    this._days = mathAbs(this._days);\n    this._months = mathAbs(this._months);\n    data.milliseconds = mathAbs(data.milliseconds);\n    data.seconds = mathAbs(data.seconds);\n    data.minutes = mathAbs(data.minutes);\n    data.hours = mathAbs(data.hours);\n    data.months = mathAbs(data.months);\n    data.years = mathAbs(data.years);\n    return this;\n  }\n  function addSubtract$1(duration, input, value, direction) {\n    var other = createDuration(input, value);\n    duration._milliseconds += direction * other._milliseconds;\n    duration._days += direction * other._days;\n    duration._months += direction * other._months;\n    return duration._bubble();\n  }\n\n  // supports only 2.0-style add(1, 's') or add(duration)\n  function add$1(input, value) {\n    return addSubtract$1(this, input, value, 1);\n  }\n\n  // supports only 2.0-style subtract(1, 's') or subtract(duration)\n  function subtract$1(input, value) {\n    return addSubtract$1(this, input, value, -1);\n  }\n  function absCeil(number) {\n    if (number < 0) {\n      return Math.floor(number);\n    } else {\n      return Math.ceil(number);\n    }\n  }\n  function bubble() {\n    var milliseconds = this._milliseconds,\n      days = this._days,\n      months = this._months,\n      data = this._data,\n      seconds,\n      minutes,\n      hours,\n      years,\n      monthsFromDays;\n\n    // if we have a mix of positive and negative values, bubble down first\n    // check: https://github.com/moment/moment/issues/2166\n    if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n      milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n      days = 0;\n      months = 0;\n    }\n\n    // The following code bubbles up values, see the tests for\n    // examples of what that means.\n    data.milliseconds = milliseconds % 1000;\n    seconds = absFloor(milliseconds / 1000);\n    data.seconds = seconds % 60;\n    minutes = absFloor(seconds / 60);\n    data.minutes = minutes % 60;\n    hours = absFloor(minutes / 60);\n    data.hours = hours % 24;\n    days += absFloor(hours / 24);\n\n    // convert days to months\n    monthsFromDays = absFloor(daysToMonths(days));\n    months += monthsFromDays;\n    days -= absCeil(monthsToDays(monthsFromDays));\n\n    // 12 months -> 1 year\n    years = absFloor(months / 12);\n    months %= 12;\n    data.days = days;\n    data.months = months;\n    data.years = years;\n    return this;\n  }\n  function daysToMonths(days) {\n    // 400 years have 146097 days (taking into account leap year rules)\n    // 400 years have 12 months === 4800\n    return days * 4800 / 146097;\n  }\n  function monthsToDays(months) {\n    // the reverse of daysToMonths\n    return months * 146097 / 4800;\n  }\n  function as(units) {\n    if (!this.isValid()) {\n      return NaN;\n    }\n    var days,\n      months,\n      milliseconds = this._milliseconds;\n    units = normalizeUnits(units);\n    if (units === 'month' || units === 'quarter' || units === 'year') {\n      days = this._days + milliseconds / 864e5;\n      months = this._months + daysToMonths(days);\n      switch (units) {\n        case 'month':\n          return months;\n        case 'quarter':\n          return months / 3;\n        case 'year':\n          return months / 12;\n      }\n    } else {\n      // handle milliseconds separately because of floating point math errors (issue #1867)\n      days = this._days + Math.round(monthsToDays(this._months));\n      switch (units) {\n        case 'week':\n          return days / 7 + milliseconds / 6048e5;\n        case 'day':\n          return days + milliseconds / 864e5;\n        case 'hour':\n          return days * 24 + milliseconds / 36e5;\n        case 'minute':\n          return days * 1440 + milliseconds / 6e4;\n        case 'second':\n          return days * 86400 + milliseconds / 1000;\n        // Math.floor prevents floating point math errors here\n        case 'millisecond':\n          return Math.floor(days * 864e5) + milliseconds;\n        default:\n          throw new Error('Unknown unit ' + units);\n      }\n    }\n  }\n  function makeAs(alias) {\n    return function () {\n      return this.as(alias);\n    };\n  }\n  var asMilliseconds = makeAs('ms'),\n    asSeconds = makeAs('s'),\n    asMinutes = makeAs('m'),\n    asHours = makeAs('h'),\n    asDays = makeAs('d'),\n    asWeeks = makeAs('w'),\n    asMonths = makeAs('M'),\n    asQuarters = makeAs('Q'),\n    asYears = makeAs('y'),\n    valueOf$1 = asMilliseconds;\n  function clone$1() {\n    return createDuration(this);\n  }\n  function get$2(units) {\n    units = normalizeUnits(units);\n    return this.isValid() ? this[units + 's']() : NaN;\n  }\n  function makeGetter(name) {\n    return function () {\n      return this.isValid() ? this._data[name] : NaN;\n    };\n  }\n  var milliseconds = makeGetter('milliseconds'),\n    seconds = makeGetter('seconds'),\n    minutes = makeGetter('minutes'),\n    hours = makeGetter('hours'),\n    days = makeGetter('days'),\n    months = makeGetter('months'),\n    years = makeGetter('years');\n  function weeks() {\n    return absFloor(this.days() / 7);\n  }\n  var round = Math.round,\n    thresholds = {\n      ss: 44,\n      // a few seconds to seconds\n      s: 45,\n      // seconds to minute\n      m: 45,\n      // minutes to hour\n      h: 22,\n      // hours to day\n      d: 26,\n      // days to month/week\n      w: null,\n      // weeks to month\n      M: 11 // months to year\n    };\n\n  // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n  function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n    return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n  }\n  function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n    var duration = createDuration(posNegDuration).abs(),\n      seconds = round(duration.as('s')),\n      minutes = round(duration.as('m')),\n      hours = round(duration.as('h')),\n      days = round(duration.as('d')),\n      months = round(duration.as('M')),\n      weeks = round(duration.as('w')),\n      years = round(duration.as('y')),\n      a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n    if (thresholds.w != null) {\n      a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n    }\n    a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n    a[2] = withoutSuffix;\n    a[3] = +posNegDuration > 0;\n    a[4] = locale;\n    return substituteTimeAgo.apply(null, a);\n  }\n\n  // This function allows you to set the rounding function for relative time strings\n  function getSetRelativeTimeRounding(roundingFunction) {\n    if (roundingFunction === undefined) {\n      return round;\n    }\n    if (typeof roundingFunction === 'function') {\n      round = roundingFunction;\n      return true;\n    }\n    return false;\n  }\n\n  // This function allows you to set a threshold for relative time strings\n  function getSetRelativeTimeThreshold(threshold, limit) {\n    if (thresholds[threshold] === undefined) {\n      return false;\n    }\n    if (limit === undefined) {\n      return thresholds[threshold];\n    }\n    thresholds[threshold] = limit;\n    if (threshold === 's') {\n      thresholds.ss = limit - 1;\n    }\n    return true;\n  }\n  function humanize(argWithSuffix, argThresholds) {\n    if (!this.isValid()) {\n      return this.localeData().invalidDate();\n    }\n    var withSuffix = false,\n      th = thresholds,\n      locale,\n      output;\n    if (typeof argWithSuffix === 'object') {\n      argThresholds = argWithSuffix;\n      argWithSuffix = false;\n    }\n    if (typeof argWithSuffix === 'boolean') {\n      withSuffix = argWithSuffix;\n    }\n    if (typeof argThresholds === 'object') {\n      th = Object.assign({}, thresholds, argThresholds);\n      if (argThresholds.s != null && argThresholds.ss == null) {\n        th.ss = argThresholds.s - 1;\n      }\n    }\n    locale = this.localeData();\n    output = relativeTime$1(this, !withSuffix, th, locale);\n    if (withSuffix) {\n      output = locale.pastFuture(+this, output);\n    }\n    return locale.postformat(output);\n  }\n  var abs$1 = Math.abs;\n  function sign(x) {\n    return (x > 0) - (x < 0) || +x;\n  }\n  function toISOString$1() {\n    // for ISO strings we do not use the normal bubbling rules:\n    //  * milliseconds bubble up until they become hours\n    //  * days do not bubble at all\n    //  * months bubble up until they become years\n    // This is because there is no context-free conversion between hours and days\n    // (think of clock changes)\n    // and also not between days and months (28-31 days per month)\n    if (!this.isValid()) {\n      return this.localeData().invalidDate();\n    }\n    var seconds = abs$1(this._milliseconds) / 1000,\n      days = abs$1(this._days),\n      months = abs$1(this._months),\n      minutes,\n      hours,\n      years,\n      s,\n      total = this.asSeconds(),\n      totalSign,\n      ymSign,\n      daysSign,\n      hmsSign;\n    if (!total) {\n      // this is the same as C#'s (Noda) and python (isodate)...\n      // but not other JS (goog.date)\n      return 'P0D';\n    }\n\n    // 3600 seconds -> 60 minutes -> 1 hour\n    minutes = absFloor(seconds / 60);\n    hours = absFloor(minutes / 60);\n    seconds %= 60;\n    minutes %= 60;\n\n    // 12 months -> 1 year\n    years = absFloor(months / 12);\n    months %= 12;\n\n    // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n    s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n    totalSign = total < 0 ? '-' : '';\n    ymSign = sign(this._months) !== sign(total) ? '-' : '';\n    daysSign = sign(this._days) !== sign(total) ? '-' : '';\n    hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n    return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n  }\n  var proto$2 = Duration.prototype;\n  proto$2.isValid = isValid$1;\n  proto$2.abs = abs;\n  proto$2.add = add$1;\n  proto$2.subtract = subtract$1;\n  proto$2.as = as;\n  proto$2.asMilliseconds = asMilliseconds;\n  proto$2.asSeconds = asSeconds;\n  proto$2.asMinutes = asMinutes;\n  proto$2.asHours = asHours;\n  proto$2.asDays = asDays;\n  proto$2.asWeeks = asWeeks;\n  proto$2.asMonths = asMonths;\n  proto$2.asQuarters = asQuarters;\n  proto$2.asYears = asYears;\n  proto$2.valueOf = valueOf$1;\n  proto$2._bubble = bubble;\n  proto$2.clone = clone$1;\n  proto$2.get = get$2;\n  proto$2.milliseconds = milliseconds;\n  proto$2.seconds = seconds;\n  proto$2.minutes = minutes;\n  proto$2.hours = hours;\n  proto$2.days = days;\n  proto$2.weeks = weeks;\n  proto$2.months = months;\n  proto$2.years = years;\n  proto$2.humanize = humanize;\n  proto$2.toISOString = toISOString$1;\n  proto$2.toString = toISOString$1;\n  proto$2.toJSON = toISOString$1;\n  proto$2.locale = locale;\n  proto$2.localeData = localeData;\n  proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n  proto$2.lang = lang;\n\n  // FORMATTING\n\n  addFormatToken('X', 0, 0, 'unix');\n  addFormatToken('x', 0, 0, 'valueOf');\n\n  // PARSING\n\n  addRegexToken('x', matchSigned);\n  addRegexToken('X', matchTimestamp);\n  addParseToken('X', function (input, array, config) {\n    config._d = new Date(parseFloat(input) * 1000);\n  });\n  addParseToken('x', function (input, array, config) {\n    config._d = new Date(toInt(input));\n  });\n\n  //! moment.js\n\n  hooks.version = '2.30.1';\n  setHookCallback(createLocal);\n  hooks.fn = proto;\n  hooks.min = min;\n  hooks.max = max;\n  hooks.now = now;\n  hooks.utc = createUTC;\n  hooks.unix = createUnix;\n  hooks.months = listMonths;\n  hooks.isDate = isDate;\n  hooks.locale = getSetGlobalLocale;\n  hooks.invalid = createInvalid;\n  hooks.duration = createDuration;\n  hooks.isMoment = isMoment;\n  hooks.weekdays = listWeekdays;\n  hooks.parseZone = createInZone;\n  hooks.localeData = getLocale;\n  hooks.isDuration = isDuration;\n  hooks.monthsShort = listMonthsShort;\n  hooks.weekdaysMin = listWeekdaysMin;\n  hooks.defineLocale = defineLocale;\n  hooks.updateLocale = updateLocale;\n  hooks.locales = listLocales;\n  hooks.weekdaysShort = listWeekdaysShort;\n  hooks.normalizeUnits = normalizeUnits;\n  hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n  hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n  hooks.calendarFormat = getCalendarFormat;\n  hooks.prototype = proto;\n\n  // currently HTML5 input type only supports 24-hour formats\n  hooks.HTML5_FMT = {\n    DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n    // <input type=\"datetime-local\" />\n    DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n    // <input type=\"datetime-local\" step=\"1\" />\n    DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n    // <input type=\"datetime-local\" step=\"0.001\" />\n    DATE: 'YYYY-MM-DD',\n    // <input type=\"date\" />\n    TIME: 'HH:mm',\n    // <input type=\"time\" />\n    TIME_SECONDS: 'HH:mm:ss',\n    // <input type=\"time\" step=\"1\" />\n    TIME_MS: 'HH:mm:ss.SSS',\n    // <input type=\"time\" step=\"0.001\" />\n    WEEK: 'GGGG-[W]WW',\n    // <input type=\"week\" />\n    MONTH: 'YYYY-MM' // <input type=\"month\" />\n  };\n  return hooks;\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/moment/moment.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/notyf/notyf.es.js":
/*!**************************************************!*\
  !*** ../react-ui/node_modules/notyf/notyf.es.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DEFAULT_OPTIONS: () => (/* binding */ DEFAULT_OPTIONS),\n/* harmony export */   Notyf: () => (/* binding */ Notyf),\n/* harmony export */   NotyfArray: () => (/* binding */ NotyfArray),\n/* harmony export */   NotyfArrayEvent: () => (/* binding */ NotyfArrayEvent),\n/* harmony export */   NotyfEvent: () => (/* binding */ NotyfEvent),\n/* harmony export */   NotyfNotification: () => (/* binding */ NotyfNotification),\n/* harmony export */   NotyfView: () => (/* binding */ NotyfView)\n/* harmony export */ });\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n  __assign = Object.assign || function __assign(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n      s = arguments[i];\n      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n    }\n    return t;\n  };\n  return __assign.apply(this, arguments);\n};\nvar NotyfNotification = /** @class */function () {\n  function NotyfNotification(options) {\n    this.options = options;\n    this.listeners = {};\n  }\n  NotyfNotification.prototype.on = function (eventType, cb) {\n    var callbacks = this.listeners[eventType] || [];\n    this.listeners[eventType] = callbacks.concat([cb]);\n  };\n  NotyfNotification.prototype.triggerEvent = function (eventType, event) {\n    var _this = this;\n    var callbacks = this.listeners[eventType] || [];\n    callbacks.forEach(function (cb) {\n      return cb({\n        target: _this,\n        event: event\n      });\n    });\n  };\n  return NotyfNotification;\n}();\nvar NotyfArrayEvent;\n(function (NotyfArrayEvent) {\n  NotyfArrayEvent[NotyfArrayEvent[\"Add\"] = 0] = \"Add\";\n  NotyfArrayEvent[NotyfArrayEvent[\"Remove\"] = 1] = \"Remove\";\n})(NotyfArrayEvent || (NotyfArrayEvent = {}));\nvar NotyfArray = /** @class */function () {\n  function NotyfArray() {\n    this.notifications = [];\n  }\n  NotyfArray.prototype.push = function (elem) {\n    this.notifications.push(elem);\n    this.updateFn(elem, NotyfArrayEvent.Add, this.notifications);\n  };\n  NotyfArray.prototype.splice = function (index, num) {\n    var elem = this.notifications.splice(index, num)[0];\n    this.updateFn(elem, NotyfArrayEvent.Remove, this.notifications);\n    return elem;\n  };\n  NotyfArray.prototype.indexOf = function (elem) {\n    return this.notifications.indexOf(elem);\n  };\n  NotyfArray.prototype.onUpdate = function (fn) {\n    this.updateFn = fn;\n  };\n  return NotyfArray;\n}();\nvar NotyfEvent;\n(function (NotyfEvent) {\n  NotyfEvent[\"Dismiss\"] = \"dismiss\";\n  NotyfEvent[\"Click\"] = \"click\";\n})(NotyfEvent || (NotyfEvent = {}));\nvar DEFAULT_OPTIONS = {\n  types: [{\n    type: 'success',\n    className: 'notyf__toast--success',\n    backgroundColor: '#3dc763',\n    icon: {\n      className: 'notyf__icon--success',\n      tagName: 'i'\n    }\n  }, {\n    type: 'error',\n    className: 'notyf__toast--error',\n    backgroundColor: '#ed3d3d',\n    icon: {\n      className: 'notyf__icon--error',\n      tagName: 'i'\n    }\n  }],\n  duration: 2000,\n  ripple: true,\n  position: {\n    x: 'right',\n    y: 'bottom'\n  },\n  dismissible: false\n};\nvar NotyfView = /** @class */function () {\n  function NotyfView() {\n    this.notifications = [];\n    this.events = {};\n    this.X_POSITION_FLEX_MAP = {\n      left: 'flex-start',\n      center: 'center',\n      right: 'flex-end'\n    };\n    this.Y_POSITION_FLEX_MAP = {\n      top: 'flex-start',\n      center: 'center',\n      bottom: 'flex-end'\n    };\n    // Creates the main notifications container\n    var docFrag = document.createDocumentFragment();\n    var notyfContainer = this._createHTMLElement({\n      tagName: 'div',\n      className: 'notyf'\n    });\n    docFrag.appendChild(notyfContainer);\n    document.body.appendChild(docFrag);\n    this.container = notyfContainer;\n    // Identifies the main animation end event\n    this.animationEndEventName = this._getAnimationEndEventName();\n    this._createA11yContainer();\n  }\n  NotyfView.prototype.on = function (event, cb) {\n    var _a;\n    this.events = __assign(__assign({}, this.events), (_a = {}, _a[event] = cb, _a));\n  };\n  NotyfView.prototype.update = function (notification, type) {\n    if (type === NotyfArrayEvent.Add) {\n      this.addNotification(notification);\n    } else if (type === NotyfArrayEvent.Remove) {\n      this.removeNotification(notification);\n    }\n  };\n  NotyfView.prototype.removeNotification = function (notification) {\n    var _this = this;\n    var renderedNotification = this._popRenderedNotification(notification);\n    var node;\n    if (!renderedNotification) {\n      return;\n    }\n    node = renderedNotification.node;\n    node.classList.add('notyf__toast--disappear');\n    var handleEvent;\n    node.addEventListener(this.animationEndEventName, handleEvent = function (event) {\n      if (event.target === node) {\n        node.removeEventListener(_this.animationEndEventName, handleEvent);\n        _this.container.removeChild(node);\n      }\n    });\n  };\n  NotyfView.prototype.addNotification = function (notification) {\n    var node = this._renderNotification(notification);\n    this.notifications.push({\n      notification: notification,\n      node: node\n    });\n    // For a11y purposes, we still want to announce that there's a notification in the screen\n    // even if it comes with no message.\n    this._announce(notification.options.message || 'Notification');\n  };\n  NotyfView.prototype._renderNotification = function (notification) {\n    var _a;\n    var card = this._buildNotificationCard(notification);\n    var className = notification.options.className;\n    if (className) {\n      (_a = card.classList).add.apply(_a, className.split(' '));\n    }\n    this.container.appendChild(card);\n    return card;\n  };\n  NotyfView.prototype._popRenderedNotification = function (notification) {\n    var idx = -1;\n    for (var i = 0; i < this.notifications.length && idx < 0; i++) {\n      if (this.notifications[i].notification === notification) {\n        idx = i;\n      }\n    }\n    if (idx !== -1) {\n      return this.notifications.splice(idx, 1)[0];\n    }\n    return;\n  };\n  NotyfView.prototype.getXPosition = function (options) {\n    var _a;\n    return ((_a = options === null || options === void 0 ? void 0 : options.position) === null || _a === void 0 ? void 0 : _a.x) || 'right';\n  };\n  NotyfView.prototype.getYPosition = function (options) {\n    var _a;\n    return ((_a = options === null || options === void 0 ? void 0 : options.position) === null || _a === void 0 ? void 0 : _a.y) || 'bottom';\n  };\n  NotyfView.prototype.adjustContainerAlignment = function (options) {\n    var align = this.X_POSITION_FLEX_MAP[this.getXPosition(options)];\n    var justify = this.Y_POSITION_FLEX_MAP[this.getYPosition(options)];\n    var style = this.container.style;\n    style.setProperty('justify-content', justify);\n    style.setProperty('align-items', align);\n  };\n  NotyfView.prototype._buildNotificationCard = function (notification) {\n    var _this = this;\n    var options = notification.options;\n    var iconOpts = options.icon;\n    // Adjust container according to position (e.g. top-left, bottom-center, etc)\n    this.adjustContainerAlignment(options);\n    // Create elements\n    var notificationElem = this._createHTMLElement({\n      tagName: 'div',\n      className: 'notyf__toast'\n    });\n    var ripple = this._createHTMLElement({\n      tagName: 'div',\n      className: 'notyf__ripple'\n    });\n    var wrapper = this._createHTMLElement({\n      tagName: 'div',\n      className: 'notyf__wrapper'\n    });\n    var message = this._createHTMLElement({\n      tagName: 'div',\n      className: 'notyf__message'\n    });\n    message.innerHTML = options.message || '';\n    var mainColor = options.background || options.backgroundColor;\n    // Build the icon and append it to the card\n    if (iconOpts) {\n      var iconContainer = this._createHTMLElement({\n        tagName: 'div',\n        className: 'notyf__icon'\n      });\n      if (typeof iconOpts === 'string' || iconOpts instanceof String) iconContainer.innerHTML = new String(iconOpts).valueOf();\n      if (typeof iconOpts === 'object') {\n        var _a = iconOpts.tagName,\n          tagName = _a === void 0 ? 'i' : _a,\n          className_1 = iconOpts.className,\n          text = iconOpts.text,\n          _b = iconOpts.color,\n          color = _b === void 0 ? mainColor : _b;\n        var iconElement = this._createHTMLElement({\n          tagName: tagName,\n          className: className_1,\n          text: text\n        });\n        if (color) iconElement.style.color = color;\n        iconContainer.appendChild(iconElement);\n      }\n      wrapper.appendChild(iconContainer);\n    }\n    wrapper.appendChild(message);\n    notificationElem.appendChild(wrapper);\n    // Add ripple if applicable, else just paint the full toast\n    if (mainColor) {\n      if (options.ripple) {\n        ripple.style.background = mainColor;\n        notificationElem.appendChild(ripple);\n      } else {\n        notificationElem.style.background = mainColor;\n      }\n    }\n    // Add dismiss button\n    if (options.dismissible) {\n      var dismissWrapper = this._createHTMLElement({\n        tagName: 'div',\n        className: 'notyf__dismiss'\n      });\n      var dismissButton = this._createHTMLElement({\n        tagName: 'button',\n        className: 'notyf__dismiss-btn'\n      });\n      dismissWrapper.appendChild(dismissButton);\n      wrapper.appendChild(dismissWrapper);\n      notificationElem.classList.add(\"notyf__toast--dismissible\");\n      dismissButton.addEventListener('click', function (event) {\n        var _a, _b;\n        (_b = (_a = _this.events)[NotyfEvent.Dismiss]) === null || _b === void 0 ? void 0 : _b.call(_a, {\n          target: notification,\n          event: event\n        });\n        event.stopPropagation();\n      });\n    }\n    notificationElem.addEventListener('click', function (event) {\n      var _a, _b;\n      return (_b = (_a = _this.events)[NotyfEvent.Click]) === null || _b === void 0 ? void 0 : _b.call(_a, {\n        target: notification,\n        event: event\n      });\n    });\n    // Adjust margins depending on whether its an upper or lower notification\n    var className = this.getYPosition(options) === 'top' ? 'upper' : 'lower';\n    notificationElem.classList.add(\"notyf__toast--\" + className);\n    return notificationElem;\n  };\n  NotyfView.prototype._createHTMLElement = function (_a) {\n    var tagName = _a.tagName,\n      className = _a.className,\n      text = _a.text;\n    var elem = document.createElement(tagName);\n    if (className) {\n      elem.className = className;\n    }\n    elem.textContent = text || null;\n    return elem;\n  };\n  /**\r\n   * Creates an invisible container which will announce the notyfs to\r\n   * screen readers\r\n   */\n  NotyfView.prototype._createA11yContainer = function () {\n    var a11yContainer = this._createHTMLElement({\n      tagName: 'div',\n      className: 'notyf-announcer'\n    });\n    a11yContainer.setAttribute('aria-atomic', 'true');\n    a11yContainer.setAttribute('aria-live', 'polite');\n    // Set the a11y container to be visible hidden. Can't use display: none as\n    // screen readers won't read it.\n    a11yContainer.style.border = '0';\n    a11yContainer.style.clip = 'rect(0 0 0 0)';\n    a11yContainer.style.height = '1px';\n    a11yContainer.style.margin = '-1px';\n    a11yContainer.style.overflow = 'hidden';\n    a11yContainer.style.padding = '0';\n    a11yContainer.style.position = 'absolute';\n    a11yContainer.style.width = '1px';\n    a11yContainer.style.outline = '0';\n    document.body.appendChild(a11yContainer);\n    this.a11yContainer = a11yContainer;\n  };\n  /**\r\n   * Announces a message to screenreaders.\r\n   */\n  NotyfView.prototype._announce = function (message) {\n    var _this = this;\n    this.a11yContainer.textContent = '';\n    // This 100ms timeout is necessary for some browser + screen-reader combinations:\n    // - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.\n    // - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a\n    //   second time without clearing and then using a non-zero delay.\n    // (using JAWS 17 at time of this writing).\n    // https://github.com/angular/material2/blob/master/src/cdk/a11y/live-announcer/live-announcer.ts\n    setTimeout(function () {\n      _this.a11yContainer.textContent = message;\n    }, 100);\n  };\n  /**\r\n   * Determine which animationend event is supported\r\n   */\n  NotyfView.prototype._getAnimationEndEventName = function () {\n    var el = document.createElement('_fake');\n    var transitions = {\n      MozTransition: 'animationend',\n      OTransition: 'oAnimationEnd',\n      WebkitTransition: 'webkitAnimationEnd',\n      transition: 'animationend'\n    };\n    var t;\n    for (t in transitions) {\n      if (el.style[t] !== undefined) {\n        return transitions[t];\n      }\n    }\n    // No supported animation end event. Using \"animationend\" as a fallback\n    return 'animationend';\n  };\n  return NotyfView;\n}();\n\n/**\r\n * Main controller class. Defines the main Notyf API.\r\n */\nvar Notyf = /** @class */function () {\n  function Notyf(opts) {\n    var _this = this;\n    this.dismiss = this._removeNotification;\n    this.notifications = new NotyfArray();\n    this.view = new NotyfView();\n    var types = this.registerTypes(opts);\n    this.options = __assign(__assign({}, DEFAULT_OPTIONS), opts);\n    this.options.types = types;\n    this.notifications.onUpdate(function (elem, type) {\n      return _this.view.update(elem, type);\n    });\n    this.view.on(NotyfEvent.Dismiss, function (_a) {\n      var target = _a.target,\n        event = _a.event;\n      _this._removeNotification(target);\n      // tslint:disable-next-line: no-string-literal\n      target['triggerEvent'](NotyfEvent.Dismiss, event);\n    });\n    // tslint:disable-next-line: no-string-literal\n    this.view.on(NotyfEvent.Click, function (_a) {\n      var target = _a.target,\n        event = _a.event;\n      return target['triggerEvent'](NotyfEvent.Click, event);\n    });\n  }\n  Notyf.prototype.error = function (payload) {\n    var options = this.normalizeOptions('error', payload);\n    return this.open(options);\n  };\n  Notyf.prototype.success = function (payload) {\n    var options = this.normalizeOptions('success', payload);\n    return this.open(options);\n  };\n  Notyf.prototype.open = function (options) {\n    var defaultOpts = this.options.types.find(function (_a) {\n      var type = _a.type;\n      return type === options.type;\n    }) || {};\n    var config = __assign(__assign({}, defaultOpts), options);\n    this.assignProps(['ripple', 'position', 'dismissible'], config);\n    var notification = new NotyfNotification(config);\n    this._pushNotification(notification);\n    return notification;\n  };\n  Notyf.prototype.dismissAll = function () {\n    while (this.notifications.splice(0, 1));\n  };\n  /**\r\n   * Assigns properties to a config object based on two rules:\r\n   * 1. If the config object already sets that prop, leave it as so\r\n   * 2. Otherwise, use the default prop from the global options\r\n   *\r\n   * It's intended to build the final config object to open a notification. e.g. if\r\n   * 'dismissible' is not set, then use the value from the global config.\r\n   *\r\n   * @param props - properties to be assigned to the config object\r\n   * @param config - object whose properties need to be set\r\n   */\n  Notyf.prototype.assignProps = function (props, config) {\n    var _this = this;\n    props.forEach(function (prop) {\n      // intentional double equality to check for both null and undefined\n      config[prop] = config[prop] == null ? _this.options[prop] : config[prop];\n    });\n  };\n  Notyf.prototype._pushNotification = function (notification) {\n    var _this = this;\n    this.notifications.push(notification);\n    var duration = notification.options.duration !== undefined ? notification.options.duration : this.options.duration;\n    if (duration) {\n      setTimeout(function () {\n        return _this._removeNotification(notification);\n      }, duration);\n    }\n  };\n  Notyf.prototype._removeNotification = function (notification) {\n    var index = this.notifications.indexOf(notification);\n    if (index !== -1) {\n      this.notifications.splice(index, 1);\n    }\n  };\n  Notyf.prototype.normalizeOptions = function (type, payload) {\n    var options = {\n      type: type\n    };\n    if (typeof payload === 'string') {\n      options.message = payload;\n    } else if (typeof payload === 'object') {\n      options = __assign(__assign({}, options), payload);\n    }\n    return options;\n  };\n  Notyf.prototype.registerTypes = function (opts) {\n    var incomingTypes = (opts && opts.types || []).slice();\n    var finalDefaultTypes = DEFAULT_OPTIONS.types.map(function (defaultType) {\n      // find if there's a default type within the user input's types, if so, it means the user\n      // wants to change some of the default settings\n      var userTypeIdx = -1;\n      incomingTypes.forEach(function (t, idx) {\n        if (t.type === defaultType.type) userTypeIdx = idx;\n      });\n      var userType = userTypeIdx !== -1 ? incomingTypes.splice(userTypeIdx, 1)[0] : {};\n      return __assign(__assign({}, defaultType), userType);\n    });\n    return finalDefaultTypes.concat(incomingTypes);\n  };\n  return Notyf;\n}();\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/notyf/notyf.es.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/notyf/notyf.min.css":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/notyf/notyf.min.css ***!
  \****************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../assets/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../assets/node_modules/style-loader/dist/runtime/styleDomAPI.js */ \"./node_modules/style-loader/dist/runtime/styleDomAPI.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../assets/node_modules/style-loader/dist/runtime/insertBySelector.js */ \"./node_modules/style-loader/dist/runtime/insertBySelector.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../assets/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ \"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../assets/node_modules/style-loader/dist/runtime/insertStyleElement.js */ \"./node_modules/style-loader/dist/runtime/insertStyleElement.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../assets/node_modules/style-loader/dist/runtime/styleTagTransform.js */ \"./node_modules/style-loader/dist/runtime/styleTagTransform.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_notyf_min_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../assets/node_modules/css-loader/dist/cjs.js!../../../assets/node_modules/sass-loader/dist/cjs.js!./notyf.min.css */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/notyf/notyf.min.css\");\n\n      \n      \n      \n      \n      \n      \n      \n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = (_assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\noptions.insert = _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, \"head\");\noptions.domAPI = (_assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_notyf_min_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"], options);\n\n\n\n\n       /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_notyf_min_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"] && _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_notyf_min_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals ? _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_notyf_min_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals : undefined);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/notyf/notyf.min.css?\n}");

/***/ }),

/***/ "../react-ui/node_modules/object-assign/index.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/object-assign/index.js ***!
  \*******************************************************/
/***/ ((module) => {

"use strict";
eval("{/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n\n\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\nfunction toObject(val) {\n  if (val === null || val === undefined) {\n    throw new TypeError('Object.assign cannot be called with null or undefined');\n  }\n  return Object(val);\n}\nfunction shouldUseNative() {\n  try {\n    if (!Object.assign) {\n      return false;\n    }\n\n    // Detect buggy property enumeration order in older V8 versions.\n\n    // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n    var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n    test1[5] = 'de';\n    if (Object.getOwnPropertyNames(test1)[0] === '5') {\n      return false;\n    }\n\n    // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n    var test2 = {};\n    for (var i = 0; i < 10; i++) {\n      test2['_' + String.fromCharCode(i)] = i;\n    }\n    var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n      return test2[n];\n    });\n    if (order2.join('') !== '0123456789') {\n      return false;\n    }\n\n    // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n    var test3 = {};\n    'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n      test3[letter] = letter;\n    });\n    if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n      return false;\n    }\n    return true;\n  } catch (err) {\n    // We don't expect any of the above to throw, but better to be safe.\n    return false;\n  }\n}\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n  var from;\n  var to = toObject(target);\n  var symbols;\n  for (var s = 1; s < arguments.length; s++) {\n    from = Object(arguments[s]);\n    for (var key in from) {\n      if (hasOwnProperty.call(from, key)) {\n        to[key] = from[key];\n      }\n    }\n    if (getOwnPropertySymbols) {\n      symbols = getOwnPropertySymbols(from);\n      for (var i = 0; i < symbols.length; i++) {\n        if (propIsEnumerable.call(from, symbols[i])) {\n          to[symbols[i]] = from[symbols[i]];\n        }\n      }\n    }\n  }\n  return to;\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/object-assign/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/parchment/dist/parchment.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/parchment/dist/parchment.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Attributor: () => (/* binding */ Attributor),\n/* harmony export */   AttributorStore: () => (/* binding */ AttributorStore$1),\n/* harmony export */   BlockBlot: () => (/* binding */ BlockBlot$1),\n/* harmony export */   ClassAttributor: () => (/* binding */ ClassAttributor$1),\n/* harmony export */   ContainerBlot: () => (/* binding */ ContainerBlot$1),\n/* harmony export */   EmbedBlot: () => (/* binding */ EmbedBlot$1),\n/* harmony export */   InlineBlot: () => (/* binding */ InlineBlot$1),\n/* harmony export */   LeafBlot: () => (/* binding */ LeafBlot$1),\n/* harmony export */   ParentBlot: () => (/* binding */ ParentBlot$1),\n/* harmony export */   Registry: () => (/* binding */ Registry),\n/* harmony export */   Scope: () => (/* binding */ Scope),\n/* harmony export */   ScrollBlot: () => (/* binding */ ScrollBlot$1),\n/* harmony export */   StyleAttributor: () => (/* binding */ StyleAttributor$1),\n/* harmony export */   TextBlot: () => (/* binding */ TextBlot$1)\n/* harmony export */ });\nvar Scope = /* @__PURE__ */(Scope2 => (Scope2[Scope2.TYPE = 3] = \"TYPE\", Scope2[Scope2.LEVEL = 12] = \"LEVEL\", Scope2[Scope2.ATTRIBUTE = 13] = \"ATTRIBUTE\", Scope2[Scope2.BLOT = 14] = \"BLOT\", Scope2[Scope2.INLINE = 7] = \"INLINE\", Scope2[Scope2.BLOCK = 11] = \"BLOCK\", Scope2[Scope2.BLOCK_BLOT = 10] = \"BLOCK_BLOT\", Scope2[Scope2.INLINE_BLOT = 6] = \"INLINE_BLOT\", Scope2[Scope2.BLOCK_ATTRIBUTE = 9] = \"BLOCK_ATTRIBUTE\", Scope2[Scope2.INLINE_ATTRIBUTE = 5] = \"INLINE_ATTRIBUTE\", Scope2[Scope2.ANY = 15] = \"ANY\", Scope2))(Scope || {});\nclass Attributor {\n  constructor(attrName, keyName, options = {}) {\n    this.attrName = attrName, this.keyName = keyName;\n    const attributeBit = Scope.TYPE & Scope.ATTRIBUTE;\n    this.scope = options.scope != null ?\n    // Ignore type bits, force attribute bit\n    options.scope & Scope.LEVEL | attributeBit : Scope.ATTRIBUTE, options.whitelist != null && (this.whitelist = options.whitelist);\n  }\n  static keys(node) {\n    return Array.from(node.attributes).map(item => item.name);\n  }\n  add(node, value) {\n    return this.canAdd(node, value) ? (node.setAttribute(this.keyName, value), !0) : !1;\n  }\n  canAdd(_node, value) {\n    return this.whitelist == null ? !0 : typeof value == \"string\" ? this.whitelist.indexOf(value.replace(/[\"']/g, \"\")) > -1 : this.whitelist.indexOf(value) > -1;\n  }\n  remove(node) {\n    node.removeAttribute(this.keyName);\n  }\n  value(node) {\n    const value = node.getAttribute(this.keyName);\n    return this.canAdd(node, value) && value ? value : \"\";\n  }\n}\nclass ParchmentError extends Error {\n  constructor(message) {\n    message = \"[Parchment] \" + message, super(message), this.message = message, this.name = this.constructor.name;\n  }\n}\nconst _Registry = class _Registry {\n  constructor() {\n    this.attributes = {}, this.classes = {}, this.tags = {}, this.types = {};\n  }\n  static find(node, bubble = !1) {\n    if (node == null) return null;\n    if (this.blots.has(node)) return this.blots.get(node) || null;\n    if (bubble) {\n      let parentNode = null;\n      try {\n        parentNode = node.parentNode;\n      } catch {\n        return null;\n      }\n      return this.find(parentNode, bubble);\n    }\n    return null;\n  }\n  create(scroll, input, value) {\n    const match2 = this.query(input);\n    if (match2 == null) throw new ParchmentError(`Unable to create ${input} blot`);\n    const blotClass = match2,\n      node =\n      // @ts-expect-error Fix me later\n      input instanceof Node || input.nodeType === Node.TEXT_NODE ? input : blotClass.create(value),\n      blot = new blotClass(scroll, node, value);\n    return _Registry.blots.set(blot.domNode, blot), blot;\n  }\n  find(node, bubble = !1) {\n    return _Registry.find(node, bubble);\n  }\n  query(query, scope = Scope.ANY) {\n    let match2;\n    return typeof query == \"string\" ? match2 = this.types[query] || this.attributes[query] : query instanceof Text || query.nodeType === Node.TEXT_NODE ? match2 = this.types.text : typeof query == \"number\" ? query & Scope.LEVEL & Scope.BLOCK ? match2 = this.types.block : query & Scope.LEVEL & Scope.INLINE && (match2 = this.types.inline) : query instanceof Element && ((query.getAttribute(\"class\") || \"\").split(/\\s+/).some(name => (match2 = this.classes[name], !!match2)), match2 = match2 || this.tags[query.tagName]), match2 == null ? null : \"scope\" in match2 && scope & Scope.LEVEL & match2.scope && scope & Scope.TYPE & match2.scope ? match2 : null;\n  }\n  register(...definitions) {\n    return definitions.map(definition => {\n      const isBlot = \"blotName\" in definition,\n        isAttr = \"attrName\" in definition;\n      if (!isBlot && !isAttr) throw new ParchmentError(\"Invalid definition\");\n      if (isBlot && definition.blotName === \"abstract\") throw new ParchmentError(\"Cannot register abstract class\");\n      const key = isBlot ? definition.blotName : isAttr ? definition.attrName : void 0;\n      return this.types[key] = definition, isAttr ? typeof definition.keyName == \"string\" && (this.attributes[definition.keyName] = definition) : isBlot && (definition.className && (this.classes[definition.className] = definition), definition.tagName && (Array.isArray(definition.tagName) ? definition.tagName = definition.tagName.map(tagName => tagName.toUpperCase()) : definition.tagName = definition.tagName.toUpperCase(), (Array.isArray(definition.tagName) ? definition.tagName : [definition.tagName]).forEach(tag => {\n        (this.tags[tag] == null || definition.className == null) && (this.tags[tag] = definition);\n      }))), definition;\n    });\n  }\n};\n_Registry.blots = /* @__PURE__ */new WeakMap();\nlet Registry = _Registry;\nfunction match(node, prefix) {\n  return (node.getAttribute(\"class\") || \"\").split(/\\s+/).filter(name => name.indexOf(`${prefix}-`) === 0);\n}\nclass ClassAttributor extends Attributor {\n  static keys(node) {\n    return (node.getAttribute(\"class\") || \"\").split(/\\s+/).map(name => name.split(\"-\").slice(0, -1).join(\"-\"));\n  }\n  add(node, value) {\n    return this.canAdd(node, value) ? (this.remove(node), node.classList.add(`${this.keyName}-${value}`), !0) : !1;\n  }\n  remove(node) {\n    match(node, this.keyName).forEach(name => {\n      node.classList.remove(name);\n    }), node.classList.length === 0 && node.removeAttribute(\"class\");\n  }\n  value(node) {\n    const value = (match(node, this.keyName)[0] || \"\").slice(this.keyName.length + 1);\n    return this.canAdd(node, value) ? value : \"\";\n  }\n}\nconst ClassAttributor$1 = ClassAttributor;\nfunction camelize(name) {\n  const parts = name.split(\"-\"),\n    rest = parts.slice(1).map(part => part[0].toUpperCase() + part.slice(1)).join(\"\");\n  return parts[0] + rest;\n}\nclass StyleAttributor extends Attributor {\n  static keys(node) {\n    return (node.getAttribute(\"style\") || \"\").split(\";\").map(value => value.split(\":\")[0].trim());\n  }\n  add(node, value) {\n    return this.canAdd(node, value) ? (node.style[camelize(this.keyName)] = value, !0) : !1;\n  }\n  remove(node) {\n    node.style[camelize(this.keyName)] = \"\", node.getAttribute(\"style\") || node.removeAttribute(\"style\");\n  }\n  value(node) {\n    const value = node.style[camelize(this.keyName)];\n    return this.canAdd(node, value) ? value : \"\";\n  }\n}\nconst StyleAttributor$1 = StyleAttributor;\nclass AttributorStore {\n  constructor(domNode) {\n    this.attributes = {}, this.domNode = domNode, this.build();\n  }\n  attribute(attribute, value) {\n    value ? attribute.add(this.domNode, value) && (attribute.value(this.domNode) != null ? this.attributes[attribute.attrName] = attribute : delete this.attributes[attribute.attrName]) : (attribute.remove(this.domNode), delete this.attributes[attribute.attrName]);\n  }\n  build() {\n    this.attributes = {};\n    const blot = Registry.find(this.domNode);\n    if (blot == null) return;\n    const attributes = Attributor.keys(this.domNode),\n      classes = ClassAttributor$1.keys(this.domNode),\n      styles = StyleAttributor$1.keys(this.domNode);\n    attributes.concat(classes).concat(styles).forEach(name => {\n      const attr = blot.scroll.query(name, Scope.ATTRIBUTE);\n      attr instanceof Attributor && (this.attributes[attr.attrName] = attr);\n    });\n  }\n  copy(target) {\n    Object.keys(this.attributes).forEach(key => {\n      const value = this.attributes[key].value(this.domNode);\n      target.format(key, value);\n    });\n  }\n  move(target) {\n    this.copy(target), Object.keys(this.attributes).forEach(key => {\n      this.attributes[key].remove(this.domNode);\n    }), this.attributes = {};\n  }\n  values() {\n    return Object.keys(this.attributes).reduce((attributes, name) => (attributes[name] = this.attributes[name].value(this.domNode), attributes), {});\n  }\n}\nconst AttributorStore$1 = AttributorStore,\n  _ShadowBlot = class _ShadowBlot {\n    constructor(scroll, domNode) {\n      this.scroll = scroll, this.domNode = domNode, Registry.blots.set(domNode, this), this.prev = null, this.next = null;\n    }\n    static create(rawValue) {\n      if (this.tagName == null) throw new ParchmentError(\"Blot definition missing tagName\");\n      let node, value;\n      return Array.isArray(this.tagName) ? (typeof rawValue == \"string\" ? (value = rawValue.toUpperCase(), parseInt(value, 10).toString() === value && (value = parseInt(value, 10))) : typeof rawValue == \"number\" && (value = rawValue), typeof value == \"number\" ? node = document.createElement(this.tagName[value - 1]) : value && this.tagName.indexOf(value) > -1 ? node = document.createElement(value) : node = document.createElement(this.tagName[0])) : node = document.createElement(this.tagName), this.className && node.classList.add(this.className), node;\n    }\n    // Hack for accessing inherited static methods\n    get statics() {\n      return this.constructor;\n    }\n    attach() {}\n    clone() {\n      const domNode = this.domNode.cloneNode(!1);\n      return this.scroll.create(domNode);\n    }\n    detach() {\n      this.parent != null && this.parent.removeChild(this), Registry.blots.delete(this.domNode);\n    }\n    deleteAt(index, length) {\n      this.isolate(index, length).remove();\n    }\n    formatAt(index, length, name, value) {\n      const blot = this.isolate(index, length);\n      if (this.scroll.query(name, Scope.BLOT) != null && value) blot.wrap(name, value);else if (this.scroll.query(name, Scope.ATTRIBUTE) != null) {\n        const parent = this.scroll.create(this.statics.scope);\n        blot.wrap(parent), parent.format(name, value);\n      }\n    }\n    insertAt(index, value, def) {\n      const blot = def == null ? this.scroll.create(\"text\", value) : this.scroll.create(value, def),\n        ref = this.split(index);\n      this.parent.insertBefore(blot, ref || void 0);\n    }\n    isolate(index, length) {\n      const target = this.split(index);\n      if (target == null) throw new Error(\"Attempt to isolate at end\");\n      return target.split(length), target;\n    }\n    length() {\n      return 1;\n    }\n    offset(root = this.parent) {\n      return this.parent == null || this === root ? 0 : this.parent.children.offset(this) + this.parent.offset(root);\n    }\n    optimize(_context) {\n      this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer) && this.wrap(this.statics.requiredContainer.blotName);\n    }\n    remove() {\n      this.domNode.parentNode != null && this.domNode.parentNode.removeChild(this.domNode), this.detach();\n    }\n    replaceWith(name, value) {\n      const replacement = typeof name == \"string\" ? this.scroll.create(name, value) : name;\n      return this.parent != null && (this.parent.insertBefore(replacement, this.next || void 0), this.remove()), replacement;\n    }\n    split(index, _force) {\n      return index === 0 ? this : this.next;\n    }\n    update(_mutations, _context) {}\n    wrap(name, value) {\n      const wrapper = typeof name == \"string\" ? this.scroll.create(name, value) : name;\n      if (this.parent != null && this.parent.insertBefore(wrapper, this.next || void 0), typeof wrapper.appendChild != \"function\") throw new ParchmentError(`Cannot wrap ${name}`);\n      return wrapper.appendChild(this), wrapper;\n    }\n  };\n_ShadowBlot.blotName = \"abstract\";\nlet ShadowBlot = _ShadowBlot;\nconst _LeafBlot = class _LeafBlot extends ShadowBlot {\n  /**\n   * Returns the value represented by domNode if it is this Blot's type\n   * No checking that domNode can represent this Blot type is required so\n   * applications needing it should check externally before calling.\n   */\n  static value(_domNode) {\n    return !0;\n  }\n  /**\n   * Given location represented by node and offset from DOM Selection Range,\n   * return index to that location.\n   */\n  index(node, offset) {\n    return this.domNode === node || this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY ? Math.min(offset, 1) : -1;\n  }\n  /**\n   * Given index to location within blot, return node and offset representing\n   * that location, consumable by DOM Selection Range\n   */\n  position(index, _inclusive) {\n    let offset = Array.from(this.parent.domNode.childNodes).indexOf(this.domNode);\n    return index > 0 && (offset += 1), [this.parent.domNode, offset];\n  }\n  /**\n   * Return value represented by this blot\n   * Should not change without interaction from API or\n   * user change detectable by update()\n   */\n  value() {\n    return {\n      [this.statics.blotName]: this.statics.value(this.domNode) || !0\n    };\n  }\n};\n_LeafBlot.scope = Scope.INLINE_BLOT;\nlet LeafBlot = _LeafBlot;\nconst LeafBlot$1 = LeafBlot;\nclass LinkedList {\n  constructor() {\n    this.head = null, this.tail = null, this.length = 0;\n  }\n  append(...nodes) {\n    if (this.insertBefore(nodes[0], null), nodes.length > 1) {\n      const rest = nodes.slice(1);\n      this.append(...rest);\n    }\n  }\n  at(index) {\n    const next = this.iterator();\n    let cur = next();\n    for (; cur && index > 0;) index -= 1, cur = next();\n    return cur;\n  }\n  contains(node) {\n    const next = this.iterator();\n    let cur = next();\n    for (; cur;) {\n      if (cur === node) return !0;\n      cur = next();\n    }\n    return !1;\n  }\n  indexOf(node) {\n    const next = this.iterator();\n    let cur = next(),\n      index = 0;\n    for (; cur;) {\n      if (cur === node) return index;\n      index += 1, cur = next();\n    }\n    return -1;\n  }\n  insertBefore(node, refNode) {\n    node != null && (this.remove(node), node.next = refNode, refNode != null ? (node.prev = refNode.prev, refNode.prev != null && (refNode.prev.next = node), refNode.prev = node, refNode === this.head && (this.head = node)) : this.tail != null ? (this.tail.next = node, node.prev = this.tail, this.tail = node) : (node.prev = null, this.head = this.tail = node), this.length += 1);\n  }\n  offset(target) {\n    let index = 0,\n      cur = this.head;\n    for (; cur != null;) {\n      if (cur === target) return index;\n      index += cur.length(), cur = cur.next;\n    }\n    return -1;\n  }\n  remove(node) {\n    this.contains(node) && (node.prev != null && (node.prev.next = node.next), node.next != null && (node.next.prev = node.prev), node === this.head && (this.head = node.next), node === this.tail && (this.tail = node.prev), this.length -= 1);\n  }\n  iterator(curNode = this.head) {\n    return () => {\n      const ret = curNode;\n      return curNode != null && (curNode = curNode.next), ret;\n    };\n  }\n  find(index, inclusive = !1) {\n    const next = this.iterator();\n    let cur = next();\n    for (; cur;) {\n      const length = cur.length();\n      if (index < length || inclusive && index === length && (cur.next == null || cur.next.length() !== 0)) return [cur, index];\n      index -= length, cur = next();\n    }\n    return [null, 0];\n  }\n  forEach(callback) {\n    const next = this.iterator();\n    let cur = next();\n    for (; cur;) callback(cur), cur = next();\n  }\n  forEachAt(index, length, callback) {\n    if (length <= 0) return;\n    const [startNode, offset] = this.find(index);\n    let curIndex = index - offset;\n    const next = this.iterator(startNode);\n    let cur = next();\n    for (; cur && curIndex < index + length;) {\n      const curLength = cur.length();\n      index > curIndex ? callback(cur, index - curIndex, Math.min(length, curIndex + curLength - index)) : callback(cur, 0, Math.min(curLength, index + length - curIndex)), curIndex += curLength, cur = next();\n    }\n  }\n  map(callback) {\n    return this.reduce((memo, cur) => (memo.push(callback(cur)), memo), []);\n  }\n  reduce(callback, memo) {\n    const next = this.iterator();\n    let cur = next();\n    for (; cur;) memo = callback(memo, cur), cur = next();\n    return memo;\n  }\n}\nfunction makeAttachedBlot(node, scroll) {\n  const found = scroll.find(node);\n  if (found) return found;\n  try {\n    return scroll.create(node);\n  } catch {\n    const blot = scroll.create(Scope.INLINE);\n    return Array.from(node.childNodes).forEach(child => {\n      blot.domNode.appendChild(child);\n    }), node.parentNode && node.parentNode.replaceChild(blot.domNode, node), blot.attach(), blot;\n  }\n}\nconst _ParentBlot = class _ParentBlot extends ShadowBlot {\n  constructor(scroll, domNode) {\n    super(scroll, domNode), this.uiNode = null, this.build();\n  }\n  appendChild(other) {\n    this.insertBefore(other);\n  }\n  attach() {\n    super.attach(), this.children.forEach(child => {\n      child.attach();\n    });\n  }\n  attachUI(node) {\n    this.uiNode != null && this.uiNode.remove(), this.uiNode = node, _ParentBlot.uiClass && this.uiNode.classList.add(_ParentBlot.uiClass), this.uiNode.setAttribute(\"contenteditable\", \"false\"), this.domNode.insertBefore(this.uiNode, this.domNode.firstChild);\n  }\n  /**\n   * Called during construction, should fill its own children LinkedList.\n   */\n  build() {\n    this.children = new LinkedList(), Array.from(this.domNode.childNodes).filter(node => node !== this.uiNode).reverse().forEach(node => {\n      try {\n        const child = makeAttachedBlot(node, this.scroll);\n        this.insertBefore(child, this.children.head || void 0);\n      } catch (err) {\n        if (err instanceof ParchmentError) return;\n        throw err;\n      }\n    });\n  }\n  deleteAt(index, length) {\n    if (index === 0 && length === this.length()) return this.remove();\n    this.children.forEachAt(index, length, (child, offset, childLength) => {\n      child.deleteAt(offset, childLength);\n    });\n  }\n  descendant(criteria, index = 0) {\n    const [child, offset] = this.children.find(index);\n    return criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria ? [child, offset] : child instanceof _ParentBlot ? child.descendant(criteria, offset) : [null, -1];\n  }\n  descendants(criteria, index = 0, length = Number.MAX_VALUE) {\n    let descendants = [],\n      lengthLeft = length;\n    return this.children.forEachAt(index, length, (child, childIndex, childLength) => {\n      (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) && descendants.push(child), child instanceof _ParentBlot && (descendants = descendants.concat(child.descendants(criteria, childIndex, lengthLeft))), lengthLeft -= childLength;\n    }), descendants;\n  }\n  detach() {\n    this.children.forEach(child => {\n      child.detach();\n    }), super.detach();\n  }\n  enforceAllowedChildren() {\n    let done = !1;\n    this.children.forEach(child => {\n      done || this.statics.allowedChildren.some(def => child instanceof def) || (child.statics.scope === Scope.BLOCK_BLOT ? (child.next != null && this.splitAfter(child), child.prev != null && this.splitAfter(child.prev), child.parent.unwrap(), done = !0) : child instanceof _ParentBlot ? child.unwrap() : child.remove());\n    });\n  }\n  formatAt(index, length, name, value) {\n    this.children.forEachAt(index, length, (child, offset, childLength) => {\n      child.formatAt(offset, childLength, name, value);\n    });\n  }\n  insertAt(index, value, def) {\n    const [child, offset] = this.children.find(index);\n    if (child) child.insertAt(offset, value, def);else {\n      const blot = def == null ? this.scroll.create(\"text\", value) : this.scroll.create(value, def);\n      this.appendChild(blot);\n    }\n  }\n  insertBefore(childBlot, refBlot) {\n    childBlot.parent != null && childBlot.parent.children.remove(childBlot);\n    let refDomNode = null;\n    this.children.insertBefore(childBlot, refBlot || null), childBlot.parent = this, refBlot != null && (refDomNode = refBlot.domNode), (this.domNode.parentNode !== childBlot.domNode || this.domNode.nextSibling !== refDomNode) && this.domNode.insertBefore(childBlot.domNode, refDomNode), childBlot.attach();\n  }\n  length() {\n    return this.children.reduce((memo, child) => memo + child.length(), 0);\n  }\n  moveChildren(targetParent, refNode) {\n    this.children.forEach(child => {\n      targetParent.insertBefore(child, refNode);\n    });\n  }\n  optimize(context) {\n    if (super.optimize(context), this.enforceAllowedChildren(), this.uiNode != null && this.uiNode !== this.domNode.firstChild && this.domNode.insertBefore(this.uiNode, this.domNode.firstChild), this.children.length === 0) if (this.statics.defaultChild != null) {\n      const child = this.scroll.create(this.statics.defaultChild.blotName);\n      this.appendChild(child);\n    } else this.remove();\n  }\n  path(index, inclusive = !1) {\n    const [child, offset] = this.children.find(index, inclusive),\n      position = [[this, index]];\n    return child instanceof _ParentBlot ? position.concat(child.path(offset, inclusive)) : (child != null && position.push([child, offset]), position);\n  }\n  removeChild(child) {\n    this.children.remove(child);\n  }\n  replaceWith(name, value) {\n    const replacement = typeof name == \"string\" ? this.scroll.create(name, value) : name;\n    return replacement instanceof _ParentBlot && this.moveChildren(replacement), super.replaceWith(replacement);\n  }\n  split(index, force = !1) {\n    if (!force) {\n      if (index === 0) return this;\n      if (index === this.length()) return this.next;\n    }\n    const after = this.clone();\n    return this.parent && this.parent.insertBefore(after, this.next || void 0), this.children.forEachAt(index, this.length(), (child, offset, _length) => {\n      const split = child.split(offset, force);\n      split != null && after.appendChild(split);\n    }), after;\n  }\n  splitAfter(child) {\n    const after = this.clone();\n    for (; child.next != null;) after.appendChild(child.next);\n    return this.parent && this.parent.insertBefore(after, this.next || void 0), after;\n  }\n  unwrap() {\n    this.parent && this.moveChildren(this.parent, this.next || void 0), this.remove();\n  }\n  update(mutations, _context) {\n    const addedNodes = [],\n      removedNodes = [];\n    mutations.forEach(mutation => {\n      mutation.target === this.domNode && mutation.type === \"childList\" && (addedNodes.push(...mutation.addedNodes), removedNodes.push(...mutation.removedNodes));\n    }), removedNodes.forEach(node => {\n      if (node.parentNode != null &&\n      // @ts-expect-error Fix me later\n      node.tagName !== \"IFRAME\" && document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY) return;\n      const blot = this.scroll.find(node);\n      blot != null && (blot.domNode.parentNode == null || blot.domNode.parentNode === this.domNode) && blot.detach();\n    }), addedNodes.filter(node => node.parentNode === this.domNode && node !== this.uiNode).sort((a, b) => a === b ? 0 : a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? 1 : -1).forEach(node => {\n      let refBlot = null;\n      node.nextSibling != null && (refBlot = this.scroll.find(node.nextSibling));\n      const blot = makeAttachedBlot(node, this.scroll);\n      (blot.next !== refBlot || blot.next == null) && (blot.parent != null && blot.parent.removeChild(this), this.insertBefore(blot, refBlot || void 0));\n    }), this.enforceAllowedChildren();\n  }\n};\n_ParentBlot.uiClass = \"\";\nlet ParentBlot = _ParentBlot;\nconst ParentBlot$1 = ParentBlot;\nfunction isEqual(obj1, obj2) {\n  if (Object.keys(obj1).length !== Object.keys(obj2).length) return !1;\n  for (const prop in obj1) if (obj1[prop] !== obj2[prop]) return !1;\n  return !0;\n}\nconst _InlineBlot = class _InlineBlot extends ParentBlot$1 {\n  static create(value) {\n    return super.create(value);\n  }\n  static formats(domNode, scroll) {\n    const match2 = scroll.query(_InlineBlot.blotName);\n    if (!(match2 != null && domNode.tagName === match2.tagName)) {\n      if (typeof this.tagName == \"string\") return !0;\n      if (Array.isArray(this.tagName)) return domNode.tagName.toLowerCase();\n    }\n  }\n  constructor(scroll, domNode) {\n    super(scroll, domNode), this.attributes = new AttributorStore$1(this.domNode);\n  }\n  format(name, value) {\n    if (name === this.statics.blotName && !value) this.children.forEach(child => {\n      child instanceof _InlineBlot || (child = child.wrap(_InlineBlot.blotName, !0)), this.attributes.copy(child);\n    }), this.unwrap();else {\n      const format = this.scroll.query(name, Scope.INLINE);\n      if (format == null) return;\n      format instanceof Attributor ? this.attributes.attribute(format, value) : value && (name !== this.statics.blotName || this.formats()[name] !== value) && this.replaceWith(name, value);\n    }\n  }\n  formats() {\n    const formats = this.attributes.values(),\n      format = this.statics.formats(this.domNode, this.scroll);\n    return format != null && (formats[this.statics.blotName] = format), formats;\n  }\n  formatAt(index, length, name, value) {\n    this.formats()[name] != null || this.scroll.query(name, Scope.ATTRIBUTE) ? this.isolate(index, length).format(name, value) : super.formatAt(index, length, name, value);\n  }\n  optimize(context) {\n    super.optimize(context);\n    const formats = this.formats();\n    if (Object.keys(formats).length === 0) return this.unwrap();\n    const next = this.next;\n    next instanceof _InlineBlot && next.prev === this && isEqual(formats, next.formats()) && (next.moveChildren(this), next.remove());\n  }\n  replaceWith(name, value) {\n    const replacement = super.replaceWith(name, value);\n    return this.attributes.copy(replacement), replacement;\n  }\n  update(mutations, context) {\n    super.update(mutations, context), mutations.some(mutation => mutation.target === this.domNode && mutation.type === \"attributes\") && this.attributes.build();\n  }\n  wrap(name, value) {\n    const wrapper = super.wrap(name, value);\n    return wrapper instanceof _InlineBlot && this.attributes.move(wrapper), wrapper;\n  }\n};\n_InlineBlot.allowedChildren = [_InlineBlot, LeafBlot$1], _InlineBlot.blotName = \"inline\", _InlineBlot.scope = Scope.INLINE_BLOT, _InlineBlot.tagName = \"SPAN\";\nlet InlineBlot = _InlineBlot;\nconst InlineBlot$1 = InlineBlot,\n  _BlockBlot = class _BlockBlot extends ParentBlot$1 {\n    static create(value) {\n      return super.create(value);\n    }\n    static formats(domNode, scroll) {\n      const match2 = scroll.query(_BlockBlot.blotName);\n      if (!(match2 != null && domNode.tagName === match2.tagName)) {\n        if (typeof this.tagName == \"string\") return !0;\n        if (Array.isArray(this.tagName)) return domNode.tagName.toLowerCase();\n      }\n    }\n    constructor(scroll, domNode) {\n      super(scroll, domNode), this.attributes = new AttributorStore$1(this.domNode);\n    }\n    format(name, value) {\n      const format = this.scroll.query(name, Scope.BLOCK);\n      format != null && (format instanceof Attributor ? this.attributes.attribute(format, value) : name === this.statics.blotName && !value ? this.replaceWith(_BlockBlot.blotName) : value && (name !== this.statics.blotName || this.formats()[name] !== value) && this.replaceWith(name, value));\n    }\n    formats() {\n      const formats = this.attributes.values(),\n        format = this.statics.formats(this.domNode, this.scroll);\n      return format != null && (formats[this.statics.blotName] = format), formats;\n    }\n    formatAt(index, length, name, value) {\n      this.scroll.query(name, Scope.BLOCK) != null ? this.format(name, value) : super.formatAt(index, length, name, value);\n    }\n    insertAt(index, value, def) {\n      if (def == null || this.scroll.query(value, Scope.INLINE) != null) super.insertAt(index, value, def);else {\n        const after = this.split(index);\n        if (after != null) {\n          const blot = this.scroll.create(value, def);\n          after.parent.insertBefore(blot, after);\n        } else throw new Error(\"Attempt to insertAt after block boundaries\");\n      }\n    }\n    replaceWith(name, value) {\n      const replacement = super.replaceWith(name, value);\n      return this.attributes.copy(replacement), replacement;\n    }\n    update(mutations, context) {\n      super.update(mutations, context), mutations.some(mutation => mutation.target === this.domNode && mutation.type === \"attributes\") && this.attributes.build();\n    }\n  };\n_BlockBlot.blotName = \"block\", _BlockBlot.scope = Scope.BLOCK_BLOT, _BlockBlot.tagName = \"P\", _BlockBlot.allowedChildren = [InlineBlot$1, _BlockBlot, LeafBlot$1];\nlet BlockBlot = _BlockBlot;\nconst BlockBlot$1 = BlockBlot,\n  _ContainerBlot = class _ContainerBlot extends ParentBlot$1 {\n    checkMerge() {\n      return this.next !== null && this.next.statics.blotName === this.statics.blotName;\n    }\n    deleteAt(index, length) {\n      super.deleteAt(index, length), this.enforceAllowedChildren();\n    }\n    formatAt(index, length, name, value) {\n      super.formatAt(index, length, name, value), this.enforceAllowedChildren();\n    }\n    insertAt(index, value, def) {\n      super.insertAt(index, value, def), this.enforceAllowedChildren();\n    }\n    optimize(context) {\n      super.optimize(context), this.children.length > 0 && this.next != null && this.checkMerge() && (this.next.moveChildren(this), this.next.remove());\n    }\n  };\n_ContainerBlot.blotName = \"container\", _ContainerBlot.scope = Scope.BLOCK_BLOT;\nlet ContainerBlot = _ContainerBlot;\nconst ContainerBlot$1 = ContainerBlot;\nclass EmbedBlot extends LeafBlot$1 {\n  static formats(_domNode, _scroll) {}\n  format(name, value) {\n    super.formatAt(0, this.length(), name, value);\n  }\n  formatAt(index, length, name, value) {\n    index === 0 && length === this.length() ? this.format(name, value) : super.formatAt(index, length, name, value);\n  }\n  formats() {\n    return this.statics.formats(this.domNode, this.scroll);\n  }\n}\nconst EmbedBlot$1 = EmbedBlot,\n  OBSERVER_CONFIG = {\n    attributes: !0,\n    characterData: !0,\n    characterDataOldValue: !0,\n    childList: !0,\n    subtree: !0\n  },\n  MAX_OPTIMIZE_ITERATIONS = 100,\n  _ScrollBlot = class _ScrollBlot extends ParentBlot$1 {\n    constructor(registry, node) {\n      super(null, node), this.registry = registry, this.scroll = this, this.build(), this.observer = new MutationObserver(mutations => {\n        this.update(mutations);\n      }), this.observer.observe(this.domNode, OBSERVER_CONFIG), this.attach();\n    }\n    create(input, value) {\n      return this.registry.create(this, input, value);\n    }\n    find(node, bubble = !1) {\n      const blot = this.registry.find(node, bubble);\n      return blot ? blot.scroll === this ? blot : bubble ? this.find(blot.scroll.domNode.parentNode, !0) : null : null;\n    }\n    query(query, scope = Scope.ANY) {\n      return this.registry.query(query, scope);\n    }\n    register(...definitions) {\n      return this.registry.register(...definitions);\n    }\n    build() {\n      this.scroll != null && super.build();\n    }\n    detach() {\n      super.detach(), this.observer.disconnect();\n    }\n    deleteAt(index, length) {\n      this.update(), index === 0 && length === this.length() ? this.children.forEach(child => {\n        child.remove();\n      }) : super.deleteAt(index, length);\n    }\n    formatAt(index, length, name, value) {\n      this.update(), super.formatAt(index, length, name, value);\n    }\n    insertAt(index, value, def) {\n      this.update(), super.insertAt(index, value, def);\n    }\n    optimize(mutations = [], context = {}) {\n      super.optimize(context);\n      const mutationsMap = context.mutationsMap || /* @__PURE__ */new WeakMap();\n      let records = Array.from(this.observer.takeRecords());\n      for (; records.length > 0;) mutations.push(records.pop());\n      const mark = (blot, markParent = !0) => {\n          blot == null || blot === this || blot.domNode.parentNode != null && (mutationsMap.has(blot.domNode) || mutationsMap.set(blot.domNode, []), markParent && mark(blot.parent));\n        },\n        optimize = blot => {\n          mutationsMap.has(blot.domNode) && (blot instanceof ParentBlot$1 && blot.children.forEach(optimize), mutationsMap.delete(blot.domNode), blot.optimize(context));\n        };\n      let remaining = mutations;\n      for (let i = 0; remaining.length > 0; i += 1) {\n        if (i >= MAX_OPTIMIZE_ITERATIONS) throw new Error(\"[Parchment] Maximum optimize iterations reached\");\n        for (remaining.forEach(mutation => {\n          const blot = this.find(mutation.target, !0);\n          blot != null && (blot.domNode === mutation.target && (mutation.type === \"childList\" ? (mark(this.find(mutation.previousSibling, !1)), Array.from(mutation.addedNodes).forEach(node => {\n            const child = this.find(node, !1);\n            mark(child, !1), child instanceof ParentBlot$1 && child.children.forEach(grandChild => {\n              mark(grandChild, !1);\n            });\n          })) : mutation.type === \"attributes\" && mark(blot.prev)), mark(blot));\n        }), this.children.forEach(optimize), remaining = Array.from(this.observer.takeRecords()), records = remaining.slice(); records.length > 0;) mutations.push(records.pop());\n      }\n    }\n    update(mutations, context = {}) {\n      mutations = mutations || this.observer.takeRecords();\n      const mutationsMap = /* @__PURE__ */new WeakMap();\n      mutations.map(mutation => {\n        const blot = this.find(mutation.target, !0);\n        return blot == null ? null : mutationsMap.has(blot.domNode) ? (mutationsMap.get(blot.domNode).push(mutation), null) : (mutationsMap.set(blot.domNode, [mutation]), blot);\n      }).forEach(blot => {\n        blot != null && blot !== this && mutationsMap.has(blot.domNode) && blot.update(mutationsMap.get(blot.domNode) || [], context);\n      }), context.mutationsMap = mutationsMap, mutationsMap.has(this.domNode) && super.update(mutationsMap.get(this.domNode), context), this.optimize(mutations, context);\n    }\n  };\n_ScrollBlot.blotName = \"scroll\", _ScrollBlot.defaultChild = BlockBlot$1, _ScrollBlot.allowedChildren = [BlockBlot$1, ContainerBlot$1], _ScrollBlot.scope = Scope.BLOCK_BLOT, _ScrollBlot.tagName = \"DIV\";\nlet ScrollBlot = _ScrollBlot;\nconst ScrollBlot$1 = ScrollBlot,\n  _TextBlot = class _TextBlot extends LeafBlot$1 {\n    static create(value) {\n      return document.createTextNode(value);\n    }\n    static value(domNode) {\n      return domNode.data;\n    }\n    constructor(scroll, node) {\n      super(scroll, node), this.text = this.statics.value(this.domNode);\n    }\n    deleteAt(index, length) {\n      this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n    }\n    index(node, offset) {\n      return this.domNode === node ? offset : -1;\n    }\n    insertAt(index, value, def) {\n      def == null ? (this.text = this.text.slice(0, index) + value + this.text.slice(index), this.domNode.data = this.text) : super.insertAt(index, value, def);\n    }\n    length() {\n      return this.text.length;\n    }\n    optimize(context) {\n      super.optimize(context), this.text = this.statics.value(this.domNode), this.text.length === 0 ? this.remove() : this.next instanceof _TextBlot && this.next.prev === this && (this.insertAt(this.length(), this.next.value()), this.next.remove());\n    }\n    position(index, _inclusive = !1) {\n      return [this.domNode, index];\n    }\n    split(index, force = !1) {\n      if (!force) {\n        if (index === 0) return this;\n        if (index === this.length()) return this.next;\n      }\n      const after = this.scroll.create(this.domNode.splitText(index));\n      return this.parent.insertBefore(after, this.next || void 0), this.text = this.statics.value(this.domNode), after;\n    }\n    update(mutations, _context) {\n      mutations.some(mutation => mutation.type === \"characterData\" && mutation.target === this.domNode) && (this.text = this.statics.value(this.domNode));\n    }\n    value() {\n      return this.text;\n    }\n  };\n_TextBlot.blotName = \"text\", _TextBlot.scope = Scope.INLINE_BLOT;\nlet TextBlot = _TextBlot;\nconst TextBlot$1 = TextBlot;\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/parchment/dist/parchment.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/preact/compat/dist/compat.module.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/preact/compat/dist/compat.module.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Children: () => (/* binding */ O),\n/* harmony export */   Component: () => (/* reexport safe */ preact__WEBPACK_IMPORTED_MODULE_0__.Component),\n/* harmony export */   Fragment: () => (/* reexport safe */ preact__WEBPACK_IMPORTED_MODULE_0__.Fragment),\n/* harmony export */   PureComponent: () => (/* binding */ w),\n/* harmony export */   StrictMode: () => (/* binding */ vn),\n/* harmony export */   Suspense: () => (/* binding */ D),\n/* harmony export */   SuspenseList: () => (/* binding */ V),\n/* harmony export */   __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: () => (/* binding */ rn),\n/* harmony export */   cloneElement: () => (/* binding */ cn),\n/* harmony export */   createContext: () => (/* reexport safe */ preact__WEBPACK_IMPORTED_MODULE_0__.createContext),\n/* harmony export */   createElement: () => (/* reexport safe */ preact__WEBPACK_IMPORTED_MODULE_0__.createElement),\n/* harmony export */   createFactory: () => (/* binding */ on),\n/* harmony export */   createPortal: () => (/* binding */ j),\n/* harmony export */   createRef: () => (/* reexport safe */ preact__WEBPACK_IMPORTED_MODULE_0__.createRef),\n/* harmony export */   \"default\": () => (/* binding */ bn),\n/* harmony export */   findDOMNode: () => (/* binding */ an),\n/* harmony export */   flushSync: () => (/* binding */ hn),\n/* harmony export */   forwardRef: () => (/* binding */ k),\n/* harmony export */   hydrate: () => (/* binding */ q),\n/* harmony export */   isValidElement: () => (/* binding */ ln),\n/* harmony export */   lazy: () => (/* binding */ M),\n/* harmony export */   memo: () => (/* binding */ R),\n/* harmony export */   render: () => (/* binding */ Y),\n/* harmony export */   startTransition: () => (/* binding */ dn),\n/* harmony export */   unmountComponentAtNode: () => (/* binding */ fn),\n/* harmony export */   unstable_batchedUpdates: () => (/* binding */ sn),\n/* harmony export */   useCallback: () => (/* reexport safe */ preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useCallback),\n/* harmony export */   useContext: () => (/* reexport safe */ preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useContext),\n/* harmony export */   useDebugValue: () => (/* reexport safe */ preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useDebugValue),\n/* harmony export */   useDeferredValue: () => (/* binding */ pn),\n/* harmony export */   useEffect: () => (/* reexport safe */ preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useEffect),\n/* harmony export */   useErrorBoundary: () => (/* reexport safe */ preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useErrorBoundary),\n/* harmony export */   useId: () => (/* reexport safe */ preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useId),\n/* harmony export */   useImperativeHandle: () => (/* reexport safe */ preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useImperativeHandle),\n/* harmony export */   useInsertionEffect: () => (/* binding */ yn),\n/* harmony export */   useLayoutEffect: () => (/* reexport safe */ preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect),\n/* harmony export */   useMemo: () => (/* reexport safe */ preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useMemo),\n/* harmony export */   useReducer: () => (/* reexport safe */ preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useReducer),\n/* harmony export */   useRef: () => (/* reexport safe */ preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useRef),\n/* harmony export */   useState: () => (/* reexport safe */ preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useState),\n/* harmony export */   useSyncExternalStore: () => (/* binding */ _n),\n/* harmony export */   useTransition: () => (/* binding */ mn),\n/* harmony export */   version: () => (/* binding */ un)\n/* harmony export */ });\n/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! preact */ \"../react-ui/node_modules/preact/dist/preact.module.js\");\n/* harmony import */ var preact_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! preact/hooks */ \"../react-ui/node_modules/preact/hooks/dist/hooks.module.js\");\n\n\n\n\nfunction g(n, t) {\n  for (var e in t) n[e] = t[e];\n  return n;\n}\nfunction C(n, t) {\n  for (var e in n) if (\"__source\" !== e && !(e in t)) return !0;\n  for (var r in t) if (\"__source\" !== r && n[r] !== t[r]) return !0;\n  return !1;\n}\nfunction E(n, t) {\n  return n === t && (0 !== n || 1 / n == 1 / t) || n != n && t != t;\n}\nfunction w(n) {\n  this.props = n;\n}\nfunction R(n, e) {\n  function r(n) {\n    var t = this.props.ref,\n      r = t == n.ref;\n    return !r && t && (t.call ? t(null) : t.current = null), e ? !e(this.props, n) || !r : C(this.props, n);\n  }\n  function u(e) {\n    return this.shouldComponentUpdate = r, (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(n, e);\n  }\n  return u.displayName = \"Memo(\" + (n.displayName || n.name) + \")\", u.prototype.isReactComponent = !0, u.__f = !0, u;\n}\n(w.prototype = new preact__WEBPACK_IMPORTED_MODULE_0__.Component()).isPureReactComponent = !0, w.prototype.shouldComponentUpdate = function (n, t) {\n  return C(this.props, n) || C(this.state, t);\n};\nvar x = preact__WEBPACK_IMPORTED_MODULE_0__.options.__b;\npreact__WEBPACK_IMPORTED_MODULE_0__.options.__b = function (n) {\n  n.type && n.type.__f && n.ref && (n.props.ref = n.ref, n.ref = null), x && x(n);\n};\nvar N = \"undefined\" != typeof Symbol && Symbol.for && Symbol.for(\"react.forward_ref\") || 3911;\nfunction k(n) {\n  function t(t) {\n    var e = g({}, t);\n    return delete e.ref, n(e, t.ref || null);\n  }\n  return t.$$typeof = N, t.render = t, t.prototype.isReactComponent = t.__f = !0, t.displayName = \"ForwardRef(\" + (n.displayName || n.name) + \")\", t;\n}\nvar A = function (n, t) {\n    return null == n ? null : (0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)((0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n).map(t));\n  },\n  O = {\n    map: A,\n    forEach: A,\n    count: function (n) {\n      return n ? (0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n).length : 0;\n    },\n    only: function (n) {\n      var t = (0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n);\n      if (1 !== t.length) throw \"Children.only\";\n      return t[0];\n    },\n    toArray: preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray\n  },\n  T = preact__WEBPACK_IMPORTED_MODULE_0__.options.__e;\npreact__WEBPACK_IMPORTED_MODULE_0__.options.__e = function (n, t, e, r) {\n  if (n.then) for (var u, o = t; o = o.__;) if ((u = o.__c) && u.__c) return null == t.__e && (t.__e = e.__e, t.__k = e.__k), u.__c(n, t);\n  T(n, t, e, r);\n};\nvar I = preact__WEBPACK_IMPORTED_MODULE_0__.options.unmount;\nfunction L(n, t, e) {\n  return n && (n.__c && n.__c.__H && (n.__c.__H.__.forEach(function (n) {\n    \"function\" == typeof n.__c && n.__c();\n  }), n.__c.__H = null), null != (n = g({}, n)).__c && (n.__c.__P === e && (n.__c.__P = t), n.__c = null), n.__k = n.__k && n.__k.map(function (n) {\n    return L(n, t, e);\n  })), n;\n}\nfunction U(n, t, e) {\n  return n && (n.__v = null, n.__k = n.__k && n.__k.map(function (n) {\n    return U(n, t, e);\n  }), n.__c && n.__c.__P === t && (n.__e && e.insertBefore(n.__e, n.__d), n.__c.__e = !0, n.__c.__P = e)), n;\n}\nfunction D() {\n  this.__u = 0, this.t = null, this.__b = null;\n}\nfunction F(n) {\n  var t = n.__.__c;\n  return t && t.__a && t.__a(n);\n}\nfunction M(n) {\n  var e, r, u;\n  function o(o) {\n    if (e || (e = n()).then(function (n) {\n      r = n.default || n;\n    }, function (n) {\n      u = n;\n    }), u) throw u;\n    if (!r) throw e;\n    return (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(r, o);\n  }\n  return o.displayName = \"Lazy\", o.__f = !0, o;\n}\nfunction V() {\n  this.u = null, this.o = null;\n}\npreact__WEBPACK_IMPORTED_MODULE_0__.options.unmount = function (n) {\n  var t = n.__c;\n  t && t.__R && t.__R(), t && !0 === n.__h && (n.type = null), I && I(n);\n}, (D.prototype = new preact__WEBPACK_IMPORTED_MODULE_0__.Component()).__c = function (n, t) {\n  var e = t.__c,\n    r = this;\n  null == r.t && (r.t = []), r.t.push(e);\n  var u = F(r.__v),\n    o = !1,\n    i = function () {\n      o || (o = !0, e.__R = null, u ? u(l) : l());\n    };\n  e.__R = i;\n  var l = function () {\n      if (! --r.__u) {\n        if (r.state.__a) {\n          var n = r.state.__a;\n          r.__v.__k[0] = U(n, n.__c.__P, n.__c.__O);\n        }\n        var t;\n        for (r.setState({\n          __a: r.__b = null\n        }); t = r.t.pop();) t.forceUpdate();\n      }\n    },\n    c = !0 === t.__h;\n  r.__u++ || c || r.setState({\n    __a: r.__b = r.__v.__k[0]\n  }), n.then(i, i);\n}, D.prototype.componentWillUnmount = function () {\n  this.t = [];\n}, D.prototype.render = function (n, e) {\n  if (this.__b) {\n    if (this.__v.__k) {\n      var r = document.createElement(\"div\"),\n        o = this.__v.__k[0].__c;\n      this.__v.__k[0] = L(this.__b, r, o.__O = o.__P);\n    }\n    this.__b = null;\n  }\n  var i = e.__a && (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(preact__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, n.fallback);\n  return i && (i.__h = null), [(0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(preact__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, e.__a ? null : n.children), i];\n};\nvar W = function (n, t, e) {\n  if (++e[1] === e[0] && n.o.delete(t), n.props.revealOrder && (\"t\" !== n.props.revealOrder[0] || !n.o.size)) for (e = n.u; e;) {\n    for (; e.length > 3;) e.pop()();\n    if (e[1] < e[0]) break;\n    n.u = e = e[2];\n  }\n};\nfunction P(n) {\n  return this.getChildContext = function () {\n    return n.context;\n  }, n.children;\n}\nfunction $(n) {\n  var e = this,\n    r = n.i;\n  e.componentWillUnmount = function () {\n    (0,preact__WEBPACK_IMPORTED_MODULE_0__.render)(null, e.l), e.l = null, e.i = null;\n  }, e.i && e.i !== r && e.componentWillUnmount(), n.__v ? (e.l || (e.i = r, e.l = {\n    nodeType: 1,\n    parentNode: r,\n    childNodes: [],\n    appendChild: function (n) {\n      this.childNodes.push(n), e.i.appendChild(n);\n    },\n    insertBefore: function (n, t) {\n      this.childNodes.push(n), e.i.appendChild(n);\n    },\n    removeChild: function (n) {\n      this.childNodes.splice(this.childNodes.indexOf(n) >>> 1, 1), e.i.removeChild(n);\n    }\n  }), (0,preact__WEBPACK_IMPORTED_MODULE_0__.render)((0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)(P, {\n    context: e.context\n  }, n.__v), e.l)) : e.l && e.componentWillUnmount();\n}\nfunction j(n, e) {\n  var r = (0,preact__WEBPACK_IMPORTED_MODULE_0__.createElement)($, {\n    __v: n,\n    i: e\n  });\n  return r.containerInfo = e, r;\n}\n(V.prototype = new preact__WEBPACK_IMPORTED_MODULE_0__.Component()).__a = function (n) {\n  var t = this,\n    e = F(t.__v),\n    r = t.o.get(n);\n  return r[0]++, function (u) {\n    var o = function () {\n      t.props.revealOrder ? (r.push(u), W(t, n, r)) : u();\n    };\n    e ? e(o) : o();\n  };\n}, V.prototype.render = function (n) {\n  this.u = null, this.o = new Map();\n  var t = (0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(n.children);\n  n.revealOrder && \"b\" === n.revealOrder[0] && t.reverse();\n  for (var e = t.length; e--;) this.o.set(t[e], this.u = [1, 0, this.u]);\n  return n.children;\n}, V.prototype.componentDidUpdate = V.prototype.componentDidMount = function () {\n  var n = this;\n  this.o.forEach(function (t, e) {\n    W(n, e, t);\n  });\n};\nvar z = \"undefined\" != typeof Symbol && Symbol.for && Symbol.for(\"react.element\") || 60103,\n  B = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,\n  H = \"undefined\" != typeof document,\n  Z = function (n) {\n    return (\"undefined\" != typeof Symbol && \"symbol\" == typeof Symbol() ? /fil|che|rad/i : /fil|che|ra/i).test(n);\n  };\nfunction Y(n, t, e) {\n  return null == t.__k && (t.textContent = \"\"), (0,preact__WEBPACK_IMPORTED_MODULE_0__.render)(n, t), \"function\" == typeof e && e(), n ? n.__c : null;\n}\nfunction q(n, t, e) {\n  return (0,preact__WEBPACK_IMPORTED_MODULE_0__.hydrate)(n, t), \"function\" == typeof e && e(), n ? n.__c : null;\n}\npreact__WEBPACK_IMPORTED_MODULE_0__.Component.prototype.isReactComponent = {}, [\"componentWillMount\", \"componentWillReceiveProps\", \"componentWillUpdate\"].forEach(function (t) {\n  Object.defineProperty(preact__WEBPACK_IMPORTED_MODULE_0__.Component.prototype, t, {\n    configurable: !0,\n    get: function () {\n      return this[\"UNSAFE_\" + t];\n    },\n    set: function (n) {\n      Object.defineProperty(this, t, {\n        configurable: !0,\n        writable: !0,\n        value: n\n      });\n    }\n  });\n});\nvar G = preact__WEBPACK_IMPORTED_MODULE_0__.options.event;\nfunction J() {}\nfunction K() {\n  return this.cancelBubble;\n}\nfunction Q() {\n  return this.defaultPrevented;\n}\npreact__WEBPACK_IMPORTED_MODULE_0__.options.event = function (n) {\n  return G && (n = G(n)), n.persist = J, n.isPropagationStopped = K, n.isDefaultPrevented = Q, n.nativeEvent = n;\n};\nvar X,\n  nn = {\n    configurable: !0,\n    get: function () {\n      return this.class;\n    }\n  },\n  tn = preact__WEBPACK_IMPORTED_MODULE_0__.options.vnode;\npreact__WEBPACK_IMPORTED_MODULE_0__.options.vnode = function (n) {\n  var t = n.type,\n    e = n.props,\n    u = e;\n  if (\"string\" == typeof t) {\n    var o = -1 === t.indexOf(\"-\");\n    for (var i in u = {}, e) {\n      var l = e[i];\n      H && \"children\" === i && \"noscript\" === t || \"value\" === i && \"defaultValue\" in e && null == l || (\"defaultValue\" === i && \"value\" in e && null == e.value ? i = \"value\" : \"download\" === i && !0 === l ? l = \"\" : /ondoubleclick/i.test(i) ? i = \"ondblclick\" : /^onchange(textarea|input)/i.test(i + t) && !Z(e.type) ? i = \"oninput\" : /^onfocus$/i.test(i) ? i = \"onfocusin\" : /^onblur$/i.test(i) ? i = \"onfocusout\" : /^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i) ? i = i.toLowerCase() : o && B.test(i) ? i = i.replace(/[A-Z0-9]/g, \"-$&\").toLowerCase() : null === l && (l = void 0), /^oninput$/i.test(i) && (i = i.toLowerCase(), u[i] && (i = \"oninputCapture\")), u[i] = l);\n    }\n    \"select\" == t && u.multiple && Array.isArray(u.value) && (u.value = (0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(e.children).forEach(function (n) {\n      n.props.selected = -1 != u.value.indexOf(n.props.value);\n    })), \"select\" == t && null != u.defaultValue && (u.value = (0,preact__WEBPACK_IMPORTED_MODULE_0__.toChildArray)(e.children).forEach(function (n) {\n      n.props.selected = u.multiple ? -1 != u.defaultValue.indexOf(n.props.value) : u.defaultValue == n.props.value;\n    })), n.props = u, e.class != e.className && (nn.enumerable = \"className\" in e, null != e.className && (u.class = e.className), Object.defineProperty(u, \"className\", nn));\n  }\n  n.$$typeof = z, tn && tn(n);\n};\nvar en = preact__WEBPACK_IMPORTED_MODULE_0__.options.__r;\npreact__WEBPACK_IMPORTED_MODULE_0__.options.__r = function (n) {\n  en && en(n), X = n.__c;\n};\nvar rn = {\n    ReactCurrentDispatcher: {\n      current: {\n        readContext: function (n) {\n          return X.__n[n.__c].props.value;\n        }\n      }\n    }\n  },\n  un = \"17.0.2\";\nfunction on(n) {\n  return preact__WEBPACK_IMPORTED_MODULE_0__.createElement.bind(null, n);\n}\nfunction ln(n) {\n  return !!n && n.$$typeof === z;\n}\nfunction cn(n) {\n  return ln(n) ? preact__WEBPACK_IMPORTED_MODULE_0__.cloneElement.apply(null, arguments) : n;\n}\nfunction fn(n) {\n  return !!n.__k && ((0,preact__WEBPACK_IMPORTED_MODULE_0__.render)(null, n), !0);\n}\nfunction an(n) {\n  return n && (n.base || 1 === n.nodeType && n) || null;\n}\nvar sn = function (n, t) {\n    return n(t);\n  },\n  hn = function (n, t) {\n    return n(t);\n  },\n  vn = preact__WEBPACK_IMPORTED_MODULE_0__.Fragment;\nfunction dn(n) {\n  n();\n}\nfunction pn(n) {\n  return n;\n}\nfunction mn() {\n  return [!1, dn];\n}\nvar yn = preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect;\nfunction _n(n, t) {\n  var e = t(),\n    r = (0,preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useState)({\n      h: {\n        __: e,\n        v: t\n      }\n    }),\n    u = r[0].h,\n    o = r[1];\n  return (0,preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(function () {\n    u.__ = e, u.v = t, E(u.__, t()) || o({\n      h: u\n    });\n  }, [n, e, t]), (0,preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n    return E(u.__, u.v()) || o({\n      h: u\n    }), n(function () {\n      E(u.__, u.v()) || o({\n        h: u\n      });\n    });\n  }, [n]), e;\n}\nvar bn = {\n  useState: preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useState,\n  useId: preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useId,\n  useReducer: preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useReducer,\n  useEffect: preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useEffect,\n  useLayoutEffect: preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect,\n  useInsertionEffect: yn,\n  useTransition: mn,\n  useDeferredValue: pn,\n  useSyncExternalStore: _n,\n  startTransition: dn,\n  useRef: preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useRef,\n  useImperativeHandle: preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useImperativeHandle,\n  useMemo: preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useMemo,\n  useCallback: preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useCallback,\n  useContext: preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useContext,\n  useDebugValue: preact_hooks__WEBPACK_IMPORTED_MODULE_1__.useDebugValue,\n  version: \"17.0.2\",\n  Children: O,\n  render: Y,\n  hydrate: q,\n  unmountComponentAtNode: fn,\n  createPortal: j,\n  createElement: preact__WEBPACK_IMPORTED_MODULE_0__.createElement,\n  createContext: preact__WEBPACK_IMPORTED_MODULE_0__.createContext,\n  createFactory: on,\n  cloneElement: cn,\n  createRef: preact__WEBPACK_IMPORTED_MODULE_0__.createRef,\n  Fragment: preact__WEBPACK_IMPORTED_MODULE_0__.Fragment,\n  isValidElement: ln,\n  findDOMNode: an,\n  Component: preact__WEBPACK_IMPORTED_MODULE_0__.Component,\n  PureComponent: w,\n  memo: R,\n  forwardRef: k,\n  flushSync: hn,\n  unstable_batchedUpdates: sn,\n  StrictMode: vn,\n  Suspense: D,\n  SuspenseList: V,\n  lazy: M,\n  __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: rn\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/preact/compat/dist/compat.module.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/preact/dist/preact.module.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/preact/dist/preact.module.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Component: () => (/* binding */ x),\n/* harmony export */   Fragment: () => (/* binding */ _),\n/* harmony export */   cloneElement: () => (/* binding */ F),\n/* harmony export */   createContext: () => (/* binding */ G),\n/* harmony export */   createElement: () => (/* binding */ y),\n/* harmony export */   createRef: () => (/* binding */ d),\n/* harmony export */   h: () => (/* binding */ y),\n/* harmony export */   hydrate: () => (/* binding */ E),\n/* harmony export */   isValidElement: () => (/* binding */ i),\n/* harmony export */   options: () => (/* binding */ l),\n/* harmony export */   render: () => (/* binding */ D),\n/* harmony export */   toChildArray: () => (/* binding */ j)\n/* harmony export */ });\nvar n,\n  l,\n  u,\n  i,\n  t,\n  r,\n  o,\n  f,\n  e,\n  c = {},\n  s = [],\n  a = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\nfunction h(n, l) {\n  for (var u in l) n[u] = l[u];\n  return n;\n}\nfunction v(n) {\n  var l = n.parentNode;\n  l && l.removeChild(n);\n}\nfunction y(l, u, i) {\n  var t,\n    r,\n    o,\n    f = {};\n  for (o in u) \"key\" == o ? t = u[o] : \"ref\" == o ? r = u[o] : f[o] = u[o];\n  if (arguments.length > 2 && (f.children = arguments.length > 3 ? n.call(arguments, 2) : i), \"function\" == typeof l && null != l.defaultProps) for (o in l.defaultProps) void 0 === f[o] && (f[o] = l.defaultProps[o]);\n  return p(l, f, t, r, null);\n}\nfunction p(n, i, t, r, o) {\n  var f = {\n    type: n,\n    props: i,\n    key: t,\n    ref: r,\n    __k: null,\n    __: null,\n    __b: 0,\n    __e: null,\n    __d: void 0,\n    __c: null,\n    __h: null,\n    constructor: void 0,\n    __v: null == o ? ++u : o\n  };\n  return null == o && null != l.vnode && l.vnode(f), f;\n}\nfunction d() {\n  return {\n    current: null\n  };\n}\nfunction _(n) {\n  return n.children;\n}\nfunction k(n, l, u, i, t) {\n  var r;\n  for (r in u) \"children\" === r || \"key\" === r || r in l || g(n, r, null, u[r], i);\n  for (r in l) t && \"function\" != typeof l[r] || \"children\" === r || \"key\" === r || \"value\" === r || \"checked\" === r || u[r] === l[r] || g(n, r, l[r], u[r], i);\n}\nfunction b(n, l, u) {\n  \"-\" === l[0] ? n.setProperty(l, null == u ? \"\" : u) : n[l] = null == u ? \"\" : \"number\" != typeof u || a.test(l) ? u : u + \"px\";\n}\nfunction g(n, l, u, i, t) {\n  var r;\n  n: if (\"style\" === l) {\n    if (\"string\" == typeof u) n.style.cssText = u;else {\n      if (\"string\" == typeof i && (n.style.cssText = i = \"\"), i) for (l in i) u && l in u || b(n.style, l, \"\");\n      if (u) for (l in u) i && u[l] === i[l] || b(n.style, l, u[l]);\n    }\n  } else if (\"o\" === l[0] && \"n\" === l[1]) r = l !== (l = l.replace(/Capture$/, \"\")), l = l.toLowerCase() in n ? l.toLowerCase().slice(2) : l.slice(2), n.l || (n.l = {}), n.l[l + r] = u, u ? i || n.addEventListener(l, r ? w : m, r) : n.removeEventListener(l, r ? w : m, r);else if (\"dangerouslySetInnerHTML\" !== l) {\n    if (t) l = l.replace(/xlink(H|:h)/, \"h\").replace(/sName$/, \"s\");else if (\"width\" !== l && \"height\" !== l && \"href\" !== l && \"list\" !== l && \"form\" !== l && \"tabIndex\" !== l && \"download\" !== l && l in n) try {\n      n[l] = null == u ? \"\" : u;\n      break n;\n    } catch (n) {}\n    \"function\" == typeof u || (null == u || !1 === u && -1 == l.indexOf(\"-\") ? n.removeAttribute(l) : n.setAttribute(l, u));\n  }\n}\nfunction m(n) {\n  t = !0;\n  try {\n    return this.l[n.type + !1](l.event ? l.event(n) : n);\n  } finally {\n    t = !1;\n  }\n}\nfunction w(n) {\n  t = !0;\n  try {\n    return this.l[n.type + !0](l.event ? l.event(n) : n);\n  } finally {\n    t = !1;\n  }\n}\nfunction x(n, l) {\n  this.props = n, this.context = l;\n}\nfunction A(n, l) {\n  if (null == l) return n.__ ? A(n.__, n.__.__k.indexOf(n) + 1) : null;\n  for (var u; l < n.__k.length; l++) if (null != (u = n.__k[l]) && null != u.__e) return u.__e;\n  return \"function\" == typeof n.type ? A(n) : null;\n}\nfunction P(n) {\n  var l, u;\n  if (null != (n = n.__) && null != n.__c) {\n    for (n.__e = n.__c.base = null, l = 0; l < n.__k.length; l++) if (null != (u = n.__k[l]) && null != u.__e) {\n      n.__e = n.__c.base = u.__e;\n      break;\n    }\n    return P(n);\n  }\n}\nfunction C(n) {\n  t ? setTimeout(n) : f(n);\n}\nfunction T(n) {\n  (!n.__d && (n.__d = !0) && r.push(n) && !$.__r++ || o !== l.debounceRendering) && ((o = l.debounceRendering) || C)($);\n}\nfunction $() {\n  var n, l, u, i, t, o, f, e;\n  for (r.sort(function (n, l) {\n    return n.__v.__b - l.__v.__b;\n  }); n = r.shift();) n.__d && (l = r.length, i = void 0, t = void 0, f = (o = (u = n).__v).__e, (e = u.__P) && (i = [], (t = h({}, o)).__v = o.__v + 1, M(e, o, t, u.__n, void 0 !== e.ownerSVGElement, null != o.__h ? [f] : null, i, null == f ? A(o) : f, o.__h), N(i, o), o.__e != f && P(o)), r.length > l && r.sort(function (n, l) {\n    return n.__v.__b - l.__v.__b;\n  }));\n  $.__r = 0;\n}\nfunction H(n, l, u, i, t, r, o, f, e, a) {\n  var h,\n    v,\n    y,\n    d,\n    k,\n    b,\n    g,\n    m = i && i.__k || s,\n    w = m.length;\n  for (u.__k = [], h = 0; h < l.length; h++) if (null != (d = u.__k[h] = null == (d = l[h]) || \"boolean\" == typeof d ? null : \"string\" == typeof d || \"number\" == typeof d || \"bigint\" == typeof d ? p(null, d, null, null, d) : Array.isArray(d) ? p(_, {\n    children: d\n  }, null, null, null) : d.__b > 0 ? p(d.type, d.props, d.key, d.ref ? d.ref : null, d.__v) : d)) {\n    if (d.__ = u, d.__b = u.__b + 1, null === (y = m[h]) || y && d.key == y.key && d.type === y.type) m[h] = void 0;else for (v = 0; v < w; v++) {\n      if ((y = m[v]) && d.key == y.key && d.type === y.type) {\n        m[v] = void 0;\n        break;\n      }\n      y = null;\n    }\n    M(n, d, y = y || c, t, r, o, f, e, a), k = d.__e, (v = d.ref) && y.ref != v && (g || (g = []), y.ref && g.push(y.ref, null, d), g.push(v, d.__c || k, d)), null != k ? (null == b && (b = k), \"function\" == typeof d.type && d.__k === y.__k ? d.__d = e = I(d, e, n) : e = z(n, d, y, m, k, e), \"function\" == typeof u.type && (u.__d = e)) : e && y.__e == e && e.parentNode != n && (e = A(y));\n  }\n  for (u.__e = b, h = w; h--;) null != m[h] && (\"function\" == typeof u.type && null != m[h].__e && m[h].__e == u.__d && (u.__d = L(i).nextSibling), q(m[h], m[h]));\n  if (g) for (h = 0; h < g.length; h++) S(g[h], g[++h], g[++h]);\n}\nfunction I(n, l, u) {\n  for (var i, t = n.__k, r = 0; t && r < t.length; r++) (i = t[r]) && (i.__ = n, l = \"function\" == typeof i.type ? I(i, l, u) : z(u, i, i, t, i.__e, l));\n  return l;\n}\nfunction j(n, l) {\n  return l = l || [], null == n || \"boolean\" == typeof n || (Array.isArray(n) ? n.some(function (n) {\n    j(n, l);\n  }) : l.push(n)), l;\n}\nfunction z(n, l, u, i, t, r) {\n  var o, f, e;\n  if (void 0 !== l.__d) o = l.__d, l.__d = void 0;else if (null == u || t != r || null == t.parentNode) n: if (null == r || r.parentNode !== n) n.appendChild(t), o = null;else {\n    for (f = r, e = 0; (f = f.nextSibling) && e < i.length; e += 1) if (f == t) break n;\n    n.insertBefore(t, r), o = r;\n  }\n  return void 0 !== o ? o : t.nextSibling;\n}\nfunction L(n) {\n  var l, u, i;\n  if (null == n.type || \"string\" == typeof n.type) return n.__e;\n  if (n.__k) for (l = n.__k.length - 1; l >= 0; l--) if ((u = n.__k[l]) && (i = L(u))) return i;\n  return null;\n}\nfunction M(n, u, i, t, r, o, f, e, c) {\n  var s,\n    a,\n    v,\n    y,\n    p,\n    d,\n    k,\n    b,\n    g,\n    m,\n    w,\n    A,\n    P,\n    C,\n    T,\n    $ = u.type;\n  if (void 0 !== u.constructor) return null;\n  null != i.__h && (c = i.__h, e = u.__e = i.__e, u.__h = null, o = [e]), (s = l.__b) && s(u);\n  try {\n    n: if (\"function\" == typeof $) {\n      if (b = u.props, g = (s = $.contextType) && t[s.__c], m = s ? g ? g.props.value : s.__ : t, i.__c ? k = (a = u.__c = i.__c).__ = a.__E : (\"prototype\" in $ && $.prototype.render ? u.__c = a = new $(b, m) : (u.__c = a = new x(b, m), a.constructor = $, a.render = B), g && g.sub(a), a.props = b, a.state || (a.state = {}), a.context = m, a.__n = t, v = a.__d = !0, a.__h = [], a._sb = []), null == a.__s && (a.__s = a.state), null != $.getDerivedStateFromProps && (a.__s == a.state && (a.__s = h({}, a.__s)), h(a.__s, $.getDerivedStateFromProps(b, a.__s))), y = a.props, p = a.state, a.__v = u, v) null == $.getDerivedStateFromProps && null != a.componentWillMount && a.componentWillMount(), null != a.componentDidMount && a.__h.push(a.componentDidMount);else {\n        if (null == $.getDerivedStateFromProps && b !== y && null != a.componentWillReceiveProps && a.componentWillReceiveProps(b, m), !a.__e && null != a.shouldComponentUpdate && !1 === a.shouldComponentUpdate(b, a.__s, m) || u.__v === i.__v) {\n          for (u.__v !== i.__v && (a.props = b, a.state = a.__s, a.__d = !1), u.__e = i.__e, u.__k = i.__k, u.__k.forEach(function (n) {\n            n && (n.__ = u);\n          }), w = 0; w < a._sb.length; w++) a.__h.push(a._sb[w]);\n          a._sb = [], a.__h.length && f.push(a);\n          break n;\n        }\n        null != a.componentWillUpdate && a.componentWillUpdate(b, a.__s, m), null != a.componentDidUpdate && a.__h.push(function () {\n          a.componentDidUpdate(y, p, d);\n        });\n      }\n      if (a.context = m, a.props = b, a.__P = n, A = l.__r, P = 0, \"prototype\" in $ && $.prototype.render) {\n        for (a.state = a.__s, a.__d = !1, A && A(u), s = a.render(a.props, a.state, a.context), C = 0; C < a._sb.length; C++) a.__h.push(a._sb[C]);\n        a._sb = [];\n      } else do {\n        a.__d = !1, A && A(u), s = a.render(a.props, a.state, a.context), a.state = a.__s;\n      } while (a.__d && ++P < 25);\n      a.state = a.__s, null != a.getChildContext && (t = h(h({}, t), a.getChildContext())), v || null == a.getSnapshotBeforeUpdate || (d = a.getSnapshotBeforeUpdate(y, p)), T = null != s && s.type === _ && null == s.key ? s.props.children : s, H(n, Array.isArray(T) ? T : [T], u, i, t, r, o, f, e, c), a.base = u.__e, u.__h = null, a.__h.length && f.push(a), k && (a.__E = a.__ = null), a.__e = !1;\n    } else null == o && u.__v === i.__v ? (u.__k = i.__k, u.__e = i.__e) : u.__e = O(i.__e, u, i, t, r, o, f, c);\n    (s = l.diffed) && s(u);\n  } catch (n) {\n    u.__v = null, (c || null != o) && (u.__e = e, u.__h = !!c, o[o.indexOf(e)] = null), l.__e(n, u, i);\n  }\n}\nfunction N(n, u) {\n  l.__c && l.__c(u, n), n.some(function (u) {\n    try {\n      n = u.__h, u.__h = [], n.some(function (n) {\n        n.call(u);\n      });\n    } catch (n) {\n      l.__e(n, u.__v);\n    }\n  });\n}\nfunction O(l, u, i, t, r, o, f, e) {\n  var s,\n    a,\n    h,\n    y = i.props,\n    p = u.props,\n    d = u.type,\n    _ = 0;\n  if (\"svg\" === d && (r = !0), null != o) for (; _ < o.length; _++) if ((s = o[_]) && \"setAttribute\" in s == !!d && (d ? s.localName === d : 3 === s.nodeType)) {\n    l = s, o[_] = null;\n    break;\n  }\n  if (null == l) {\n    if (null === d) return document.createTextNode(p);\n    l = r ? document.createElementNS(\"http://www.w3.org/2000/svg\", d) : document.createElement(d, p.is && p), o = null, e = !1;\n  }\n  if (null === d) y === p || e && l.data === p || (l.data = p);else {\n    if (o = o && n.call(l.childNodes), a = (y = i.props || c).dangerouslySetInnerHTML, h = p.dangerouslySetInnerHTML, !e) {\n      if (null != o) for (y = {}, _ = 0; _ < l.attributes.length; _++) y[l.attributes[_].name] = l.attributes[_].value;\n      (h || a) && (h && (a && h.__html == a.__html || h.__html === l.innerHTML) || (l.innerHTML = h && h.__html || \"\"));\n    }\n    if (k(l, p, y, r, e), h) u.__k = [];else if (_ = u.props.children, H(l, Array.isArray(_) ? _ : [_], u, i, t, r && \"foreignObject\" !== d, o, f, o ? o[0] : i.__k && A(i, 0), e), null != o) for (_ = o.length; _--;) null != o[_] && v(o[_]);\n    e || (\"value\" in p && void 0 !== (_ = p.value) && (_ !== l.value || \"progress\" === d && !_ || \"option\" === d && _ !== y.value) && g(l, \"value\", _, y.value, !1), \"checked\" in p && void 0 !== (_ = p.checked) && _ !== l.checked && g(l, \"checked\", _, y.checked, !1));\n  }\n  return l;\n}\nfunction S(n, u, i) {\n  try {\n    \"function\" == typeof n ? n(u) : n.current = u;\n  } catch (n) {\n    l.__e(n, i);\n  }\n}\nfunction q(n, u, i) {\n  var t, r;\n  if (l.unmount && l.unmount(n), (t = n.ref) && (t.current && t.current !== n.__e || S(t, null, u)), null != (t = n.__c)) {\n    if (t.componentWillUnmount) try {\n      t.componentWillUnmount();\n    } catch (n) {\n      l.__e(n, u);\n    }\n    t.base = t.__P = null, n.__c = void 0;\n  }\n  if (t = n.__k) for (r = 0; r < t.length; r++) t[r] && q(t[r], u, i || \"function\" != typeof n.type);\n  i || null == n.__e || v(n.__e), n.__ = n.__e = n.__d = void 0;\n}\nfunction B(n, l, u) {\n  return this.constructor(n, u);\n}\nfunction D(u, i, t) {\n  var r, o, f;\n  l.__ && l.__(u, i), o = (r = \"function\" == typeof t) ? null : t && t.__k || i.__k, f = [], M(i, u = (!r && t || i).__k = y(_, null, [u]), o || c, c, void 0 !== i.ownerSVGElement, !r && t ? [t] : o ? null : i.firstChild ? n.call(i.childNodes) : null, f, !r && t ? t : o ? o.__e : i.firstChild, r), N(f, u);\n}\nfunction E(n, l) {\n  D(n, l, E);\n}\nfunction F(l, u, i) {\n  var t,\n    r,\n    o,\n    f = h({}, l.props);\n  for (o in u) \"key\" == o ? t = u[o] : \"ref\" == o ? r = u[o] : f[o] = u[o];\n  return arguments.length > 2 && (f.children = arguments.length > 3 ? n.call(arguments, 2) : i), p(l.type, f, t || l.key, r || l.ref, null);\n}\nfunction G(n, l) {\n  var u = {\n    __c: l = \"__cC\" + e++,\n    __: n,\n    Consumer: function (n, l) {\n      return n.children(l);\n    },\n    Provider: function (n) {\n      var u, i;\n      return this.getChildContext || (u = [], (i = {})[l] = this, this.getChildContext = function () {\n        return i;\n      }, this.shouldComponentUpdate = function (n) {\n        this.props.value !== n.value && u.some(function (n) {\n          n.__e = !0, T(n);\n        });\n      }, this.sub = function (n) {\n        u.push(n);\n        var l = n.componentWillUnmount;\n        n.componentWillUnmount = function () {\n          u.splice(u.indexOf(n), 1), l && l.call(n);\n        };\n      }), n.children;\n    }\n  };\n  return u.Provider.__ = u.Consumer.contextType = u;\n}\nn = s.slice, l = {\n  __e: function (n, l, u, i) {\n    for (var t, r, o; l = l.__;) if ((t = l.__c) && !t.__) try {\n      if ((r = t.constructor) && null != r.getDerivedStateFromError && (t.setState(r.getDerivedStateFromError(n)), o = t.__d), null != t.componentDidCatch && (t.componentDidCatch(n, i || {}), o = t.__d), o) return t.__E = t;\n    } catch (l) {\n      n = l;\n    }\n    throw n;\n  }\n}, u = 0, i = function (n) {\n  return null != n && void 0 === n.constructor;\n}, t = !1, x.prototype.setState = function (n, l) {\n  var u;\n  u = null != this.__s && this.__s !== this.state ? this.__s : this.__s = h({}, this.state), \"function\" == typeof n && (n = n(h({}, u), this.props)), n && h(u, n), null != n && this.__v && (l && this._sb.push(l), T(this));\n}, x.prototype.forceUpdate = function (n) {\n  this.__v && (this.__e = !0, n && this.__h.push(n), T(this));\n}, x.prototype.render = _, r = [], f = \"function\" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, $.__r = 0, e = 0;\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/preact/dist/preact.module.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/preact/hooks/dist/hooks.module.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/preact/hooks/dist/hooks.module.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useCallback: () => (/* binding */ T),\n/* harmony export */   useContext: () => (/* binding */ q),\n/* harmony export */   useDebugValue: () => (/* binding */ x),\n/* harmony export */   useEffect: () => (/* binding */ h),\n/* harmony export */   useErrorBoundary: () => (/* binding */ P),\n/* harmony export */   useId: () => (/* binding */ V),\n/* harmony export */   useImperativeHandle: () => (/* binding */ A),\n/* harmony export */   useLayoutEffect: () => (/* binding */ s),\n/* harmony export */   useMemo: () => (/* binding */ F),\n/* harmony export */   useReducer: () => (/* binding */ y),\n/* harmony export */   useRef: () => (/* binding */ _),\n/* harmony export */   useState: () => (/* binding */ p)\n/* harmony export */ });\n/* harmony import */ var preact__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! preact */ \"../react-ui/node_modules/preact/dist/preact.module.js\");\n\nvar t,\n  r,\n  u,\n  i,\n  o = 0,\n  f = [],\n  c = [],\n  e = preact__WEBPACK_IMPORTED_MODULE_0__.options.__b,\n  a = preact__WEBPACK_IMPORTED_MODULE_0__.options.__r,\n  v = preact__WEBPACK_IMPORTED_MODULE_0__.options.diffed,\n  l = preact__WEBPACK_IMPORTED_MODULE_0__.options.__c,\n  m = preact__WEBPACK_IMPORTED_MODULE_0__.options.unmount;\nfunction d(t, u) {\n  preact__WEBPACK_IMPORTED_MODULE_0__.options.__h && preact__WEBPACK_IMPORTED_MODULE_0__.options.__h(r, t, o || u), o = 0;\n  var i = r.__H || (r.__H = {\n    __: [],\n    __h: []\n  });\n  return t >= i.__.length && i.__.push({\n    __V: c\n  }), i.__[t];\n}\nfunction p(n) {\n  return o = 1, y(B, n);\n}\nfunction y(n, u, i) {\n  var o = d(t++, 2);\n  if (o.t = n, !o.__c && (o.__ = [i ? i(u) : B(void 0, u), function (n) {\n    var t = o.__N ? o.__N[0] : o.__[0],\n      r = o.t(t, n);\n    t !== r && (o.__N = [r, o.__[1]], o.__c.setState({}));\n  }], o.__c = r, !r.u)) {\n    r.u = !0;\n    var f = r.shouldComponentUpdate;\n    r.shouldComponentUpdate = function (n, t, r) {\n      if (!o.__c.__H) return !0;\n      var u = o.__c.__H.__.filter(function (n) {\n        return n.__c;\n      });\n      if (u.every(function (n) {\n        return !n.__N;\n      })) return !f || f.call(this, n, t, r);\n      var i = !1;\n      return u.forEach(function (n) {\n        if (n.__N) {\n          var t = n.__[0];\n          n.__ = n.__N, n.__N = void 0, t !== n.__[0] && (i = !0);\n        }\n      }), !(!i && o.__c.props === n) && (!f || f.call(this, n, t, r));\n    };\n  }\n  return o.__N || o.__;\n}\nfunction h(u, i) {\n  var o = d(t++, 3);\n  !preact__WEBPACK_IMPORTED_MODULE_0__.options.__s && z(o.__H, i) && (o.__ = u, o.i = i, r.__H.__h.push(o));\n}\nfunction s(u, i) {\n  var o = d(t++, 4);\n  !preact__WEBPACK_IMPORTED_MODULE_0__.options.__s && z(o.__H, i) && (o.__ = u, o.i = i, r.__h.push(o));\n}\nfunction _(n) {\n  return o = 5, F(function () {\n    return {\n      current: n\n    };\n  }, []);\n}\nfunction A(n, t, r) {\n  o = 6, s(function () {\n    return \"function\" == typeof n ? (n(t()), function () {\n      return n(null);\n    }) : n ? (n.current = t(), function () {\n      return n.current = null;\n    }) : void 0;\n  }, null == r ? r : r.concat(n));\n}\nfunction F(n, r) {\n  var u = d(t++, 7);\n  return z(u.__H, r) ? (u.__V = n(), u.i = r, u.__h = n, u.__V) : u.__;\n}\nfunction T(n, t) {\n  return o = 8, F(function () {\n    return n;\n  }, t);\n}\nfunction q(n) {\n  var u = r.context[n.__c],\n    i = d(t++, 9);\n  return i.c = n, u ? (null == i.__ && (i.__ = !0, u.sub(r)), u.props.value) : n.__;\n}\nfunction x(t, r) {\n  preact__WEBPACK_IMPORTED_MODULE_0__.options.useDebugValue && preact__WEBPACK_IMPORTED_MODULE_0__.options.useDebugValue(r ? r(t) : t);\n}\nfunction P(n) {\n  var u = d(t++, 10),\n    i = p();\n  return u.__ = n, r.componentDidCatch || (r.componentDidCatch = function (n, t) {\n    u.__ && u.__(n, t), i[1](n);\n  }), [i[0], function () {\n    i[1](void 0);\n  }];\n}\nfunction V() {\n  var n = d(t++, 11);\n  if (!n.__) {\n    for (var u = r.__v; null !== u && !u.__m && null !== u.__;) u = u.__;\n    var i = u.__m || (u.__m = [0, 0]);\n    n.__ = \"P\" + i[0] + \"-\" + i[1]++;\n  }\n  return n.__;\n}\nfunction b() {\n  for (var t; t = f.shift();) if (t.__P && t.__H) try {\n    t.__H.__h.forEach(k), t.__H.__h.forEach(w), t.__H.__h = [];\n  } catch (r) {\n    t.__H.__h = [], preact__WEBPACK_IMPORTED_MODULE_0__.options.__e(r, t.__v);\n  }\n}\npreact__WEBPACK_IMPORTED_MODULE_0__.options.__b = function (n) {\n  r = null, e && e(n);\n}, preact__WEBPACK_IMPORTED_MODULE_0__.options.__r = function (n) {\n  a && a(n), t = 0;\n  var i = (r = n.__c).__H;\n  i && (u === r ? (i.__h = [], r.__h = [], i.__.forEach(function (n) {\n    n.__N && (n.__ = n.__N), n.__V = c, n.__N = n.i = void 0;\n  })) : (i.__h.forEach(k), i.__h.forEach(w), i.__h = [])), u = r;\n}, preact__WEBPACK_IMPORTED_MODULE_0__.options.diffed = function (t) {\n  v && v(t);\n  var o = t.__c;\n  o && o.__H && (o.__H.__h.length && (1 !== f.push(o) && i === preact__WEBPACK_IMPORTED_MODULE_0__.options.requestAnimationFrame || ((i = preact__WEBPACK_IMPORTED_MODULE_0__.options.requestAnimationFrame) || j)(b)), o.__H.__.forEach(function (n) {\n    n.i && (n.__H = n.i), n.__V !== c && (n.__ = n.__V), n.i = void 0, n.__V = c;\n  })), u = r = null;\n}, preact__WEBPACK_IMPORTED_MODULE_0__.options.__c = function (t, r) {\n  r.some(function (t) {\n    try {\n      t.__h.forEach(k), t.__h = t.__h.filter(function (n) {\n        return !n.__ || w(n);\n      });\n    } catch (u) {\n      r.some(function (n) {\n        n.__h && (n.__h = []);\n      }), r = [], preact__WEBPACK_IMPORTED_MODULE_0__.options.__e(u, t.__v);\n    }\n  }), l && l(t, r);\n}, preact__WEBPACK_IMPORTED_MODULE_0__.options.unmount = function (t) {\n  m && m(t);\n  var r,\n    u = t.__c;\n  u && u.__H && (u.__H.__.forEach(function (n) {\n    try {\n      k(n);\n    } catch (n) {\n      r = n;\n    }\n  }), u.__H = void 0, r && preact__WEBPACK_IMPORTED_MODULE_0__.options.__e(r, u.__v));\n};\nvar g = \"function\" == typeof requestAnimationFrame;\nfunction j(n) {\n  var t,\n    r = function () {\n      clearTimeout(u), g && cancelAnimationFrame(t), setTimeout(n);\n    },\n    u = setTimeout(r, 100);\n  g && (t = requestAnimationFrame(r));\n}\nfunction k(n) {\n  var t = r,\n    u = n.__c;\n  \"function\" == typeof u && (n.__c = void 0, u()), r = t;\n}\nfunction w(n) {\n  var t = r;\n  n.__c = n.__(), r = t;\n}\nfunction z(n, t) {\n  return !n || n.length !== t.length || t.some(function (t, r) {\n    return t !== n[r];\n  });\n}\nfunction B(n, t) {\n  return \"function\" == typeof t ? t(n) : t;\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/preact/hooks/dist/hooks.module.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/api/api.esm.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/primereact/api/api.esm.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   FilterMatchMode: () => (/* binding */ FilterMatchMode),\n/* harmony export */   FilterOperator: () => (/* binding */ FilterOperator),\n/* harmony export */   FilterService: () => (/* binding */ FilterService),\n/* harmony export */   MessageSeverity: () => (/* binding */ MessageSeverity),\n/* harmony export */   PrimeIcons: () => (/* binding */ PrimeIcons),\n/* harmony export */   PrimeReactContext: () => (/* binding */ PrimeReactContext),\n/* harmony export */   PrimeReactProvider: () => (/* binding */ PrimeReactProvider),\n/* harmony export */   SortOrder: () => (/* binding */ SortOrder),\n/* harmony export */   addLocale: () => (/* binding */ addLocale),\n/* harmony export */   ariaLabel: () => (/* binding */ ariaLabel),\n/* harmony export */   \"default\": () => (/* binding */ PrimeReact),\n/* harmony export */   locale: () => (/* binding */ locale),\n/* harmony export */   localeOption: () => (/* binding */ localeOption),\n/* harmony export */   localeOptions: () => (/* binding */ localeOptions),\n/* harmony export */   updateLocaleOption: () => (/* binding */ updateLocaleOption),\n/* harmony export */   updateLocaleOptions: () => (/* binding */ updateLocaleOptions)\n/* harmony export */ });\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n'use client';\n\n\n\nvar FilterMatchMode = Object.freeze({\n  STARTS_WITH: 'startsWith',\n  CONTAINS: 'contains',\n  NOT_CONTAINS: 'notContains',\n  ENDS_WITH: 'endsWith',\n  EQUALS: 'equals',\n  NOT_EQUALS: 'notEquals',\n  IN: 'in',\n  NOT_IN: 'notIn',\n  LESS_THAN: 'lt',\n  LESS_THAN_OR_EQUAL_TO: 'lte',\n  GREATER_THAN: 'gt',\n  GREATER_THAN_OR_EQUAL_TO: 'gte',\n  BETWEEN: 'between',\n  DATE_IS: 'dateIs',\n  DATE_IS_NOT: 'dateIsNot',\n  DATE_BEFORE: 'dateBefore',\n  DATE_AFTER: 'dateAfter',\n  CUSTOM: 'custom'\n});\nvar FilterOperator = Object.freeze({\n  AND: 'and',\n  OR: 'or'\n});\nfunction _createForOfIteratorHelper(r, e) {\n  var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (!t) {\n    if (Array.isArray(r) || (t = _unsupportedIterableToArray$1(r)) || e && r && \"number\" == typeof r.length) {\n      t && (r = t);\n      var _n = 0,\n        F = function F() {};\n      return {\n        s: F,\n        n: function n() {\n          return _n >= r.length ? {\n            done: !0\n          } : {\n            done: !1,\n            value: r[_n++]\n          };\n        },\n        e: function e(r) {\n          throw r;\n        },\n        f: F\n      };\n    }\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n  var o,\n    a = !0,\n    u = !1;\n  return {\n    s: function s() {\n      t = t.call(r);\n    },\n    n: function n() {\n      var r = t.next();\n      return a = r.done, r;\n    },\n    e: function e(r) {\n      u = !0, o = r;\n    },\n    f: function f() {\n      try {\n        a || null == t[\"return\"] || t[\"return\"]();\n      } finally {\n        if (u) throw o;\n      }\n    }\n  };\n}\nfunction _unsupportedIterableToArray$1(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray$1(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0;\n  }\n}\nfunction _arrayLikeToArray$1(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nvar FilterService = {\n  filter: function filter(value, fields, filterValue, filterMatchMode, filterLocale) {\n    var filteredItems = [];\n    if (!value) {\n      return filteredItems;\n    }\n    var _iterator = _createForOfIteratorHelper(value),\n      _step;\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var item = _step.value;\n        if (typeof item === 'string') {\n          if (this.filters[filterMatchMode](item, filterValue, filterLocale)) {\n            filteredItems.push(item);\n            continue;\n          }\n        } else {\n          var _iterator2 = _createForOfIteratorHelper(fields),\n            _step2;\n          try {\n            for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n              var field = _step2.value;\n              var fieldValue = primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.resolveFieldData(item, field);\n              if (this.filters[filterMatchMode](fieldValue, filterValue, filterLocale)) {\n                filteredItems.push(item);\n                break;\n              }\n            }\n          } catch (err) {\n            _iterator2.e(err);\n          } finally {\n            _iterator2.f();\n          }\n        }\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n    return filteredItems;\n  },\n  filters: {\n    startsWith: function startsWith(value, filter, filterLocale) {\n      if (filter === undefined || filter === null || filter.trim() === '') {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return false;\n      }\n      var filterValue = primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n      var stringValue = primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n      return stringValue.slice(0, filterValue.length) === filterValue;\n    },\n    contains: function contains(value, filter, filterLocale) {\n      if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return false;\n      }\n      var filterValue = primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n      var stringValue = primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n      return stringValue.indexOf(filterValue) !== -1;\n    },\n    notContains: function notContains(value, filter, filterLocale) {\n      if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return false;\n      }\n      var filterValue = primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n      var stringValue = primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n      return stringValue.indexOf(filterValue) === -1;\n    },\n    endsWith: function endsWith(value, filter, filterLocale) {\n      if (filter === undefined || filter === null || filter.trim() === '') {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return false;\n      }\n      var filterValue = primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n      var stringValue = primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n      return stringValue.indexOf(filterValue, stringValue.length - filterValue.length) !== -1;\n    },\n    equals: function equals(value, filter, filterLocale) {\n      if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return false;\n      }\n      if (value.getTime && filter.getTime) {\n        return value.getTime() === filter.getTime();\n      }\n      return primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale) === primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n    },\n    notEquals: function notEquals(value, filter, filterLocale) {\n      if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return true;\n      }\n      if (value.getTime && filter.getTime) {\n        return value.getTime() !== filter.getTime();\n      }\n      return primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale) !== primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n    },\n    \"in\": function _in(value, filter) {\n      if (filter === undefined || filter === null || filter.length === 0) {\n        return true;\n      }\n      for (var i = 0; i < filter.length; i++) {\n        if (primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.equals(value, filter[i])) {\n          return true;\n        }\n      }\n      return false;\n    },\n    notIn: function notIn(value, filter) {\n      if (filter === undefined || filter === null || filter.length === 0) {\n        return true;\n      }\n      for (var i = 0; i < filter.length; i++) {\n        if (primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.equals(value, filter[i])) {\n          return false;\n        }\n      }\n      return true;\n    },\n    between: function between(value, filter) {\n      if (filter == null || filter[0] == null || filter[1] == null) {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return false;\n      }\n      if (value.getTime) {\n        return filter[0].getTime() <= value.getTime() && value.getTime() <= filter[1].getTime();\n      }\n      return filter[0] <= value && value <= filter[1];\n    },\n    lt: function lt(value, filter) {\n      if (filter === undefined || filter === null) {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return false;\n      }\n      if (value.getTime && filter.getTime) {\n        return value.getTime() < filter.getTime();\n      }\n      return value < filter;\n    },\n    lte: function lte(value, filter) {\n      if (filter === undefined || filter === null) {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return false;\n      }\n      if (value.getTime && filter.getTime) {\n        return value.getTime() <= filter.getTime();\n      }\n      return value <= filter;\n    },\n    gt: function gt(value, filter) {\n      if (filter === undefined || filter === null) {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return false;\n      }\n      if (value.getTime && filter.getTime) {\n        return value.getTime() > filter.getTime();\n      }\n      return value > filter;\n    },\n    gte: function gte(value, filter) {\n      if (filter === undefined || filter === null) {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return false;\n      }\n      if (value.getTime && filter.getTime) {\n        return value.getTime() >= filter.getTime();\n      }\n      return value >= filter;\n    },\n    dateIs: function dateIs(value, filter) {\n      if (filter === undefined || filter === null) {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return false;\n      }\n      return value.toDateString() === filter.toDateString();\n    },\n    dateIsNot: function dateIsNot(value, filter) {\n      if (filter === undefined || filter === null) {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return false;\n      }\n      return value.toDateString() !== filter.toDateString();\n    },\n    dateBefore: function dateBefore(value, filter) {\n      if (filter === undefined || filter === null) {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return false;\n      }\n      return value.getTime() < filter.getTime();\n    },\n    dateAfter: function dateAfter(value, filter) {\n      if (filter === undefined || filter === null) {\n        return true;\n      }\n      if (value === undefined || value === null) {\n        return false;\n      }\n      return value.getTime() > filter.getTime();\n    }\n  },\n  register: function register(rule, fn) {\n    this.filters[rule] = fn;\n  }\n};\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nfunction _defineProperties(e, r) {\n  for (var t = 0; t < r.length; t++) {\n    var o = r[t];\n    o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n  }\n}\nfunction _createClass(e, r, t) {\n  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n    writable: !1\n  }), e;\n}\nfunction _classCallCheck(a, n) {\n  if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\n\n/**\n * @deprecated please use PrimeReactContext\n */\nvar PrimeReact$1 = /*#__PURE__*/_createClass(function PrimeReact() {\n  _classCallCheck(this, PrimeReact);\n});\n_defineProperty(PrimeReact$1, \"ripple\", false);\n_defineProperty(PrimeReact$1, \"inputStyle\", 'outlined');\n_defineProperty(PrimeReact$1, \"locale\", 'en');\n_defineProperty(PrimeReact$1, \"appendTo\", null);\n_defineProperty(PrimeReact$1, \"cssTransition\", true);\n_defineProperty(PrimeReact$1, \"autoZIndex\", true);\n_defineProperty(PrimeReact$1, \"hideOverlaysOnDocumentScrolling\", false);\n_defineProperty(PrimeReact$1, \"nonce\", null);\n_defineProperty(PrimeReact$1, \"nullSortOrder\", 1);\n_defineProperty(PrimeReact$1, \"zIndex\", {\n  modal: 1100,\n  overlay: 1000,\n  menu: 1000,\n  tooltip: 1100,\n  toast: 1200\n});\n_defineProperty(PrimeReact$1, \"pt\", undefined);\n_defineProperty(PrimeReact$1, \"filterMatchModeOptions\", {\n  text: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS],\n  numeric: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO],\n  date: [FilterMatchMode.DATE_IS, FilterMatchMode.DATE_IS_NOT, FilterMatchMode.DATE_BEFORE, FilterMatchMode.DATE_AFTER]\n});\n_defineProperty(PrimeReact$1, \"changeTheme\", function (currentTheme, newTheme, linkElementId, callback) {\n  var _linkElement$parentNo;\n  var linkElement = document.getElementById(linkElementId);\n  if (!linkElement) {\n    throw Error(\"Element with id \".concat(linkElementId, \" not found.\"));\n  }\n  var newThemeUrl = linkElement.getAttribute('href').replace(currentTheme, newTheme);\n  var newLinkElement = document.createElement('link');\n  newLinkElement.setAttribute('rel', 'stylesheet');\n  newLinkElement.setAttribute('id', linkElementId);\n  newLinkElement.setAttribute('href', newThemeUrl);\n  newLinkElement.addEventListener('load', function () {\n    if (callback) {\n      callback();\n    }\n  });\n  (_linkElement$parentNo = linkElement.parentNode) === null || _linkElement$parentNo === void 0 || _linkElement$parentNo.replaceChild(newLinkElement, linkElement);\n});\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar locales = {\n  en: {\n    accept: 'Yes',\n    addRule: 'Add Rule',\n    am: 'AM',\n    apply: 'Apply',\n    cancel: 'Cancel',\n    choose: 'Choose',\n    chooseDate: 'Choose Date',\n    chooseMonth: 'Choose Month',\n    chooseYear: 'Choose Year',\n    clear: 'Clear',\n    completed: 'Completed',\n    contains: 'Contains',\n    custom: 'Custom',\n    dateAfter: 'Date is after',\n    dateBefore: 'Date is before',\n    dateFormat: 'mm/dd/yy',\n    dateIs: 'Date is',\n    dateIsNot: 'Date is not',\n    dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n    dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n    emptyFilterMessage: 'No results found',\n    emptyMessage: 'No available options',\n    emptySearchMessage: 'No results found',\n    emptySelectionMessage: 'No selected item',\n    endsWith: 'Ends with',\n    equals: 'Equals',\n    fileChosenMessage: '{0} files',\n    fileSizeTypes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\n    filter: 'Filter',\n    firstDayOfWeek: 0,\n    gt: 'Greater than',\n    gte: 'Greater than or equal to',\n    lt: 'Less than',\n    lte: 'Less than or equal to',\n    matchAll: 'Match All',\n    matchAny: 'Match Any',\n    medium: 'Medium',\n    monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    nextDecade: 'Next Decade',\n    nextHour: 'Next Hour',\n    nextMinute: 'Next Minute',\n    nextMonth: 'Next Month',\n    nextSecond: 'Next Second',\n    nextYear: 'Next Year',\n    noFileChosenMessage: 'No file chosen',\n    noFilter: 'No Filter',\n    notContains: 'Not contains',\n    notEquals: 'Not equals',\n    now: 'Now',\n    passwordPrompt: 'Enter a password',\n    pending: 'Pending',\n    pm: 'PM',\n    prevDecade: 'Previous Decade',\n    prevHour: 'Previous Hour',\n    prevMinute: 'Previous Minute',\n    prevMonth: 'Previous Month',\n    prevSecond: 'Previous Second',\n    prevYear: 'Previous Year',\n    reject: 'No',\n    removeRule: 'Remove Rule',\n    searchMessage: '{0} results are available',\n    selectionMessage: '{0} items selected',\n    showMonthAfterYear: false,\n    startsWith: 'Starts with',\n    strong: 'Strong',\n    today: 'Today',\n    upload: 'Upload',\n    weak: 'Weak',\n    weekHeader: 'Wk',\n    aria: {\n      cancelEdit: 'Cancel Edit',\n      close: 'Close',\n      collapseLabel: 'Collapse',\n      collapseRow: 'Row Collapsed',\n      editRow: 'Edit Row',\n      expandLabel: 'Expand',\n      expandRow: 'Row Expanded',\n      falseLabel: 'False',\n      filterConstraint: 'Filter Constraint',\n      filterOperator: 'Filter Operator',\n      firstPageLabel: 'First Page',\n      gridView: 'Grid View',\n      hideFilterMenu: 'Hide Filter Menu',\n      jumpToPageDropdownLabel: 'Jump to Page Dropdown',\n      jumpToPageInputLabel: 'Jump to Page Input',\n      lastPageLabel: 'Last Page',\n      listLabel: 'Option List',\n      listView: 'List View',\n      moveAllToSource: 'Move All to Source',\n      moveAllToTarget: 'Move All to Target',\n      moveBottom: 'Move Bottom',\n      moveDown: 'Move Down',\n      moveToSource: 'Move to Source',\n      moveToTarget: 'Move to Target',\n      moveTop: 'Move Top',\n      moveUp: 'Move Up',\n      navigation: 'Navigation',\n      next: 'Next',\n      nextPageLabel: 'Next Page',\n      nullLabel: 'Not Selected',\n      otpLabel: 'Please enter one time password character {0}',\n      pageLabel: 'Page {page}',\n      passwordHide: 'Hide Password',\n      passwordShow: 'Show Password',\n      previous: 'Previous',\n      prevPageLabel: 'Previous Page',\n      removeLabel: 'Remove',\n      rotateLeft: 'Rotate Left',\n      rotateRight: 'Rotate Right',\n      rowsPerPageLabel: 'Rows per page',\n      saveEdit: 'Save Edit',\n      scrollTop: 'Scroll Top',\n      selectAll: 'All items selected',\n      selectLabel: 'Select',\n      selectRow: 'Row Selected',\n      showFilterMenu: 'Show Filter Menu',\n      slide: 'Slide',\n      slideNumber: '{slideNumber}',\n      star: '1 star',\n      stars: '{star} stars',\n      trueLabel: 'True',\n      unselectAll: 'All items unselected',\n      unselectLabel: 'Unselect',\n      unselectRow: 'Row Unselected',\n      zoomImage: 'Zoom Image',\n      zoomIn: 'Zoom In',\n      zoomOut: 'Zoom Out'\n    }\n  }\n};\nfunction locale(locale) {\n  locale && (PrimeReact$1.locale = locale);\n  return {\n    locale: PrimeReact$1.locale,\n    options: locales[PrimeReact$1.locale]\n  };\n}\nfunction addLocale(locale, options) {\n  if (locale.includes('__proto__') || locale.includes('prototype')) {\n    throw new Error('Unsafe locale detected');\n  }\n  locales[locale] = _objectSpread(_objectSpread({}, locales.en), options);\n}\nfunction updateLocaleOption(key, value, locale) {\n  if (key.includes('__proto__') || key.includes('prototype')) {\n    throw new Error('Unsafe key detected');\n  }\n  localeOptions(locale)[key] = value;\n}\nfunction updateLocaleOptions(options, locale) {\n  if (locale.includes('__proto__') || locale.includes('prototype')) {\n    throw new Error('Unsafe locale detected');\n  }\n  var _locale = locale || PrimeReact$1.locale;\n  locales[_locale] = _objectSpread(_objectSpread({}, locales[_locale]), options);\n}\nfunction localeOption(key, locale) {\n  if (key.includes('__proto__') || key.includes('prototype')) {\n    throw new Error('Unsafe key detected');\n  }\n  var _locale = locale || PrimeReact$1.locale;\n  try {\n    return localeOptions(_locale)[key];\n  } catch (error) {\n    throw new Error(\"The \".concat(key, \" option is not found in the current locale('\").concat(_locale, \"').\"));\n  }\n}\n\n/**\n * Find an ARIA label in the locale by key.  If options are passed it will replace all options:\n * ```ts\n * const ariaValue = \"Page {page}, User {user}, Role {role}\";\n * const options = { page: 2, user: \"John\", role: \"Admin\" };\n * const result = ariaLabel('yourLabel', { page: 2, user: \"John\", role: \"Admin\" })\n * console.log(result); // Output: Page 2, User John, Role Admin\n * ```\n * @param {string} ariaKey key of the ARIA label to look up in locale.\n * @param {any} options JSON options like { page: 2, user: \"John\", role: \"Admin\" }\n * @returns the ARIA label with replaced values\n */\nfunction ariaLabel(ariaKey, options) {\n  if (ariaKey.includes('__proto__') || ariaKey.includes('prototype')) {\n    throw new Error('Unsafe ariaKey detected');\n  }\n  var _locale = PrimeReact$1.locale;\n  try {\n    var _ariaLabel = localeOptions(_locale).aria[ariaKey];\n    if (_ariaLabel) {\n      for (var key in options) {\n        if (options.hasOwnProperty(key)) {\n          _ariaLabel = _ariaLabel.replace(\"{\".concat(key, \"}\"), options[key]);\n        }\n      }\n    }\n    return _ariaLabel;\n  } catch (error) {\n    throw new Error(\"The \".concat(ariaKey, \" option is not found in the current locale('\").concat(_locale, \"').\"));\n  }\n}\nfunction localeOptions(locale) {\n  var _locale = locale || PrimeReact$1.locale;\n  if (_locale.includes('__proto__') || _locale.includes('prototype')) {\n    throw new Error('Unsafe locale detected');\n  }\n  return locales[_locale];\n}\nvar MessageSeverity = Object.freeze({\n  SUCCESS: 'success',\n  INFO: 'info',\n  WARN: 'warn',\n  ERROR: 'error',\n  SECONDARY: 'secondary',\n  CONTRAST: 'contrast'\n});\nvar PrimeIcons = Object.freeze({\n  ADDRESS_BOOK: 'pi pi-address-book',\n  ALIGN_CENTER: 'pi pi-align-center',\n  ALIGN_JUSTIFY: 'pi pi-align-justify',\n  ALIGN_LEFT: 'pi pi-align-left',\n  ALIGN_RIGHT: 'pi pi-align-right',\n  AMAZON: 'pi pi-amazon',\n  ANDROID: 'pi pi-android',\n  ANGLE_DOUBLE_DOWN: 'pi pi-angle-double-down',\n  ANGLE_DOUBLE_LEFT: 'pi pi-angle-double-left',\n  ANGLE_DOUBLE_RIGHT: 'pi pi-angle-double-right',\n  ANGLE_DOUBLE_UP: 'pi pi-angle-double-up',\n  ANGLE_DOWN: 'pi pi-angle-down',\n  ANGLE_LEFT: 'pi pi-angle-left',\n  ANGLE_RIGHT: 'pi pi-angle-right',\n  ANGLE_UP: 'pi pi-angle-up',\n  APPLE: 'pi pi-apple',\n  ARROW_CIRCLE_DOWN: 'pi pi-arrow-circle-down',\n  ARROW_CIRCLE_LEFT: 'pi pi-arrow-circle-left',\n  ARROW_CIRCLE_RIGHT: 'pi pi-arrow-circle-right',\n  ARROW_CIRCLE_UP: 'pi pi-arrow-circle-up',\n  ARROW_DOWN_LEFT_AND_ARROW_UP_RIGHT_TO_CENTER: 'pi pi-arrow-down-left-and-arrow-up-right-to-center',\n  ARROW_DOWN_LEFT: 'pi pi-arrow-down-left',\n  ARROW_DOWN_RIGHT: 'pi pi-arrow-down-right',\n  ARROW_DOWN: 'pi pi-arrow-down',\n  ARROW_LEFT: 'pi pi-arrow-left',\n  ARROW_RIGHT_ARROW_LEFT: 'pi pi-arrow-right-arrow-left',\n  ARROW_RIGHT: 'pi pi-arrow-right',\n  ARROW_UP_LEFT: 'pi pi-arrow-up-left',\n  ARROW_UP_RIGHT_AND_ARROW_DOWN_LEFT_FROM_CENTER: 'pi pi-arrow-up-right-and-arrow-down-left-from-center',\n  ARROW_UP_RIGHT: 'pi pi-arrow-up-right',\n  ARROW_UP: 'pi pi-arrow-up',\n  ARROWS_ALT: 'pi pi-arrows-alt',\n  ARROWS_H: 'pi pi-arrows-h',\n  ARROWS_V: 'pi pi-arrows-v',\n  ASTERISK: 'pi pi-asterisk',\n  AT: 'pi pi-at',\n  BACKWARD: 'pi pi-backward',\n  BAN: 'pi pi-ban',\n  BARCODE: 'pi pi-barcode',\n  BARS: 'pi pi-bars',\n  BELL_SLASH: 'pi pi-bell-slash',\n  BELL: 'pi pi-bell',\n  BITCOIN: 'pi pi-bitcoin',\n  BOLT: 'pi pi-bolt',\n  BOOK: 'pi pi-book',\n  BOOKMARK_FILL: 'pi pi-bookmark-fill',\n  BOOKMARK: 'pi pi-bookmark',\n  BOX: 'pi pi-box',\n  BRIEFCASE: 'pi pi-briefcase',\n  BUILDING_COLUMNS: 'pi pi-building-columns',\n  BUILDING: 'pi pi-building',\n  BULLSEYE: 'pi pi-bullseye',\n  CALCULATOR: 'pi pi-calculator',\n  CALENDAR_CLOCK: 'pi pi-calendar-clock',\n  CALENDAR_MINUS: 'pi pi-calendar-minus',\n  CALENDAR_PLUS: 'pi pi-calendar-plus',\n  CALENDAR_TIMES: 'pi pi-calendar-times',\n  CALENDAR: 'pi pi-calendar',\n  CAMERA: 'pi pi-camera',\n  CAR: 'pi pi-car',\n  CARET_DOWN: 'pi pi-caret-down',\n  CARET_LEFT: 'pi pi-caret-left',\n  CARET_RIGHT: 'pi pi-caret-right',\n  CARET_UP: 'pi pi-caret-up',\n  CART_ARROW_DOWN: 'pi pi-cart-arrow-down',\n  CART_MINUS: 'pi pi-cart-minus',\n  CART_PLUS: 'pi pi-cart-plus',\n  CHART_BAR: 'pi pi-chart-bar',\n  CHART_LINE: 'pi pi-chart-line',\n  CHART_PIE: 'pi pi-chart-pie',\n  CHART_SCATTER: 'pi pi-chart-scatter',\n  CHECK_CIRCLE: 'pi pi-check-circle',\n  CHECK_SQUARE: 'pi pi-check-square',\n  CHECK: 'pi pi-check',\n  CHEVRON_CIRCLE_DOWN: 'pi pi-chevron-circle-down',\n  CHEVRON_CIRCLE_LEFT: 'pi pi-chevron-circle-left',\n  CHEVRON_CIRCLE_RIGHT: 'pi pi-chevron-circle-right',\n  CHEVRON_CIRCLE_UP: 'pi pi-chevron-circle-up',\n  CHEVRON_DOWN: 'pi pi-chevron-down',\n  CHEVRON_LEFT: 'pi pi-chevron-left',\n  CHEVRON_RIGHT: 'pi pi-chevron-right',\n  CHEVRON_UP: 'pi pi-chevron-up',\n  CIRCLE_FILL: 'pi pi-circle-fill',\n  CIRCLE_OFF: 'pi pi-circle-off',\n  CIRCLE_ON: 'pi pi-circle-on',\n  CIRCLE: 'pi pi-circle',\n  CLIPBOARD: 'pi pi-clipboard',\n  CLOCK: 'pi pi-clock',\n  CLONE: 'pi pi-clone',\n  CLOUD_DOWNLOAD: 'pi pi-cloud-download',\n  CLOUD_UPLOAD: 'pi pi-cloud-upload',\n  CLOUD: 'pi pi-cloud',\n  CODE: 'pi pi-code',\n  COG: 'pi pi-cog',\n  COMMENT: 'pi pi-comment',\n  COMMENTS: 'pi pi-comments',\n  COMPASS: 'pi pi-compass',\n  COPY: 'pi pi-copy',\n  CREDIT_CARD: 'pi pi-credit-card',\n  CROWN: 'pi pi-crown',\n  DATABASE: 'pi pi-database',\n  DELETE_LEFT: 'pi pi-delete-left',\n  DESKTOP: 'pi pi-desktop',\n  DIRECTIONS_ALT: 'pi pi-directions-alt',\n  DIRECTIONS: 'pi pi-directions',\n  DISCORD: 'pi pi-discord',\n  DOLLAR: 'pi pi-dollar',\n  DOWNLOAD: 'pi pi-download',\n  EJECT: 'pi pi-eject',\n  ELLIPSIS_H: 'pi pi-ellipsis-h',\n  ELLIPSIS_V: 'pi pi-ellipsis-v',\n  ENVELOPE: 'pi pi-envelope',\n  EQUALS: 'pi pi-equals',\n  ERASER: 'pi pi-eraser',\n  ETHEREUM: 'pi pi-ethereum',\n  EURO: 'pi pi-euro',\n  EXCLAMATION_CIRCLE: 'pi pi-exclamation-circle',\n  EXCLAMATION_TRIANGLE: 'pi pi-exclamation-triangle',\n  EXPAND: 'pi pi-expand',\n  EXTERNAL_LINK: 'pi pi-external-link',\n  EYE_SLASH: 'pi pi-eye-slash',\n  EYE: 'pi pi-eye',\n  FACE_SMILE: 'pi pi-face-smile',\n  FACEBOOK: 'pi pi-facebook',\n  FAST_BACKWARD: 'pi pi-fast-backward',\n  FAST_FORWARD: 'pi pi-fast-forward',\n  FILE_ARROW_UP: 'pi pi-file-arrow-up',\n  FILE_CHECK: 'pi pi-file-check',\n  FILE_EDIT: 'pi pi-file-edit',\n  FILE_EXCEL: 'pi pi-file-excel',\n  FILE_EXPORT: 'pi pi-file-export',\n  FILE_IMPORT: 'pi pi-file-import',\n  FILE_O: 'pi pi-file-o',\n  FILE_PDF: 'pi pi-file-pdf',\n  FILE_PLUS: 'pi pi-file-plus',\n  FILE_WORD: 'pi pi-file-word',\n  FILE: 'pi pi-file',\n  FILTER_FILL: 'pi pi-filter-fill',\n  FILTER_SLASH: 'pi pi-filter-slash',\n  FILTER: 'pi pi-filter',\n  FLAG_FILL: 'pi pi-flag-fill',\n  FLAG: 'pi pi-flag',\n  FOLDER_OPEN: 'pi pi-folder-open',\n  FOLDER_PLUS: 'pi pi-folder-plus',\n  FOLDER: 'pi pi-folder',\n  FORWARD: 'pi pi-forward',\n  GAUGE: 'pi pi-gauge',\n  GIFT: 'pi pi-gift',\n  GITHUB: 'pi pi-github',\n  GLOBE: 'pi pi-globe',\n  GOOGLE: 'pi pi-google',\n  GRADUATION_CAP: 'pi pi-graduation-cap',\n  HAMMER: 'pi pi-hammer',\n  HASHTAG: 'pi pi-hashtag',\n  HEADPHONES: 'pi pi-headphones',\n  HEART_FILL: 'pi pi-heart-fill',\n  HEART: 'pi pi-heart',\n  HISTORY: 'pi pi-history',\n  HOME: 'pi pi-home',\n  HOURGLASS: 'pi pi-hourglass',\n  ID_CARD: 'pi pi-id-card',\n  IMAGE: 'pi pi-image',\n  IMAGES: 'pi pi-images',\n  INBOX: 'pi pi-inbox',\n  INDIAN_RUPEE: 'pi pi-indian-rupee',\n  INFO_CIRCLE: 'pi pi-info-circle',\n  INFO: 'pi pi-info',\n  INSTAGRAM: 'pi pi-instagram',\n  KEY: 'pi pi-key',\n  LANGUAGE: 'pi pi-language',\n  LIGHTBULB: 'pi pi-lightbulb',\n  LINK: 'pi pi-link',\n  LINKEDIN: 'pi pi-linkedin',\n  LIST_CHECK: 'pi pi-list-check',\n  LIST: 'pi pi-list',\n  LOCK_OPEN: 'pi pi-lock-open',\n  LOCK: 'pi pi-lock',\n  MAP_MARKER: 'pi pi-map-marker',\n  MAP: 'pi pi-map',\n  MARS: 'pi pi-mars',\n  MEGAPHONE: 'pi pi-megaphone',\n  MICROCHIP_AI: 'pi pi-microchip-ai',\n  MICROCHIP: 'pi pi-microchip',\n  MICROPHONE: 'pi pi-microphone',\n  MICROSOFT: 'pi pi-microsoft',\n  MINUS_CIRCLE: 'pi pi-minus-circle',\n  MINUS: 'pi pi-minus',\n  MOBILE: 'pi pi-mobile',\n  MONEY_BILL: 'pi pi-money-bill',\n  MOON: 'pi pi-moon',\n  OBJECTS_COLUMN: 'pi pi-objects-column',\n  PALETTE: 'pi pi-palette',\n  PAPERCLIP: 'pi pi-paperclip',\n  PAUSE_CIRCLE: 'pi pi-pause-circle',\n  PAUSE: 'pi pi-pause',\n  PAYPAL: 'pi pi-paypal',\n  PEN_TO_SQUARE: 'pi pi-pen-to-square',\n  PENCIL: 'pi pi-pencil',\n  PERCENTAGE: 'pi pi-percentage',\n  PHONE: 'pi pi-phone',\n  PINTEREST: 'pi pi-pinterest',\n  PLAY_CIRCLE: 'pi pi-play-circle',\n  PLAY: 'pi pi-play',\n  PLUS_CIRCLE: 'pi pi-plus-circle',\n  PLUS: 'pi pi-plus',\n  POUND: 'pi pi-pound',\n  POWER_OFF: 'pi pi-power-off',\n  PRIME: 'pi pi-prime',\n  PRINT: 'pi pi-print',\n  QRCODE: 'pi pi-qrcode',\n  QUESTION_CIRCLE: 'pi pi-question-circle',\n  QUESTION: 'pi pi-question',\n  RECEIPT: 'pi pi-receipt',\n  REDDIT: 'pi pi-reddit',\n  REFRESH: 'pi pi-refresh',\n  REPLAY: 'pi pi-replay',\n  REPLY: 'pi pi-reply',\n  SAVE: 'pi pi-save',\n  SEARCH_MINUS: 'pi pi-search-minus',\n  SEARCH_PLUS: 'pi pi-search-plus',\n  SEARCH: 'pi pi-search',\n  SEND: 'pi pi-send',\n  SERVER: 'pi pi-server',\n  SHARE_ALT: 'pi pi-share-alt',\n  SHIELD: 'pi pi-shield',\n  SHOP: 'pi pi-shop',\n  SHOPPING_BAG: 'pi pi-shopping-bag',\n  SHOPPING_CART: 'pi pi-shopping-cart',\n  SIGN_IN: 'pi pi-sign-in',\n  SIGN_OUT: 'pi pi-sign-out',\n  SITEMAP: 'pi pi-sitemap',\n  SLACK: 'pi pi-slack',\n  SLIDERS_H: 'pi pi-sliders-h',\n  SLIDERS_V: 'pi pi-sliders-v',\n  SORT_ALPHA_DOWN_ALT: 'pi pi-sort-alpha-down-alt',\n  SORT_ALPHA_DOWN: 'pi pi-sort-alpha-down',\n  SORT_ALPHA_UP_ALT: 'pi pi-sort-alpha-up-alt',\n  SORT_ALPHA_UP: 'pi pi-sort-alpha-up',\n  SORT_ALT_SLASH: 'pi pi-sort-alt-slash',\n  SORT_ALT: 'pi pi-sort-alt',\n  SORT_AMOUNT_DOWN_ALT: 'pi pi-sort-amount-down-alt',\n  SORT_AMOUNT_DOWN: 'pi pi-sort-amount-down',\n  SORT_AMOUNT_UP_ALT: 'pi pi-sort-amount-up-alt',\n  SORT_AMOUNT_UP: 'pi pi-sort-amount-up',\n  SORT_DOWN_FILL: 'pi pi-sort-down-fill',\n  SORT_DOWN: 'pi pi-sort-down',\n  SORT_NUMERIC_DOWN_ALT: 'pi pi-sort-numeric-down-alt',\n  SORT_NUMERIC_DOWN: 'pi pi-sort-numeric-down',\n  SORT_NUMERIC_UP_ALT: 'pi pi-sort-numeric-up-alt',\n  SORT_NUMERIC_UP: 'pi pi-sort-numeric-up',\n  SORT_UP_FILL: 'pi pi-sort-up-fill',\n  SORT_UP: 'pi pi-sort-up',\n  SORT: 'pi pi-sort',\n  SPARKLES: 'pi pi-sparkles',\n  SPINNER_DOTTED: 'pi pi-spinner-dotted',\n  SPINNER: 'pi pi-spinner',\n  STAR_FILL: 'pi pi-star-fill',\n  STAR_HALF_FILL: 'pi pi-star-half-fill',\n  STAR_HALF: 'pi pi-star-half',\n  STAR: 'pi pi-star',\n  STEP_BACKWARD_ALT: 'pi pi-step-backward-alt',\n  STEP_BACKWARD: 'pi pi-step-backward',\n  STEP_FORWARD_ALT: 'pi pi-step-forward-alt',\n  STEP_FORWARD: 'pi pi-step-forward',\n  STOP_CIRCLE: 'pi pi-stop-circle',\n  STOP: 'pi pi-stop',\n  STOPWATCH: 'pi pi-stopwatch',\n  SUN: 'pi pi-sun',\n  SYNC: 'pi pi-sync',\n  TABLE: 'pi pi-table',\n  TABLET: 'pi pi-tablet',\n  TAG: 'pi pi-tag',\n  TAGS: 'pi pi-tags',\n  TELEGRAM: 'pi pi-telegram',\n  TH_LARGE: 'pi pi-th-large',\n  THUMBS_DOWN_FILL: 'pi pi-thumbs-down-fill',\n  THUMBS_DOWN: 'pi pi-thumbs-down',\n  THUMBS_UP_FILL: 'pi pi-thumbs-up-fill',\n  THUMBS_UP: 'pi pi-thumbs-up',\n  THUMBTACK: 'pi pi-thumbtack',\n  TICKET: 'pi pi-ticket',\n  TIKTOK: 'pi pi-tiktok',\n  TIMES_CIRCLE: 'pi pi-times-circle',\n  TIMES: 'pi pi-times',\n  TRASH: 'pi pi-trash',\n  TROPHY: 'pi pi-trophy',\n  TRUCK: 'pi pi-truck',\n  TURKISH_LIRA: 'pi pi-turkish-lira',\n  TWITCH: 'pi pi-twitch',\n  TWITTER: 'pi pi-twitter',\n  UNDO: 'pi pi-undo',\n  UNLOCK: 'pi pi-unlock',\n  UPLOAD: 'pi pi-upload',\n  USER_EDIT: 'pi pi-user-edit',\n  USER_MINUS: 'pi pi-user-minus',\n  USER_PLUS: 'pi pi-user-plus',\n  USER: 'pi pi-user',\n  USERS: 'pi pi-users',\n  VENUS: 'pi pi-venus',\n  VERIFIED: 'pi pi-verified',\n  VIDEO: 'pi pi-video',\n  VIMEO: 'pi pi-vimeo',\n  VOLUME_DOWN: 'pi pi-volume-down',\n  VOLUME_OFF: 'pi pi-volume-off',\n  VOLUME_UP: 'pi pi-volume-up',\n  WALLET: 'pi pi-wallet',\n  WAREHOUSE: 'pi pi-warehouse',\n  WAVE_PULSE: 'pi pi-wave-pulse',\n  WHATSAPP: 'pi pi-whatsapp',\n  WIFI: 'pi pi-wifi',\n  WINDOW_MAXIMIZE: 'pi pi-window-maximize',\n  WINDOW_MINIMIZE: 'pi pi-window-minimize',\n  WRENCH: 'pi pi-wrench',\n  YOUTUBE: 'pi pi-youtube'\n});\nvar SortOrder = Object.freeze({\n  DESC: -1,\n  UNSORTED: 0,\n  ASC: 1\n});\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nvar PrimeReactContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createContext();\nvar PrimeReactProvider = function PrimeReactProvider(props) {\n  var _props$value, _propsValue$ripple, _propsValue$inputStyl, _propsValue$locale, _propsValue$appendTo, _propsValue$styleCont, _propsValue$cssTransi, _propsValue$autoZInde, _propsValue$hideOverl, _propsValue$nonce, _propsValue$nullSortO, _propsValue$zIndex, _propsValue$ptOptions, _propsValue$pt, _propsValue$unstyled, _propsValue$filterMat;\n  var propsValue = (_props$value = props.value) !== null && _props$value !== void 0 ? _props$value : {};\n  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$ripple = propsValue.ripple) !== null && _propsValue$ripple !== void 0 ? _propsValue$ripple : false),\n    _useState2 = _slicedToArray(_useState, 2),\n    ripple = _useState2[0],\n    setRipple = _useState2[1];\n  var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$inputStyl = propsValue.inputStyle) !== null && _propsValue$inputStyl !== void 0 ? _propsValue$inputStyl : 'outlined'),\n    _useState4 = _slicedToArray(_useState3, 2),\n    inputStyle = _useState4[0],\n    setInputStyle = _useState4[1];\n  var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$locale = propsValue.locale) !== null && _propsValue$locale !== void 0 ? _propsValue$locale : 'en'),\n    _useState6 = _slicedToArray(_useState5, 2),\n    locale = _useState6[0],\n    setLocale = _useState6[1];\n  var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$appendTo = propsValue.appendTo) !== null && _propsValue$appendTo !== void 0 ? _propsValue$appendTo : null),\n    _useState8 = _slicedToArray(_useState7, 2),\n    appendTo = _useState8[0],\n    setAppendTo = _useState8[1];\n  var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$styleCont = propsValue.styleContainer) !== null && _propsValue$styleCont !== void 0 ? _propsValue$styleCont : null),\n    _useState10 = _slicedToArray(_useState9, 2),\n    styleContainer = _useState10[0],\n    setStyleContainer = _useState10[1];\n  var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$cssTransi = propsValue.cssTransition) !== null && _propsValue$cssTransi !== void 0 ? _propsValue$cssTransi : true),\n    _useState12 = _slicedToArray(_useState11, 2),\n    cssTransition = _useState12[0],\n    setCssTransition = _useState12[1];\n  var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$autoZInde = propsValue.autoZIndex) !== null && _propsValue$autoZInde !== void 0 ? _propsValue$autoZInde : true),\n    _useState14 = _slicedToArray(_useState13, 2),\n    autoZIndex = _useState14[0],\n    setAutoZIndex = _useState14[1];\n  var _useState15 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$hideOverl = propsValue.hideOverlaysOnDocumentScrolling) !== null && _propsValue$hideOverl !== void 0 ? _propsValue$hideOverl : false),\n    _useState16 = _slicedToArray(_useState15, 2),\n    hideOverlaysOnDocumentScrolling = _useState16[0],\n    setHideOverlaysOnDocumentScrolling = _useState16[1];\n  var _useState17 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$nonce = propsValue.nonce) !== null && _propsValue$nonce !== void 0 ? _propsValue$nonce : null),\n    _useState18 = _slicedToArray(_useState17, 2),\n    nonce = _useState18[0],\n    setNonce = _useState18[1];\n  var _useState19 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$nullSortO = propsValue.nullSortOrder) !== null && _propsValue$nullSortO !== void 0 ? _propsValue$nullSortO : 1),\n    _useState20 = _slicedToArray(_useState19, 2),\n    nullSortOrder = _useState20[0],\n    setNullSortOrder = _useState20[1];\n  var _useState21 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$zIndex = propsValue.zIndex) !== null && _propsValue$zIndex !== void 0 ? _propsValue$zIndex : {\n      modal: 1100,\n      overlay: 1000,\n      menu: 1000,\n      tooltip: 1100,\n      toast: 1200\n    }),\n    _useState22 = _slicedToArray(_useState21, 2),\n    zIndex = _useState22[0],\n    setZIndex = _useState22[1];\n  var _useState23 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$ptOptions = propsValue.ptOptions) !== null && _propsValue$ptOptions !== void 0 ? _propsValue$ptOptions : {\n      mergeSections: true,\n      mergeProps: true\n    }),\n    _useState24 = _slicedToArray(_useState23, 2),\n    ptOptions = _useState24[0],\n    setPtOptions = _useState24[1];\n  var _useState25 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$pt = propsValue.pt) !== null && _propsValue$pt !== void 0 ? _propsValue$pt : undefined),\n    _useState26 = _slicedToArray(_useState25, 2),\n    pt = _useState26[0],\n    setPt = _useState26[1];\n  var _useState27 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$unstyled = propsValue.unstyled) !== null && _propsValue$unstyled !== void 0 ? _propsValue$unstyled : false),\n    _useState28 = _slicedToArray(_useState27, 2),\n    unstyled = _useState28[0],\n    setUnstyled = _useState28[1];\n  var _useState29 = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)((_propsValue$filterMat = propsValue.filterMatchModeOptions) !== null && _propsValue$filterMat !== void 0 ? _propsValue$filterMat : {\n      text: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS],\n      numeric: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO],\n      date: [FilterMatchMode.DATE_IS, FilterMatchMode.DATE_IS_NOT, FilterMatchMode.DATE_BEFORE, FilterMatchMode.DATE_AFTER]\n    }),\n    _useState30 = _slicedToArray(_useState29, 2),\n    filterMatchModeOptions = _useState30[0],\n    setFilterMatchModeOptions = _useState30[1];\n  var changeTheme = function changeTheme(currentTheme, newTheme, linkElementId, callback) {\n    var _linkElement$parentNo;\n    var linkElement = document.getElementById(linkElementId);\n    if (!linkElement) {\n      throw Error(\"Element with id \".concat(linkElementId, \" not found.\"));\n    }\n    var newThemeUrl = linkElement.getAttribute('href').replace(currentTheme, newTheme);\n    var newLinkElement = document.createElement('link');\n    newLinkElement.setAttribute('rel', 'stylesheet');\n    newLinkElement.setAttribute('id', linkElementId);\n    newLinkElement.setAttribute('href', newThemeUrl);\n    newLinkElement.addEventListener('load', function () {\n      if (callback) {\n        callback();\n      }\n    });\n    (_linkElement$parentNo = linkElement.parentNode) === null || _linkElement$parentNo === void 0 || _linkElement$parentNo.replaceChild(newLinkElement, linkElement);\n  };\n\n  /**\n   * @deprecated\n   */\n  react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(function () {\n    PrimeReact$1.ripple = ripple;\n  }, [ripple]);\n\n  /**\n   * @deprecated\n   */\n  react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(function () {\n    PrimeReact$1.inputStyle = inputStyle;\n  }, [inputStyle]);\n\n  /**\n   * @deprecated\n   */\n  react__WEBPACK_IMPORTED_MODULE_1___default().useEffect(function () {\n    PrimeReact$1.locale = locale;\n  }, [locale]);\n  var value = {\n    changeTheme: changeTheme,\n    ripple: ripple,\n    setRipple: setRipple,\n    inputStyle: inputStyle,\n    setInputStyle: setInputStyle,\n    locale: locale,\n    setLocale: setLocale,\n    appendTo: appendTo,\n    setAppendTo: setAppendTo,\n    styleContainer: styleContainer,\n    setStyleContainer: setStyleContainer,\n    cssTransition: cssTransition,\n    setCssTransition: setCssTransition,\n    autoZIndex: autoZIndex,\n    setAutoZIndex: setAutoZIndex,\n    hideOverlaysOnDocumentScrolling: hideOverlaysOnDocumentScrolling,\n    setHideOverlaysOnDocumentScrolling: setHideOverlaysOnDocumentScrolling,\n    nonce: nonce,\n    setNonce: setNonce,\n    nullSortOrder: nullSortOrder,\n    setNullSortOrder: setNullSortOrder,\n    zIndex: zIndex,\n    setZIndex: setZIndex,\n    ptOptions: ptOptions,\n    setPtOptions: setPtOptions,\n    pt: pt,\n    setPt: setPt,\n    filterMatchModeOptions: filterMatchModeOptions,\n    setFilterMatchModeOptions: setFilterMatchModeOptions,\n    unstyled: unstyled,\n    setUnstyled: setUnstyled\n  };\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default().createElement(PrimeReactContext.Provider, {\n    value: value\n  }, props.children);\n};\nvar PrimeReact = PrimeReact$1;\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/api/api.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/button/button.esm.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/primereact/button/button.esm.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Button: () => (/* binding */ Button)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/componentbase */ \"../react-ui/node_modules/primereact/componentbase/componentbase.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n/* harmony import */ var primereact_icons_spinner__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! primereact/icons/spinner */ \"../react-ui/node_modules/primereact/icons/spinner/index.esm.js\");\n/* harmony import */ var primereact_ripple__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! primereact/ripple */ \"../react-ui/node_modules/primereact/ripple/ripple.esm.js\");\n/* harmony import */ var primereact_tooltip__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! primereact/tooltip */ \"../react-ui/node_modules/primereact/tooltip/tooltip.esm.js\");\n'use client';\n\n\n\n\n\n\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nvar classes$1 = {\n  root: function root(_ref) {\n    var props = _ref.props;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-badge p-component', _defineProperty({\n      'p-badge-no-gutter': primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.isNotEmpty(props.value) && String(props.value).length === 1,\n      'p-badge-dot': primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.isEmpty(props.value),\n      'p-badge-lg': props.size === 'large',\n      'p-badge-xl': props.size === 'xlarge'\n    }, \"p-badge-\".concat(props.severity), props.severity !== null));\n  }\n};\nvar styles = \"\\n@layer primereact {\\n    .p-badge {\\n        display: inline-block;\\n        border-radius: 10px;\\n        text-align: center;\\n        padding: 0 .5rem;\\n    }\\n    \\n    .p-overlay-badge {\\n        position: relative;\\n    }\\n    \\n    .p-overlay-badge .p-badge {\\n        position: absolute;\\n        top: 0;\\n        right: 0;\\n        transform: translate(50%,-50%);\\n        transform-origin: 100% 0;\\n        margin: 0;\\n    }\\n    \\n    .p-badge-dot {\\n        width: .5rem;\\n        min-width: .5rem;\\n        height: .5rem;\\n        border-radius: 50%;\\n        padding: 0;\\n    }\\n    \\n    .p-badge-no-gutter {\\n        padding: 0;\\n        border-radius: 50%;\\n    }\\n}\\n\";\nvar BadgeBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'Badge',\n    __parentMetadata: null,\n    value: null,\n    severity: null,\n    size: null,\n    style: null,\n    className: null,\n    children: undefined\n  },\n  css: {\n    classes: classes$1,\n    styles: styles\n  }\n});\nfunction ownKeys$1(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$1(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar Badge = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = BadgeBase.getProps(inProps, context);\n  var _BadgeBase$setMetaDat = BadgeBase.setMetaData(_objectSpread$1({\n      props: props\n    }, props.__parentMetadata)),\n    ptm = _BadgeBase$setMetaDat.ptm,\n    cx = _BadgeBase$setMetaDat.cx,\n    isUnstyled = _BadgeBase$setMetaDat.isUnstyled;\n  (0,primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.useHandleStyle)(BadgeBase.css.styles, isUnstyled, {\n    name: 'badge'\n  });\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      getElement: function getElement() {\n        return elementRef.current;\n      }\n    };\n  });\n  var rootProps = mergeProps({\n    ref: elementRef,\n    style: props.style,\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)(props.className, cx('root'))\n  }, BadgeBase.getOtherProps(props), ptm('root'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", rootProps, props.value);\n}));\nBadge.displayName = 'Badge';\nvar classes = {\n  icon: function icon(_ref) {\n    var props = _ref.props;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-button-icon p-c', _defineProperty({}, \"p-button-icon-\".concat(props.iconPos), props.label));\n  },\n  loadingIcon: function loadingIcon(_ref2) {\n    var props = _ref2.props,\n      className = _ref2.className;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)(className, {\n      'p-button-loading-icon': props.loading\n    });\n  },\n  label: 'p-button-label p-c',\n  root: function root(_ref3) {\n    var props = _ref3.props,\n      size = _ref3.size,\n      disabled = _ref3.disabled;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-button p-component', _defineProperty(_defineProperty(_defineProperty(_defineProperty({\n      'p-button-icon-only': (props.icon || props.loading) && !props.label && !props.children,\n      'p-button-vertical': (props.iconPos === 'top' || props.iconPos === 'bottom') && props.label,\n      'p-disabled': disabled,\n      'p-button-loading': props.loading,\n      'p-button-outlined': props.outlined,\n      'p-button-raised': props.raised,\n      'p-button-link': props.link,\n      'p-button-text': props.text,\n      'p-button-rounded': props.rounded,\n      'p-button-loading-label-only': props.loading && !props.icon && props.label\n    }, \"p-button-loading-\".concat(props.iconPos), props.loading && props.label), \"p-button-\".concat(size), size), \"p-button-\".concat(props.severity), props.severity), 'p-button-plain', props.plain));\n  }\n};\nvar ButtonBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'Button',\n    __parentMetadata: null,\n    badge: null,\n    badgeClassName: null,\n    className: null,\n    children: undefined,\n    disabled: false,\n    icon: null,\n    iconPos: 'left',\n    label: null,\n    link: false,\n    loading: false,\n    loadingIcon: null,\n    outlined: false,\n    plain: false,\n    raised: false,\n    rounded: false,\n    severity: null,\n    size: null,\n    text: false,\n    tooltip: null,\n    tooltipOptions: null,\n    visible: true\n  },\n  css: {\n    classes: classes\n  }\n});\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar Button = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = ButtonBase.getProps(inProps, context);\n  var disabled = props.disabled || props.loading;\n  var metaData = _objectSpread(_objectSpread({\n    props: props\n  }, props.__parentMetadata), {}, {\n    context: {\n      disabled: disabled\n    }\n  });\n  var _ButtonBase$setMetaDa = ButtonBase.setMetaData(metaData),\n    ptm = _ButtonBase$setMetaDa.ptm,\n    cx = _ButtonBase$setMetaDa.cx,\n    isUnstyled = _ButtonBase$setMetaDa.isUnstyled;\n  (0,primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.useHandleStyle)(ButtonBase.css.styles, isUnstyled, {\n    name: 'button',\n    styled: true\n  });\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(ref);\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.combinedRefs(elementRef, ref);\n  }, [elementRef, ref]);\n  if (props.visible === false) {\n    return null;\n  }\n  var createIcon = function createIcon() {\n    var className = (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-button-icon p-c', _defineProperty({}, \"p-button-icon-\".concat(props.iconPos), props.label));\n    var iconsProps = mergeProps({\n      className: cx('icon')\n    }, ptm('icon'));\n    className = (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)(className, {\n      'p-button-loading-icon': props.loading\n    });\n    var loadingIconProps = mergeProps({\n      className: cx('loadingIcon', {\n        className: className\n      })\n    }, ptm('loadingIcon'));\n    var icon = props.loading ? props.loadingIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_spinner__WEBPACK_IMPORTED_MODULE_5__.SpinnerIcon, _extends({}, loadingIconProps, {\n      spin: true\n    })) : props.icon;\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_4__.IconUtils.getJSXIcon(icon, _objectSpread({}, iconsProps), {\n      props: props\n    });\n  };\n  var createLabel = function createLabel() {\n    var labelProps = mergeProps({\n      className: cx('label')\n    }, ptm('label'));\n    if (props.label) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", labelProps, props.label);\n    }\n    return !props.children && !props.label && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", _extends({}, labelProps, {\n      dangerouslySetInnerHTML: {\n        __html: '&nbsp;'\n      }\n    }));\n  };\n  var createBadge = function createBadge() {\n    if (props.badge) {\n      var badgeProps = mergeProps({\n        className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)(props.badgeClassName),\n        value: props.badge,\n        unstyled: props.unstyled,\n        __parentMetadata: {\n          parent: metaData\n        }\n      }, ptm('badge'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Badge, badgeProps, props.badge);\n    }\n    return null;\n  };\n  var showTooltip = !disabled || props.tooltipOptions && props.tooltipOptions.showOnDisabled;\n  var hasTooltip = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.isNotEmpty(props.tooltip) && showTooltip;\n  var sizeMapping = {\n    large: 'lg',\n    small: 'sm'\n  };\n  var size = sizeMapping[props.size];\n  var icon = createIcon();\n  var label = createLabel();\n  var badge = createBadge();\n  var defaultAriaLabel = props.label ? props.label + (props.badge ? ' ' + props.badge : '') : props['aria-label'];\n  var rootProps = mergeProps({\n    ref: elementRef,\n    'aria-label': defaultAriaLabel,\n    'data-pc-autofocus': props.autoFocus,\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)(props.className, cx('root', {\n      size: size,\n      disabled: disabled\n    })),\n    disabled: disabled\n  }, ButtonBase.getOtherProps(props), ptm('root'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", rootProps, icon, label, props.children, badge, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_6__.Ripple, null)), hasTooltip && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_tooltip__WEBPACK_IMPORTED_MODULE_7__.Tooltip, _extends({\n    target: elementRef,\n    content: props.tooltip,\n    pt: ptm('tooltip')\n  }, props.tooltipOptions)));\n}));\nButton.displayName = 'Button';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/button/button.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/column/column.esm.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/primereact/column/column.esm.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Column: () => (/* binding */ Column)\n/* harmony export */ });\n'use client';\n\nvar Column = function Column() {};\n//@todo Pass Parent MetaData\n\nColumn.displayName = 'Column';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/column/column.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/componentbase/componentbase.esm.js":
/*!******************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/componentbase/componentbase.esm.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ComponentBase: () => (/* binding */ ComponentBase),\n/* harmony export */   useHandleStyle: () => (/* binding */ useHandleStyle)\n/* harmony export */ });\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n'use client';\n\n\n\n\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toConsumableArray(r) {\n  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar baseStyle = \"\\n.p-hidden-accessible {\\n    border: 0;\\n    clip: rect(0 0 0 0);\\n    height: 1px;\\n    margin: -1px;\\n    opacity: 0;\\n    overflow: hidden;\\n    padding: 0;\\n    pointer-events: none;\\n    position: absolute;\\n    white-space: nowrap;\\n    width: 1px;\\n}\\n\\n.p-overflow-hidden {\\n    overflow: hidden;\\n    padding-right: var(--scrollbar-width);\\n}\\n\";\nvar buttonStyles = \"\\n.p-button {\\n    margin: 0;\\n    display: inline-flex;\\n    cursor: pointer;\\n    user-select: none;\\n    align-items: center;\\n    vertical-align: bottom;\\n    text-align: center;\\n    overflow: hidden;\\n    position: relative;\\n}\\n\\n.p-button-label {\\n    flex: 1 1 auto;\\n}\\n\\n.p-button-icon-right {\\n    order: 1;\\n}\\n\\n.p-button:disabled {\\n    cursor: default;\\n}\\n\\n.p-button-icon-only {\\n    justify-content: center;\\n}\\n\\n.p-button-icon-only .p-button-label {\\n    visibility: hidden;\\n    width: 0;\\n    flex: 0 0 auto;\\n}\\n\\n.p-button-vertical {\\n    flex-direction: column;\\n}\\n\\n.p-button-icon-bottom {\\n    order: 2;\\n}\\n\\n.p-button-group .p-button {\\n    margin: 0;\\n}\\n\\n.p-button-group .p-button:not(:last-child) {\\n    border-right: 0 none;\\n}\\n\\n.p-button-group .p-button:not(:first-of-type):not(:last-of-type) {\\n    border-radius: 0;\\n}\\n\\n.p-button-group .p-button:first-of-type {\\n    border-top-right-radius: 0;\\n    border-bottom-right-radius: 0;\\n}\\n\\n.p-button-group .p-button:last-of-type {\\n    border-top-left-radius: 0;\\n    border-bottom-left-radius: 0;\\n}\\n\\n.p-button-group .p-button:focus {\\n    position: relative;\\n    z-index: 1;\\n}\\n\\n.p-button-group-single .p-button:first-of-type {\\n    border-top-right-radius: var(--border-radius) !important;\\n    border-bottom-right-radius: var(--border-radius) !important;\\n}\\n\\n.p-button-group-single .p-button:last-of-type {\\n    border-top-left-radius: var(--border-radius) !important;\\n    border-bottom-left-radius: var(--border-radius) !important;\\n}\\n\";\nvar inputTextStyles = \"\\n.p-inputtext {\\n    margin: 0;\\n}\\n\\n.p-fluid .p-inputtext {\\n    width: 100%;\\n}\\n\\n/* InputGroup */\\n.p-inputgroup {\\n    display: flex;\\n    align-items: stretch;\\n    width: 100%;\\n}\\n\\n.p-inputgroup-addon {\\n    display: flex;\\n    align-items: center;\\n    justify-content: center;\\n}\\n\\n.p-inputgroup .p-float-label {\\n    display: flex;\\n    align-items: stretch;\\n    width: 100%;\\n}\\n\\n.p-inputgroup .p-inputtext,\\n.p-fluid .p-inputgroup .p-inputtext,\\n.p-inputgroup .p-inputwrapper,\\n.p-fluid .p-inputgroup .p-input {\\n    flex: 1 1 auto;\\n    width: 1%;\\n}\\n\\n/* Floating Label */\\n.p-float-label {\\n    display: block;\\n    position: relative;\\n}\\n\\n.p-float-label label {\\n    position: absolute;\\n    pointer-events: none;\\n    top: 50%;\\n    margin-top: -0.5rem;\\n    transition-property: all;\\n    transition-timing-function: ease;\\n    line-height: 1;\\n}\\n\\n.p-float-label textarea ~ label,\\n.p-float-label .p-mention ~ label {\\n    top: 1rem;\\n}\\n\\n.p-float-label input:focus ~ label,\\n.p-float-label input:-webkit-autofill ~ label,\\n.p-float-label input.p-filled ~ label,\\n.p-float-label textarea:focus ~ label,\\n.p-float-label textarea.p-filled ~ label,\\n.p-float-label .p-inputwrapper-focus ~ label,\\n.p-float-label .p-inputwrapper-filled ~ label,\\n.p-float-label .p-tooltip-target-wrapper ~ label {\\n    top: -0.75rem;\\n    font-size: 12px;\\n}\\n\\n.p-float-label .p-placeholder,\\n.p-float-label input::placeholder,\\n.p-float-label .p-inputtext::placeholder {\\n    opacity: 0;\\n    transition-property: all;\\n    transition-timing-function: ease;\\n}\\n\\n.p-float-label .p-focus .p-placeholder,\\n.p-float-label input:focus::placeholder,\\n.p-float-label .p-inputtext:focus::placeholder {\\n    opacity: 1;\\n    transition-property: all;\\n    transition-timing-function: ease;\\n}\\n\\n.p-input-icon-left,\\n.p-input-icon-right {\\n    position: relative;\\n    display: inline-block;\\n}\\n\\n.p-input-icon-left > i,\\n.p-input-icon-right > i,\\n.p-input-icon-left > svg,\\n.p-input-icon-right > svg,\\n.p-input-icon-left > .p-input-prefix,\\n.p-input-icon-right > .p-input-suffix {\\n    position: absolute;\\n    top: 50%;\\n    margin-top: -0.5rem;\\n}\\n\\n.p-fluid .p-input-icon-left,\\n.p-fluid .p-input-icon-right {\\n    display: block;\\n    width: 100%;\\n}\\n\";\nvar iconStyles = \"\\n.p-icon {\\n    display: inline-block;\\n}\\n\\n.p-icon-spin {\\n    -webkit-animation: p-icon-spin 2s infinite linear;\\n    animation: p-icon-spin 2s infinite linear;\\n}\\n\\nsvg.p-icon {\\n    pointer-events: auto;\\n}\\n\\nsvg.p-icon g,\\n.p-disabled svg.p-icon {\\n    pointer-events: none;\\n}\\n\\n@-webkit-keyframes p-icon-spin {\\n    0% {\\n        -webkit-transform: rotate(0deg);\\n        transform: rotate(0deg);\\n    }\\n    100% {\\n        -webkit-transform: rotate(359deg);\\n        transform: rotate(359deg);\\n    }\\n}\\n\\n@keyframes p-icon-spin {\\n    0% {\\n        -webkit-transform: rotate(0deg);\\n        transform: rotate(0deg);\\n    }\\n    100% {\\n        -webkit-transform: rotate(359deg);\\n        transform: rotate(359deg);\\n    }\\n}\\n\";\nvar commonStyle = \"\\n@layer primereact {\\n    .p-component, .p-component * {\\n        box-sizing: border-box;\\n    }\\n\\n    .p-hidden {\\n        display: none;\\n    }\\n\\n    .p-hidden-space {\\n        visibility: hidden;\\n    }\\n\\n    .p-reset {\\n        margin: 0;\\n        padding: 0;\\n        border: 0;\\n        outline: 0;\\n        text-decoration: none;\\n        font-size: 100%;\\n        list-style: none;\\n    }\\n\\n    .p-disabled, .p-disabled * {\\n        cursor: default;\\n        pointer-events: none;\\n        user-select: none;\\n    }\\n\\n    .p-component-overlay {\\n        position: fixed;\\n        top: 0;\\n        left: 0;\\n        width: 100%;\\n        height: 100%;\\n    }\\n\\n    .p-unselectable-text {\\n        user-select: none;\\n    }\\n\\n    .p-scrollbar-measure {\\n        width: 100px;\\n        height: 100px;\\n        overflow: scroll;\\n        position: absolute;\\n        top: -9999px;\\n    }\\n\\n    @-webkit-keyframes p-fadein {\\n      0%   { opacity: 0; }\\n      100% { opacity: 1; }\\n    }\\n    @keyframes p-fadein {\\n      0%   { opacity: 0; }\\n      100% { opacity: 1; }\\n    }\\n\\n    .p-link {\\n        text-align: left;\\n        background-color: transparent;\\n        margin: 0;\\n        padding: 0;\\n        border: none;\\n        cursor: pointer;\\n        user-select: none;\\n    }\\n\\n    .p-link:disabled {\\n        cursor: default;\\n    }\\n\\n    /* Non react overlay animations */\\n    .p-connected-overlay {\\n        opacity: 0;\\n        transform: scaleY(0.8);\\n        transition: transform .12s cubic-bezier(0, 0, 0.2, 1), opacity .12s cubic-bezier(0, 0, 0.2, 1);\\n    }\\n\\n    .p-connected-overlay-visible {\\n        opacity: 1;\\n        transform: scaleY(1);\\n    }\\n\\n    .p-connected-overlay-hidden {\\n        opacity: 0;\\n        transform: scaleY(1);\\n        transition: opacity .1s linear;\\n    }\\n\\n    /* React based overlay animations */\\n    .p-connected-overlay-enter {\\n        opacity: 0;\\n        transform: scaleY(0.8);\\n    }\\n\\n    .p-connected-overlay-enter-active {\\n        opacity: 1;\\n        transform: scaleY(1);\\n        transition: transform .12s cubic-bezier(0, 0, 0.2, 1), opacity .12s cubic-bezier(0, 0, 0.2, 1);\\n    }\\n\\n    .p-connected-overlay-enter-done {\\n        transform: none;\\n    }\\n\\n    .p-connected-overlay-exit {\\n        opacity: 1;\\n    }\\n\\n    .p-connected-overlay-exit-active {\\n        opacity: 0;\\n        transition: opacity .1s linear;\\n    }\\n\\n    /* Toggleable Content */\\n    .p-toggleable-content-enter {\\n        max-height: 0;\\n    }\\n\\n    .p-toggleable-content-enter-active {\\n        overflow: hidden;\\n        max-height: 1000px;\\n        transition: max-height 1s ease-in-out;\\n    }\\n\\n    .p-toggleable-content-enter-done {\\n        transform: none;\\n    }\\n\\n    .p-toggleable-content-exit {\\n        max-height: 1000px;\\n    }\\n\\n    .p-toggleable-content-exit-active {\\n        overflow: hidden;\\n        max-height: 0;\\n        transition: max-height 0.45s cubic-bezier(0, 1, 0, 1);\\n    }\\n\\n    /* @todo Refactor */\\n    .p-menu .p-menuitem-link {\\n        cursor: pointer;\\n        display: flex;\\n        align-items: center;\\n        text-decoration: none;\\n        overflow: hidden;\\n        position: relative;\\n    }\\n\\n    \".concat(buttonStyles, \"\\n    \").concat(inputTextStyles, \"\\n    \").concat(iconStyles, \"\\n}\\n\");\nvar ComponentBase = {\n  cProps: undefined,\n  cParams: undefined,\n  cName: undefined,\n  defaultProps: {\n    pt: undefined,\n    ptOptions: undefined,\n    unstyled: false\n  },\n  context: {},\n  globalCSS: undefined,\n  classes: {},\n  styles: '',\n  extend: function extend() {\n    var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var css = props.css;\n    var defaultProps = _objectSpread(_objectSpread({}, props.defaultProps), ComponentBase.defaultProps);\n    var inlineStyles = {};\n    var getProps = function getProps(props) {\n      var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      ComponentBase.context = context;\n      ComponentBase.cProps = props;\n      return primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.getMergedProps(props, defaultProps);\n    };\n    var getOtherProps = function getOtherProps(props) {\n      return primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.getDiffProps(props, defaultProps);\n    };\n    var getPTValue = function getPTValue() {\n      var _ComponentBase$contex;\n      var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n      var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var searchInDefaultPT = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n      // obj either is the passthrough options or has a .pt property.\n      if (obj.hasOwnProperty('pt') && obj.pt !== undefined) {\n        obj = obj.pt;\n      }\n      var originalkey = key;\n      var isNestedParam = /./g.test(originalkey) && !!params[originalkey.split('.')[0]];\n      var fkey = isNestedParam ? primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.toFlatCase(originalkey.split('.')[1]) : primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.toFlatCase(originalkey);\n      var hostName = params.hostName && primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.toFlatCase(params.hostName);\n      var componentName = hostName || params.props && params.props.__TYPE && primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.toFlatCase(params.props.__TYPE) || '';\n      var isTransition = fkey === 'transition';\n      var datasetPrefix = 'data-pc-';\n      var _getHostInstance = function getHostInstance(params) {\n        return params !== null && params !== void 0 && params.props ? params.hostName ? params.props.__TYPE === params.hostName ? params.props : _getHostInstance(params.parent) : params.parent : undefined;\n      };\n      var getPropValue = function getPropValue(name) {\n        var _params$props, _getHostInstance2;\n        return ((_params$props = params.props) === null || _params$props === void 0 ? void 0 : _params$props[name]) || ((_getHostInstance2 = _getHostInstance(params)) === null || _getHostInstance2 === void 0 ? void 0 : _getHostInstance2[name]);\n      };\n      ComponentBase.cParams = params;\n      ComponentBase.cName = componentName;\n      var _ref = getPropValue('ptOptions') || ComponentBase.context.ptOptions || {},\n        _ref$mergeSections = _ref.mergeSections,\n        mergeSections = _ref$mergeSections === void 0 ? true : _ref$mergeSections,\n        _ref$mergeProps = _ref.mergeProps,\n        useMergeProps = _ref$mergeProps === void 0 ? false : _ref$mergeProps;\n      var getPTClassValue = function getPTClassValue() {\n        var value = _getOptionValue.apply(void 0, arguments);\n        if (Array.isArray(value)) {\n          return {\n            className: primereact_utils__WEBPACK_IMPORTED_MODULE_2__.classNames.apply(void 0, _toConsumableArray(value))\n          };\n        }\n        if (primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.isString(value)) {\n          return {\n            className: value\n          };\n        }\n        if (value !== null && value !== void 0 && value.hasOwnProperty('className') && Array.isArray(value.className)) {\n          return {\n            className: primereact_utils__WEBPACK_IMPORTED_MODULE_2__.classNames.apply(void 0, _toConsumableArray(value.className))\n          };\n        }\n        return value;\n      };\n      var globalPT = searchInDefaultPT ? isNestedParam ? _useGlobalPT(getPTClassValue, originalkey, params) : _useDefaultPT(getPTClassValue, originalkey, params) : undefined;\n      var self = isNestedParam ? undefined : _usePT(_getPT(obj, componentName), getPTClassValue, originalkey, params);\n      var datasetProps = !isTransition && _objectSpread(_objectSpread({}, fkey === 'root' && _defineProperty({}, \"\".concat(datasetPrefix, \"name\"), params.props && params.props.__parentMetadata ? primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.toFlatCase(params.props.__TYPE) : componentName)), {}, _defineProperty({}, \"\".concat(datasetPrefix, \"section\"), fkey));\n      return mergeSections || !mergeSections && self ? useMergeProps ? (0,primereact_utils__WEBPACK_IMPORTED_MODULE_2__.mergeProps)([globalPT, self, Object.keys(datasetProps).length ? datasetProps : {}], {\n        classNameMergeFunction: (_ComponentBase$contex = ComponentBase.context.ptOptions) === null || _ComponentBase$contex === void 0 ? void 0 : _ComponentBase$contex.classNameMergeFunction\n      }) : _objectSpread(_objectSpread(_objectSpread({}, globalPT), self), Object.keys(datasetProps).length ? datasetProps : {}) : _objectSpread(_objectSpread({}, self), Object.keys(datasetProps).length ? datasetProps : {});\n    };\n    var setMetaData = function setMetaData() {\n      var metadata = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var props = metadata.props,\n        state = metadata.state;\n      var ptm = function ptm() {\n        var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n        var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n        return getPTValue((props || {}).pt, key, _objectSpread(_objectSpread({}, metadata), params));\n      };\n      var ptmo = function ptmo() {\n        var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n        var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n        var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n        return getPTValue(obj, key, params, false);\n      };\n      var isUnstyled = function isUnstyled() {\n        return ComponentBase.context.unstyled || primereact_api__WEBPACK_IMPORTED_MODULE_0__[\"default\"].unstyled || props.unstyled;\n      };\n      var cx = function cx() {\n        var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n        var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n        return !isUnstyled() ? _getOptionValue(css && css.classes, key, _objectSpread({\n          props: props,\n          state: state\n        }, params)) : undefined;\n      };\n      var sx = function sx() {\n        var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n        var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n        var when = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n        if (when) {\n          var _ComponentBase$contex2;\n          var self = _getOptionValue(css && css.inlineStyles, key, _objectSpread({\n            props: props,\n            state: state\n          }, params));\n          var base = _getOptionValue(inlineStyles, key, _objectSpread({\n            props: props,\n            state: state\n          }, params));\n          return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_2__.mergeProps)([base, self], {\n            classNameMergeFunction: (_ComponentBase$contex2 = ComponentBase.context.ptOptions) === null || _ComponentBase$contex2 === void 0 ? void 0 : _ComponentBase$contex2.classNameMergeFunction\n          });\n        }\n        return undefined;\n      };\n      return {\n        ptm: ptm,\n        ptmo: ptmo,\n        sx: sx,\n        cx: cx,\n        isUnstyled: isUnstyled\n      };\n    };\n    return _objectSpread(_objectSpread({\n      getProps: getProps,\n      getOtherProps: getOtherProps,\n      setMetaData: setMetaData\n    }, props), {}, {\n      defaultProps: defaultProps\n    });\n  }\n};\nvar _getOptionValue = function getOptionValue(obj) {\n  var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var fKeys = String(primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.toFlatCase(key)).split('.');\n  var fKey = fKeys.shift();\n  var matchedPTOption = primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.isNotEmpty(obj) ? Object.keys(obj).find(function (k) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.toFlatCase(k) === fKey;\n  }) : '';\n  return fKey ? primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.isObject(obj) ? _getOptionValue(primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.getItemValue(obj[matchedPTOption], params), fKeys.join('.'), params) : undefined : primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.getItemValue(obj, params);\n};\nvar _getPT = function _getPT(pt) {\n  var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n  var callback = arguments.length > 2 ? arguments[2] : undefined;\n  var _usept = pt === null || pt === void 0 ? void 0 : pt._usept;\n  var getValue = function getValue(value) {\n    var _ref3;\n    var checkSameKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    var _value = callback ? callback(value) : value;\n    var _key = primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.toFlatCase(key);\n    return (_ref3 = checkSameKey ? _key !== ComponentBase.cName ? _value === null || _value === void 0 ? void 0 : _value[_key] : undefined : _value === null || _value === void 0 ? void 0 : _value[_key]) !== null && _ref3 !== void 0 ? _ref3 : _value;\n  };\n  return primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.isNotEmpty(_usept) ? {\n    _usept: _usept,\n    originalValue: getValue(pt.originalValue),\n    value: getValue(pt.value)\n  } : getValue(pt, true);\n};\nvar _usePT = function _usePT(pt, callback, key, params) {\n  var fn = function fn(value) {\n    return callback(value, key, params);\n  };\n  if (pt !== null && pt !== void 0 && pt.hasOwnProperty('_usept')) {\n    var _ref4 = pt._usept || ComponentBase.context.ptOptions || {},\n      _ref4$mergeSections = _ref4.mergeSections,\n      mergeSections = _ref4$mergeSections === void 0 ? true : _ref4$mergeSections,\n      _ref4$mergeProps = _ref4.mergeProps,\n      useMergeProps = _ref4$mergeProps === void 0 ? false : _ref4$mergeProps,\n      classNameMergeFunction = _ref4.classNameMergeFunction;\n    var originalValue = fn(pt.originalValue);\n    var value = fn(pt.value);\n    if (originalValue === undefined && value === undefined) {\n      return undefined;\n    } else if (primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.isString(value)) {\n      return value;\n    } else if (primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.isString(originalValue)) {\n      return originalValue;\n    }\n    return mergeSections || !mergeSections && value ? useMergeProps ? (0,primereact_utils__WEBPACK_IMPORTED_MODULE_2__.mergeProps)([originalValue, value], {\n      classNameMergeFunction: classNameMergeFunction\n    }) : _objectSpread(_objectSpread({}, originalValue), value) : value;\n  }\n  return fn(pt);\n};\nvar getGlobalPT = function getGlobalPT() {\n  return _getPT(ComponentBase.context.pt || primereact_api__WEBPACK_IMPORTED_MODULE_0__[\"default\"].pt, undefined, function (value) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.getItemValue(value, ComponentBase.cParams);\n  });\n};\nvar getDefaultPT = function getDefaultPT() {\n  return _getPT(ComponentBase.context.pt || primereact_api__WEBPACK_IMPORTED_MODULE_0__[\"default\"].pt, undefined, function (value) {\n    return _getOptionValue(value, ComponentBase.cName, ComponentBase.cParams) || primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.getItemValue(value, ComponentBase.cParams);\n  });\n};\nvar _useGlobalPT = function _useGlobalPT(callback, key, params) {\n  return _usePT(getGlobalPT(), callback, key, params);\n};\nvar _useDefaultPT = function _useDefaultPT(callback, key, params) {\n  return _usePT(getDefaultPT(), callback, key, params);\n};\nvar useHandleStyle = function useHandleStyle(styles) {\n  var _isUnstyled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n  var config = arguments.length > 2 ? arguments[2] : undefined;\n  var name = config.name,\n    _config$styled = config.styled,\n    styled = _config$styled === void 0 ? false : _config$styled,\n    _config$hostName = config.hostName,\n    hostName = _config$hostName === void 0 ? '' : _config$hostName;\n  var globalCSS = _useGlobalPT(_getOptionValue, 'global.css', ComponentBase.cParams);\n  var componentName = primereact_utils__WEBPACK_IMPORTED_MODULE_2__.ObjectUtils.toFlatCase(name);\n  var _useStyle = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_1__.useStyle)(baseStyle, {\n      name: 'base',\n      manual: true\n    }),\n    loadBaseStyle = _useStyle.load;\n  var _useStyle2 = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_1__.useStyle)(commonStyle, {\n      name: 'common',\n      manual: true\n    }),\n    loadCommonStyle = _useStyle2.load;\n  var _useStyle3 = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_1__.useStyle)(globalCSS, {\n      name: 'global',\n      manual: true\n    }),\n    loadGlobalStyle = _useStyle3.load;\n  var _useStyle4 = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_1__.useStyle)(styles, {\n      name: name,\n      manual: true\n    }),\n    loadComponentStyle = _useStyle4.load;\n  var hook = function hook(hookName) {\n    if (!hostName) {\n      var selfHook = _usePT(_getPT((ComponentBase.cProps || {}).pt, componentName), _getOptionValue, \"hooks.\".concat(hookName));\n      var defaultHook = _useDefaultPT(_getOptionValue, \"hooks.\".concat(hookName));\n      selfHook === null || selfHook === void 0 || selfHook();\n      defaultHook === null || defaultHook === void 0 || defaultHook();\n    }\n  };\n  hook('useMountEffect');\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_1__.useMountEffect)(function () {\n    // Load base and global styles first as they are always needed\n    loadBaseStyle();\n    loadGlobalStyle();\n\n    // Only load additional styles if component is styled\n    if (!_isUnstyled()) {\n      // Load common styles shared across components\n      loadCommonStyle();\n\n      // Load component-specific styles if not explicitly styled\n      if (!styled) {\n        loadComponentStyle();\n      }\n    }\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_1__.useUpdateEffect)(function () {\n    hook('useUpdateEffect');\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_1__.useUnmountEffect)(function () {\n    hook('useUnmountEffect');\n  });\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/componentbase/componentbase.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/csstransition/csstransition.esm.js":
/*!******************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/csstransition/csstransition.esm.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   CSSTransition: () => (/* binding */ CSSTransition)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_transition_group__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-transition-group */ \"../react-ui/node_modules/react-transition-group/esm/CSSTransition.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n'use client';\n\n\n\n\n\n\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nvar CSSTransitionBase = {\n  defaultProps: {\n    __TYPE: 'CSSTransition',\n    children: undefined\n  },\n  getProps: function getProps(props) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getMergedProps(props, CSSTransitionBase.defaultProps);\n  },\n  getOtherProps: function getOtherProps(props) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getDiffProps(props, CSSTransitionBase.defaultProps);\n  }\n};\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar CSSTransition = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var props = CSSTransitionBase.getProps(inProps);\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_4__.PrimeReactContext);\n  var disabled = props.disabled || props.options && props.options.disabled || context && !context.cssTransition || !primereact_api__WEBPACK_IMPORTED_MODULE_4__[\"default\"].cssTransition;\n  var onEnter = function onEnter(node, isAppearing) {\n    props.onEnter && props.onEnter(node, isAppearing); // component\n    props.options && props.options.onEnter && props.options.onEnter(node, isAppearing); // user option\n  };\n  var onEntering = function onEntering(node, isAppearing) {\n    props.onEntering && props.onEntering(node, isAppearing); // component\n    props.options && props.options.onEntering && props.options.onEntering(node, isAppearing); // user option\n  };\n  var onEntered = function onEntered(node, isAppearing) {\n    props.onEntered && props.onEntered(node, isAppearing); // component\n    props.options && props.options.onEntered && props.options.onEntered(node, isAppearing); // user option\n  };\n  var onExit = function onExit(node) {\n    props.onExit && props.onExit(node); // component\n    props.options && props.options.onExit && props.options.onExit(node); // user option\n  };\n  var onExiting = function onExiting(node) {\n    props.onExiting && props.onExiting(node); // component\n    props.options && props.options.onExiting && props.options.onExiting(node); // user option\n  };\n  var onExited = function onExited(node) {\n    props.onExited && props.onExited(node); // component\n    props.options && props.options.onExited && props.options.onExited(node); // user option\n  };\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useUpdateEffect)(function () {\n    if (disabled) {\n      // no animation\n      var node = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getRefElement(props.nodeRef);\n      if (props[\"in\"]) {\n        onEnter(node, true);\n        onEntering(node, true);\n        onEntered(node, true);\n      } else {\n        onExit(node);\n        onExiting(node);\n        onExited(node);\n      }\n    }\n  }, [props[\"in\"]]);\n  if (disabled) {\n    return props[\"in\"] ? props.children : null;\n  }\n  var immutableProps = {\n    nodeRef: props.nodeRef,\n    \"in\": props[\"in\"],\n    appear: props.appear,\n    onEnter: onEnter,\n    onEntering: onEntering,\n    onEntered: onEntered,\n    onExit: onExit,\n    onExiting: onExiting,\n    onExited: onExited\n  };\n  var mutableProps = {\n    classNames: props.classNames,\n    timeout: props.timeout,\n    unmountOnExit: props.unmountOnExit\n  };\n  var mergedProps = _objectSpread(_objectSpread(_objectSpread({}, mutableProps), props.options || {}), immutableProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react_transition_group__WEBPACK_IMPORTED_MODULE_1__[\"default\"], mergedProps, props.children);\n});\nCSSTransition.displayName = 'CSSTransition';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/csstransition/csstransition.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/datatable/datatable.esm.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/datatable/datatable.esm.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DataTable: () => (/* binding */ DataTable)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/componentbase */ \"../react-ui/node_modules/primereact/componentbase/componentbase.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_icons_arrowdown__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! primereact/icons/arrowdown */ \"../react-ui/node_modules/primereact/icons/arrowdown/index.esm.js\");\n/* harmony import */ var primereact_icons_arrowup__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! primereact/icons/arrowup */ \"../react-ui/node_modules/primereact/icons/arrowup/index.esm.js\");\n/* harmony import */ var primereact_icons_spinner__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! primereact/icons/spinner */ \"../react-ui/node_modules/primereact/icons/spinner/index.esm.js\");\n/* harmony import */ var primereact_paginator__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! primereact/paginator */ \"../react-ui/node_modules/primereact/paginator/paginator.esm.js\");\n/* harmony import */ var primereact_virtualscroller__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! primereact/virtualscroller */ \"../react-ui/node_modules/primereact/virtualscroller/virtualscroller.esm.js\");\n/* harmony import */ var primereact_icons_bars__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! primereact/icons/bars */ \"../react-ui/node_modules/primereact/icons/bars/index.esm.js\");\n/* harmony import */ var primereact_icons_check__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! primereact/icons/check */ \"../react-ui/node_modules/primereact/icons/check/index.esm.js\");\n/* harmony import */ var primereact_icons_chevrondown__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! primereact/icons/chevrondown */ \"../react-ui/node_modules/primereact/icons/chevrondown/index.esm.js\");\n/* harmony import */ var primereact_icons_chevronright__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! primereact/icons/chevronright */ \"../react-ui/node_modules/primereact/icons/chevronright/index.esm.js\");\n/* harmony import */ var primereact_icons_pencil__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! primereact/icons/pencil */ \"../react-ui/node_modules/primereact/icons/pencil/index.esm.js\");\n/* harmony import */ var primereact_icons_times__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! primereact/icons/times */ \"../react-ui/node_modules/primereact/icons/times/index.esm.js\");\n/* harmony import */ var primereact_overlayservice__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! primereact/overlayservice */ \"../react-ui/node_modules/primereact/overlayservice/overlayservice.esm.js\");\n/* harmony import */ var primereact_ripple__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! primereact/ripple */ \"../react-ui/node_modules/primereact/ripple/ripple.esm.js\");\n/* harmony import */ var primereact_tooltip__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! primereact/tooltip */ \"../react-ui/node_modules/primereact/tooltip/tooltip.esm.js\");\n/* harmony import */ var primereact_button__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! primereact/button */ \"../react-ui/node_modules/primereact/button/button.esm.js\");\n/* harmony import */ var primereact_csstransition__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! primereact/csstransition */ \"../react-ui/node_modules/primereact/csstransition/csstransition.esm.js\");\n/* harmony import */ var primereact_dropdown__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! primereact/dropdown */ \"../react-ui/node_modules/primereact/dropdown/dropdown.esm.js\");\n/* harmony import */ var primereact_icons_filter__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! primereact/icons/filter */ \"../react-ui/node_modules/primereact/icons/filter/index.esm.js\");\n/* harmony import */ var primereact_icons_filterslash__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! primereact/icons/filterslash */ \"../react-ui/node_modules/primereact/icons/filterslash/index.esm.js\");\n/* harmony import */ var primereact_icons_plus__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! primereact/icons/plus */ \"../react-ui/node_modules/primereact/icons/plus/index.esm.js\");\n/* harmony import */ var primereact_icons_trash__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! primereact/icons/trash */ \"../react-ui/node_modules/primereact/icons/trash/index.esm.js\");\n/* harmony import */ var primereact_inputtext__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! primereact/inputtext */ \"../react-ui/node_modules/primereact/inputtext/inputtext.esm.js\");\n/* harmony import */ var primereact_portal__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! primereact/portal */ \"../react-ui/node_modules/primereact/portal/portal.esm.js\");\n/* harmony import */ var primereact_icons_sortalt__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! primereact/icons/sortalt */ \"../react-ui/node_modules/primereact/icons/sortalt/index.esm.js\");\n/* harmony import */ var primereact_icons_sortamountdown__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! primereact/icons/sortamountdown */ \"../react-ui/node_modules/primereact/icons/sortamountdown/index.esm.js\");\n/* harmony import */ var primereact_icons_sortamountupalt__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! primereact/icons/sortamountupalt */ \"../react-ui/node_modules/primereact/icons/sortamountupalt/index.esm.js\");\n'use client';\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nfunction _arrayLikeToArray$1(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return _arrayLikeToArray$1(r);\n}\nfunction _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _unsupportedIterableToArray$1(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray$1(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0;\n  }\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toConsumableArray(r) {\n  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray$1(r) || _nonIterableSpread();\n}\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray$1(r, e) || _nonIterableRest();\n}\nvar getStorage = function getStorage(stateStorageProp) {\n  switch (stateStorageProp) {\n    case 'local':\n      return window.localStorage;\n    case 'session':\n      return window.sessionStorage;\n    case 'custom':\n      return null;\n    default:\n      throw new Error(stateStorageProp + ' is not a valid value for the state storage, supported values are \"local\", \"session\" and \"custom\".');\n  }\n};\nvar ColumnBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'Column',\n    align: null,\n    alignFrozen: 'left',\n    alignHeader: null,\n    body: null,\n    bodyClassName: null,\n    bodyStyle: null,\n    cellEditValidateOnClose: false,\n    cellEditValidator: null,\n    cellEditValidatorEvent: 'click',\n    className: null,\n    colSpan: null,\n    columnKey: null,\n    dataType: 'text',\n    editor: null,\n    excludeGlobalFilter: false,\n    expander: false,\n    exportField: null,\n    exportable: true,\n    field: null,\n    filter: false,\n    filterApply: null,\n    filterClear: null,\n    filterElement: null,\n    filterField: null,\n    filterFooter: null,\n    filterFunction: null,\n    filterHeader: null,\n    filterHeaderClassName: null,\n    filterHeaderStyle: null,\n    filterMatchMode: null,\n    filterMatchModeOptions: null,\n    filterMaxLength: null,\n    filterMenuClassName: null,\n    filterMenuStyle: null,\n    filterPlaceholder: null,\n    filterType: 'text',\n    footer: null,\n    footerClassName: null,\n    footerStyle: null,\n    frozen: false,\n    header: null,\n    headerClassName: null,\n    headerStyle: null,\n    headerTooltip: null,\n    headerTooltipOptions: null,\n    hidden: false,\n    maxConstraints: 2,\n    onBeforeCellEditHide: null,\n    onBeforeCellEditShow: null,\n    onCellEditCancel: null,\n    onCellEditComplete: null,\n    onCellEditInit: null,\n    onFilterApplyClick: null,\n    onFilterClear: null,\n    onFilterConstraintAdd: null,\n    onFilterConstraintRemove: null,\n    onFilterMatchModeChange: null,\n    onFilterOperatorChange: null,\n    reorderable: true,\n    resizeable: true,\n    rowEditor: false,\n    rowReorder: false,\n    rowReorderIcon: null,\n    rowSpan: null,\n    selectionMode: null,\n    showAddButton: true,\n    showApplyButton: true,\n    showClearButton: true,\n    showFilterMatchModes: true,\n    showFilterMenu: true,\n    showFilterMenuOptions: true,\n    showFilterOperator: true,\n    sortField: null,\n    sortFunction: null,\n    sortable: false,\n    sortableDisabled: false,\n    style: null,\n    children: undefined\n  },\n  getCProp: function getCProp(column, name) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getComponentProp(column, name, ColumnBase.defaultProps);\n  },\n  getCProps: function getCProps(column) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getComponentProps(column, ColumnBase.defaultProps);\n  },\n  getCOtherProps: function getCOtherProps(column) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getComponentDiffProps(column, ColumnBase.defaultProps);\n  }\n});\nfunction ownKeys$f(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$f(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$f(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$f(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar styles$1 = \"\\n@layer primereact {\\n    .p-datatable {\\n        position: relative;\\n    }\\n\\n    .p-datatable > .p-datatable-wrapper {\\n        overflow: auto;\\n    }\\n\\n    .p-datatable-table {\\n        border-spacing: 0px;\\n        width: 100%;\\n    }\\n\\n    .p-datatable .p-sortable-disabled {\\n        cursor: auto;\\n    }\\n\\n    .p-datatable .p-sortable-column {\\n        cursor: pointer;\\n        user-select: none;\\n    }\\n\\n    .p-datatable .p-sortable-column .p-column-title,\\n    .p-datatable .p-sortable-column .p-sortable-column-icon,\\n    .p-datatable .p-sortable-column .p-sortable-column-badge {\\n        vertical-align: middle;\\n    }\\n\\n    .p-datatable .p-sortable-column .p-sortable-column-badge {\\n        display: inline-flex;\\n        align-items: center;\\n        justify-content: center;\\n    }\\n\\n    .p-datatable-selectable .p-selectable-row,\\n    .p-datatable-selectable-cell .p-selectable-cell {\\n        cursor: pointer;\\n    }\\n\\n    .p-datatable-drag-selection-helper {\\n        position: absolute;\\n        z-index: 99999999;\\n    }\\n\\n    /* Scrollable */\\n    .p-datatable-scrollable > .p-datatable-wrapper {\\n        position: relative;\\n    }\\n\\n    .p-datatable-scrollable-table > .p-datatable-thead {\\n        position: sticky;\\n        top: 0;\\n        z-index: 2;\\n    }\\n\\n    .p-datatable.p-datatable-gridlines .p-datatable-scrollable-table > .p-datatable-thead {\\n        top: -1px;\\n    }\\n\\n    .p-datatable-scrollable-table > .p-datatable-frozen-tbody {\\n        position: sticky;\\n        z-index: 1;\\n    }\\n\\n    .p-datatable-scrollable-table > .p-datatable-tfoot {\\n        position: sticky;\\n        bottom: 0;\\n        z-index: 1;\\n    }\\n\\n    .p-datatable-scrollable .p-frozen-column {\\n        position: sticky;\\n        background: inherit;\\n    }\\n\\n    .p-datatable-scrollable th.p-frozen-column {\\n        z-index: 1;\\n    }\\n\\n    .p-datatable-flex-scrollable {\\n        display: flex;\\n        flex-direction: column;\\n        height: 100%;\\n    }\\n\\n    .p-datatable-flex-scrollable > .p-datatable-wrapper {\\n        display: flex;\\n        flex-direction: column;\\n        flex: 1;\\n        height: 100%;\\n    }\\n\\n    .p-datatable-scrollable-table > .p-datatable-tbody > .p-rowgroup-header {\\n        position: sticky;\\n        z-index: 1;\\n    }\\n\\n    /* Resizable */\\n    .p-datatable-resizable-table > .p-datatable-thead > tr > th,\\n    .p-datatable-resizable-table > .p-datatable-tfoot > tr > td,\\n    .p-datatable-resizable-table > .p-datatable-tbody > tr > td {\\n        overflow: hidden;\\n        white-space: nowrap;\\n    }\\n\\n    .p-datatable-resizable-table > .p-datatable-thead > tr > th.p-resizable-column:not(.p-frozen-column) {\\n        background-clip: padding-box;\\n        position: relative;\\n    }\\n\\n    .p-datatable-resizable-table-fit > .p-datatable-thead > tr > th.p-resizable-column:last-child .p-column-resizer {\\n        display: none;\\n    }\\n\\n    .p-datatable .p-column-resizer {\\n        display: block;\\n        position: absolute;\\n        top: 0;\\n        right: 0;\\n        margin: 0;\\n        width: 0.5rem;\\n        height: 100%;\\n        padding: 0px;\\n        cursor: col-resize;\\n        border: 1px solid transparent;\\n    }\\n\\n    .p-datatable .p-column-header-content {\\n        display: flex;\\n        align-items: center;\\n    }\\n\\n    .p-datatable .p-column-resizer-helper {\\n        width: 1px;\\n        position: absolute;\\n        z-index: 10;\\n        display: none;\\n    }\\n\\n    .p-datatable .p-row-editor-init,\\n    .p-datatable .p-row-editor-save,\\n    .p-datatable .p-row-editor-cancel {\\n        display: inline-flex;\\n        align-items: center;\\n        justify-content: center;\\n        overflow: hidden;\\n        position: relative;\\n    }\\n\\n    /* Expand */\\n    .p-datatable .p-row-toggler {\\n        display: inline-flex;\\n        align-items: center;\\n        justify-content: center;\\n        overflow: hidden;\\n        position: relative;\\n    }\\n\\n    /* Reorder */\\n    .p-datatable-reorder-indicator-up,\\n    .p-datatable-reorder-indicator-down {\\n        position: absolute;\\n        display: none;\\n    }\\n\\n    .p-reorderable-column,\\n    .p-datatable-reorderablerow-handle {\\n        cursor: move;\\n    }\\n\\n    /* Loader */\\n    .p-datatable .p-datatable-loading-overlay {\\n        position: absolute;\\n        display: flex;\\n        align-items: center;\\n        justify-content: center;\\n        z-index: 2;\\n    }\\n\\n    /* Filter */\\n    .p-column-filter-row {\\n        display: flex;\\n        align-items: center;\\n        width: 100%;\\n    }\\n\\n    .p-column-filter-menu {\\n        display: inline-flex;\\n        margin-left: auto;\\n    }\\n\\n    .p-column-filter-row .p-column-filter-element {\\n        flex: 1 1 auto;\\n        width: 1%;\\n    }\\n\\n    .p-column-filter-menu-button,\\n    .p-column-filter-clear-button {\\n        display: inline-flex;\\n        justify-content: center;\\n        align-items: center;\\n        cursor: pointer;\\n        text-decoration: none;\\n        overflow: hidden;\\n        position: relative;\\n    }\\n\\n    .p-column-filter-overlay {\\n        position: absolute;\\n        top: 0;\\n        left: 0;\\n    }\\n\\n    .p-column-filter-row-items {\\n        margin: 0;\\n        padding: 0;\\n        list-style: none;\\n    }\\n\\n    .p-column-filter-row-item {\\n        cursor: pointer;\\n    }\\n\\n    .p-column-filter-add-button,\\n    .p-column-filter-remove-button {\\n        justify-content: center;\\n    }\\n\\n    .p-column-filter-add-button .p-button-label,\\n    .p-column-filter-remove-button .p-button-label {\\n        flex-grow: 0;\\n    }\\n\\n    .p-column-filter-buttonbar {\\n        display: flex;\\n        align-items: center;\\n        justify-content: space-between;\\n    }\\n\\n    .p-column-filter-buttonbar .p-button:not(.p-button-icon-only) {\\n        width: auto;\\n    }\\n\\n    /* Responsive */\\n    .p-datatable .p-datatable-tbody > tr > td > .p-column-title {\\n        display: none;\\n    }\\n\\n    /* VirtualScroller */\\n    .p-datatable-virtualscroller-spacer {\\n        display: flex;\\n    }\\n\\n    .p-datatable .p-virtualscroller .p-virtualscroller-loading {\\n        transform: none;\\n        min-height: 0;\\n        position: sticky;\\n        top: 0;\\n        left: 0;\\n    }\\n\\n    /* Alignment */\\n    .p-datatable .p-datatable-thead > tr > th.p-align-left > .p-column-header-content,\\n    .p-datatable .p-datatable-tbody > tr > td.p-align-left,\\n    .p-datatable .p-datatable-tfoot > tr > td.p-align-left {\\n        text-align: left;\\n        justify-content: flex-start;\\n    }\\n\\n    .p-datatable .p-datatable-thead > tr > th.p-align-right > .p-column-header-content,\\n    .p-datatable .p-datatable-tbody > tr > td.p-align-right,\\n    .p-datatable .p-datatable-tfoot > tr > td.p-align-right {\\n        text-align: right;\\n        justify-content: flex-end;\\n    }\\n\\n    .p-datatable .p-datatable-thead > tr > th.p-align-center > .p-column-header-content,\\n    .p-datatable .p-datatable-tbody > tr > td.p-align-center,\\n    .p-datatable .p-datatable-tfoot > tr > td.p-align-center {\\n        text-align: center;\\n        justify-content: center;\\n    }\\n}\\n\";\nvar classes$2 = {\n  root: function root(_ref) {\n    var props = _ref.props,\n      selectable = _ref.selectable;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)('p-datatable p-component', {\n      'p-datatable-hoverable-rows': props.rowHover,\n      'p-datatable-selectable': selectable && !props.cellSelection,\n      'p-datatable-selectable-cell': selectable && props.cellSelection,\n      'p-datatable-resizable': props.resizableColumns,\n      'p-datatable-resizable-fit': props.resizableColumns && props.columnResizeMode === 'fit',\n      'p-datatable-scrollable': props.scrollable,\n      'p-datatable-flex-scrollable': props.scrollable && props.scrollHeight === 'flex',\n      'p-datatable-responsive-stack': props.responsiveLayout === 'stack',\n      'p-datatable-responsive-scroll': props.responsiveLayout === 'scroll',\n      'p-datatable-striped': props.stripedRows,\n      'p-datatable-gridlines': props.showGridlines,\n      'p-datatable-grouped-header': props.headerColumnGroup != null,\n      'p-datatable-grouped-footer': props.footerColumnGroup != null,\n      'p-datatable-sm': props.size === 'small',\n      'p-datatable-lg': props.size === 'large'\n    });\n  },\n  loadingIcon: 'p-datatable-loading-icon',\n  loadingOverlay: 'p-datatable-loading-overlay p-component-overlay',\n  header: 'p-datatable-header',\n  wrapper: 'p-datatable-wrapper',\n  table: function table(_ref2) {\n    var props = _ref2.props;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)('p-datatable-table', {\n      'p-datatable-scrollable-table': props.scrollable,\n      'p-datatable-resizable-table': props.resizableColumns,\n      'p-datatable-resizable-table-fit': props.resizableColumns && props.columnResizeMode === 'fit'\n    });\n  },\n  thead: 'p-datatable-thead',\n  tfoot: 'p-datatable-tfoot',\n  footer: 'p-datatable-footer',\n  checkIcon: 'p-checkbox-icon',\n  resizeHelper: 'p-column-resizer-helper',\n  reorderIndicatorUp: 'p-datatable-reorder-indicator-up',\n  reorderIndicatorDown: 'p-datatable-reorder-indicator-down',\n  paginator: function paginator(_ref3) {\n    var position = _ref3.position;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)('p-paginator-' + position);\n  },\n  bodyCell: function bodyCell(_ref4) {\n    var selectionMode = _ref4.selectionMode,\n      editor = _ref4.editor,\n      editingState = _ref4.editingState,\n      frozen = _ref4.frozen,\n      cellSelected = _ref4.cellSelected,\n      align = _ref4.align,\n      props = _ref4.bodyProps,\n      getCellParams = _ref4.getCellParams;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(_defineProperty({\n      'p-selection-column': selectionMode !== null,\n      'p-editable-column': editor,\n      'p-cell-editing': editor && editingState,\n      'p-frozen-column': frozen,\n      'p-selectable-cell': props.allowCellSelection && props.isSelectable({\n        data: getCellParams(),\n        index: props.rowIndex\n      }),\n      'p-highlight': cellSelected\n    }, \"p-align-\".concat(align), !!align));\n  },\n  columnTitle: 'p-column-title',\n  bodyRow: function bodyRow(_ref5) {\n    var props = _ref5.rowProps;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)({\n      'p-highlight': !props.allowCellSelection && props.selected || props.contextMenuSelected,\n      'p-highlight-contextmenu': props.contextMenuSelected,\n      'p-selectable-row': props.allowRowSelection && props.isSelectable({\n        data: props.rowData,\n        index: props.rowIndex\n      }),\n      'p-row-odd': props.rowIndex % 2 !== 0\n    });\n  },\n  rowGroupTogglerIcon: 'p-row-toggler-icon',\n  rowGroupToggler: 'p-row-toggler p-link',\n  rowGroupHeader: 'p-rowgroup-header',\n  rowGroupHeaderName: 'p-rowgroup-header-name',\n  rowGroupFooter: 'p-rowgroup-footer',\n  rowReorderIcon: 'p-datatable-reorderablerow-handle',\n  rowTogglerIcon: 'p-row-toggler-icon',\n  rowToggler: 'p-row-toggler p-link',\n  rowEditorSaveIcon: 'p-row-editor-save-icon',\n  rowEditorSaveButton: 'p-row-editor-save p-link',\n  rowEditorCancelIcon: 'p-row-editor-cancel-icon',\n  rowEditorCancelButton: 'p-row-editor-cancel p-link',\n  rowEditorInitIcon: 'p-row-editor-init-icon',\n  rowEditorInitButton: 'p-row-editor-init p-link',\n  rowExpansion: 'p-datatable-row-expansion',\n  virtualScrollerSpacer: function virtualScrollerSpacer(_ref6) {\n    var className = _ref6.className;\n    return className;\n  },\n  tbody: function tbody(_ref7) {\n    var className = _ref7.className;\n    return className;\n  },\n  filterInput: 'p-fluid p-column-filter-element',\n  filterMenuButton: function filterMenuButton(_ref8) {\n    var overlayVisibleState = _ref8.overlayVisibleState,\n      hasFilter = _ref8.hasFilter;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)('p-column-filter-menu-button p-link', {\n      'p-column-filter-menu-button-open': overlayVisibleState,\n      'p-column-filter-menu-button-active': hasFilter()\n    });\n  },\n  headerFilterClearButton: function headerFilterClearButton(_ref9) {\n    var hasRowFilter = _ref9.hasRowFilter;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)('p-column-filter-clear-button p-link', {\n      'p-hidden-space': !hasRowFilter()\n    });\n  },\n  filterSeparator: 'p-column-filter-separator',\n  filterRowItem: function filterRowItem(_ref10) {\n    var isRowMatchModeSelected = _ref10.isRowMatchModeSelected,\n      isShowMatchModes = _ref10.isShowMatchModes,\n      value = _ref10.value;\n    return isShowMatchModes() ? (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)('p-column-filter-row-item', {\n      'p-highlight': value && isRowMatchModeSelected(value)\n    }) : undefined;\n  },\n  filterRowItems: 'p-column-filter-row-items',\n  filterOperator: 'p-column-filter-operator',\n  filterConstraints: 'p-column-filter-constraints',\n  filterConstraint: 'p-column-filter-constraint',\n  filterAddRule: 'p-column-filter-add-rule',\n  filterButtonBar: 'p-column-filter-buttonbar',\n  filterOverlay: function filterOverlay(_ref11) {\n    var props = _ref11.columnFilterProps,\n      context = _ref11.context,\n      getColumnProp = _ref11.getColumnProp;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)('p-column-filter-overlay p-component p-fluid', getColumnProp('filterMenuClassName'), {\n      'p-column-filter-overlay-menu': props.display === 'menu',\n      'p-input-filled': context && context.inputStyle === 'filled' || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].inputStyle === 'filled',\n      'p-ripple-disabled': context && context.ripple === false || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ripple === false\n    });\n  },\n  columnFilter: function columnFilter(_ref12) {\n    var props = _ref12.columnFilterProps;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)('p-column-filter p-fluid', {\n      'p-column-filter-row': props.display === 'row',\n      'p-column-filter-menu': props.display === 'menu'\n    });\n  },\n  columnResizer: 'p-column-resizer',\n  emptyMessage: 'p-datatable-emptymessage',\n  sortBadge: 'p-sortable-column-badge',\n  sortIcon: 'p-sortable-column-icon',\n  headerTitle: 'p-column-title',\n  headerContent: 'p-column-header-content',\n  headerCell: function headerCell(_ref13) {\n    var props = _ref13.headerProps,\n      frozen = _ref13.frozen,\n      sortMeta = _ref13.sortMeta,\n      align = _ref13.align,\n      _isSortableDisabled = _ref13._isSortableDisabled,\n      getColumnProp = _ref13.getColumnProp;\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isEmpty(props) ? (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)('p-filter-column', {\n      'p-frozen-column': frozen\n    }) : (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(_defineProperty({\n      'p-filter-column': !props.headerColumnGroup && props.filterDisplay === 'row',\n      'p-sortable-column': getColumnProp('sortable'),\n      'p-resizable-column': props.resizableColumns && getColumnProp('resizeable'),\n      'p-highlight': sortMeta.sorted,\n      'p-frozen-column': frozen,\n      'p-selection-column': getColumnProp('selectionMode'),\n      'p-sortable-disabled': getColumnProp('sortable') && _isSortableDisabled,\n      'p-reorderable-column': props.reorderableColumns && getColumnProp('reorderable') && !frozen\n    }, \"p-align-\".concat(align), !!align));\n  },\n  footerCell: function footerCell(_ref14) {\n    var getColumnProp = _ref14.getColumnProp,\n      align = _ref14.align;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(_defineProperty({\n      'p-frozen-column': getColumnProp('frozen')\n    }, \"p-align-\".concat(align), !!align));\n  },\n  transition: 'p-connected-overlay'\n};\nvar inlineStyles = {\n  wrapper: {\n    overflow: 'auto'\n  },\n  resizeHelper: {\n    display: 'none'\n  },\n  reorderIndicatorUp: function reorderIndicatorUp(_ref15) {\n    var style = _ref15.style;\n    return _objectSpread$f({}, style);\n  },\n  reorderIndicatorDown: function reorderIndicatorDown(_ref16) {\n    var style = _ref16.style;\n    return _objectSpread$f({}, style);\n  }\n};\nvar DataTableBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'DataTable',\n    alwaysShowPaginator: true,\n    breakpoint: '960px',\n    cellClassName: null,\n    cellSelection: false,\n    checkIcon: null,\n    className: null,\n    collapsedRowIcon: null,\n    columnResizeMode: 'fit',\n    compareSelectionBy: 'deepEquals',\n    contextMenuSelection: null,\n    csvSeparator: ',',\n    currentPageReportTemplate: '({currentPage} of {totalPages})',\n    customRestoreState: null,\n    customSaveState: null,\n    dataKey: null,\n    defaultSortOrder: 1,\n    dragSelection: false,\n    editMode: null,\n    editingRows: null,\n    emptyMessage: null,\n    expandableRowGroups: false,\n    expandedRowIcon: null,\n    expandedRows: null,\n    exportFilename: 'download',\n    exportFunction: null,\n    filterClearIcon: null,\n    filterDelay: 300,\n    filterDisplay: 'menu',\n    filterIcon: null,\n    filterLocale: undefined,\n    filters: null,\n    first: 0,\n    footer: null,\n    footerColumnGroup: null,\n    frozenRow: false,\n    frozenValue: null,\n    frozenWidth: null,\n    globalFilter: null,\n    globalFilterFields: null,\n    globalFilterMatchMode: primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterMatchMode.CONTAINS,\n    groupRowsBy: null,\n    header: null,\n    headerColumnGroup: null,\n    id: null,\n    isDataSelectable: null,\n    lazy: false,\n    loading: false,\n    loadingIcon: null,\n    metaKeySelection: false,\n    multiSortMeta: null,\n    onAllRowsSelect: null,\n    onAllRowsUnselect: null,\n    onCellClick: null,\n    onCellSelect: null,\n    onCellUnselect: null,\n    onColReorder: null,\n    onColumnResizeEnd: null,\n    onColumnResizerClick: null,\n    onColumnResizerDoubleClick: null,\n    onContextMenu: null,\n    onContextMenuSelectionChange: null,\n    onFilter: null,\n    onPage: null,\n    onRowClick: null,\n    onRowCollapse: null,\n    onRowDoubleClick: null,\n    onRowEditCancel: null,\n    onRowEditChange: null,\n    onRowEditComplete: null,\n    onRowEditInit: null,\n    onRowEditSave: null,\n    onRowExpand: null,\n    onRowMouseEnter: null,\n    onRowMouseLeave: null,\n    onRowPointerDown: null,\n    onRowPointerUp: null,\n    onRowReorder: null,\n    onRowSelect: null,\n    onRowToggle: null,\n    onRowUnselect: null,\n    onSelectAllChange: null,\n    onSelectionChange: null,\n    onSort: null,\n    onStateRestore: null,\n    onStateSave: null,\n    onValueChange: null,\n    pageLinkSize: 5,\n    paginator: false,\n    paginatorClassName: null,\n    paginatorDropdownAppendTo: null,\n    paginatorLeft: null,\n    paginatorPosition: 'bottom',\n    paginatorRight: null,\n    paginatorTemplate: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown',\n    removableSort: false,\n    reorderIndicatorDownIcon: null,\n    reorderIndicatorUpIcon: null,\n    reorderableColumns: false,\n    reorderableRows: false,\n    resizableColumns: false,\n    responsiveLayout: 'scroll',\n    rowClassName: null,\n    rowEditValidator: null,\n    rowEditorCancelIcon: null,\n    rowEditorInitIcon: null,\n    rowEditorSaveIcon: null,\n    rowExpansionTemplate: null,\n    rowGroupFooterTemplate: null,\n    rowGroupHeaderTemplate: null,\n    rowGroupMode: null,\n    rowHover: false,\n    rows: null,\n    rowsPerPageOptions: null,\n    scrollHeight: null,\n    scrollable: false,\n    selectAll: false,\n    selectOnEdit: true,\n    selection: null,\n    selectionAriaLabel: null,\n    selectionAutoFocus: true,\n    selectionMode: null,\n    selectionPageOnly: false,\n    showGridlines: false,\n    showHeaders: true,\n    showRowReorderElement: null,\n    showSelectAll: true,\n    showSelectionElement: null,\n    size: 'normal',\n    sortField: null,\n    sortIcon: null,\n    sortMode: 'single',\n    sortOrder: null,\n    stateKey: null,\n    stateStorage: 'session',\n    stripedRows: false,\n    style: null,\n    tabIndex: 0,\n    tableClassName: null,\n    tableStyle: null,\n    totalRecords: null,\n    value: null,\n    virtualScrollerOptions: null,\n    children: undefined\n  },\n  css: {\n    styles: styles$1,\n    classes: classes$2,\n    inlineStyles: inlineStyles\n  }\n});\nfunction _objectWithoutPropertiesLoose(r, e) {\n  if (null == r) return {};\n  var t = {};\n  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n    if (-1 !== e.indexOf(n)) continue;\n    t[n] = r[n];\n  }\n  return t;\n}\nfunction _objectWithoutProperties(e, t) {\n  if (null == e) return {};\n  var o,\n    r,\n    i = _objectWithoutPropertiesLoose(e, t);\n  if (Object.getOwnPropertySymbols) {\n    var n = Object.getOwnPropertySymbols(e);\n    for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n  }\n  return i;\n}\nvar classes$1 = {\n  box: 'p-checkbox-box',\n  input: 'p-checkbox-input',\n  icon: 'p-checkbox-icon',\n  root: function root(_ref) {\n    var props = _ref.props,\n      checked = _ref.checked,\n      context = _ref.context;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)('p-checkbox p-component', {\n      'p-highlight': checked,\n      'p-disabled': props.disabled,\n      'p-invalid': props.invalid,\n      'p-variant-filled': props.variant ? props.variant === 'filled' : context && context.inputStyle === 'filled'\n    });\n  }\n};\nvar CheckboxBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'Checkbox',\n    autoFocus: false,\n    checked: false,\n    className: null,\n    disabled: false,\n    falseValue: false,\n    icon: null,\n    id: null,\n    inputId: null,\n    inputRef: null,\n    invalid: false,\n    variant: null,\n    name: null,\n    onChange: null,\n    onContextMenu: null,\n    onMouseDown: null,\n    readOnly: false,\n    required: false,\n    style: null,\n    tabIndex: null,\n    tooltip: null,\n    tooltipOptions: null,\n    trueValue: true,\n    value: null,\n    children: undefined\n  },\n  css: {\n    classes: classes$1\n  }\n});\nfunction ownKeys$e(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$e(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar Checkbox = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = CheckboxBase.getProps(inProps, context);\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    focusedState = _React$useState2[0],\n    setFocusedState = _React$useState2[1];\n  var _CheckboxBase$setMeta = CheckboxBase.setMetaData({\n      props: props,\n      state: {\n        focused: focusedState\n      },\n      context: {\n        checked: props.checked === props.trueValue,\n        disabled: props.disabled\n      }\n    }),\n    ptm = _CheckboxBase$setMeta.ptm,\n    cx = _CheckboxBase$setMeta.cx,\n    isUnstyled = _CheckboxBase$setMeta.isUnstyled;\n  (0,primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.useHandleStyle)(CheckboxBase.css.styles, isUnstyled, {\n    name: 'checkbox'\n  });\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var inputRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(props.inputRef);\n  var isChecked = function isChecked() {\n    return props.checked === props.trueValue;\n  };\n  var _onChange = function onChange(event) {\n    if (props.disabled || props.readOnly) {\n      return;\n    }\n    if (props.onChange) {\n      var _props$onChange;\n      var _checked = isChecked();\n      var value = _checked ? props.falseValue : props.trueValue;\n      var eventData = {\n        originalEvent: event,\n        value: props.value,\n        checked: value,\n        stopPropagation: function stopPropagation() {\n          event === null || event === void 0 || event.stopPropagation();\n        },\n        preventDefault: function preventDefault() {\n          event === null || event === void 0 || event.preventDefault();\n        },\n        target: {\n          type: 'checkbox',\n          name: props.name,\n          id: props.id,\n          value: props.value,\n          checked: value\n        }\n      };\n      props === null || props === void 0 || (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, eventData);\n\n      // do not continue if the user defined click wants to prevent\n      if (event.defaultPrevented) {\n        return;\n      }\n      primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.focus(inputRef.current);\n    }\n  };\n  var _onFocus = function onFocus(event) {\n    var _props$onFocus;\n    setFocusedState(true);\n    props === null || props === void 0 || (_props$onFocus = props.onFocus) === null || _props$onFocus === void 0 || _props$onFocus.call(props, event);\n  };\n  var _onBlur = function onBlur(event) {\n    var _props$onBlur;\n    setFocusedState(false);\n    props === null || props === void 0 || (_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 || _props$onBlur.call(props, event);\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      focus: function focus() {\n        return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.focus(inputRef.current);\n      },\n      getElement: function getElement() {\n        return elementRef.current;\n      },\n      getInput: function getInput() {\n        return inputRef.current;\n      }\n    };\n  });\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.combinedRefs(inputRef, props.inputRef);\n  }, [inputRef, props.inputRef]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUpdateEffect)(function () {\n    inputRef.current.checked = isChecked();\n  }, [props.checked, props.trueValue]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMountEffect)(function () {\n    if (props.autoFocus) {\n      primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.focus(inputRef.current, props.autoFocus);\n    }\n  });\n  var checked = isChecked();\n  var hasTooltip = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(props.tooltip);\n  var otherProps = CheckboxBase.getOtherProps(props);\n  var rootProps = mergeProps({\n    id: props.id,\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(props.className, cx('root', {\n      checked: checked,\n      context: context\n    })),\n    style: props.style,\n    'data-p-highlight': checked,\n    'data-p-disabled': props.disabled,\n    onContextMenu: props.onContextMenu,\n    onMouseDown: props.onMouseDown\n  }, otherProps, ptm('root'));\n  var createInputElement = function createInputElement() {\n    var ariaProps = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.reduceKeys(otherProps, primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.ARIA_PROPS);\n    var inputProps = mergeProps(_objectSpread$e({\n      id: props.inputId,\n      type: 'checkbox',\n      className: cx('input'),\n      name: props.name,\n      tabIndex: props.tabIndex,\n      onFocus: function onFocus(e) {\n        return _onFocus(e);\n      },\n      onBlur: function onBlur(e) {\n        return _onBlur(e);\n      },\n      onChange: function onChange(e) {\n        return _onChange(e);\n      },\n      disabled: props.disabled,\n      readOnly: props.readOnly,\n      required: props.required,\n      'aria-invalid': props.invalid,\n      checked: checked\n    }, ariaProps), ptm('input'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"input\", _extends({\n      ref: inputRef\n    }, inputProps));\n  };\n  var createBoxElement = function createBoxElement() {\n    var iconProps = mergeProps({\n      className: cx('icon')\n    }, ptm('icon'));\n    var boxProps = mergeProps({\n      className: cx('box', {\n        checked: checked\n      }),\n      'data-p-highlight': checked,\n      'data-p-disabled': props.disabled\n    }, ptm('box'));\n    var icon = checked ? props.icon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_check__WEBPACK_IMPORTED_MODULE_11__.CheckIcon, iconProps) : null;\n    var checkboxIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(icon, _objectSpread$e({}, iconProps), {\n      props: props,\n      checked: checked\n    });\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", boxProps, checkboxIcon);\n  };\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", _extends({\n    ref: elementRef\n  }, rootProps), createInputElement(), createBoxElement()), hasTooltip && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_tooltip__WEBPACK_IMPORTED_MODULE_18__.Tooltip, _extends({\n    target: elementRef,\n    content: props.tooltip,\n    pt: ptm('tooltip')\n  }, props.tooltipOptions)));\n}));\nCheckbox.displayName = 'Checkbox';\nfunction ownKeys$d(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$d(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$d(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$d(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar RowCheckbox = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var getColumnProps = function getColumnProps() {\n    return ColumnBase.getCProps(props.column);\n  };\n  var _props$ptCallbacks = props.ptCallbacks,\n    ptm = _props$ptCallbacks.ptm,\n    ptmo = _props$ptCallbacks.ptmo,\n    cx = _props$ptCallbacks.cx;\n  var getColumnPTOptions = function getColumnPTOptions(key) {\n    var columnMetaData = {\n      props: getColumnProps(),\n      parent: props.metaData,\n      hostName: props.hostName,\n      state: {},\n      context: {\n        index: props.tabIndex,\n        checked: props.checked,\n        disabled: props.disabled\n      }\n    };\n    return mergeProps(ptm(\"column.\".concat(key), {\n      column: columnMetaData\n    }), ptm(\"column.\".concat(key), columnMetaData), ptmo(getColumnProps(), key, columnMetaData));\n  };\n  var onChange = function onChange(event) {\n    if (!props.disabled) {\n      props.onChange(event);\n    }\n  };\n  var checkboxIconProps = mergeProps({\n    className: cx('checkIcon')\n  }, getColumnPTOptions('rowCheckbox.icon'));\n  var icon = props.checked ? props.checkIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_check__WEBPACK_IMPORTED_MODULE_11__.CheckIcon, checkboxIconProps) : null;\n  var checkIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(icon, _objectSpread$d({}, checkboxIconProps), {\n    props: props\n  });\n  var tabIndex = props.disabled ? null : '0';\n  var checkboxProps = {\n    role: 'checkbox',\n    'aria-checked': props.checked,\n    tabIndex: tabIndex,\n    onChange: onChange,\n    'aria-label': props.ariaLabel,\n    checked: props.checked,\n    icon: checkIcon,\n    disabled: props.disabled,\n    unstyled: props.unstyled,\n    pt: getColumnPTOptions('rowCheckbox')\n  };\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Checkbox, checkboxProps);\n});\nRowCheckbox.displayName = 'RowCheckbox';\nvar classes = {\n  root: function root(_ref) {\n    var props = _ref.props,\n      context = _ref.context;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)('p-radiobutton p-component', {\n      'p-highlight': props.checked,\n      'p-disabled': props.disabled,\n      'p-invalid': props.invalid,\n      'p-variant-filled': props.variant ? props.variant === 'filled' : context && context.inputStyle === 'filled'\n    });\n  },\n  box: 'p-radiobutton-box',\n  input: 'p-radiobutton-input',\n  icon: 'p-radiobutton-icon'\n};\nvar RadioButtonBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'RadioButton',\n    autoFocus: false,\n    checked: false,\n    className: null,\n    disabled: false,\n    id: null,\n    inputId: null,\n    inputRef: null,\n    invalid: false,\n    variant: null,\n    name: null,\n    onChange: null,\n    onClick: null,\n    required: false,\n    style: null,\n    tabIndex: null,\n    tooltip: null,\n    tooltipOptions: null,\n    value: null,\n    children: undefined\n  },\n  css: {\n    classes: classes\n  }\n});\nfunction ownKeys$c(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$c(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$c(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$c(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar RadioButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = RadioButtonBase.getProps(inProps, context);\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var inputRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(props.inputRef);\n  var _RadioButtonBase$setM = RadioButtonBase.setMetaData({\n      props: props\n    }),\n    ptm = _RadioButtonBase$setM.ptm,\n    cx = _RadioButtonBase$setM.cx,\n    isUnstyled = _RadioButtonBase$setM.isUnstyled;\n  (0,primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.useHandleStyle)(RadioButtonBase.css.styles, isUnstyled, {\n    name: 'radiobutton'\n  });\n  var select = function select(event) {\n    onChange(event);\n  };\n  var onChange = function onChange(event) {\n    if (props.disabled || props.readOnly) {\n      return;\n    }\n    if (props.onChange) {\n      var checked = props.checked;\n      var radioClicked = event.target instanceof HTMLDivElement;\n      var inputClicked = event.target === inputRef.current;\n      var isInputToggled = inputClicked && event.target.checked !== checked;\n      var isRadioToggled = radioClicked && (primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.hasClass(elementRef.current, 'p-radiobutton-checked') === checked ? !checked : false);\n      var value = !checked;\n      var eventData = {\n        originalEvent: event,\n        value: props.value,\n        checked: value,\n        stopPropagation: function stopPropagation() {\n          event === null || event === void 0 || event.stopPropagation();\n        },\n        preventDefault: function preventDefault() {\n          event === null || event === void 0 || event.preventDefault();\n        },\n        target: {\n          type: 'radio',\n          name: props.name,\n          id: props.id,\n          value: props.value,\n          checked: value\n        }\n      };\n      if (isInputToggled || isRadioToggled) {\n        var _props$onChange;\n        props === null || props === void 0 || (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, eventData);\n\n        // do not continue if the user defined click wants to prevent\n        if (event.defaultPrevented) {\n          return;\n        }\n        if (isRadioToggled) {\n          inputRef.current.checked = value;\n        }\n      }\n      primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.focus(inputRef.current);\n    }\n  };\n  var onFocus = function onFocus(event) {\n    var _props$onFocus;\n    props === null || props === void 0 || (_props$onFocus = props.onFocus) === null || _props$onFocus === void 0 || _props$onFocus.call(props, event);\n  };\n  var onBlur = function onBlur(event) {\n    var _props$onBlur;\n    props === null || props === void 0 || (_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 || _props$onBlur.call(props, event);\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      select: select,\n      focus: function focus() {\n        return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.focus(inputRef.current);\n      },\n      getElement: function getElement() {\n        return elementRef.current;\n      },\n      getInput: function getInput() {\n        return inputRef.current;\n      }\n    };\n  });\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (inputRef.current) {\n      inputRef.current.checked = props.checked;\n    }\n  }, [props.checked]);\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.combinedRefs(inputRef, props.inputRef);\n  }, [inputRef, props.inputRef]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMountEffect)(function () {\n    if (props.autoFocus) {\n      primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.focus(inputRef.current, props.autoFocus);\n    }\n  });\n  var hasTooltip = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(props.tooltip);\n  var otherProps = RadioButtonBase.getOtherProps(props);\n  var rootProps = mergeProps({\n    id: props.id,\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(props.className, cx('root', {\n      context: context\n    })),\n    style: props.style,\n    'data-p-checked': props.checked\n  }, otherProps, ptm('root'));\n  delete rootProps.input;\n  delete rootProps.box;\n  delete rootProps.icon;\n  var createInputElement = function createInputElement() {\n    var ariaProps = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.reduceKeys(otherProps, primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.ARIA_PROPS);\n    var inputProps = mergeProps(_objectSpread$c({\n      id: props.inputId,\n      type: 'radio',\n      name: props.name,\n      defaultChecked: props.checked,\n      onFocus: onFocus,\n      onBlur: onBlur,\n      onChange: onChange,\n      disabled: props.disabled,\n      readOnly: props.readOnly,\n      required: props.required,\n      tabIndex: props.tabIndex,\n      className: cx('input')\n    }, ariaProps), inProps.input, ptm('input'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"input\", _extends({\n      ref: inputRef\n    }, inputProps));\n  };\n  var createBoxElement = function createBoxElement() {\n    var boxProps = mergeProps({\n      className: cx('box')\n    }, inProps.box, ptm('box'));\n    var iconProps = mergeProps({\n      className: cx('icon')\n    }, inProps.icon, ptm('icon'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", boxProps, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", iconProps));\n  };\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", _extends({\n    ref: elementRef\n  }, rootProps), createInputElement(), createBoxElement()), hasTooltip && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_tooltip__WEBPACK_IMPORTED_MODULE_18__.Tooltip, _extends({\n    target: elementRef,\n    content: props.tooltip,\n    pt: ptm('tooltip')\n  }, props.tooltipOptions)));\n}));\nRadioButton.displayName = 'RadioButton';\nvar RowRadioButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var getColumnProps = function getColumnProps() {\n    return ColumnBase.getCProps(props.column);\n  };\n  var _props$ptCallbacks = props.ptCallbacks,\n    ptm = _props$ptCallbacks.ptm,\n    ptmo = _props$ptCallbacks.ptmo;\n  var getColumnPTOptions = function getColumnPTOptions(key) {\n    var columnMetaData = {\n      props: getColumnProps(),\n      parent: props.metaData,\n      hostName: props.hostName,\n      state: {},\n      context: {\n        index: props.tabIndex,\n        checked: props.checked,\n        disabled: props.disabled\n      }\n    };\n    return mergeProps(ptm(\"column.\".concat(key), {\n      column: columnMetaData\n    }), ptm(\"column.\".concat(key), columnMetaData), ptmo(getColumnProps(), key, columnMetaData));\n  };\n  var onChange = function onChange(event) {\n    if (!props.disabled) {\n      props.onChange(event);\n    }\n  };\n  var radioButtonProps = {\n    role: 'radio',\n    'aria-checked': props.checked,\n    checked: props.checked,\n    disabled: props.disabled,\n    name: \"\".concat(props.tableSelector, \"_dt_radio\"),\n    onChange: onChange,\n    unstyled: props.unstyled,\n    pt: getColumnPTOptions('rowRadioButton')\n  };\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(RadioButton, radioButtonProps);\n});\nRowRadioButton.displayName = 'RowRadioButton';\nfunction ownKeys$b(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$b(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$b(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$b(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar Cell = function Cell(props) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(props.editing),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    editingState = _React$useState2[0],\n    setEditingState = _React$useState2[1];\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__.useState(props.rowData),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    editingRowDataState = _React$useState4[0],\n    setEditingRowDataState = _React$useState4[1];\n  var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_0__.useState({}),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    styleObjectState = _React$useState6[0],\n    setStyleObjectState = _React$useState6[1];\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var keyHelperRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var overlayEventListener = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var selfClick = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var focusTimeout = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var initFocusTimeout = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var editingRowDataStateRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _props$ptCallbacks = props.ptCallbacks,\n    ptm = _props$ptCallbacks.ptm,\n    ptmo = _props$ptCallbacks.ptmo,\n    cx = _props$ptCallbacks.cx;\n  var getColumnProp = function getColumnProp(name) {\n    return ColumnBase.getCProp(props.column, name);\n  };\n  var getColumnPTOptions = function getColumnPTOptions(key) {\n    var columnMetaData = {\n      props: props.cProps,\n      parent: props.metaData,\n      hostName: props.hostName,\n      state: {\n        styleObject: styleObjectState,\n        editing: editingState,\n        editingRowData: editingRowDataState\n      },\n      context: {\n        index: props.index,\n        size: props.metaData.props.size,\n        showGridlines: props.metaData.props.showGridlines\n      }\n    };\n    return mergeProps(ptm(\"column.\".concat(key), {\n      column: columnMetaData\n    }), ptm(\"column.\".concat(key), columnMetaData), ptmo(props.cProps, key, columnMetaData));\n  };\n  var isEditable = function isEditable() {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(props.editMode) && getColumnProp('editor');\n  };\n  var cellEditValidateOnClose = function cellEditValidateOnClose() {\n    return getColumnProp('cellEditValidateOnClose');\n  };\n  var _useEventListener = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEventListener)({\n      type: 'click',\n      listener: function listener(e) {\n        setTimeout(function () {\n          if (!selfClick.current && isOutsideClicked(e.target)) {\n            // #2666 for overlay components and outside is clicked\n\n            switchCellToViewMode(e, true);\n          }\n        }, 0);\n        selfClick.current = false;\n      },\n      options: true,\n      when: isEditable()\n    }),\n    _useEventListener2 = _slicedToArray(_useEventListener, 2),\n    bindDocumentClickListener = _useEventListener2[0],\n    unbindDocumentClickListener = _useEventListener2[1];\n  var isOutsideClicked = function isOutsideClicked(target) {\n    return elementRef.current && !(elementRef.current.isSameNode(target) || elementRef.current.contains(target));\n  };\n  var getStyle = function getStyle() {\n    var bodyStyle = getColumnProp('bodyStyle');\n    var columnStyle = getColumnProp('style');\n    return props.frozenCol ? Object.assign({}, columnStyle, bodyStyle, styleObjectState) : Object.assign({}, columnStyle, bodyStyle);\n  };\n  var getCellParams = function getCellParams() {\n    return {\n      value: props.resolveFieldData(),\n      field: props.field,\n      rowData: props.rowData,\n      rowIndex: props.rowIndex,\n      cellIndex: props.index,\n      selected: props.isCellSelected,\n      column: props.column,\n      props: props\n    };\n  };\n  var getCellCallbackParams = function getCellCallbackParams(event) {\n    var params = getCellParams();\n    return _objectSpread$b({\n      originalEvent: event\n    }, params);\n  };\n  var closeCell = function closeCell(event) {\n    var params = getCellCallbackParams(event);\n    var onBeforeCellEditHide = getColumnProp('onBeforeCellEditHide');\n    if (onBeforeCellEditHide) {\n      onBeforeCellEditHide(params);\n    }\n\n    /* When using the 'tab' key, the focus event of the next cell is not called in IE. */\n    setTimeout(function () {\n      setEditingState(false);\n      unbindDocumentClickListener();\n      primereact_overlayservice__WEBPACK_IMPORTED_MODULE_16__.OverlayService.off('overlay-click', overlayEventListener.current);\n      overlayEventListener.current = null;\n      editingRowDataStateRef.current = null;\n      selfClick.current = false;\n    }, 1);\n  };\n  var switchCellToViewMode = function switchCellToViewMode(event, submit) {\n    var callbackParams = getCellCallbackParams(event);\n    var newRowData = _objectSpread$b({}, editingRowDataStateRef.current);\n    var newValue = props.resolveFieldData(newRowData);\n    var params = _objectSpread$b(_objectSpread$b({}, callbackParams), {}, {\n      newRowData: newRowData,\n      newValue: newValue\n    });\n    var onCellEditCancel = getColumnProp('onCellEditCancel');\n    var cellEditValidator = getColumnProp('cellEditValidator');\n    var onCellEditComplete = getColumnProp('onCellEditComplete');\n    if (!submit && onCellEditCancel) {\n      onCellEditCancel(params);\n    }\n    var valid = true;\n    if ((!submit || cellEditValidateOnClose()) && cellEditValidator) {\n      valid = cellEditValidator(params);\n    }\n    if (valid) {\n      if (submit && onCellEditComplete) {\n        onCellEditComplete(params);\n      }\n      closeCell(event);\n    } else {\n      event.preventDefault();\n    }\n    setEditingRowDataState(newRowData);\n  };\n  var editorCallback = function editorCallback(val) {\n    var editingRowData = _objectSpread$b({}, editingRowDataState);\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.mutateFieldData(editingRowData, props.field, val);\n    setEditingRowDataState(editingRowData);\n\n    // update editing meta for complete methods on row mode\n    var currentData = props.getEditingRowData();\n    if (currentData) {\n      primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.mutateFieldData(currentData, props.field, val);\n    }\n    editingRowDataStateRef.current = editingRowData;\n  };\n  var _onClick = function onClick(event) {\n    props.onClick(event, getCellCallbackParams(event), isEditable(), editingState, setEditingState, selfClick, props.column, bindDocumentClickListener, overlayEventListener, isOutsideClicked);\n  };\n  var _onMouseDown = function onMouseDown(event) {\n    var params = getCellCallbackParams(event);\n    props.onMouseDown && props.onMouseDown(params);\n  };\n  var _onMouseUp = function onMouseUp(event) {\n    var params = getCellCallbackParams(event);\n    props.onMouseUp && props.onMouseUp(params);\n  };\n  var _onKeyDown = function onKeyDown(event) {\n    if (props.editMode !== 'row') {\n      if (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Tab') {\n        switchCellToViewMode(event, true);\n      }\n      if (event.code === 'Escape') {\n        switchCellToViewMode(event, false);\n      }\n    }\n    if (props.allowCellSelection) {\n      var target = event.target,\n        cell = event.currentTarget;\n      switch (event.code) {\n        case 'ArrowLeft':\n          var prevCell = props.findPrevSelectableCell(cell);\n          if (prevCell) {\n            changeTabIndex(cell, prevCell);\n            prevCell.focus();\n          }\n          event.preventDefault();\n          break;\n        case 'ArrowRight':\n          var nextCell = props.findNextSelectableCell(cell);\n          if (nextCell) {\n            changeTabIndex(cell, nextCell);\n            nextCell.focus();\n          }\n          event.preventDefault();\n          break;\n        case 'ArrowUp':\n          var upCell = props.findUpSelectableCell(cell, index);\n          if (upCell) {\n            changeTabIndex(cell, upCell);\n            upCell.focus();\n          }\n          event.preventDefault();\n          break;\n        case 'ArrowDown':\n          var downCell = props.findDownSelectableCell(cell, index);\n          if (downCell) {\n            changeTabIndex(cell, downCell);\n            downCell.focus();\n          }\n          event.preventDefault();\n          break;\n        case 'Enter':\n        case 'NumpadEnter':\n          if (event.shiftKey || event.ctrlKey) ;else if (!primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.isClickable(target)) {\n            _onClick(event);\n            event.preventDefault();\n          }\n          break;\n        case 'Space':\n          if (!primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.isClickable(target) && !target.readOnly) {\n            _onClick(event);\n            event.preventDefault();\n          }\n          break;\n      }\n    }\n  };\n  var _onBlur = function onBlur(event) {\n    selfClick.current = false;\n    if (props.editMode !== 'row' && editingState && getColumnProp('cellEditValidatorEvent') === 'blur') {\n      switchCellToViewMode(event, true);\n    }\n  };\n  var onEditorFocus = function onEditorFocus(event) {\n    _onClick(event);\n  };\n  var onRadioChange = function onRadioChange(event) {\n    props.onRadioChange({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var onRowToggle = function onRowToggle(event) {\n    props.onRowToggle({\n      originalEvent: event,\n      data: props.rowData\n    });\n    event.preventDefault();\n    event.stopPropagation();\n  };\n  var onRowEditInit = function onRowEditInit(event) {\n    props.onRowEditInit({\n      originalEvent: event,\n      data: props.rowData,\n      newData: props.getEditingRowData(),\n      field: props.field,\n      index: props.rowIndex\n    });\n  };\n  var onRowEditSave = function onRowEditSave(event) {\n    props.onRowEditSave({\n      originalEvent: event,\n      data: props.rowData,\n      newData: props.getEditingRowData(),\n      field: props.field,\n      index: props.rowIndex\n    });\n    props.focusOnInit(initFocusTimeout, elementRef);\n  };\n  var onRowEditCancel = function onRowEditCancel(event) {\n    props.onRowEditCancel({\n      originalEvent: event,\n      data: props.rowData,\n      newData: props.getEditingRowData(),\n      field: props.field,\n      index: props.rowIndex\n    });\n    props.focusOnInit(initFocusTimeout, elementRef);\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (props.frozenCol) props.updateStickyPosition(elementRef, props.frozenCol, props.alignFrozenCol, styleObjectState, setStyleObjectState);\n    if (props.editMode === 'cell' || props.editMode === 'row') props.focusOnElement(focusTimeout, editingState, elementRef, keyHelperRef);\n  }, [props.editMode, props.editing, editingState, props.frozenCol, props.alignFrozenCol]); // eslint-disable-line react-hooks/exhaustive-deps\n\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (props.editMode === 'row' && props.editing !== editingState) {\n      setEditingState(props.editing);\n    }\n  }, [props.editMode, props.editing, editingState]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUpdateEffect)(function () {\n    if (props.editMode === 'cell' || props.editMode === 'row') {\n      var editingRowData = props.getEditingRowData();\n      setEditingRowDataState(editingRowData);\n      editingRowDataStateRef.current = editingRowData;\n    }\n  }, [props.editingMeta]);\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (props.editMode === 'cell' || props.editMode === 'row') {\n      var callbackParams = getCellCallbackParams();\n      var params = _objectSpread$b(_objectSpread$b({}, callbackParams), {}, {\n        editing: editingState,\n        editingKey: props.editingKey\n      });\n      props.onEditingMetaChange(params);\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [editingState]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUnmountEffect)(function () {\n    if (overlayEventListener.current) {\n      primereact_overlayservice__WEBPACK_IMPORTED_MODULE_16__.OverlayService.off('overlay-click', overlayEventListener.current);\n      overlayEventListener.current = null;\n    }\n  });\n  var createLoading = function createLoading() {\n    var options = props.getVirtualScrollerOption('getLoaderOptions')(props.rowIndex, {\n      cellIndex: props.index,\n      cellFirst: props.index === 0,\n      cellLast: props.index === props.getVirtualScrollerOption('columns').length - 1,\n      cellEven: props.index % 2 === 0,\n      cellOdd: props.index % 2 !== 0,\n      column: props.column,\n      field: props.field\n    });\n    var content = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(props.getVirtualScrollerOption('loadingTemplate'), options);\n    var bodyCellProps = mergeProps(getColumnPTOptions('bodyCell'), {\n      role: 'cell'\n    });\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"td\", bodyCellProps, content);\n  };\n  var createElement = function createElement() {\n    var content;\n    var editorKeyHelper;\n    var cellSelected = props.allowCellSelection && props.isCellSelected;\n    var isRowEditor = props.editMode === 'row';\n    var tabIndex = props.getTabIndex(cellSelected, props.index);\n    var selectionMode = getColumnProp('selectionMode');\n    var rowReorder = getColumnProp('rowReorder');\n    var header = getColumnProp('header');\n    var body = getColumnProp('body');\n    var editor = getColumnProp('editor');\n    var frozen = props.frozenCol;\n    var align = getColumnProp('align');\n    var value = props.resolveFieldData();\n    var columnBodyOptions = {\n      column: props.column,\n      field: props.field,\n      rowIndex: props.rowIndex,\n      frozenRow: props.frozenRow,\n      props: props.tableProps\n    };\n    var rowEditor = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getPropValue(getColumnProp('rowEditor'), props.rowData, columnBodyOptions);\n    var expander = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getPropValue(getColumnProp('expander'), props.rowData, columnBodyOptions);\n    var cellClassName = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getPropValue(props.cellClassName, value, columnBodyOptions);\n    var bodyClassName = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getPropValue(getColumnProp('bodyClassName'), props.rowData, columnBodyOptions);\n    var style = getStyle();\n    var columnTitleProps = mergeProps({\n      className: cx('columnTitle')\n    }, getColumnPTOptions('columnTitle'));\n    var title = props.responsiveLayout === 'stack' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", columnTitleProps, primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(header, {\n      props: props.tableProps\n    }));\n    if (selectionMode) {\n      var showSelection = props.showSelectionElement ? props.showSelectionElement(props.rowData, {\n        rowIndex: props.rowIndex,\n        props: props.tableProps\n      }) : true;\n      var label;\n      if (showSelection) {\n        var ariaLabelField = props.selectionAriaLabel || props.tableProps.dataKey;\n        var ariaLabelText = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(props.rowData, ariaLabelField);\n        label = \"\".concat(props.isRowSelected ? (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('unselectRow') : (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('selectRow'), \" \").concat(ariaLabelText);\n      }\n      content = showSelection && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, selectionMode === 'single' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(RowRadioButton, {\n        hostName: props.hostName,\n        column: props.column,\n        checked: props.isRowSelected,\n        disabled: !props.isSelectable({\n          data: props.rowData,\n          index: props.rowIndex\n        }),\n        onChange: onRadioChange,\n        tabIndex: props.tabIndex,\n        tableSelector: props.tableSelector,\n        ariaLabel: label,\n        ptCallbacks: props.ptCallbacks,\n        metaData: props.metaData,\n        unstyled: props.unstyled\n      }), selectionMode === 'multiple' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(RowCheckbox, {\n        hostName: props.hostName,\n        column: props.column,\n        checked: props.isRowSelected,\n        disabled: !props.isSelectable({\n          data: props.rowData,\n          index: props.rowIndex\n        }),\n        onChange: props.onCheckboxChange,\n        tabIndex: props.tabIndex,\n        ariaLabel: label,\n        checkIcon: props.checkIcon,\n        ptCallbacks: props.ptCallbacks,\n        metaData: props.metaData,\n        unstyled: props.unstyled\n      }));\n    } else if (rowReorder) {\n      var showReorder = props.showRowReorderElement ? props.showRowReorderElement(props.rowData, {\n        rowIndex: props.rowIndex,\n        props: props.tableProps\n      }) : true;\n      var customIcon = getColumnProp('rowReorderIcon');\n      var rowReorderIconProps = mergeProps({\n        className: cx('rowReorderIcon')\n      }, customIcon ? null : getColumnPTOptions('rowReorderIcon'));\n      var rowReorderIcon = customIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_bars__WEBPACK_IMPORTED_MODULE_10__.BarsIcon, rowReorderIconProps);\n      content = showReorder ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(rowReorderIcon, _objectSpread$b({}, rowReorderIconProps), {\n        props: props\n      }) : null;\n    } else if (expander) {\n      var rowTogglerIconProps = mergeProps({\n        className: cx('rowTogglerIcon'),\n        'aria-hidden': true\n      }, getColumnPTOptions('rowTogglerIcon'));\n      var icon = props.expanded ? props.expandedRowIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_chevrondown__WEBPACK_IMPORTED_MODULE_12__.ChevronDownIcon, rowTogglerIconProps) : props.collapsedRowIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_chevronright__WEBPACK_IMPORTED_MODULE_13__.ChevronRightIcon, rowTogglerIconProps);\n      var togglerIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(icon, _objectSpread$b({}, rowTogglerIconProps), {\n        props: props\n      });\n      var ariaControls = \"\".concat(props.tableSelector, \"_content_\").concat(props.rowIndex, \"_expanded\");\n      var _ariaLabelField = props.selectionAriaLabel || props.tableProps.dataKey;\n      var _ariaLabelText = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(props.rowData, _ariaLabelField);\n      var _label = \"\".concat(props.expanded ? (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('collapseLabel') : (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('expandLabel'), \" \").concat(_ariaLabelText);\n      var expanderProps = {\n        onClick: onRowToggle,\n        className: cx('rowToggler')\n      };\n      var rowTogglerProps = mergeProps(_objectSpread$b(_objectSpread$b({}, expanderProps), {}, {\n        type: 'button',\n        'aria-expanded': props.expanded,\n        'aria-controls': ariaControls,\n        tabIndex: props.tabIndex,\n        'aria-label': _label\n      }), getColumnPTOptions('rowToggler'));\n      content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", rowTogglerProps, togglerIcon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_17__.Ripple, null));\n      if (body) {\n        expanderProps.element = content;\n        content = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(body, props.rowData, {\n          column: props.column,\n          field: props.field,\n          rowIndex: props.rowIndex,\n          frozenRow: props.frozenRow,\n          props: props.tableProps,\n          expander: expanderProps\n        });\n      }\n    } else if (isRowEditor && rowEditor) {\n      var rowEditorProps = {};\n      var rowEditorSaveIconProps = mergeProps({\n        className: cx('rowEditorSaveIcon')\n      }, getColumnPTOptions('rowEditorSaveIcon'));\n      var rowEditorCancelIconProps = mergeProps({\n        className: cx('rowEditorCancelIcon')\n      }, getColumnPTOptions('rowEditorCancelIcon'));\n      var rowEditorInitIconProps = mergeProps({\n        className: cx('rowEditorInitIcon')\n      }, getColumnPTOptions('rowEditorInitIcon'));\n      var rowEditorSaveIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(props.rowEditorSaveIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_check__WEBPACK_IMPORTED_MODULE_11__.CheckIcon, rowEditorSaveIconProps), _objectSpread$b({}, rowEditorSaveIconProps), {\n        props: props\n      });\n      var rowEditorCancelIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(props.rowEditorCancelIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_times__WEBPACK_IMPORTED_MODULE_15__.TimesIcon, rowEditorCancelIconProps), _objectSpread$b({}, rowEditorCancelIconProps), {\n        props: props\n      });\n      var rowEditorInitIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(props.rowEditorInitIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_pencil__WEBPACK_IMPORTED_MODULE_14__.PencilIcon, rowEditorInitIconProps), _objectSpread$b({}, rowEditorInitIconProps), {\n        props: props\n      });\n      if (editingState) {\n        rowEditorProps = {\n          editing: true,\n          onSaveClick: onRowEditSave,\n          saveClassName: cx('rowEditorSaveButton'),\n          onCancelClick: onRowEditCancel,\n          cancelClassName: cx('rowEditorCancelButton')\n        };\n        var rowEditorSaveButtonProps = mergeProps({\n          type: 'button',\n          name: 'row-save',\n          'aria-label': (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('saveEdit'),\n          onClick: rowEditorProps.onSaveClick,\n          className: rowEditorProps.saveClassName,\n          tabIndex: props.tabIndex,\n          'data-p-row-editor-save': true\n        }, getColumnPTOptions('rowEditorSaveButton'));\n        var rowEditorCancelButtonProps = mergeProps({\n          type: 'button',\n          name: 'row-cancel',\n          'aria-label': (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('cancelEdit'),\n          onClick: rowEditorProps.onCancelClick,\n          className: rowEditorProps.cancelClassName,\n          tabIndex: props.tabIndex\n        }, getColumnPTOptions('rowEditorCancelButton'));\n        content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", rowEditorSaveButtonProps, rowEditorSaveIcon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_17__.Ripple, null)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", rowEditorCancelButtonProps, rowEditorCancelIcon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_17__.Ripple, null)));\n      } else {\n        rowEditorProps = {\n          editing: false,\n          onInitClick: onRowEditInit,\n          initClassName: cx('rowEditorInitButton')\n        };\n        var rowEditorInitButtonProps = mergeProps({\n          type: 'button',\n          name: 'row-edit',\n          'aria-label': (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('editRow'),\n          onClick: rowEditorProps.onInitClick,\n          className: rowEditorProps.initClassName,\n          tabIndex: props.tabIndex,\n          'data-p-row-editor-init': true\n        }, getColumnPTOptions('rowEditorInitButton'));\n        content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", rowEditorInitButtonProps, rowEditorInitIcon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_17__.Ripple, null));\n      }\n      if (body) {\n        rowEditorProps.element = content;\n        content = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(body, props.rowData, {\n          column: props.column,\n          field: props.field,\n          rowIndex: props.rowIndex,\n          frozenRow: props.frozenRow,\n          props: props.tableProps,\n          rowEditor: rowEditorProps\n        });\n      }\n    } else if (body && (!editingState || !editor)) {\n      content = body ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(body, props.rowData, {\n        column: props.column,\n        field: props.field,\n        rowIndex: props.rowIndex,\n        frozenRow: props.frozenRow,\n        props: props.tableProps\n      }) : value;\n    } else if (editor && editingState) {\n      content = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(editor, {\n        rowData: editingRowDataState,\n        value: props.resolveFieldData(editingRowDataState),\n        column: props.column,\n        field: props.field,\n        rowIndex: props.rowIndex,\n        frozenRow: props.frozenRow,\n        props: props.tableProps,\n        editorCallback: editorCallback\n      });\n    } else {\n      content = value;\n    }\n    content = typeof content === 'boolean' ? content.toString() : content;\n    if (!isRowEditor && editor) {\n      var editorKeyHelperProps = mergeProps({\n        tabIndex: '0',\n        className: 'p-cell-editor-key-helper p-hidden-accessible',\n        onFocus: function onFocus(e) {\n          return onEditorFocus(e);\n        }\n      }, getColumnPTOptions('editorKeyHelperLabel'));\n      var editorKeyHelperLabelProps = mergeProps(getColumnPTOptions('editorKeyHelper'));\n      /* eslint-disable */\n      editorKeyHelper = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"a\", _extends({\n        ref: keyHelperRef\n      }, editorKeyHelperProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", editorKeyHelperLabelProps));\n      /* eslint-enable */\n    }\n    var bodyCellProps = mergeProps({\n      style: style,\n      className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(bodyClassName, getColumnProp('className'), cellClassName, cx('bodyCell', {\n        selectionMode: selectionMode,\n        editor: editor,\n        editingState: editingState,\n        frozen: frozen,\n        cellSelected: cellSelected,\n        align: align,\n        bodyProps: props,\n        getCellParams: getCellParams\n      })),\n      rowSpan: props.rowSpan,\n      tabIndex: tabIndex,\n      role: 'cell',\n      onClick: function onClick(e) {\n        return _onClick(e);\n      },\n      onKeyDown: function onKeyDown(e) {\n        return _onKeyDown(e);\n      },\n      onBlur: function onBlur(e) {\n        return _onBlur(e);\n      },\n      onMouseDown: function onMouseDown(e) {\n        return _onMouseDown(e);\n      },\n      onMouseUp: function onMouseUp(e) {\n        return _onMouseUp(e);\n      },\n      'data-p-selectable-cell': props.allowCellSelection && props.isSelectable({\n        data: getCellParams(),\n        index: props.rowIndex\n      }),\n      'data-p-selection-column': getColumnProp('selectionMode') != null,\n      'data-p-editable-column': isEditable() != null,\n      'data-p-cell-editing': editingState,\n      'data-p-frozen-column': frozen\n    }, getColumnPTOptions('root'), getColumnPTOptions('bodyCell'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"td\", _extends({\n      ref: elementRef\n    }, bodyCellProps), editorKeyHelper, title, content);\n  };\n  return props.getVirtualScrollerOption('loading') ? createLoading() : createElement();\n};\n\n// RadioCheckCell is used for the Radio and Checkbox selection and has the isRowSelected dependency\nvar RadioCheckCell = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Cell, props);\n}, function (prevProps, nextProps) {\n  var keysToCompare = ['isRowSelected', 'field', 'allowCellSelection', 'isCellSelected', 'editMode', 'index', 'tabIndex', 'editing', 'expanded', 'editingMeta', 'rowData'];\n  return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare);\n});\nRadioCheckCell.displayName = 'RadioCheckCell';\nvar defaultKeysToCompare = ['rowData', 'field', 'allowCellSelection', 'isCellSelected', 'editMode', 'index', 'tabIndex', 'editing', 'expanded', 'editingMeta', 'frozenCol', 'alignFrozenCol'];\nvar BodyCell = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Cell, props);\n}, function (prevProps, nextProps) {\n  if (nextProps.cellMemo === false) return false;\n  var memoProps = nextProps.cellMemoProps;\n  var keysToCompare = Array.isArray(memoProps) && memoProps.every(function (prop) {\n    return typeof prop === 'string';\n  }) ? memoProps : defaultKeysToCompare;\n  var memoPropsDepth = nextProps.cellMemoPropsDepth;\n  var depth = typeof memoPropsDepth === 'number' && memoPropsDepth > 0 ? memoPropsDepth : 1;\n  return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare, depth);\n});\nBodyCell.displayName = 'BodyCell';\nfunction ownKeys$a(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$a(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$a(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$a(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar BodyRow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    editingState = _React$useState2[0],\n    setEditingState = _React$useState2[1];\n  var editing = props.onRowEditChange ? props.editing : editingState;\n  var _props$ptCallbacks = props.ptCallbacks,\n    ptm = _props$ptCallbacks.ptm,\n    cx = _props$ptCallbacks.cx;\n  var isRowSelected = !props.allowCellSelection && props.selected || props.contextMenuSelected;\n  var getBodyRowPTOptions = function getBodyRowPTOptions(key) {\n    return ptm(key, {\n      parent: props.metaData,\n      hostName: props.hostName,\n      state: {\n        editing: editing\n      },\n      context: {\n        index: props.index,\n        selectable: props.allowRowSelection && props.isSelectable({\n          data: props.rowData,\n          index: props.rowIndex\n        }),\n        selected: isRowSelected,\n        stripedRows: props.metaData.props.stripedRows\n      }\n    });\n  };\n  var getColumnProp = function getColumnProp(column, name) {\n    return ColumnBase.getCProp(column, name);\n  };\n  var isFocusable = function isFocusable() {\n    return props.selectionMode && props.selectionModeInColumn !== 'single' && props.selectionModeInColumn !== 'multiple';\n  };\n  var isGrouped = function isGrouped(column) {\n    var columnField = getColumnProp(column, 'field');\n    if (props.groupRowsBy && columnField) {\n      return Array.isArray(props.groupRowsBy) ? props.groupRowsBy.indexOf(columnField) > -1 : props.groupRowsBy === columnField;\n    }\n    return false;\n  };\n  var equals = function equals(data1, data2) {\n    return props.compareSelectionBy === 'equals' ? data1 === data2 : primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.equals(data1, data2, props.dataKey);\n  };\n  var getTabIndex = function getTabIndex() {\n    return isFocusable() && !props.allowCellSelection ? props.rowIndex === 0 ? props.tabIndex : -1 : null;\n  };\n  var findIndex = function findIndex(collection, rowData) {\n    return (collection || []).findIndex(function (data) {\n      return equals(rowData, data);\n    });\n  };\n  var changeTabIndex = function changeTabIndex(currentElement, nextElement) {\n    if (currentElement && nextElement) {\n      currentElement.tabIndex = -1;\n      nextElement.tabIndex = props.tabIndex;\n    }\n  };\n  var findFirstSelectableRow = function findFirstSelectableRow(row) {\n    var firstRow = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.findSingle(row.parentNode, 'tr[data-p-selectable-row]');\n    return firstRow ? firstRow : null;\n  };\n  var _findNextSelectableRow = function findNextSelectableRow(row) {\n    var nextRow = row.nextElementSibling;\n    return nextRow ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(nextRow, 'data-p-selectable-row') === true ? nextRow : _findNextSelectableRow(nextRow) : null;\n  };\n  var _findPrevSelectableRow = function findPrevSelectableRow(row) {\n    var prevRow = row.previousElementSibling;\n    return prevRow ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(prevRow, 'data-p-selectable-row') === true ? prevRow : _findPrevSelectableRow(prevRow) : null;\n  };\n  var findLastSelectableRow = function findLastSelectableRow(row) {\n    var lastRow = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.findSingle(row.parentNode, 'tr[data-p-selectable-row]:last-child');\n    return lastRow ? lastRow : null;\n  };\n  var shouldRenderBodyCell = function shouldRenderBodyCell(value, column, i) {\n    if (getColumnProp(column, 'hidden')) {\n      return false;\n    } else if (props.rowGroupMode && props.rowGroupMode === 'rowspan' && isGrouped(column)) {\n      var prevRowData = value[i - 1];\n      if (prevRowData) {\n        var currentRowFieldData = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(value[i], getColumnProp(column, 'field'));\n        var previousRowFieldData = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(prevRowData, getColumnProp(column, 'field'));\n        return currentRowFieldData !== previousRowFieldData;\n      }\n    }\n    return true;\n  };\n  var calculateRowGroupSize = function calculateRowGroupSize(value, column, index) {\n    if (isGrouped(column)) {\n      var currentRowFieldData = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(value[index], getColumnProp(column, 'field'));\n      var nextRowFieldData = currentRowFieldData;\n      var groupRowSpan = 0;\n      while (currentRowFieldData === nextRowFieldData) {\n        groupRowSpan++;\n        var nextRowData = value[++index];\n        if (nextRowData) {\n          nextRowFieldData = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(nextRowData, getColumnProp(column, 'field'));\n        } else {\n          break;\n        }\n      }\n      return groupRowSpan === 1 ? null : groupRowSpan;\n    }\n    return null;\n  };\n  var _onClick = function onClick(event) {\n    props.onRowClick({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var _onDoubleClick = function onDoubleClick(event) {\n    props.onRowDoubleClick({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var _onPointerDown = function onPointerDown(event) {\n    props.onRowPointerDown({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var _onPointerUp = function onPointerUp(event) {\n    props.onRowPointerUp({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var onRightClick = function onRightClick(event) {\n    props.onRowRightClick({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var _onMouseEnter = function onMouseEnter(event) {\n    props.onRowMouseEnter({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var _onMouseLeave = function onMouseLeave(event) {\n    props.onRowMouseLeave({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var _onTouchEnd = function onTouchEnd(event) {\n    props.onRowTouchEnd(event);\n  };\n  var _onKeyDown = function onKeyDown(event) {\n    if (isFocusable() && !props.allowCellSelection) {\n      var target = event.target,\n        row = event.currentTarget;\n      switch (event.code) {\n        case 'ArrowDown':\n          onArrowDownKey(row, event);\n          break;\n        case 'ArrowUp':\n          onArrowUpKey(row, event);\n          break;\n        case 'Home':\n          onHomeKey(row, event);\n          break;\n        case 'End':\n          onEndKey(row, event);\n          break;\n        case 'Enter':\n        case 'NumpadEnter':\n          onEnterKey(row, event, target);\n          break;\n        case 'Space':\n          onSpaceKey(row, event, target);\n          break;\n        case 'Tab':\n          onTabKey(row, event);\n          break;\n      }\n    }\n  };\n  var onArrowDownKey = function onArrowDownKey(row, event) {\n    var nextRow = _findNextSelectableRow(row);\n    if (nextRow) {\n      changeTabIndex(row, nextRow);\n      nextRow.focus();\n    }\n    event.preventDefault();\n  };\n  var onArrowUpKey = function onArrowUpKey(row, event) {\n    var prevRow = _findPrevSelectableRow(row);\n    if (prevRow) {\n      changeTabIndex(row, prevRow);\n      prevRow.focus();\n    }\n    event.preventDefault();\n  };\n  var onHomeKey = function onHomeKey(row, event) {\n    var firstRow = findFirstSelectableRow(row);\n    if (firstRow) {\n      changeTabIndex(row, firstRow);\n      firstRow.focus();\n    }\n    event.preventDefault();\n  };\n  var onEndKey = function onEndKey(row, event) {\n    var lastRow = findLastSelectableRow(row);\n    if (lastRow) {\n      changeTabIndex(row, lastRow);\n      lastRow.focus();\n    }\n    event.preventDefault();\n  };\n  var onEnterKey = function onEnterKey(row, event, target) {\n    if (!primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.isClickable(target)) {\n      _onClick(event);\n      event.preventDefault();\n    }\n  };\n  var onSpaceKey = function onSpaceKey(row, event, target) {\n    if (!primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.isClickable(target) && !target.readOnly) {\n      _onClick(event);\n      event.preventDefault();\n    }\n  };\n  var onTabKey = function onTabKey(row, event) {\n    var parent = row.parentNode;\n    var rows = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.find(parent, 'tr[data-p-selectable-row=\"true\"]');\n    if (event.code === 'Tab' && rows && rows.length > 0) {\n      var firstSelectedRow = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.findSingle(parent, 'tr[data-p-highlight=\"true\"]');\n      var focusedItem = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.findSingle(parent, 'tr[data-p-selectable-row=\"true\"][tabindex=\"0\"]');\n      if (firstSelectedRow) {\n        firstSelectedRow.tabIndex = '0';\n        focusedItem && focusedItem !== firstSelectedRow && (focusedItem.tabIndex = '-1');\n      } else {\n        rows[0].tabIndex = '0';\n        focusedItem !== rows[0] && (rows[props.rowIndex].tabIndex = '-1');\n      }\n    }\n  };\n  var _onMouseDown = function onMouseDown(event) {\n    props.onRowMouseDown({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var _onMouseUp = function onMouseUp(event) {\n    props.onRowMouseUp({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var _onDragStart = function onDragStart(event) {\n    props.onRowDragStart({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var _onDragOver = function onDragOver(event) {\n    props.onRowDragOver({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var _onDragLeave = function onDragLeave(event) {\n    props.onRowDragLeave({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var _onDragEnd = function onDragEnd(event) {\n    props.onRowDragEnd({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var _onDrop = function onDrop(event) {\n    props.onRowDrop({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var onEditChange = function onEditChange(e, isEditing) {\n    if (props.onRowEditChange) {\n      var editingRows;\n      var dataKey = props.dataKey;\n      var originalEvent = e.originalEvent,\n        data = e.data,\n        index = e.index,\n        newData = e.newData;\n      if (dataKey) {\n        var dataKeyValue = String(primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(data, dataKey));\n        editingRows = props.editingRows ? _objectSpread$a({}, props.editingRows) : {};\n        if (!isEditing) {\n          delete editingRows[dataKeyValue];\n          // if the key value was changed, stop editing for the new key value too\n          var newDataKeyValue = String(primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(newData, dataKey));\n          delete editingRows[newDataKeyValue];\n        } else {\n          editingRows[dataKeyValue] = true;\n        }\n      } else {\n        var editingRowIndex = findIndex(props.editingRows, data);\n        editingRows = props.editingRows ? _toConsumableArray(props.editingRows) : [];\n        if (editingRowIndex !== -1) {\n          editingRows = editingRows.filter(function (val, i) {\n            return i !== editingRowIndex;\n          });\n        } else {\n          editingRows.push(data);\n        }\n      }\n      props.onRowEditChange({\n        originalEvent: originalEvent,\n        data: editingRows,\n        index: index\n      });\n    } else {\n      setEditingState(isEditing);\n    }\n  };\n  var onEditInit = function onEditInit(e) {\n    var event = e.originalEvent;\n    if (props.onRowEditInit) {\n      props.onRowEditInit({\n        originalEvent: event,\n        data: props.rowData,\n        index: props.rowIndex\n      });\n    }\n    onEditChange(e, true);\n    event.preventDefault();\n  };\n  var onEditSave = function onEditSave(e) {\n    var event = e.originalEvent,\n      newData = e.newData;\n    var valid = props.rowEditValidator ? props.rowEditValidator(newData, {\n      props: props.tableProps,\n      rowIndex: props.rowIndex\n    }) : true;\n    if (props.onRowEditSave) {\n      props.onRowEditSave({\n        originalEvent: event,\n        data: props.rowData,\n        index: props.rowIndex,\n        newData: newData,\n        valid: valid\n      });\n    }\n    if (valid) {\n      if (props.onRowEditComplete) {\n        props.onRowEditComplete(e);\n      }\n      onEditChange(e, false);\n    }\n    event.preventDefault();\n  };\n  var onEditCancel = function onEditCancel(e) {\n    var event = e.originalEvent;\n    if (props.onRowEditCancel) {\n      props.onRowEditCancel({\n        originalEvent: event,\n        data: props.rowData,\n        index: props.rowIndex\n      });\n    }\n    onEditChange(e, false);\n    event.preventDefault();\n  };\n  var equalsDataCell = function equalsDataCell(data) {\n    return props.compareSelectionBy === 'equals' ? data === props.rowData : primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.equals(data, props.rowData, props.dataKey);\n  };\n  var equalsCell = function equalsCell(selectedCell, field, colIndex) {\n    return selectedCell && (selectedCell.rowIndex === props.rowIndex || equalsDataCell(selectedCell.rowData)) && (selectedCell.field === field || selectedCell.cellIndex === colIndex);\n  };\n  var findIndexCell = function findIndexCell(collection, field, colIndex) {\n    return (collection || []).findIndex(function (data) {\n      return equalsCell(data, field, colIndex);\n    });\n  };\n  var isCellSelected = function isCellSelected(selection, field, colIndex) {\n    return selection ? selection instanceof Array ? findIndexCell(selection, field, colIndex) > -1 : equalsCell(selection, field, colIndex) : false;\n  };\n  var onCheckboxChange = function onCheckboxChange(event) {\n    props.onCheckboxChange({\n      originalEvent: event,\n      data: props.rowData,\n      index: props.rowIndex\n    });\n  };\n  var editingKey = props.dataKey ? props.rowData && props.rowData[props.dataKey] || props.rowIndex : props.rowIndex;\n  var getVirtualScrollerOption = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (option) {\n    return props.virtualScrollerOptions ? props.virtualScrollerOptions[option] : null;\n  }, [props.virtualScrollerOptions]);\n  var getEditingRowData = function getEditingRowData() {\n    return props.editingMeta && props.editingMeta[editingKey] ? props.editingMeta[editingKey].data : props.rowData;\n  };\n  var getTabIndexCell = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (cellSelected, cellIndex) {\n    return props.allowCellSelection ? cellSelected ? 0 : props.rowIndex === 0 && cellIndex === 0 ? props.tabIndex : -1 : null;\n  }, [props.allowCellSelection, props.rowIndex, props.tabIndex]);\n  var findNextSelectableCell = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (cell) {\n    var nextCell = cell.nextElementSibling;\n    return nextCell ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(nextCell, 'data-p-selectable-cell') ? nextCell : findNextSelectableCell(nextCell) : null;\n  }, []);\n  var findPrevSelectableCell = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (cell) {\n    var prevCell = cell.previousElementSibling;\n    return prevCell ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(prevCell, 'data-p-selectable-cell') ? prevCell : findPrevSelectableCell(prevCell) : null;\n  }, []);\n  var findDownSelectableCell = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (cell, cellIndex) {\n    var downRow = cell.parentElement.nextElementSibling;\n    var downCell = downRow ? downRow.children[cellIndex] : null;\n    return downRow && downCell ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(downRow, 'data-p-selectable-row') && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(downCell, 'data-p-selectable-cell') ? downCell : findDownSelectableCell(downCell) : null;\n  }, []);\n  var findUpSelectableCell = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (cell, cellIndex) {\n    var upRow = cell.parentElement.previousElementSibling;\n    var upCell = upRow ? upRow.children[cellIndex] : null;\n    return upRow && upCell ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(upRow, 'data-p-selectable-row') && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(upCell, 'data-p-selectable-cell') ? upCell : findUpSelectableCell(upCell) : null;\n  }, []);\n  var focusOnElement = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (focusTimeoutRef, editingState, elementRef, keyHelperRef) {\n    clearTimeout(focusTimeoutRef.current);\n    focusTimeoutRef.current = setTimeout(function () {\n      if (editingState) {\n        var focusableEl = props.editMode === 'cell' ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getFirstFocusableElement(elementRef.current, ':not([data-pc-section=\"editorkeyhelperlabel\"])') : primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.findSingle(elementRef.current, '[data-p-row-editor-save=\"true\"]');\n        focusableEl && focusableEl.focus();\n      }\n      keyHelperRef.current && (keyHelperRef.current.tabIndex = editingState ? -1 : 0);\n    }, 1);\n  }, [props.editMode]);\n  var focusOnInit = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (initFocusTimeoutRef, elementRef) {\n    clearTimeout(initFocusTimeoutRef.current);\n    initFocusTimeoutRef.current = setTimeout(function () {\n      var focusableEl = props.editMode === 'row' ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.findSingle(elementRef.current, '[data-p-row-editor-init=\"true\"]') : null;\n      focusableEl && focusableEl.focus();\n    }, 1);\n  }, [props.editMode]);\n  var updateStickyPosition = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (elementRef, frozen, alignFrozen, styleObjectState, setStyleObjectState) {\n    if (frozen) {\n      var styleObject = _objectSpread$a({}, styleObjectState);\n      if (alignFrozen === 'right') {\n        var right = 0;\n        var next = elementRef.current && elementRef.current.nextElementSibling;\n        if (next && next.classList.contains('p-frozen-column')) {\n          right = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);\n        }\n        styleObject.right = right + 'px';\n      } else {\n        var left = 0;\n        var prev = elementRef.current && elementRef.current.previousElementSibling;\n        if (prev && prev.classList.contains('p-frozen-column')) {\n          left = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n        }\n        styleObject.left = left + 'px';\n      }\n      var isSameStyle = styleObjectState.left === styleObject.left && styleObjectState.right === styleObject.right;\n      !isSameStyle && setStyleObjectState(styleObject);\n    }\n  }, []);\n  var onCellClick = function onCellClick(event, params, isEditable, editingState, setEditingState, selfClick, column, bindDocumentClickListener, overlayEventListener, isOutsideClicked) {\n    if (props.editMode !== 'row' && isEditable && !editingState && (props.selectOnEdit || !props.selectOnEdit && props.isRowSelected)) {\n      selfClick.current = true;\n      var onBeforeCellEditShow = getColumnProp(column, 'onBeforeCellEditShow');\n      var onCellEditInit = getColumnProp(column, 'onCellEditInit');\n      var cellEditValidatorEvent = getColumnProp(column, 'cellEditValidatorEvent');\n      if (onBeforeCellEditShow) {\n        // if user returns false do not show the editor\n        if (onBeforeCellEditShow(params) === false) {\n          return;\n        }\n\n        // if user prevents default stop the editor\n        if (event && event.defaultPrevented) {\n          return;\n        }\n      }\n\n      // If the data is sorted using sort icon, it has been added to wait for the sort operation when any cell is wanted to be opened.\n      setTimeout(function () {\n        setEditingState(true);\n        if (onCellEditInit) {\n          if (onCellEditInit(params) === false) {\n            return;\n          }\n\n          // if user prevents default stop the editor\n          if (event && event.defaultPrevented) {\n            return;\n          }\n        }\n        if (cellEditValidatorEvent === 'click') {\n          bindDocumentClickListener();\n          overlayEventListener.current = function (e) {\n            if (!isOutsideClicked(e.target)) {\n              selfClick.current = true;\n            }\n          };\n          primereact_overlayservice__WEBPACK_IMPORTED_MODULE_16__.OverlayService.on('overlay-click', overlayEventListener.current);\n        }\n      }, 1);\n    }\n    if (props.allowCellSelection && props.onCellClick) {\n      props.onCellClick(params);\n    }\n  };\n  var createContent = function createContent() {\n    return props.columns.map(function (col, i) {\n      if (shouldRenderBodyCell(props.value, col, props.index)) {\n        var key = \"\".concat(props.rowIndex, \"_\").concat(getColumnProp(col, 'columnKey') || getColumnProp(col, 'field'), \"_\").concat(i);\n        var rowSpan = props.rowGroupMode === 'rowspan' ? calculateRowGroupSize(props.value, col, props.index) : null;\n        var field = getColumnProp(col, 'field') || \"field_\".concat(i);\n        var resolveFieldData = function resolveFieldData(data) {\n          return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(data || props.rowData, field);\n        };\n        var selectionMode = getColumnProp(col, 'selectionMode');\n        var cellProps = mergeProps({\n          hostName: props.hostName,\n          allowCellSelection: props.allowCellSelection,\n          cellMemo: props.cellMemo,\n          cellMemoProps: props.cellMemoProps,\n          cellMemoPropsDepth: props.cellMemoPropsDepth,\n          cellClassName: props.cellClassName,\n          checkIcon: props.checkIcon,\n          collapsedRowIcon: props.collapsedRowIcon,\n          field: field,\n          resolveFieldData: resolveFieldData,\n          column: col,\n          cProps: props.colsProps[i],\n          dataKey: props.dataKey,\n          editMode: props.editMode,\n          editing: editing,\n          editingMeta: props.editingMeta,\n          onEditingMetaChange: props.onEditingMetaChange,\n          editingKey: editingKey,\n          getEditingRowData: getEditingRowData,\n          expanded: props.expanded,\n          expandedRowIcon: props.expandedRowIcon,\n          frozenRow: props.frozenRow,\n          frozenCol: getColumnProp(col, 'frozen'),\n          alignFrozenCol: getColumnProp(col, 'alignFrozen'),\n          index: i,\n          isSelectable: props.isSelectable,\n          onCheckboxChange: onCheckboxChange,\n          onClick: onCellClick,\n          onMouseDown: props.onCellMouseDown,\n          onMouseUp: props.onCellMouseUp,\n          onRadioChange: props.onRadioChange,\n          onRowEditCancel: onEditCancel,\n          onRowEditInit: onEditInit,\n          onRowEditSave: onEditSave,\n          onRowToggle: props.onRowToggle,\n          responsiveLayout: props.responsiveLayout,\n          rowData: props.rowData,\n          rowEditorCancelIcon: props.rowEditorCancelIcon,\n          rowEditorInitIcon: props.rowEditorInitIcon,\n          rowEditorSaveIcon: props.rowEditorSaveIcon,\n          rowIndex: props.rowIndex,\n          rowSpan: rowSpan,\n          selectOnEdit: props.selectOnEdit,\n          isRowSelected: isRowSelected,\n          isCellSelected: isCellSelected(props.selection, field, i),\n          selectionAriaLabel: props.tableProps.selectionAriaLabel,\n          showRowReorderElement: props.showRowReorderElement,\n          showSelectionElement: props.showSelectionElement,\n          tabIndex: props.tabIndex,\n          getTabIndex: getTabIndexCell,\n          tableProps: props.tableProps,\n          tableSelector: props.tableSelector,\n          value: props.value,\n          getVirtualScrollerOption: getVirtualScrollerOption,\n          ptCallbacks: props.ptCallbacks,\n          metaData: props.metaData,\n          unstyled: props.unstyled,\n          findNextSelectableCell: findNextSelectableCell,\n          findPrevSelectableCell: findPrevSelectableCell,\n          findDownSelectableCell: findDownSelectableCell,\n          findUpSelectableCell: findUpSelectableCell,\n          focusOnElement: focusOnElement,\n          focusOnInit: focusOnInit,\n          updateStickyPosition: updateStickyPosition\n        });\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n          key: key\n        }, selectionMode ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(RadioCheckCell, cellProps) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(BodyCell, cellProps));\n      }\n      return null;\n    });\n  };\n  var rowClassName = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getPropValue(props.rowClassName, props.rowData, {\n    props: props.tableProps\n  });\n  var style = {\n    height: props.virtualScrollerOptions ? props.virtualScrollerOptions.itemSize : undefined\n  };\n  var content = createContent();\n  var tabIndex = getTabIndex();\n  var rowProps = mergeProps({\n    role: 'row',\n    tabIndex: tabIndex,\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(cx('bodyRow', {\n      rowProps: props\n    })),\n    style: style,\n    onMouseDown: function onMouseDown(e) {\n      return _onMouseDown(e);\n    },\n    onMouseUp: function onMouseUp(e) {\n      return _onMouseUp(e);\n    },\n    onMouseEnter: function onMouseEnter(e) {\n      return _onMouseEnter(e);\n    },\n    onMouseLeave: function onMouseLeave(e) {\n      return _onMouseLeave(e);\n    },\n    onClick: function onClick(e) {\n      return _onClick(e);\n    },\n    onDoubleClick: function onDoubleClick(e) {\n      return _onDoubleClick(e);\n    },\n    onPointerDown: function onPointerDown(e) {\n      return _onPointerDown(e);\n    },\n    onPointerUp: function onPointerUp(e) {\n      return _onPointerUp(e);\n    },\n    onContextMenu: function onContextMenu(e) {\n      return onRightClick(e);\n    },\n    onTouchEnd: function onTouchEnd(e) {\n      return _onTouchEnd(e);\n    },\n    onKeyDown: function onKeyDown(e) {\n      return _onKeyDown(e);\n    },\n    onDragStart: function onDragStart(e) {\n      return _onDragStart(e);\n    },\n    onDragOver: function onDragOver(e) {\n      return _onDragOver(e);\n    },\n    onDragLeave: function onDragLeave(e) {\n      return _onDragLeave(e);\n    },\n    onDragEnd: function onDragEnd(e) {\n      return _onDragEnd(e);\n    },\n    onDrop: function onDrop(e) {\n      return _onDrop(e);\n    },\n    'aria-selected': props !== null && props !== void 0 && props.selectionMode ? props.selected : null,\n    'data-p-selectable-row': props.allowRowSelection && props.isSelectable({\n      data: props.rowData,\n      index: props.rowIndex\n    }),\n    'data-p-highlight': props.selected,\n    'data-p-highlight-contextmenu': props.contextMenuSelected\n  }, getBodyRowPTOptions('bodyRow'), {\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(rowClassName) // #5983 must be last so all unstyled merging takes place first\n  });\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"tr\", rowProps, content);\n});\nBodyRow.displayName = 'BodyRow';\nfunction ownKeys$9(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$9(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$9(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar RowTogglerButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var _props$ptCallbacks = props.ptCallbacks,\n    ptm = _props$ptCallbacks.ptm,\n    ptmo = _props$ptCallbacks.ptmo,\n    cx = _props$ptCallbacks.cx;\n  _props$ptCallbacks.isUnstyled;\n  var _onClick = function onClick(event) {\n    props.onClick({\n      originalEvent: event,\n      data: props.rowData\n    });\n  };\n  var getColumnProps = function getColumnProps() {\n    return ColumnBase.getCProps(props.column);\n  };\n  var getColumnPTOptions = function getColumnPTOptions(key) {\n    var cProps = getColumnProps();\n    var columnMetaData = {\n      props: getColumnProps(),\n      parent: props.metaData,\n      hostName: props.hostName\n    };\n    return mergeProps(ptm(\"column.\".concat(key), {\n      column: columnMetaData\n    }), ptm(\"column.\".concat(key), columnMetaData), ptmo(cProps, key, columnMetaData));\n  };\n  var rowGroupTogglerIconProps = mergeProps({\n    className: cx('rowGroupTogglerIcon'),\n    'aria-hidden': true\n  }, ptm('rowGroupTogglerIcon'), getColumnPTOptions('rowGroupTogglerIcon'));\n  var icon = props.expanded ? props.expandedRowIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_chevrondown__WEBPACK_IMPORTED_MODULE_12__.ChevronDownIcon, rowGroupTogglerIconProps) : props.collapsedRowIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_chevronright__WEBPACK_IMPORTED_MODULE_13__.ChevronRightIcon, rowGroupTogglerIconProps);\n  var togglerIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(icon, _objectSpread$9({}, rowGroupTogglerIconProps), {\n    props: props\n  });\n  var label = props.expanded ? (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('collapseLabel') : (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('expandLabel');\n  var rowGroupTogglerProps = mergeProps({\n    type: 'button',\n    onClick: function onClick(e) {\n      return _onClick(e);\n    },\n    className: cx('rowGroupToggler'),\n    tabIndex: props.tabIndex,\n    'aria-label': label\n  }, ptm('rowGroupToggler'), getColumnPTOptions('rowGroupToggler'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", rowGroupTogglerProps, togglerIcon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_17__.Ripple, null));\n});\nRowTogglerButton.displayName = 'RowTogglerButton';\nvar _excluded$2 = [\"originalEvent\"];\nfunction ownKeys$8(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$8(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar TableBody = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var _props$ptCallbacks = props.ptCallbacks,\n    ptm = _props$ptCallbacks.ptm,\n    ptmo = _props$ptCallbacks.ptmo,\n    cx = _props$ptCallbacks.cx,\n    isUnstyled = _props$ptCallbacks.isUnstyled;\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState({}),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    rowGroupHeaderStyleObjectState = _React$useState2[0],\n    setRowGroupHeaderStyleObjectState = _React$useState2[1];\n  var getColumnProps = function getColumnProps(column) {\n    return ColumnBase.getCProps(column);\n  };\n  var cProps = getColumnProps(props.column);\n  var colsProps = props.columns ? props.columns.map(function (col) {\n    return getColumnProps(col);\n  }) : [];\n  var getColumnPTOptions = function getColumnPTOptions(key) {\n    var columnMetaData = {\n      props: cProps,\n      parent: props.metaData,\n      hostName: props.hostName,\n      state: {\n        rowGroupHeaderStyleObject: rowGroupHeaderStyleObjectState\n      }\n    };\n    return mergeProps(ptm(\"column.\".concat(key), {\n      column: columnMetaData\n    }), ptm(\"column.\".concat(key), columnMetaData), ptmo(cProps, key, columnMetaData));\n  };\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var refCallback = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (el) {\n    elementRef.current = el;\n    props.virtualScrollerContentRef && props.virtualScrollerContentRef(el);\n  }, [props]);\n  var dragSelectionHelper = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var initialDragPosition = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var anchorRowIndex = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var anchorCellIndex = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var rangeRowIndex = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var anchorRowFirst = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var rowTouched = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var rowDragging = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var draggedRowIndex = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var droppedRowIndex = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var isSubheaderGrouping = props.rowGroupMode && props.rowGroupMode === 'subheader';\n  var isRadioSelectionMode = props.selectionMode === 'radiobutton';\n  var isCheckboxSelectionMode = props.selectionMode === 'checkbox';\n  var isRadioSelectionModeInColumn = props.selectionModeInColumn === 'single';\n  var isCheckboxSelectionModeInColumn = props.selectionModeInColumn === 'multiple';\n  var equals = function equals(data1, data2) {\n    if (allowCellSelection()) {\n      return (data1.rowIndex === data2.rowIndex || data1.rowData === data2.rowData) && (data1.field === data2.field || data1.cellIndex === data2.cellIndex);\n    }\n    return props.compareSelectionBy === 'equals' ? data1 === data2 : primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.equals(data1, data2, props.dataKey);\n  };\n  var isSelectionEnabled = function isSelectionEnabled() {\n    return props.selectionMode || props.selectionModeInColumn !== null || props.columns && props.columns.some(function (col) {\n      return col && !!getColumnProp(col, 'selectionMode');\n    });\n  };\n  var isSingleSelection = function isSingleSelection() {\n    return props.selectionMode === 'single' && !isCheckboxSelectionModeInColumn || !isRadioSelectionMode && isRadioSelectionModeInColumn;\n  };\n  var isMultipleSelection = function isMultipleSelection() {\n    return props.selectionMode === 'multiple' && !isRadioSelectionModeInColumn || isCheckboxSelectionModeInColumn;\n  };\n  var isRadioOnlySelection = function isRadioOnlySelection() {\n    return isRadioSelectionMode && isRadioSelectionModeInColumn;\n  };\n  var isCheckboxOnlySelection = function isCheckboxOnlySelection() {\n    return isCheckboxSelectionMode && isCheckboxSelectionModeInColumn;\n  };\n  var isSelected = function isSelected(rowData) {\n    if (rowData && props.selection) {\n      return props.selection instanceof Array ? findIndex(props.selection, rowData) > -1 : equals(rowData, props.selection);\n    }\n    return false;\n  };\n  var isContextMenuSelected = function isContextMenuSelected(rowData) {\n    if (rowData && props.contextMenuSelection) {\n      return equals(rowData, props.contextMenuSelection);\n    }\n    return false;\n  };\n  var isSelectable = function isSelectable(options) {\n    return props.isDataSelectable ? props.isDataSelectable(options) : true;\n  };\n  var isRowExpanded = function isRowExpanded(rowData) {\n    if (rowData && props.expandedRows) {\n      if (isSubheaderGrouping && props.expandableRowGroups) {\n        return isRowGroupExpanded(rowData);\n      }\n      if (props.dataKey) {\n        var rowId = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(rowData, props.dataKey);\n        var expanded = false;\n        if (props.expandedRows) {\n          if (Array.isArray(props.expandedRows)) {\n            expanded = props.expandedRows.some(function (row) {\n              return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(row, props.dataKey) === rowId;\n            });\n          } else {\n            expanded = props.expandedRows[rowId] !== undefined;\n          }\n        }\n        return expanded;\n      }\n      return findIndex(props.expandedRows, rowData) !== -1;\n    }\n    return false;\n  };\n  var isRowGroupExpanded = function isRowGroupExpanded(rowData) {\n    if (props.dataKey === props.groupRowsBy) {\n      return Object.keys(props.expandedRows).some(function (data) {\n        return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.equals(data, primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(rowData, props.dataKey));\n      });\n    }\n    return props.expandedRows.some(function (data) {\n      return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.equals(data, rowData, props.groupRowsBy);\n    });\n  };\n  var isRowEditing = function isRowEditing(rowData) {\n    if (props.editMode === 'row' && rowData && props.editingRows) {\n      if (props.dataKey) {\n        return props.editingRows ? props.editingRows[primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(rowData, props.dataKey)] !== undefined : false;\n      }\n      return findIndex(props.editingRows, rowData) !== -1;\n    }\n    return false;\n  };\n  var allowDrag = function allowDrag(event) {\n    return props.dragSelection && isMultipleSelection() && !event.originalEvent.shiftKey;\n  };\n  var allowRowDrag = function allowRowDrag(event) {\n    return !allowCellSelection() && allowDrag(event) || props.reorderableRows;\n  };\n  var allowCellDrag = function allowCellDrag(event) {\n    return allowCellSelection() && allowDrag(event);\n  };\n  var allowSelection = function allowSelection(event) {\n    return !primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.isClickable(event.originalEvent.target);\n  };\n  var metaKeySelectionRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(props.metaKeySelection);\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    metaKeySelectionRef.current = props.metaKeySelection;\n  }, [props.metaKeySelection]);\n  var allowMetaKeySelection = function allowMetaKeySelection(event) {\n    return !rowTouched.current && (!metaKeySelectionRef.current || metaKeySelectionRef.current && (event.originalEvent.metaKey || event.originalEvent.ctrlKey));\n  };\n  var allowRangeSelection = function allowRangeSelection(event) {\n    return isMultipleSelection() && event.originalEvent.shiftKey && anchorRowIndex.current !== null;\n  };\n  var allowRowSelection = function allowRowSelection() {\n    return (props.selectionMode || props.selectionModeInColumn) && !isRadioOnlySelection() && !isCheckboxOnlySelection();\n  };\n  var allowCellSelection = function allowCellSelection() {\n    return props.cellSelection && !isRadioSelectionModeInColumn && !isCheckboxSelectionModeInColumn;\n  };\n  var getColumnsLength = function getColumnsLength() {\n    return props.columns ? props.columns.length : 0;\n  };\n  var getColumnProp = function getColumnProp(column, name) {\n    return ColumnBase.getCProp(column, name);\n  };\n  var getVirtualScrollerOption = function getVirtualScrollerOption(option, options) {\n    options = options || props.virtualScrollerOptions;\n    return options ? options[option] : null;\n  };\n  var findIndex = function findIndex(collection, rowData) {\n    return (collection || []).findIndex(function (data) {\n      return equals(rowData, data);\n    });\n  };\n  var rowGroupHeaderStyle = function rowGroupHeaderStyle() {\n    if (props.scrollable) {\n      return {\n        top: rowGroupHeaderStyleObjectState.top\n      };\n    }\n    return null;\n  };\n  var getRowKey = function getRowKey(rowData, index) {\n    return props.dataKey ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(rowData, props.dataKey) : index;\n  };\n  var shouldRenderRowGroupHeader = function shouldRenderRowGroupHeader(value, rowData, i) {\n    var currentRowFieldData = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(rowData, props.groupRowsBy);\n    var prevRowData = value[i - 1];\n    if (prevRowData) {\n      var previousRowFieldData = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(prevRowData, props.groupRowsBy);\n      return !primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.deepEquals(currentRowFieldData, previousRowFieldData);\n    }\n    return true;\n  };\n  var shouldRenderRowGroupFooter = function shouldRenderRowGroupFooter(value, rowData, i, expanded) {\n    if (props.expandableRowGroups && !expanded) {\n      return false;\n    }\n    var currentRowFieldData = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(rowData, props.groupRowsBy);\n    var nextRowData = value[i + 1];\n    if (nextRowData) {\n      var nextRowFieldData = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(nextRowData, props.groupRowsBy);\n      return !primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.deepEquals(currentRowFieldData, nextRowFieldData);\n    }\n    return true;\n  };\n  var updateFrozenRowStickyPosition = function updateFrozenRowStickyPosition() {\n    elementRef.current.style.top = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterHeight(elementRef.current.previousElementSibling) + 'px';\n  };\n  var updateFrozenRowGroupHeaderStickyPosition = function updateFrozenRowGroupHeaderStickyPosition() {\n    var tableHeaderHeight = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterHeight(elementRef.current.previousElementSibling);\n    var top = tableHeaderHeight + 'px';\n    if (rowGroupHeaderStyleObjectState.top !== top) {\n      setRowGroupHeaderStyleObjectState({\n        top: top\n      });\n    }\n  };\n  var selectionRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(props.selection);\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    selectionRef.current = props.selection;\n  }, [props.selection]);\n  var onSingleSelection = function onSingleSelection(_ref) {\n    var originalEvent = _ref.originalEvent,\n      data = _ref.data,\n      index = _ref.index,\n      toggleable = _ref.toggleable,\n      type = _ref.type;\n    if (!isSelectable({\n      data: data,\n      index: index\n    })) {\n      return;\n    }\n    var selected = isSelected(data);\n    var currentSelection = selectionRef.current || [];\n    var newSelection = currentSelection;\n    if (selected) {\n      if (toggleable) {\n        newSelection = null;\n        onUnselect({\n          originalEvent: originalEvent,\n          data: data,\n          type: type\n        });\n      }\n    } else {\n      newSelection = data;\n      onSelect({\n        originalEvent: originalEvent,\n        data: data,\n        type: type\n      });\n    }\n    focusOnElement(originalEvent, true);\n    if (props.onSelectionChange && newSelection !== currentSelection) {\n      props.onSelectionChange({\n        originalEvent: originalEvent,\n        value: newSelection,\n        type: type\n      });\n    }\n  };\n  var onMultipleSelection = function onMultipleSelection(_ref2) {\n    var originalEvent = _ref2.originalEvent,\n      data = _ref2.data,\n      index = _ref2.index,\n      toggleable = _ref2.toggleable,\n      type = _ref2.type;\n    if (!isSelectable({\n      data: data,\n      index: index\n    })) {\n      return;\n    }\n    var selected = isSelected(data);\n    var currentSelection = selectionRef.current || [];\n    var newSelection = currentSelection;\n    if (selected) {\n      if (toggleable) {\n        var selectionIndex = findIndex(currentSelection, data);\n        newSelection = currentSelection.filter(function (val, i) {\n          return i !== selectionIndex;\n        });\n        onUnselect({\n          originalEvent: originalEvent,\n          data: data,\n          type: type\n        });\n      } else if (currentSelection.length) {\n        currentSelection.forEach(function (d) {\n          return onUnselect({\n            originalEvent: originalEvent,\n            data: d,\n            type: type\n          });\n        });\n        newSelection = [data];\n        onSelect({\n          originalEvent: originalEvent,\n          data: data,\n          type: type\n        });\n      }\n    } else {\n      newSelection = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isObject(currentSelection) ? [currentSelection] : currentSelection;\n      newSelection = toggleable && isMultipleSelection() ? [].concat(_toConsumableArray(newSelection), [data]) : [data];\n      onSelect({\n        originalEvent: originalEvent,\n        data: data,\n        type: type\n      });\n    }\n    if (props.onSelectionChange && newSelection !== currentSelection) {\n      props.onSelectionChange({\n        originalEvent: originalEvent,\n        value: newSelection,\n        type: type\n      });\n    }\n  };\n  var onRangeSelection = function onRangeSelection(event, type) {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.clearSelection();\n    rangeRowIndex.current = allowCellSelection() ? event.rowIndex : event.index;\n    var selection = selectRange(event);\n    if (props.onSelectionChange && selection !== props.selection) {\n      props.onSelectionChange({\n        originalEvent: event.originalEvent,\n        value: selection,\n        type: type\n      });\n    }\n    anchorRowIndex.current = rangeRowIndex.current;\n    anchorCellIndex.current = event.cellIndex;\n  };\n  var selectRange = function selectRange(event) {\n    var rangeStart;\n    var rangeEnd;\n    var isAllowCellSelection = allowCellSelection();\n    if (rangeRowIndex.current > anchorRowIndex.current) {\n      rangeStart = anchorRowIndex.current;\n      rangeEnd = rangeRowIndex.current;\n    } else if (rangeRowIndex.current < anchorRowIndex.current) {\n      rangeStart = rangeRowIndex.current;\n      rangeEnd = anchorRowIndex.current;\n    } else {\n      rangeStart = rangeEnd = rangeRowIndex.current;\n    }\n    return isAllowCellSelection ? selectRangeOnCell(event, rangeStart, rangeEnd) : selectRangeOnRow(event, rangeStart, rangeEnd);\n  };\n  var selectRangeOnRow = function selectRangeOnRow(event, rowRangeStart, rowRangeEnd) {\n    var selection = [];\n    for (var i = rowRangeStart; i <= rowRangeEnd; i++) {\n      var rangeRowData = props.processedData[i];\n      if (!isSelectable({\n        data: rangeRowData,\n        index: i\n      })) {\n        continue;\n      }\n      selection.push(rangeRowData);\n      onSelect({\n        originalEvent: event.originalEvent,\n        data: rangeRowData,\n        type: 'row'\n      });\n    }\n    return selection;\n  };\n  var selectRangeOnCell = function selectRangeOnCell(event, rowRangeStart, rowRangeEnd) {\n    var cellRangeStart;\n    var cellRangeEnd;\n    var cellIndex = event.cellIndex;\n    if (cellIndex > anchorCellIndex.current) {\n      cellRangeStart = anchorCellIndex.current;\n      cellRangeEnd = cellIndex;\n    } else if (cellIndex < anchorCellIndex.current) {\n      cellRangeStart = cellIndex;\n      cellRangeEnd = anchorCellIndex.current;\n    } else {\n      cellRangeStart = cellRangeEnd = cellIndex;\n    }\n    var value = props.value;\n    var selection = [];\n    for (var i = rowRangeStart; i <= rowRangeEnd; i++) {\n      var rowData = value[i];\n      var columns = props.columns;\n      var rowIndex = props.paginator ? i + props.first : i;\n      for (var j = cellRangeStart; j <= cellRangeEnd; j++) {\n        var field = getColumnProp(columns[j], 'field');\n        var _value = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(rowData, field);\n        var rangeRowData = {\n          value: _value,\n          field: field,\n          rowData: rowData,\n          rowIndex: rowIndex,\n          cellIndex: j,\n          selected: true\n        };\n        if (!isSelectable({\n          data: rangeRowData,\n          index: i\n        })) {\n          continue;\n        }\n        selection.push(rangeRowData);\n        onSelect({\n          originalEvent: event.originalEvent,\n          data: rangeRowData,\n          type: 'cell'\n        });\n      }\n    }\n    return selection;\n  };\n  var onSelect = function onSelect(event) {\n    if (allowCellSelection()) {\n      props.onCellSelect && props.onCellSelect(_objectSpread$8(_objectSpread$8({\n        originalEvent: event.originalEvent\n      }, event.data), {}, {\n        type: event.type\n      }));\n    } else {\n      props.onRowSelect && props.onRowSelect(event);\n    }\n  };\n  var onUnselect = function onUnselect(event) {\n    if (allowCellSelection()) {\n      props.onCellUnselect && props.onCellUnselect(_objectSpread$8(_objectSpread$8({\n        originalEvent: event.originalEvent\n      }, event.data), {}, {\n        type: event.type\n      }));\n    } else {\n      props.onRowUnselect && props.onRowUnselect(event);\n    }\n  };\n  var enableDragSelection = function enableDragSelection(event) {\n    if (props.dragSelection && !dragSelectionHelper.current) {\n      dragSelectionHelper.current = document.createElement('div');\n      dragSelectionHelper.current.setAttribute('p-datatable-drag-selection-helper', 'true');\n      !isUnstyled() && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.addClass(dragSelectionHelper.current, 'p-datatable-drag-selection-helper');\n      initialDragPosition.current = {\n        x: event.clientX,\n        y: event.clientY\n      };\n      dragSelectionHelper.current.style.top = \"\".concat(event.pageY, \"px\");\n      dragSelectionHelper.current.style.left = \"\".concat(event.pageX, \"px\");\n      bindDragSelectionEvents();\n    }\n  };\n  var focusOnElement = function focusOnElement(event, isFocused) {\n    var target = event.currentTarget;\n    if (!allowCellSelection() && props.selectionAutoFocus) {\n      if (isCheckboxSelectionModeInColumn) {\n        var checkbox = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.findSingle(target, 'td[data-p-selection-column=\"true\"] [data-pc-section=\"checkbox\"]');\n        checkbox && checkbox.focus();\n      } else if (isRadioSelectionModeInColumn) {\n        var radio = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.findSingle(target, 'td[data-p-selection-column=\"true\"] input[type=\"radio\"]');\n        radio && radio.focus();\n      }\n    }\n    !isFocused && target && target.focus();\n  };\n  var changeTabIndex = function changeTabIndex(event, type) {\n    var target = event.currentTarget;\n    var isSelectable = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(target, type === 'cell' ? 'data-p-selectable-cell' : 'data-p-selectable-row') === true;\n    if (isSelectable) {\n      var selector = type === 'cell' ? 'tr > td' : 'tr';\n      var tabbableEl = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.findSingle(elementRef.current, \"\".concat(selector, \"[tabindex=\\\"\").concat(props.tabIndex, \"\\\"]\"));\n      if (tabbableEl && target) {\n        tabbableEl.tabIndex = -1;\n        target.tabIndex = props.tabIndex;\n      }\n    }\n  };\n  var onRowClick = function onRowClick(event) {\n    if (event.defaultPrevented || event.originalEvent && event.originalEvent.defaultPrevented || allowCellSelection() || !allowSelection(event)) {\n      return;\n    }\n    props.onRowClick && props.onRowClick(event);\n    if (allowRowSelection()) {\n      if (allowRangeSelection(event)) {\n        onRangeSelection(event, 'row');\n      } else {\n        var toggleable = isRadioSelectionModeInColumn || isCheckboxSelectionModeInColumn || allowMetaKeySelection(event);\n        anchorRowIndex.current = event.index;\n        rangeRowIndex.current = event.index;\n        anchorRowFirst.current = props.first;\n        if (isSingleSelection()) {\n          onSingleSelection(_objectSpread$8(_objectSpread$8({}, event), {}, {\n            toggleable: toggleable,\n            type: 'row'\n          }));\n        } else {\n          onMultipleSelection(_objectSpread$8(_objectSpread$8({}, event), {}, {\n            toggleable: toggleable,\n            type: 'row'\n          }));\n        }\n      }\n      changeTabIndex(event.originalEvent, 'row');\n    } else {\n      focusOnElement(event.originalEvent);\n    }\n    rowTouched.current = false;\n  };\n  var onRowDoubleClick = function onRowDoubleClick(e) {\n    var event = e.originalEvent;\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.isClickable(event.target)) {\n      return;\n    }\n    if (props.onRowDoubleClick) {\n      props.onRowDoubleClick(e);\n    }\n  };\n  var onRowPointerDown = function onRowPointerDown(e) {\n    var event = e.originalEvent;\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.isClickable(event.target)) {\n      return;\n    }\n    if (props.onRowPointerDown) {\n      props.onRowPointerDown(e);\n    }\n  };\n  var onRowPointerUp = function onRowPointerUp(e) {\n    var event = e.originalEvent;\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.isClickable(event.target)) {\n      return;\n    }\n    if (props.onRowPointerUp) {\n      props.onRowPointerUp(e);\n    }\n  };\n  var onRowRightClick = function onRowRightClick(event) {\n    if (props.onContextMenu || props.onContextMenuSelectionChange) {\n      var hasSelection = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(props.selection);\n      var data = event.data;\n      if (hasSelection) {\n        primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.clearSelection();\n      }\n      if (props.onContextMenuSelectionChange) {\n        props.onContextMenuSelectionChange({\n          originalEvent: event.originalEvent,\n          value: data,\n          index: event.index\n        });\n      }\n      if (props.onContextMenu) {\n        props.onContextMenu({\n          originalEvent: event.originalEvent,\n          data: data,\n          index: event.index\n        });\n      }\n      event.originalEvent.preventDefault();\n    }\n  };\n  var onRowMouseEnter = function onRowMouseEnter(event) {\n    props.onRowMouseEnter && props.onRowMouseEnter(event);\n  };\n  var onRowMouseLeave = function onRowMouseLeave(event) {\n    props.onRowMouseLeave && props.onRowMouseLeave(event);\n  };\n  var onRowTouchEnd = function onRowTouchEnd() {\n    rowTouched.current = true;\n  };\n  var onRowMouseDown = function onRowMouseDown(e) {\n    var event = e.originalEvent;\n    var isDraggableHandle = isUnstyled() ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(event.target, 'data-pc-section') === 'rowreordericon' || event.target.closest('[data-pc-section=\"rowreordericon\"]') : primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.hasClass(event.target, 'p-datatable-reorderablerow-handle') || event.target.closest('.p-datatable-reorderablerow-handle');\n    event.currentTarget.draggable = isDraggableHandle;\n    //event.target.draggable = isDraggableHandle;\n\n    if (allowRowDrag(e)) {\n      enableDragSelection(event);\n      anchorRowIndex.current = e.index;\n      rangeRowIndex.current = e.index;\n      anchorRowFirst.current = props.first;\n    }\n  };\n  var onRowMouseUp = function onRowMouseUp(event) {\n    var isSameRow = event.index === anchorRowIndex.current;\n    if (allowRowDrag(event) && !isSameRow) {\n      onRangeSelection(event, 'row');\n    }\n  };\n  var expandedRowsRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(props.expandedRows);\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    expandedRowsRef.current = props.expandedRows;\n  }, [props.expandedRows]);\n  var onRowToggle = function onRowToggle(event) {\n    var expandedRows;\n    var dataKey = props.dataKey;\n    var hasDataKey = props.groupRowsBy ? dataKey === props.groupRowsBy : !!dataKey;\n    if (hasDataKey) {\n      var dataKeyValue = String(primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(event.data, dataKey));\n      expandedRows = expandedRowsRef.current ? _objectSpread$8({}, expandedRowsRef.current) : {};\n      if (expandedRows[dataKeyValue] != null) {\n        delete expandedRows[dataKeyValue];\n        if (props.onRowCollapse) {\n          props.onRowCollapse({\n            originalEvent: event,\n            data: event.data\n          });\n        }\n      } else {\n        expandedRows[dataKeyValue] = true;\n        if (props.onRowExpand) {\n          props.onRowExpand({\n            originalEvent: event,\n            data: event.data\n          });\n        }\n      }\n    } else {\n      var expandedRowIndex = findIndex(expandedRowsRef.current, event.data);\n      expandedRows = expandedRowsRef.current ? _toConsumableArray(expandedRowsRef.current) : [];\n      if (expandedRowIndex !== -1) {\n        expandedRows = expandedRows.filter(function (_, i) {\n          return i !== expandedRowIndex;\n        });\n        if (props.onRowCollapse) {\n          props.onRowCollapse({\n            originalEvent: event,\n            data: event.data\n          });\n        }\n      } else {\n        expandedRows.push(event.data);\n        if (props.onRowExpand) {\n          props.onRowExpand({\n            originalEvent: event,\n            data: event.data\n          });\n        }\n      }\n    }\n    if (props.onRowToggle) {\n      props.onRowToggle({\n        data: expandedRows\n      });\n    }\n  };\n  var onRowDragStart = function onRowDragStart(e) {\n    var event = e.originalEvent,\n      index = e.index;\n    if (allowRowDrag(e)) {\n      rowDragging.current = true;\n      draggedRowIndex.current = index;\n      event.dataTransfer.setData('text', 'b'); // For firefox\n    }\n  };\n  var onRowDragOver = function onRowDragOver(e) {\n    var event = e.originalEvent,\n      index = e.index;\n    if (!rowDragging.current) {\n      return;\n    }\n    if (draggedRowIndex.current !== index) {\n      var rowElement = event.currentTarget;\n      var rowY = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOffset(rowElement).top + primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getWindowScrollTop();\n      var pageY = event.pageY + window.scrollY;\n      var rowMidY = rowY + primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterHeight(rowElement) / 2;\n      var prevRowElement = rowElement.previousElementSibling;\n      if (pageY < rowMidY) {\n        rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n        !isUnstyled() && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n        droppedRowIndex.current = index;\n        if (prevRowElement) {\n          prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n          !isUnstyled() && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.addClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n        } else {\n          rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n          !isUnstyled() && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n        }\n      } else {\n        if (prevRowElement) {\n          prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n          !isUnstyled() && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n        } else {\n          rowElement.setAttribute('data-p-datatable-dragpoint-top', 'true');\n          !isUnstyled() && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.addClass(rowElement, 'p-datatable-dragpoint-top');\n        }\n        if (index + 1 !== draggedRowIndex.current) droppedRowIndex.current = index + 1;\n        rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'true');\n        !isUnstyled() && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.addClass(rowElement, 'p-datatable-dragpoint-bottom');\n      }\n    }\n    event.preventDefault();\n  };\n  var onRowDragLeave = function onRowDragLeave(e) {\n    var event = e.originalEvent;\n    var rowElement = event.currentTarget;\n    var prevRowElement = rowElement.previousElementSibling;\n    if (prevRowElement) {\n      prevRowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n      !isUnstyled() && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.removeClass(prevRowElement, 'p-datatable-dragpoint-bottom');\n    }\n    rowElement.setAttribute('data-p-datatable-dragpoint-bottom', 'false');\n    !isUnstyled() && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-bottom');\n    rowElement.setAttribute('data-p-datatable-dragpoint-top', 'false');\n    !isUnstyled() && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.removeClass(rowElement, 'p-datatable-dragpoint-top');\n  };\n  var onRowDragEnd = function onRowDragEnd(e) {\n    var event = e.originalEvent;\n    rowDragging.current = false;\n    draggedRowIndex.current = null;\n    droppedRowIndex.current = null;\n    event.currentTarget.draggable = false;\n  };\n  var onRowDrop = function onRowDrop(e) {\n    var event = e.originalEvent;\n    if (droppedRowIndex.current != null) {\n      var dropIndex = draggedRowIndex.current > droppedRowIndex.current ? droppedRowIndex.current : droppedRowIndex.current === 0 ? 0 : droppedRowIndex.current - 1;\n      var val = _toConsumableArray(props.tableProps.value);\n      primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.reorderArray(val, draggedRowIndex.current, dropIndex);\n      if (props.onRowReorder) {\n        props.onRowReorder({\n          originalEvent: event,\n          value: val,\n          dragIndex: draggedRowIndex.current,\n          dropIndex: dropIndex\n        });\n      }\n    }\n\n    //cleanup\n    onRowDragLeave(e);\n    onRowDragEnd(e);\n    event.preventDefault();\n  };\n  var onRadioChange = function onRadioChange(event) {\n    onSingleSelection(_objectSpread$8(_objectSpread$8({}, event), {}, {\n      toggleable: true,\n      type: 'radio'\n    }));\n  };\n  var onCheckboxChange = function onCheckboxChange(event) {\n    onMultipleSelection(_objectSpread$8(_objectSpread$8({}, event), {}, {\n      toggleable: true,\n      type: 'checkbox'\n    }));\n  };\n  var onDragSelectionMouseMove = function onDragSelectionMouseMove(event) {\n    var _initialDragPosition$ = initialDragPosition.current,\n      x = _initialDragPosition$.x,\n      y = _initialDragPosition$.y;\n    var dx = event.clientX - x;\n    var dy = event.clientY - y;\n    if (dy < 0) {\n      dragSelectionHelper.current.style.top = \"\".concat(event.pageY + 5, \"px\");\n    }\n    if (dx < 0) {\n      dragSelectionHelper.current.style.left = \"\".concat(event.pageX + 5, \"px\");\n    }\n    dragSelectionHelper.current.style.height = \"\".concat(Math.abs(dy), \"px\");\n    dragSelectionHelper.current.style.width = \"\".concat(Math.abs(dx), \"px\");\n    event.preventDefault();\n  };\n  var _onDragSelectionMouseUp = function onDragSelectionMouseUp() {\n    if (dragSelectionHelper.current) {\n      dragSelectionHelper.current.remove();\n      dragSelectionHelper.current = null;\n    }\n    document.removeEventListener('mousemove', onDragSelectionMouseMove);\n    document.removeEventListener('mouseup', _onDragSelectionMouseUp);\n  };\n  var onCellClick = function onCellClick(event) {\n    if (!allowSelection(event)) {\n      return;\n    }\n    props.onCellClick && props.onCellClick(event);\n    if (allowCellSelection()) {\n      if (allowRangeSelection(event)) {\n        onRangeSelection(event, 'cell');\n      } else {\n        var toggleable = allowMetaKeySelection(event);\n        var originalEvent = event.originalEvent,\n          data = _objectWithoutProperties(event, _excluded$2);\n        anchorRowIndex.current = event.rowIndex;\n        rangeRowIndex.current = event.rowIndex;\n        anchorRowFirst.current = props.first;\n        anchorCellIndex.current = event.cellIndex;\n        if (isSingleSelection()) {\n          onSingleSelection({\n            originalEvent: originalEvent,\n            data: data,\n            index: event.rowIndex,\n            toggleable: toggleable,\n            type: 'cell'\n          });\n        } else {\n          onMultipleSelection({\n            originalEvent: originalEvent,\n            data: data,\n            index: event.rowIndex,\n            toggleable: toggleable,\n            type: 'cell'\n          });\n        }\n      }\n      changeTabIndex(event.originalEvent, 'cell');\n    }\n    rowTouched.current = false;\n  };\n  var onCellMouseDown = function onCellMouseDown(event) {\n    if (allowCellDrag(event)) {\n      enableDragSelection(event.originalEvent);\n      anchorRowIndex.current = event.rowIndex;\n      rangeRowIndex.current = event.rowIndex;\n      anchorRowFirst.current = props.first;\n      anchorCellIndex.current = event.cellIndex;\n    }\n  };\n  var onCellMouseUp = function onCellMouseUp(event) {\n    var isSameCell = event.rowIndex === anchorRowIndex.current && event.cellIndex === anchorCellIndex.current;\n    if (allowCellDrag(event) && !isSameCell) {\n      onRangeSelection(event, 'cell');\n    }\n  };\n  var bindDragSelectionEvents = function bindDragSelectionEvents() {\n    document.addEventListener('mousemove', onDragSelectionMouseMove);\n    document.addEventListener('mouseup', _onDragSelectionMouseUp);\n    document.body.appendChild(dragSelectionHelper.current);\n  };\n  var unbindDragSelectionEvents = function unbindDragSelectionEvents() {\n    _onDragSelectionMouseUp();\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (props.frozenRow) {\n      updateFrozenRowStickyPosition();\n    }\n    if (props.scrollable && props.rowGroupMode === 'subheader') {\n      updateFrozenRowGroupHeaderStickyPosition();\n    }\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUpdateEffect)(function () {\n    if (props.paginator && isMultipleSelection()) {\n      anchorRowIndex.current = null;\n    }\n  }, [props.first]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUnmountEffect)(function () {\n    if (props.dragSelection) {\n      unbindDragSelectionEvents();\n    }\n  });\n  var createEmptyContent = function createEmptyContent() {\n    if (!props.loading) {\n      var colSpan = getColumnsLength();\n      var _content = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(props.emptyMessage, {\n        props: props.tableProps,\n        frozen: props.frozenRow\n      }) || (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.localeOption)('emptyMessage');\n      var emptyMessageProps = mergeProps({\n        className: cx('emptyMessage'),\n        role: 'row'\n      }, ptm('emptyMessage'));\n      var bodyCellProps = mergeProps({\n        colSpan: colSpan,\n        role: 'cell'\n      }, getColumnPTOptions('root'), getColumnPTOptions('bodyCell'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"tr\", emptyMessageProps, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"td\", bodyCellProps, _content));\n    }\n    return null;\n  };\n  var createGroupHeader = function createGroupHeader(rowData, rowIndex, expanded, colSpan) {\n    if (isSubheaderGrouping && shouldRenderRowGroupHeader(props.value, rowData, rowIndex - props.first)) {\n      var style = rowGroupHeaderStyle();\n      var toggler = props.expandableRowGroups && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(RowTogglerButton, {\n        hostName: props.hostName,\n        onClick: onRowToggle,\n        rowData: rowData,\n        expanded: expanded,\n        expandedRowIcon: props.expandedRowIcon,\n        collapsedRowIcon: props.collapsedRowIcon,\n        ptCallbacks: props.ptCallbacks,\n        metaData: props.metaData,\n        unstyled: isUnstyled()\n      });\n      var options = {\n        index: rowIndex,\n        props: props.tableProps,\n        customRendering: false\n      };\n      var _content2 = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(props.rowGroupHeaderTemplate, rowData, options);\n\n      // check if the user wants complete control of the rendering\n      if (!options.customRendering) {\n        var bodyCellProps = mergeProps({\n          colSpan: colSpan\n        }, getColumnPTOptions('root'), getColumnPTOptions('bodyCell'));\n        var rowGroupHeaderNameProps = mergeProps({\n          className: cx('rowGroupHeaderName')\n        }, ptm('rowGroupHeaderName'));\n        _content2 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"td\", bodyCellProps, toggler, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", rowGroupHeaderNameProps, _content2));\n      }\n      var rowGroupHeaderProps = mergeProps({\n        className: cx('rowGroupHeader'),\n        style: style,\n        role: 'row'\n      }, ptm('rowGroupHeader'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"tr\", rowGroupHeaderProps, _content2);\n    }\n    return null;\n  };\n  var createRow = function createRow(rowData, rowIndex, index, expanded) {\n    if (!props.expandableRowGroups || expanded) {\n      var selected = isSelectionEnabled() ? isSelected(rowData) : false;\n      var contextMenuSelected = isContextMenuSelected(rowData);\n      var _allowRowSelection = allowRowSelection();\n      var _allowCellSelection = allowCellSelection();\n      var editing = isRowEditing(rowData);\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(BodyRow, {\n        hostName: props.hostName,\n        allowCellSelection: _allowCellSelection,\n        allowRowSelection: _allowRowSelection,\n        cellMemo: props.cellMemo,\n        cellMemoProps: props.cellMemoProps,\n        cellMemoPropsDepth: props.cellMemoPropsDepth,\n        cellClassName: props.cellClassName,\n        checkIcon: props.checkIcon,\n        collapsedRowIcon: props.collapsedRowIcon,\n        columns: props.columns,\n        colsProps: colsProps,\n        compareSelectionBy: props.compareSelectionBy,\n        contextMenuSelected: contextMenuSelected,\n        dataKey: props.dataKey,\n        editMode: props.editMode,\n        editing: editing,\n        editingMeta: props.editingMeta,\n        editingRows: props.editingRows,\n        expanded: expanded,\n        expandedRowIcon: props.expandedRowIcon,\n        frozenRow: props.frozenRow,\n        groupRowsBy: props.groupRowsBy,\n        index: index,\n        isSelectable: isSelectable,\n        onCellClick: onCellClick,\n        onCellMouseDown: onCellMouseDown,\n        onCellMouseUp: onCellMouseUp,\n        onCheckboxChange: onCheckboxChange,\n        onEditingMetaChange: props.onEditingMetaChange,\n        onRadioChange: onRadioChange,\n        onRowClick: onRowClick,\n        onRowDoubleClick: onRowDoubleClick,\n        onRowPointerDown: onRowPointerDown,\n        onRowPointerUp: onRowPointerUp,\n        onRowDragEnd: onRowDragEnd,\n        onRowDragLeave: onRowDragLeave,\n        onRowDragOver: onRowDragOver,\n        onRowDragStart: onRowDragStart,\n        onRowDrop: onRowDrop,\n        onRowEditCancel: props.onRowEditCancel,\n        onRowEditChange: props.onRowEditChange,\n        onRowEditComplete: props.onRowEditComplete,\n        onRowEditInit: props.onRowEditInit,\n        onRowEditSave: props.onRowEditSave,\n        onRowMouseDown: onRowMouseDown,\n        onRowMouseEnter: onRowMouseEnter,\n        onRowMouseLeave: onRowMouseLeave,\n        onRowMouseUp: onRowMouseUp,\n        onRowRightClick: onRowRightClick,\n        onRowToggle: onRowToggle,\n        onRowTouchEnd: onRowTouchEnd,\n        responsiveLayout: props.responsiveLayout,\n        rowClassName: props.rowClassName,\n        rowData: rowData,\n        rowEditValidator: props.rowEditValidator,\n        rowEditorCancelIcon: props.rowEditorCancelIcon,\n        rowEditorInitIcon: props.rowEditorInitIcon,\n        rowEditorSaveIcon: props.rowEditorSaveIcon,\n        rowGroupMode: props.rowGroupMode,\n        rowIndex: rowIndex,\n        selectOnEdit: props.selectOnEdit,\n        selected: selected,\n        selection: props.selection,\n        selectionMode: props.selectionMode,\n        selectionModeInColumn: props.selectionModeInColumn,\n        showRowReorderElement: props.showRowReorderElement,\n        showSelectionElement: props.showSelectionElement,\n        tabIndex: props.tabIndex,\n        tableProps: props.tableProps,\n        tableSelector: props.tableSelector,\n        value: props.value,\n        virtualScrollerOptions: props.virtualScrollerOptions,\n        ptCallbacks: props.ptCallbacks,\n        metaData: props.metaData,\n        unstyled: isUnstyled()\n      });\n    }\n  };\n  var createExpansion = function createExpansion(rowData, rowIndex, expanded, colSpan) {\n    if (expanded && !(isSubheaderGrouping && props.expandableRowGroups)) {\n      var id = \"\".concat(props.tableSelector, \"_content_\").concat(rowIndex, \"_expanded\");\n      var options = {\n        index: rowIndex,\n        customRendering: false\n      };\n      var _content3 = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(props.rowExpansionTemplate, rowData, options);\n\n      // check if the user wants complete control of the rendering\n      if (!options.customRendering) {\n        var bodyCellProps = mergeProps({\n          colSpan: colSpan,\n          role: 'cell'\n        }, getColumnPTOptions('root'), getColumnPTOptions('bodyCell'));\n        _content3 = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"td\", bodyCellProps, _content3);\n      }\n      var rowExpansionProps = mergeProps({\n        id: id,\n        className: cx('rowExpansion'),\n        role: 'row'\n      }, ptm('rowExpansion'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"tr\", rowExpansionProps, _content3);\n    }\n    return null;\n  };\n  var createGroupFooter = function createGroupFooter(rowData, rowIndex, expanded, colSpan) {\n    if (isSubheaderGrouping && shouldRenderRowGroupFooter(props.value, rowData, rowIndex - props.first, expanded)) {\n      var _content4 = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(props.rowGroupFooterTemplate, rowData, {\n        index: rowIndex,\n        colSpan: colSpan,\n        props: props.tableProps\n      });\n      var rowGroupFooterProps = mergeProps({\n        className: cx('rowGroupFooter'),\n        role: 'row'\n      }, ptm('rowGroupFooter'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"tr\", rowGroupFooterProps, _content4);\n    }\n    return null;\n  };\n  var createContent = function createContent() {\n    return props.value && props.value.map(function (rowData, index) {\n      var rowIndex = getVirtualScrollerOption('getItemOptions') ? getVirtualScrollerOption('getItemOptions')(index).index : props.first + index;\n      var key = getRowKey(rowData, rowIndex);\n      var expanded = isRowExpanded(rowData);\n      var colSpan = getColumnsLength();\n      var groupHeader = createGroupHeader(rowData, rowIndex, expanded, colSpan);\n      var row = createRow(rowData, rowIndex, index, expanded);\n      var expansion = createExpansion(rowData, rowIndex, expanded, colSpan);\n      var groupFooter = createGroupFooter(rowData, rowIndex, expanded, colSpan);\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n        key: key\n      }, groupHeader, row, expansion, groupFooter);\n    });\n  };\n  var content = props.empty ? createEmptyContent() : createContent();\n  var ptKey = props.className === 'p-datatable-virtualscroller-spacer' ? 'virtualScrollerSpacer' : 'tbody';\n  var tbodyProps = mergeProps({\n    style: props.style,\n    className: cx(ptKey, {\n      className: props.className\n    }),\n    role: ' rowgroup'\n  }, ptm(ptKey, {\n    hostName: props.hostName\n  }));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"tbody\", _extends({\n    ref: refCallback\n  }, tbodyProps), content);\n}));\nTableBody.displayName = 'TableBody';\nvar ColumnGroupBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'ColumnGroup',\n    children: undefined\n  },\n  getCProp: function getCProp(group, name) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getComponentProp(group, name, ColumnGroupBase.defaultProps);\n  },\n  getCProps: function getCProps(group) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getComponentProps(group, ColumnGroupBase.defaultProps);\n  }\n});\nvar RowBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'Row',\n    style: null,\n    className: null,\n    children: undefined\n  },\n  getCProp: function getCProp(row, name) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getComponentProp(row, name, RowBase.defaultProps);\n  }\n});\nfunction ownKeys$7(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$7(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar FooterCell = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState({}),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    styleObjectState = _React$useState2[0],\n    setStyleObjectState = _React$useState2[1];\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var getColumnProps = function getColumnProps() {\n    return ColumnBase.getCProps(props.column);\n  };\n  var _props$ptCallbacks = props.ptCallbacks,\n    ptm = _props$ptCallbacks.ptm,\n    ptmo = _props$ptCallbacks.ptmo,\n    cx = _props$ptCallbacks.cx;\n  var getColumnPTOptions = function getColumnPTOptions(key) {\n    var cProps = getColumnProps();\n    var columnMetaData = {\n      props: cProps,\n      parent: props.metaData,\n      hostName: props.hostName,\n      state: {\n        styleObject: styleObjectState\n      },\n      context: {\n        index: props.index,\n        size: props.metaData.props.size,\n        showGridlines: props.metaData.props.showGridlines\n      }\n    };\n    return mergeProps(ptm(\"column.\".concat(key), {\n      column: columnMetaData\n    }), ptm(\"column.\".concat(key), columnMetaData), ptmo(cProps, key, columnMetaData));\n  };\n  var getColumnProp = function getColumnProp(name) {\n    return ColumnBase.getCProp(props.column, name);\n  };\n  var getStyle = function getStyle() {\n    var footerStyle = getColumnProp('footerStyle');\n    var columnStyle = getColumnProp('style');\n    return getColumnProp('frozen') ? Object.assign({}, columnStyle, footerStyle, styleObjectState) : Object.assign({}, columnStyle, footerStyle);\n  };\n  var updateStickyPosition = function updateStickyPosition() {\n    if (getColumnProp('frozen')) {\n      var styleObject = _objectSpread$7({}, styleObjectState);\n      var _align = getColumnProp('alignFrozen');\n      if (_align === 'right') {\n        var right = 0;\n        var next = elementRef.current.nextElementSibling;\n        if (next && next.classList.contains('p-frozen-column')) {\n          right = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);\n        }\n        styleObject.right = right + 'px';\n      } else {\n        var left = 0;\n        var prev = elementRef.current.previousElementSibling;\n        if (prev && prev.classList.contains('p-frozen-column')) {\n          left = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n        }\n        styleObject.left = left + 'px';\n      }\n      var isSameStyle = styleObjectState.left === styleObject.left && styleObjectState.right === styleObject.right;\n      !isSameStyle && setStyleObjectState(styleObject);\n    }\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (getColumnProp('frozen')) {\n      updateStickyPosition();\n    }\n  });\n  var style = getStyle();\n  var align = getColumnProp('align');\n  var colSpan = getColumnProp('colSpan');\n  var rowSpan = getColumnProp('rowSpan');\n  var content = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(getColumnProp('footer'), {\n    props: props.tableProps\n  });\n  var footerCellProps = mergeProps({\n    style: style,\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(getColumnProp('footerClassName'), getColumnProp('className'), cx('footerCell', {\n      getColumnProp: getColumnProp,\n      align: align\n    })),\n    role: 'cell',\n    colSpan: colSpan,\n    rowSpan: rowSpan\n  }, getColumnPTOptions('root'), getColumnPTOptions('footerCell'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"td\", _extends({\n    ref: elementRef\n  }, footerCellProps), content);\n});\nFooterCell.displayName = 'FooterCell';\nvar _excluded$1 = [\"unstyled\", \"__TYPE\", \"ptOptions\"];\nfunction ownKeys$6(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$6(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar TableFooter = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {\n  var _props$ptCallbacks = props.ptCallbacks,\n    ptm = _props$ptCallbacks.ptm,\n    ptmo = _props$ptCallbacks.ptmo,\n    cx = _props$ptCallbacks.cx;\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var getRowProps = function getRowProps(row) {\n    return ColumnGroupBase.getCProps(row);\n  };\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var getColumnGroupProps = function getColumnGroupProps() {\n    return props.footerColumnGroup ? ColumnGroupBase.getCProps(props.footerColumnGroup) : undefined;\n  };\n  var getRowPTOptions = function getRowPTOptions(row, key) {\n    var rProps = getRowProps(row);\n    var rowMetaData = {\n      props: rProps,\n      parent: props.metaData,\n      hostName: props.hostName\n    };\n    return mergeProps(ptm(\"row.\".concat(key), {\n      row: rowMetaData\n    }), ptm(\"row.\".concat(key), rowMetaData), ptmo(rProps, key, rowMetaData));\n  };\n  var getColumnGroupPTOptions = function getColumnGroupPTOptions(key) {\n    var cGProps = getColumnGroupProps();\n    var columnGroupMetaData = {\n      props: getColumnGroupProps(),\n      parent: props.metaData,\n      hostName: props.hostName\n    };\n    return mergeProps(ptm(\"columnGroup.\".concat(key), {\n      columnGroup: columnGroupMetaData\n    }), ptm(\"columnGroup.\".concat(key), columnGroupMetaData), ptmo(cGProps, key, columnGroupMetaData));\n  };\n  var hasFooter = function hasFooter() {\n    return props.footerColumnGroup ? true : props.columns ? props.columns.some(function (col) {\n      return col && getColumnProp(col, 'footer');\n    }) : false;\n  };\n  var getColumnProp = function getColumnProp(column, name) {\n    return ColumnBase.getCProp(column, name);\n  };\n  var createGroupFooterCells = function createGroupFooterCells(row) {\n    var columns = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(RowBase.getCProp(row, 'children'));\n    return createFooterCells(columns);\n  };\n  var createFooterCells = function createFooterCells(columns) {\n    return react__WEBPACK_IMPORTED_MODULE_0__.Children.map(columns, function (col, i) {\n      var isVisible = col ? !getColumnProp(col, 'hidden') : true;\n      var key = col ? getColumnProp(col, 'columnKey') || getColumnProp(col, 'field') || i : i;\n      return isVisible && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(FooterCell, {\n        hostName: props.hostName,\n        key: key,\n        tableProps: props.tableProps,\n        column: col,\n        ptCallbacks: props.ptCallbacks,\n        metaData: props.metaData\n      });\n    });\n  };\n  var createContent = function createContent() {\n    if (props.footerColumnGroup) {\n      var rows = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(ColumnGroupBase.getCProp(props.footerColumnGroup, 'children'));\n      return rows.map(function (row, i) {\n        var _RowBase$getProps = RowBase.getProps(row.props, context),\n          unstyled = _RowBase$getProps.unstyled;\n        _RowBase$getProps.__TYPE;\n        _RowBase$getProps.ptOptions;\n        var rest = _objectWithoutProperties(_RowBase$getProps, _excluded$1);\n        var rootProps = mergeProps({\n          role: 'row'\n        }, unstyled ? _objectSpread$6({\n          unstyled: unstyled\n        }, rest) : rest, getRowPTOptions(row, 'root'));\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"tr\", _extends({}, rootProps, {\n          key: i\n        }), createGroupFooterCells(row));\n      });\n    }\n    var footerRowProps = mergeProps({\n      role: 'row'\n    }, ptm('footerRow', {\n      hostName: props.hostName\n    }));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"tr\", footerRowProps, createFooterCells(props.columns));\n  };\n  if (hasFooter()) {\n    var content = createContent();\n    var tfootProps = mergeProps({\n      className: cx('tfoot'),\n      role: 'rowgroup'\n    }, getColumnGroupPTOptions('root'), ptm('tfoot', {\n      hostName: props.hostName\n    }));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"tfoot\", tfootProps, content);\n  }\n  return null;\n});\nTableFooter.displayName = 'TableFooter';\nfunction _defineProperties(e, r) {\n  for (var t = 0; t < r.length; t++) {\n    var o = r[t];\n    o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n  }\n}\nfunction _createClass(e, r, t) {\n  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n    writable: !1\n  }), e;\n}\nfunction _classCallCheck(a, n) {\n  if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nvar FilterMatchMode = Object.freeze({\n  STARTS_WITH: 'startsWith',\n  CONTAINS: 'contains',\n  NOT_CONTAINS: 'notContains',\n  ENDS_WITH: 'endsWith',\n  EQUALS: 'equals',\n  NOT_EQUALS: 'notEquals',\n  IN: 'in',\n  NOT_IN: 'notIn',\n  LESS_THAN: 'lt',\n  LESS_THAN_OR_EQUAL_TO: 'lte',\n  GREATER_THAN: 'gt',\n  GREATER_THAN_OR_EQUAL_TO: 'gte',\n  BETWEEN: 'between',\n  DATE_IS: 'dateIs',\n  DATE_IS_NOT: 'dateIsNot',\n  DATE_BEFORE: 'dateBefore',\n  DATE_AFTER: 'dateAfter',\n  CUSTOM: 'custom'\n});\n\n/**\n * @deprecated please use PrimeReactContext\n */\nvar PrimeReact = /*#__PURE__*/_createClass(function PrimeReact() {\n  _classCallCheck(this, PrimeReact);\n});\n_defineProperty(PrimeReact, \"ripple\", false);\n_defineProperty(PrimeReact, \"inputStyle\", 'outlined');\n_defineProperty(PrimeReact, \"locale\", 'en');\n_defineProperty(PrimeReact, \"appendTo\", null);\n_defineProperty(PrimeReact, \"cssTransition\", true);\n_defineProperty(PrimeReact, \"autoZIndex\", true);\n_defineProperty(PrimeReact, \"hideOverlaysOnDocumentScrolling\", false);\n_defineProperty(PrimeReact, \"nonce\", null);\n_defineProperty(PrimeReact, \"nullSortOrder\", 1);\n_defineProperty(PrimeReact, \"zIndex\", {\n  modal: 1100,\n  overlay: 1000,\n  menu: 1000,\n  tooltip: 1100,\n  toast: 1200\n});\n_defineProperty(PrimeReact, \"pt\", undefined);\n_defineProperty(PrimeReact, \"filterMatchModeOptions\", {\n  text: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS],\n  numeric: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO],\n  date: [FilterMatchMode.DATE_IS, FilterMatchMode.DATE_IS_NOT, FilterMatchMode.DATE_BEFORE, FilterMatchMode.DATE_AFTER]\n});\n_defineProperty(PrimeReact, \"changeTheme\", function (currentTheme, newTheme, linkElementId, callback) {\n  var _linkElement$parentNo;\n  var linkElement = document.getElementById(linkElementId);\n  if (!linkElement) {\n    throw Error(\"Element with id \".concat(linkElementId, \" not found.\"));\n  }\n  var newThemeUrl = linkElement.getAttribute('href').replace(currentTheme, newTheme);\n  var newLinkElement = document.createElement('link');\n  newLinkElement.setAttribute('rel', 'stylesheet');\n  newLinkElement.setAttribute('id', linkElementId);\n  newLinkElement.setAttribute('href', newThemeUrl);\n  newLinkElement.addEventListener('load', function () {\n    if (callback) {\n      callback();\n    }\n  });\n  (_linkElement$parentNo = linkElement.parentNode) === null || _linkElement$parentNo === void 0 || _linkElement$parentNo.replaceChild(newLinkElement, linkElement);\n});\nvar locales = {\n  en: {\n    accept: 'Yes',\n    addRule: 'Add Rule',\n    am: 'AM',\n    apply: 'Apply',\n    cancel: 'Cancel',\n    choose: 'Choose',\n    chooseDate: 'Choose Date',\n    chooseMonth: 'Choose Month',\n    chooseYear: 'Choose Year',\n    clear: 'Clear',\n    completed: 'Completed',\n    contains: 'Contains',\n    custom: 'Custom',\n    dateAfter: 'Date is after',\n    dateBefore: 'Date is before',\n    dateFormat: 'mm/dd/yy',\n    dateIs: 'Date is',\n    dateIsNot: 'Date is not',\n    dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n    dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n    emptyFilterMessage: 'No results found',\n    emptyMessage: 'No available options',\n    emptySearchMessage: 'No results found',\n    emptySelectionMessage: 'No selected item',\n    endsWith: 'Ends with',\n    equals: 'Equals',\n    fileChosenMessage: '{0} files',\n    fileSizeTypes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\n    filter: 'Filter',\n    firstDayOfWeek: 0,\n    gt: 'Greater than',\n    gte: 'Greater than or equal to',\n    lt: 'Less than',\n    lte: 'Less than or equal to',\n    matchAll: 'Match All',\n    matchAny: 'Match Any',\n    medium: 'Medium',\n    monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    nextDecade: 'Next Decade',\n    nextHour: 'Next Hour',\n    nextMinute: 'Next Minute',\n    nextMonth: 'Next Month',\n    nextSecond: 'Next Second',\n    nextYear: 'Next Year',\n    noFileChosenMessage: 'No file chosen',\n    noFilter: 'No Filter',\n    notContains: 'Not contains',\n    notEquals: 'Not equals',\n    now: 'Now',\n    passwordPrompt: 'Enter a password',\n    pending: 'Pending',\n    pm: 'PM',\n    prevDecade: 'Previous Decade',\n    prevHour: 'Previous Hour',\n    prevMinute: 'Previous Minute',\n    prevMonth: 'Previous Month',\n    prevSecond: 'Previous Second',\n    prevYear: 'Previous Year',\n    reject: 'No',\n    removeRule: 'Remove Rule',\n    searchMessage: '{0} results are available',\n    selectionMessage: '{0} items selected',\n    showMonthAfterYear: false,\n    startsWith: 'Starts with',\n    strong: 'Strong',\n    today: 'Today',\n    upload: 'Upload',\n    weak: 'Weak',\n    weekHeader: 'Wk',\n    aria: {\n      cancelEdit: 'Cancel Edit',\n      close: 'Close',\n      collapseLabel: 'Collapse',\n      collapseRow: 'Row Collapsed',\n      editRow: 'Edit Row',\n      expandLabel: 'Expand',\n      expandRow: 'Row Expanded',\n      falseLabel: 'False',\n      filterConstraint: 'Filter Constraint',\n      filterOperator: 'Filter Operator',\n      firstPageLabel: 'First Page',\n      gridView: 'Grid View',\n      hideFilterMenu: 'Hide Filter Menu',\n      jumpToPageDropdownLabel: 'Jump to Page Dropdown',\n      jumpToPageInputLabel: 'Jump to Page Input',\n      lastPageLabel: 'Last Page',\n      listLabel: 'Option List',\n      listView: 'List View',\n      moveAllToSource: 'Move All to Source',\n      moveAllToTarget: 'Move All to Target',\n      moveBottom: 'Move Bottom',\n      moveDown: 'Move Down',\n      moveToSource: 'Move to Source',\n      moveToTarget: 'Move to Target',\n      moveTop: 'Move Top',\n      moveUp: 'Move Up',\n      navigation: 'Navigation',\n      next: 'Next',\n      nextPageLabel: 'Next Page',\n      nullLabel: 'Not Selected',\n      otpLabel: 'Please enter one time password character {0}',\n      pageLabel: 'Page {page}',\n      passwordHide: 'Hide Password',\n      passwordShow: 'Show Password',\n      previous: 'Previous',\n      prevPageLabel: 'Previous Page',\n      removeLabel: 'Remove',\n      rotateLeft: 'Rotate Left',\n      rotateRight: 'Rotate Right',\n      rowsPerPageLabel: 'Rows per page',\n      saveEdit: 'Save Edit',\n      scrollTop: 'Scroll Top',\n      selectAll: 'All items selected',\n      selectLabel: 'Select',\n      selectRow: 'Row Selected',\n      showFilterMenu: 'Show Filter Menu',\n      slide: 'Slide',\n      slideNumber: '{slideNumber}',\n      star: '1 star',\n      stars: '{star} stars',\n      trueLabel: 'True',\n      unselectAll: 'All items unselected',\n      unselectLabel: 'Unselect',\n      unselectRow: 'Row Unselected',\n      zoomImage: 'Zoom Image',\n      zoomIn: 'Zoom In',\n      zoomOut: 'Zoom Out'\n    }\n  }\n};\n\n/**\n * Find an ARIA label in the locale by key.  If options are passed it will replace all options:\n * ```ts\n * const ariaValue = \"Page {page}, User {user}, Role {role}\";\n * const options = { page: 2, user: \"John\", role: \"Admin\" };\n * const result = ariaLabel('yourLabel', { page: 2, user: \"John\", role: \"Admin\" })\n * console.log(result); // Output: Page 2, User John, Role Admin\n * ```\n * @param {string} ariaKey key of the ARIA label to look up in locale.\n * @param {any} options JSON options like { page: 2, user: \"John\", role: \"Admin\" }\n * @returns the ARIA label with replaced values\n */\nfunction ariaLabel(ariaKey, options) {\n  if (ariaKey.includes('__proto__') || ariaKey.includes('prototype')) {\n    throw new Error('Unsafe ariaKey detected');\n  }\n  var _locale = PrimeReact.locale;\n  try {\n    var _ariaLabel = localeOptions(_locale).aria[ariaKey];\n    if (_ariaLabel) {\n      for (var key in options) {\n        if (options.hasOwnProperty(key)) {\n          _ariaLabel = _ariaLabel.replace(\"{\".concat(key, \"}\"), options[key]);\n        }\n      }\n    }\n    return _ariaLabel;\n  } catch (error) {\n    throw new Error(\"The \".concat(ariaKey, \" option is not found in the current locale('\").concat(_locale, \"').\"));\n  }\n}\nfunction localeOptions(locale) {\n  var _locale = locale || PrimeReact.locale;\n  if (_locale.includes('__proto__') || _locale.includes('prototype')) {\n    throw new Error('Unsafe locale detected');\n  }\n  return locales[_locale];\n}\nvar styles = '';\nvar FocusTrapBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'FocusTrap',\n    children: undefined\n  },\n  css: {\n    styles: styles\n  },\n  getProps: function getProps(props) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getMergedProps(props, FocusTrapBase.defaultProps);\n  },\n  getOtherProps: function getOtherProps(props) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getDiffProps(props, FocusTrapBase.defaultProps);\n  }\n});\nfunction ownKeys$5(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$5(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar FocusTrap = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().forwardRef(function (inProps, ref) {\n  var targetRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n  var firstFocusableElementRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n  var lastFocusableElementRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n  var context = react__WEBPACK_IMPORTED_MODULE_0___default().useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = FocusTrapBase.getProps(inProps, context);\n  var metaData = {\n    props: props\n  };\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useStyle)(FocusTrapBase.css.styles, {\n    name: 'focustrap'\n  });\n  var _FocusTrapBase$setMet = FocusTrapBase.setMetaData(_objectSpread$5({}, metaData));\n  _FocusTrapBase$setMet.ptm;\n  react__WEBPACK_IMPORTED_MODULE_0___default().useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      getInk: function getInk() {\n        return firstFocusableElementRef.current;\n      },\n      getTarget: function getTarget() {\n        return targetRef.current;\n      }\n    };\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMountEffect)(function () {\n    if (!props.disabled) {\n      targetRef.current = getTarget();\n      setAutoFocus(targetRef.current);\n    }\n  });\n  var getTarget = function getTarget() {\n    return firstFocusableElementRef.current && firstFocusableElementRef.current.parentElement;\n  };\n\n  /**\n   * This method sets the auto focus on the first focusable element within the target element.\n   * It first tries to find a focusable element using the autoFocusSelector. If no such element is found,\n   * it then tries to find a focusable element using the firstFocusableSelector.\n   * If the autoFocus prop is set to true and a focusable element is found, it sets the focus on that element.\n   *\n   * @param {HTMLElement} target - The target element within which to find a focusable element.\n   */\n  var setAutoFocus = function setAutoFocus(target) {\n    var _ref = props || {},\n      _ref$autoFocusSelecto = _ref.autoFocusSelector,\n      autoFocusSelector = _ref$autoFocusSelecto === void 0 ? '' : _ref$autoFocusSelecto,\n      _ref$firstFocusableSe = _ref.firstFocusableSelector,\n      firstFocusableSelector = _ref$firstFocusableSe === void 0 ? '' : _ref$firstFocusableSe,\n      _ref$autoFocus = _ref.autoFocus,\n      autoFocus = _ref$autoFocus === void 0 ? false : _ref$autoFocus;\n    var defaultAutoFocusSelector = \"\".concat(getComputedSelector(autoFocusSelector));\n    var computedAutoFocusSelector = \"[autofocus]\".concat(defaultAutoFocusSelector, \", [data-pc-autofocus='true']\").concat(defaultAutoFocusSelector);\n    var focusableElement = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getFirstFocusableElement(target, computedAutoFocusSelector);\n    autoFocus && !focusableElement && (focusableElement = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getFirstFocusableElement(target, getComputedSelector(firstFocusableSelector)));\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.focus(focusableElement);\n  };\n  var getComputedSelector = function getComputedSelector(selector) {\n    return \":not(.p-hidden-focusable):not([data-p-hidden-focusable=\\\"true\\\"])\".concat(selector !== null && selector !== void 0 ? selector : '');\n  };\n  var onFirstHiddenElementFocus = function onFirstHiddenElementFocus(event) {\n    var _targetRef$current;\n    var currentTarget = event.currentTarget,\n      relatedTarget = event.relatedTarget;\n    var focusableElement = relatedTarget === currentTarget.$_pfocustrap_lasthiddenfocusableelement || !((_targetRef$current = targetRef.current) !== null && _targetRef$current !== void 0 && _targetRef$current.contains(relatedTarget)) ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getFirstFocusableElement(currentTarget.parentElement, getComputedSelector(currentTarget.$_pfocustrap_focusableselector)) : currentTarget.$_pfocustrap_lasthiddenfocusableelement;\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.focus(focusableElement);\n  };\n  var onLastHiddenElementFocus = function onLastHiddenElementFocus(event) {\n    var _targetRef$current2;\n    var currentTarget = event.currentTarget,\n      relatedTarget = event.relatedTarget;\n    var focusableElement = relatedTarget === currentTarget.$_pfocustrap_firsthiddenfocusableelement || !((_targetRef$current2 = targetRef.current) !== null && _targetRef$current2 !== void 0 && _targetRef$current2.contains(relatedTarget)) ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getLastFocusableElement(currentTarget.parentElement, getComputedSelector(currentTarget.$_pfocustrap_focusableselector)) : currentTarget.$_pfocustrap_firsthiddenfocusableelement;\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.focus(focusableElement);\n  };\n  var createHiddenFocusableElements = function createHiddenFocusableElements() {\n    var _ref2 = props || {},\n      _ref2$tabIndex = _ref2.tabIndex,\n      tabIndex = _ref2$tabIndex === void 0 ? 0 : _ref2$tabIndex;\n    var createFocusableElement = function createFocusableElement(inRef, onFocus, section) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n        ref: inRef,\n        className: 'p-hidden-accessible p-hidden-focusable',\n        tabIndex: tabIndex,\n        role: 'presentation',\n        \"aria-hidden\": true,\n        \"data-p-hidden-accessible\": true,\n        \"data-p-hidden-focusable\": true,\n        onFocus: onFocus,\n        \"data-pc-section\": section\n      });\n    };\n    var firstFocusableElement = createFocusableElement(firstFocusableElementRef, onFirstHiddenElementFocus, 'firstfocusableelement');\n    var lastFocusableElement = createFocusableElement(lastFocusableElementRef, onLastHiddenElementFocus, 'lastfocusableelement');\n    if (firstFocusableElementRef.current && lastFocusableElementRef.current) {\n      firstFocusableElementRef.current.$_pfocustrap_lasthiddenfocusableelement = lastFocusableElementRef.current;\n      lastFocusableElementRef.current.$_pfocustrap_firsthiddenfocusableelement = firstFocusableElementRef.current;\n    }\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, firstFocusableElement, props.children, lastFocusableElement);\n  };\n  return createHiddenFocusableElements();\n}));\nvar FocusTrap$1 = FocusTrap;\nfunction ownKeys$4(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$4(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar ColumnFilter = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    overlayVisibleState = _React$useState2[0],\n    setOverlayVisibleState = _React$useState2[1];\n  var overlayRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var overlayId = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var iconRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var selfClick = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var overlayEventListener = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var getColumnProp = function getColumnProp(name) {\n    return ColumnBase.getCProp(props.column, name);\n  };\n  var getColumnProps = function getColumnProps() {\n    return ColumnBase.getCProps(props.column);\n  };\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var _props$ptCallbacks = props.ptCallbacks,\n    ptm = _props$ptCallbacks.ptm,\n    ptmo = _props$ptCallbacks.ptmo,\n    cx = _props$ptCallbacks.cx;\n  var getColumnPTOptions = function getColumnPTOptions(key, params) {\n    var cProps = getColumnProps();\n    var columnMetadata = _objectSpread$4({\n      props: cProps,\n      parent: props.metaData,\n      hostName: props.hostName,\n      state: {\n        overlayVisible: overlayVisibleState\n      }\n    }, params);\n    return mergeProps(ptm(\"column.\".concat(key), {\n      column: columnMetadata\n    }), ptm(\"column.\".concat(key), columnMetadata), ptmo(cProps, key, columnMetadata));\n  };\n  var field = getColumnProp('filterField') || getColumnProp('field');\n  var filterModel = props.filters[field];\n  var filterStoreModel = props.filtersStore && props.filtersStore[field];\n  var _useOverlayListener = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useOverlayListener)({\n      target: iconRef,\n      overlay: overlayRef,\n      listener: function listener(event, _ref) {\n        var type = _ref.type,\n          valid = _ref.valid;\n        if (valid) {\n          if (type === 'outside') {\n            if (!selfClick.current && !isTargetClicked(event.target)) {\n              hide();\n            }\n            selfClick.current = false;\n          } else if (context.hideOverlaysOnDocumentScrolling) {\n            hide();\n          } else if (!primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.isDocument(event.target)) {\n            primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.alignOverlay(overlayRef.current, iconRef.current, context && context.appendTo || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].appendTo, false);\n          }\n        }\n      },\n      when: overlayVisibleState\n    }),\n    _useOverlayListener2 = _slicedToArray(_useOverlayListener, 2),\n    bindOverlayListener = _useOverlayListener2[0],\n    unbindOverlayListener = _useOverlayListener2[1];\n  var hasFilter = function hasFilter() {\n    if (!filterStoreModel || !filterModel) {\n      return false;\n    }\n    return filterStoreModel.operator ? !isFilterBlank(filterModel.constraints[0].value) : !isFilterBlank(filterModel.value);\n  };\n  var hasRowFilter = function hasRowFilter() {\n    return filterModel && !isFilterBlank(filterModel.value);\n  };\n  var isFilterBlank = function isFilterBlank(filter) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isEmpty(filter);\n  };\n  var isRowMatchModeSelected = function isRowMatchModeSelected(matchMode) {\n    return filterModel && filterModel.matchMode === matchMode;\n  };\n  var matchModes = function matchModes() {\n    return getColumnProp('filterMatchModeOptions') || context && context.filterMatchModeOptions[findDataType()].map(function (key) {\n      return {\n        label: (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.localeOption)(key),\n        value: key\n      };\n    }) || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].filterMatchModeOptions[findDataType()].map(function (key) {\n      return {\n        label: (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.localeOption)(key),\n        value: key\n      };\n    });\n  };\n  var isShowMenuButton = function isShowMenuButton() {\n    return getColumnProp('showFilterMenu') && (props.display === 'row' ? getColumnProp('dataType') !== 'boolean' : true);\n  };\n  var isShowClearButton = function isShowClearButton() {\n    return getColumnProp('showClearButton') && props.display === 'row';\n  };\n  var isShowMatchModes = function isShowMatchModes() {\n    return getColumnProp('dataType') !== 'boolean' && getColumnProp('showFilterMatchModes') && matchModes() && getColumnProp('showFilterMenuOptions');\n  };\n  var isShowOperator = function isShowOperator() {\n    return getColumnProp('showFilterOperator') && filterModel && filterModel.operator && getColumnProp('showFilterMenuOptions');\n  };\n  var showRemoveIcon = function showRemoveIcon() {\n    return fieldConstraints().length > 1;\n  };\n  var isShowAddConstraint = function isShowAddConstraint() {\n    return getColumnProp('showAddButton') && filterModel && filterModel.operator && fieldConstraints() && fieldConstraints().length < getColumnProp('maxConstraints') && getColumnProp('showFilterMenuOptions');\n  };\n  var isOutsideClicked = function isOutsideClicked(target) {\n    return !isTargetClicked(target) && overlayRef.current && !(overlayRef.current.isSameNode(target) || overlayRef.current.contains(target));\n  };\n  var isTargetClicked = function isTargetClicked(target) {\n    return iconRef.current && (iconRef.current.isSameNode(target) || iconRef.current.contains(target));\n  };\n  var getDefaultConstraint = function getDefaultConstraint() {\n    if (filterStoreModel) {\n      if (filterStoreModel.operator) {\n        return {\n          matchMode: filterStoreModel.constraints[0].matchMode,\n          operator: filterStoreModel.operator\n        };\n      }\n      return {\n        matchMode: filterStoreModel.matchMode\n      };\n    }\n  };\n  var findDataType = function findDataType() {\n    var dataType = getColumnProp('dataType');\n    var matchMode = getColumnProp('filterMatchMode');\n    var hasMatchMode = function hasMatchMode(key) {\n      return context && context.filterMatchModeOptions[key].some(function (mode) {\n        return mode === matchMode;\n      }) || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].filterMatchModeOptions[key].some(function (mode) {\n        return mode === matchMode;\n      });\n    };\n    if (matchMode === 'custom' && !hasMatchMode(dataType)) {\n      context && context.filterMatchModeOptions[dataType].push(primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterMatchMode.CUSTOM) || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].filterMatchModeOptions[dataType].push(primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterMatchMode.CUSTOM);\n      return dataType;\n    } else if (matchMode) {\n      return Object.keys(context && context.filterMatchModeOptions || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].filterMatchModeOptions).find(function (key) {\n        return hasMatchMode(key);\n      }) || dataType;\n    }\n    return dataType;\n  };\n  var clearFilter = function clearFilter() {\n    var filterClearCallback = getColumnProp('onFilterClear');\n    var defaultConstraint = getDefaultConstraint();\n    var filters = _objectSpread$4({}, props.filters);\n    if (filters[field].operator) {\n      filters[field].constraints.splice(1);\n      filters[field].operator = defaultConstraint.operator;\n      filters[field].constraints[0] = {\n        value: null,\n        matchMode: defaultConstraint.matchMode\n      };\n    } else {\n      filters[field].value = null;\n      filters[field].matchMode = defaultConstraint.matchMode;\n    }\n    filterClearCallback && filterClearCallback();\n    props.onFilterChange(filters);\n    props.onFilterApply();\n    hide();\n  };\n  var applyFilter = function applyFilter() {\n    var filterApplyClickCallback = getColumnProp('onFilterApplyClick');\n    filterApplyClickCallback && filterApplyClickCallback({\n      field: field,\n      constraints: filterModel\n    });\n    props.onFilterApply();\n    hide();\n  };\n  var toggleMenu = function toggleMenu() {\n    setOverlayVisibleState(function (prevVisible) {\n      return !prevVisible;\n    });\n  };\n  var onToggleButtonKeyDown = function onToggleButtonKeyDown(event) {\n    switch (event.key) {\n      case 'Escape':\n      case 'Tab':\n        hide();\n        break;\n      case 'ArrowDown':\n        if (overlayVisibleState) {\n          var focusable = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getFirstFocusableElement(overlayRef.current);\n          focusable && focusable.focus();\n          event.preventDefault();\n        } else if (event.altKey) {\n          setOverlayVisibleState(true);\n          event.preventDefault();\n        }\n        break;\n    }\n  };\n  var onContentKeyDown = function onContentKeyDown(event) {\n    if (event.key === 'Escape') {\n      hide();\n      iconRef.current && iconRef.current.focus();\n    }\n  };\n  var onInputChange = function onInputChange(event, index) {\n    var filters = _objectSpread$4({}, props.filters);\n    var value = event.target.value;\n    var filterField = filters[field];\n    if (props.display === 'menu' && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(filterField.constraints)) {\n      filterField.constraints[index].value = value;\n    } else {\n      filterField.value = value;\n    }\n    props.onFilterChange(filters);\n    if (!getColumnProp('showApplyButton') || props.display === 'row') {\n      props.onFilterApply();\n    }\n  };\n  var onInputKeydown = function onInputKeydown(event, _index) {\n    if (event.key === 'Enter') {\n      if (!getColumnProp('showApplyButton') || props.display === 'menu') {\n        applyFilter();\n      }\n    }\n  };\n  var onRowMatchModeChange = function onRowMatchModeChange(matchMode) {\n    var filterMatchModeChangeCallback = getColumnProp('onFilterMatchModeChange');\n    var filters = _objectSpread$4({}, props.filters);\n    filters[field].matchMode = matchMode;\n    filterMatchModeChangeCallback && filterMatchModeChangeCallback({\n      field: field,\n      matchMode: matchMode\n    });\n    props.onFilterChange(filters);\n    props.onFilterApply();\n    hide();\n  };\n  var onRowMatchModeKeyDown = function onRowMatchModeKeyDown(event, matchMode, clear) {\n    var item = event.target;\n    switch (event.key) {\n      case 'ArrowDown':\n        var nextItem = _findNextItem(item);\n        if (nextItem) {\n          item.removeAttribute('tabindex');\n          nextItem.tabIndex = 0;\n          nextItem.focus();\n        }\n        event.preventDefault();\n        break;\n      case 'ArrowUp':\n        var prevItem = _findPrevItem(item);\n        if (prevItem) {\n          item.removeAttribute('tabindex');\n          prevItem.tabIndex = 0;\n          prevItem.focus();\n        }\n        event.preventDefault();\n        break;\n      case 'Enter':\n        clear ? clearFilter() : onRowMatchModeChange(matchMode.value);\n        event.preventDefault();\n        break;\n    }\n  };\n  var onOperatorChange = function onOperatorChange(e) {\n    var filterOperationChangeCallback = getColumnProp('onFilterOperatorChange');\n    var value = e.value;\n    var filters = _objectSpread$4({}, props.filters);\n    filters[field].operator = value;\n    props.onFilterChange(filters);\n    filterOperationChangeCallback && filterOperationChangeCallback({\n      field: field,\n      operator: value\n    });\n    if (!getColumnProp('showApplyButton')) {\n      props.onFilterApply();\n    }\n  };\n  var onMenuMatchModeChange = function onMenuMatchModeChange(value, index) {\n    var filterMatchModeChangeCallback = getColumnProp('onFilterMatchModeChange');\n    var filters = _objectSpread$4({}, props.filters);\n    var filterField = filters[field];\n    if (props.display === 'menu' && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(filterField.constraints)) {\n      filterField.constraints[index].matchMode = value;\n    } else {\n      filterField.matchMode = value;\n    }\n    props.onFilterChange(filters);\n    filterMatchModeChangeCallback && filterMatchModeChangeCallback({\n      field: field,\n      matchMode: value,\n      index: index\n    });\n    if (!getColumnProp('showApplyButton')) {\n      props.onFilterApply();\n    }\n  };\n  var addConstraint = function addConstraint() {\n    var filterConstraintAddCallback = getColumnProp('onFilterConstraintAdd');\n    var defaultConstraint = getDefaultConstraint();\n    var filters = _objectSpread$4({}, props.filters);\n    var newConstraint = {\n      value: null,\n      matchMode: defaultConstraint.matchMode\n    };\n    filters[field].constraints.push(newConstraint);\n    filterConstraintAddCallback && filterConstraintAddCallback({\n      field: field,\n      constraint: newConstraint\n    });\n    props.onFilterChange(filters);\n    if (!getColumnProp('showApplyButton')) {\n      props.onFilterApply();\n    }\n  };\n  var removeConstraint = function removeConstraint(index) {\n    var filterConstraintRemoveCallback = getColumnProp('onFilterConstraintRemove');\n    var filters = _objectSpread$4({}, props.filters);\n    var removedConstraint = filters[field].constraints.splice(index, 1);\n    filterConstraintRemoveCallback && filterConstraintRemoveCallback({\n      field: field,\n      constraint: removedConstraint\n    });\n    props.onFilterChange(filters);\n    if (!getColumnProp('showApplyButton')) {\n      props.onFilterApply();\n    }\n  };\n  var _findNextItem = function findNextItem(item) {\n    var nextItem = item.nextElementSibling;\n    return nextItem ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(nextItem, 'data-p-column-filter-separator') === true ? _findNextItem(nextItem) : nextItem : item.parentElement.firstElementChild;\n  };\n  var _findPrevItem = function findPrevItem(item) {\n    var prevItem = item.previousElementSibling;\n    return prevItem ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(prevItem, 'data-p-column-filter-separator') === true ? _findPrevItem(prevItem) : prevItem : item.parentElement.lastElementChild;\n  };\n  var hide = function hide() {\n    setOverlayVisibleState(false);\n  };\n  var onContentClick = function onContentClick(event) {\n    selfClick.current = true;\n    primereact_overlayservice__WEBPACK_IMPORTED_MODULE_16__.OverlayService.emit('overlay-click', {\n      originalEvent: event,\n      target: overlayRef.current\n    });\n  };\n  var onContentMouseDown = function onContentMouseDown() {\n    selfClick.current = true;\n  };\n  var onOverlayEnter = function onOverlayEnter() {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ZIndexUtils.set('overlay', overlayRef.current, context && context.autoZIndex || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].autoZIndex, context && context.zIndex.overlay || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].zIndex.overlay);\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.addStyles(overlayRef.current, {\n      position: 'absolute',\n      top: '0',\n      left: '0'\n    });\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.alignOverlay(overlayRef.current, iconRef.current, context && context.appendTo || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].appendTo, false);\n    overlayEventListener.current = function (e) {\n      if (!isOutsideClicked(e.target)) {\n        selfClick.current = true;\n      }\n    };\n    primereact_overlayservice__WEBPACK_IMPORTED_MODULE_16__.OverlayService.on('overlay-click', overlayEventListener.current);\n  };\n  var onOverlayEntered = function onOverlayEntered() {\n    bindOverlayListener();\n  };\n  var onOverlayExit = function onOverlayExit() {\n    onOverlayHide();\n  };\n  var onOverlayExited = function onOverlayExited() {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ZIndexUtils.clear(overlayRef.current);\n  };\n  var onOverlayHide = function onOverlayHide() {\n    unbindOverlayListener();\n    primereact_overlayservice__WEBPACK_IMPORTED_MODULE_16__.OverlayService.off('overlay-click', overlayEventListener.current);\n    overlayEventListener.current = null;\n    selfClick.current = false;\n  };\n  var fieldConstraints = function fieldConstraints() {\n    return filterModel ? filterModel.constraints || [filterModel] : [];\n  };\n  var operator = function operator() {\n    return filterModel.operator;\n  };\n  var operatorOptions = function operatorOptions() {\n    return [{\n      label: (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.localeOption)('matchAll'),\n      value: primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterOperator.AND\n    }, {\n      label: (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.localeOption)('matchAny'),\n      value: primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterOperator.OR\n    }];\n  };\n  var noFilterLabel = function noFilterLabel() {\n    return (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.localeOption)('noFilter');\n  };\n  var removeRuleButtonLabel = function removeRuleButtonLabel() {\n    return (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.localeOption)('removeRule');\n  };\n  var addRuleButtonLabel = function addRuleButtonLabel() {\n    return (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.localeOption)('addRule');\n  };\n  var clearButtonLabel = function clearButtonLabel() {\n    return (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.localeOption)('clear');\n  };\n  var applyButtonLabel = function applyButtonLabel() {\n    return (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.localeOption)('apply');\n  };\n  var filterCallback = function filterCallback(value) {\n    var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    var filters = _objectSpread$4({}, props.filters);\n    var meta = filters[field];\n    props.display === 'menu' && meta && meta.operator ? filters[field].constraints[index].value = value : filters[field].value = value;\n    props.onFilterChange(filters);\n  };\n  var filterApplyCallback = function filterApplyCallback() {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    args && filterCallback(args[0], args[1]);\n    props.onFilterApply();\n  };\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUpdateEffect)(function () {\n    if (props.display === 'menu' && overlayVisibleState) {\n      primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.alignOverlay(overlayRef.current, iconRef.current, context && context.appendTo || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].appendTo, false);\n    }\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMountEffect)(function () {\n    if (!overlayId.current) {\n      overlayId.current = (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.UniqueComponentId)();\n    }\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUnmountEffect)(function () {\n    if (overlayEventListener.current) {\n      primereact_overlayservice__WEBPACK_IMPORTED_MODULE_16__.OverlayService.off('overlay-click', overlayEventListener.current);\n      overlayEventListener.current = null;\n    }\n    if (overlayRef.current) {\n      primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ZIndexUtils.clear(overlayRef.current);\n      onOverlayHide();\n    }\n  });\n  var createFilterElement = function createFilterElement(model, index) {\n    var value = model ? model.value : null;\n    return getColumnProp('filterElement') ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(getColumnProp('filterElement'), {\n      field: field,\n      index: index,\n      filterModel: model,\n      value: value,\n      filterApplyCallback: filterApplyCallback,\n      filterCallback: filterCallback\n    }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_inputtext__WEBPACK_IMPORTED_MODULE_26__.InputText, {\n      type: getColumnProp('filterType'),\n      value: value || '',\n      onChange: function onChange(e) {\n        return onInputChange(e, index);\n      },\n      onKeyDown: function onKeyDown(e) {\n        return onInputKeydown(e);\n      },\n      className: \"p-column-filter\",\n      placeholder: getColumnProp('filterPlaceholder'),\n      maxLength: getColumnProp('filterMaxLength'),\n      \"aria-label\": getColumnProp('filterPlaceholder'),\n      unstyled: props.unstyled,\n      __parentMetadata: {\n        parent: props.metaData\n      }\n    });\n  };\n  var createRowFilterElement = function createRowFilterElement() {\n    if (props.display === 'row') {\n      var content = createFilterElement(filterModel, 0);\n      var filterInputProps = mergeProps({\n        className: cx('filterInput')\n      }, getColumnPTOptions('filterInput'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", filterInputProps, content);\n    }\n    return null;\n  };\n  var createMenuFilterElement = function createMenuFilterElement(fieldConstraint, index) {\n    return props.display === 'menu' ? createFilterElement(fieldConstraint, index) : null;\n  };\n  var createMenuButton = function createMenuButton() {\n    if (!isShowMenuButton()) {\n      return null;\n    }\n    var filterIconProps = mergeProps({\n      'aria-hidden': true\n    }, getColumnPTOptions('filterIcon'));\n    var icon = props.filterIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_filter__WEBPACK_IMPORTED_MODULE_22__.FilterIcon, filterIconProps);\n    var columnFilterIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(icon, _objectSpread$4({}, filterIconProps), {\n      props: props\n    });\n    var label = overlayVisibleState ? ariaLabel('hideFilterMenu') : ariaLabel('showFilterMenu');\n    var filterMenuButtonProps = mergeProps({\n      type: 'button',\n      className: cx('filterMenuButton', {\n        overlayVisibleState: overlayVisibleState,\n        hasFilter: hasFilter\n      }),\n      'aria-haspopup': true,\n      'aria-expanded': overlayVisibleState,\n      'aria-label': label,\n      'aria-controls': overlayVisibleState ? overlayId.current : undefined,\n      onClick: function onClick(e) {\n        return toggleMenu();\n      },\n      onKeyDown: function onKeyDown(e) {\n        return onToggleButtonKeyDown(e);\n      }\n    }, getColumnPTOptions('filterMenuButton', {\n      context: {\n        active: hasFilter()\n      }\n    }));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", _extends({\n      ref: iconRef\n    }, filterMenuButtonProps), columnFilterIcon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_17__.Ripple, null));\n  };\n  var createClearButton = function createClearButton() {\n    if (!isShowClearButton()) {\n      return null;\n    }\n    var filterClearIconProps = mergeProps({\n      'aria-hidden': true\n    }, getColumnPTOptions('filterClearIcon'));\n    var icon = props.filterClearIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_filterslash__WEBPACK_IMPORTED_MODULE_23__.FilterSlashIcon, filterClearIconProps);\n    var filterClearIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(icon, _objectSpread$4({}, filterClearIconProps), {\n      props: props\n    });\n    var clearLabel = clearButtonLabel();\n    var headerFilterClearButtonProps = mergeProps({\n      className: cx('headerFilterClearButton', {\n        hasRowFilter: hasRowFilter\n      }),\n      type: 'button',\n      onClick: function onClick(e) {\n        return clearFilter();\n      },\n      'aria-label': clearLabel\n    }, getColumnPTOptions('headerFilterClearButton', {\n      context: {\n        hidden: hasRowFilter()\n      }\n    }));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", headerFilterClearButtonProps, filterClearIcon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_17__.Ripple, null));\n  };\n  var createRowItems = function createRowItems() {\n    if (isShowMatchModes()) {\n      var _matchModes = matchModes();\n      var _noFilterLabel = noFilterLabel();\n      var filterSeparatorProps = mergeProps({\n        className: cx('filterSeparator'),\n        'data-p-column-filter-separator': true\n      }, getColumnPTOptions('filterSeparator'));\n      var filterRowItemProps = mergeProps({\n        className: cx('filterRowItem', {\n          isRowMatchModeSelected: isRowMatchModeSelected,\n          isShowMatchModes: isShowMatchModes\n        }),\n        onClick: function onClick(e) {\n          return clearFilter();\n        },\n        onKeyDown: function onKeyDown(e) {\n          return onRowMatchModeKeyDown(e, null, true);\n        }\n      }, getColumnPTOptions('filterRowItem'));\n      var filterRowItemsProps = mergeProps({\n        className: cx('filterRowItems')\n      }, getColumnPTOptions('filterRowItems'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"ul\", filterRowItemsProps, _matchModes.map(function (matchMode, i) {\n        var value = matchMode.value,\n          label = matchMode.label;\n        var tabIndex = i === 0 ? 0 : null;\n        var filterRowItemProps = mergeProps({\n          className: cx('filterRowItem', {\n            isRowMatchModeSelected: isRowMatchModeSelected,\n            isShowMatchModes: isShowMatchModes,\n            value: value\n          }),\n          onClick: function onClick() {\n            return onRowMatchModeChange(value);\n          },\n          onKeyDown: function onKeyDown(e) {\n            return onRowMatchModeKeyDown(e, matchMode);\n          },\n          tabIndex: tabIndex\n        }, getColumnPTOptions('filterRowItem', {\n          context: {\n            highlighted: matchMode && isRowMatchModeSelected(value)\n          }\n        }));\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"li\", _extends({}, filterRowItemProps, {\n          key: label\n        }), label);\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"li\", filterSeparatorProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"li\", filterRowItemProps, _noFilterLabel));\n    }\n    return null;\n  };\n  var createOperator = function createOperator() {\n    if (isShowOperator()) {\n      var options = operatorOptions();\n      var value = operator();\n      var filterOperatorProps = mergeProps({\n        className: cx('filterOperator')\n      }, getColumnPTOptions('filterOperator'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", filterOperatorProps, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_dropdown__WEBPACK_IMPORTED_MODULE_21__.Dropdown, {\n        options: options,\n        value: value,\n        onChange: onOperatorChange,\n        className: \"p-column-filter-operator-dropdown\",\n        pt: getColumnPTOptions('filterOperatorDropdown'),\n        unstyled: props.unstyled,\n        __parentMetadata: {\n          parent: props.metaData\n        },\n        \"aria-label\": ariaLabel('filterOperator')\n      }));\n    }\n    return null;\n  };\n  var createMatchModeDropdown = function createMatchModeDropdown(constraint, index) {\n    if (isShowMatchModes()) {\n      var options = matchModes();\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_dropdown__WEBPACK_IMPORTED_MODULE_21__.Dropdown, {\n        options: options,\n        value: constraint.matchMode,\n        onChange: function onChange(e) {\n          return onMenuMatchModeChange(e.value, index);\n        },\n        className: \"p-column-filter-matchmode-dropdown\",\n        pt: getColumnPTOptions('filterMatchModeDropdown'),\n        unstyled: props.unstyled,\n        __parentMetadata: {\n          parent: props.metaData\n        },\n        \"aria-label\": ariaLabel('filterConstraint')\n      });\n    }\n    return null;\n  };\n  var createRemoveButton = function createRemoveButton(index) {\n    if (showRemoveIcon()) {\n      var removeRuleLabel = removeRuleButtonLabel();\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_button__WEBPACK_IMPORTED_MODULE_19__.Button, {\n        type: \"button\",\n        icon: props.filterRemoveIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_trash__WEBPACK_IMPORTED_MODULE_25__.TrashIcon, null),\n        className: \"p-column-filter-remove-button p-button-text p-button-danger p-button-sm\",\n        onClick: function onClick() {\n          return removeConstraint(index);\n        },\n        label: removeRuleLabel,\n        pt: getColumnPTOptions('filterRemoveButton'),\n        unstyled: props.unstyled,\n        __parentMetadata: {\n          parent: props.metaData\n        }\n      });\n    }\n    return null;\n  };\n  var createConstraints = function createConstraints() {\n    var _fieldConstraints = fieldConstraints();\n    var filterConstraintsProps = mergeProps({\n      className: cx('filterConstraints')\n    }, getColumnPTOptions('filterConstraints'));\n    var filterConstraintProps = mergeProps({\n      className: cx('filterConstraint')\n    }, getColumnPTOptions('filterConstraint'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", filterConstraintsProps, _fieldConstraints.map(function (fieldConstraint, i) {\n      var matchModeDropdown = createMatchModeDropdown(fieldConstraint, i);\n      var menuFilterElement = createMenuFilterElement(fieldConstraint, i);\n      var removeButton = createRemoveButton(i);\n      var filterRemoveProps = mergeProps(getColumnPTOptions('filterRemove'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", _extends({}, filterConstraintProps, {\n        key: i\n      }), matchModeDropdown, menuFilterElement, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", filterRemoveProps, removeButton));\n    }));\n  };\n  var createAddRule = function createAddRule() {\n    if (isShowAddConstraint()) {\n      var addRuleLabel = addRuleButtonLabel();\n      var filterAddRuleProps = mergeProps({\n        className: cx('filterAddRule')\n      }, getColumnPTOptions('filterAddRule'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", filterAddRuleProps, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_button__WEBPACK_IMPORTED_MODULE_19__.Button, {\n        type: \"button\",\n        label: addRuleLabel,\n        icon: props.filterAddIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_plus__WEBPACK_IMPORTED_MODULE_24__.PlusIcon, null),\n        className: \"p-column-filter-add-button p-button-text p-button-sm\",\n        onClick: addConstraint,\n        pt: getColumnPTOptions('filterAddRuleButton'),\n        unstyled: props.unstyled,\n        __parentMetadata: {\n          parent: props.metaData\n        }\n      }));\n    }\n    return null;\n  };\n  var createFilterClearButton = function createFilterClearButton() {\n    if (getColumnProp('showClearButton')) {\n      if (!getColumnProp('filterClear')) {\n        var clearLabel = clearButtonLabel();\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_button__WEBPACK_IMPORTED_MODULE_19__.Button, {\n          type: \"button\",\n          outlined: true,\n          size: \"small\",\n          onClick: clearFilter,\n          label: clearLabel,\n          pt: getColumnPTOptions('filterClearButton'),\n          unstyled: props.unstyled,\n          __parentMetadata: {\n            parent: props.metaData\n          }\n        });\n      }\n      return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(getColumnProp('filterClear'), {\n        field: field,\n        filterModel: filterModel,\n        filterClearCallback: clearFilter\n      });\n    }\n    return null;\n  };\n  var createFilterApplyButton = function createFilterApplyButton() {\n    if (getColumnProp('showApplyButton')) {\n      if (!getColumnProp('filterApply')) {\n        var applyLabel = applyButtonLabel();\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_button__WEBPACK_IMPORTED_MODULE_19__.Button, {\n          type: \"button\",\n          size: \"small\",\n          onClick: applyFilter,\n          label: applyLabel,\n          pt: getColumnPTOptions('filterApplyButton'),\n          unstyled: props.unstyled,\n          __parentMetadata: {\n            parent: props.metaData\n          }\n        });\n      }\n      return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(getColumnProp('filterApply'), {\n        field: field,\n        filterModel: filterModel,\n        filterApplyCallback: applyFilter\n      });\n    }\n    return null;\n  };\n  var createButtonBar = function createButtonBar() {\n    var clearButton = createFilterClearButton();\n    var applyButton = createFilterApplyButton();\n    var filterButtonbarProps = mergeProps({\n      className: cx('filterButtonBar')\n    }, getColumnPTOptions('filterButtonBar'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", filterButtonbarProps, clearButton, applyButton);\n  };\n  var createItems = function createItems() {\n    var operator = createOperator();\n    var constraints = createConstraints();\n    var addRule = createAddRule();\n    var buttonBar = createButtonBar();\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, operator, constraints, addRule, buttonBar);\n  };\n  var createOverlay = function createOverlay() {\n    var style = getColumnProp('filterMenuStyle');\n    var filterHeader = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(getColumnProp('filterHeader'), {\n      field: field,\n      filterModel: filterModel,\n      filterApplyCallback: filterApplyCallback\n    });\n    var filterFooter = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(getColumnProp('filterFooter'), {\n      field: field,\n      filterModel: filterModel,\n      filterApplyCallback: filterApplyCallback\n    });\n    var items = props.display === 'row' ? createRowItems() : createItems();\n    var filterOverlayProps = mergeProps({\n      style: style,\n      className: cx('filterOverlay', {\n        columnFilterProps: props,\n        context: context,\n        getColumnProp: getColumnProp\n      }),\n      onKeyDown: function onKeyDown(e) {\n        return onContentKeyDown(e);\n      },\n      onClick: function onClick(e) {\n        return onContentClick(e);\n      },\n      onMouseDown: function onMouseDown(e) {\n        return onContentMouseDown();\n      },\n      id: overlayId.current,\n      'aria-modal': overlayVisibleState,\n      role: 'dialog'\n    }, getColumnPTOptions('filterOverlay'));\n    var transitionProps = mergeProps({\n      classNames: cx('transition'),\n      \"in\": overlayVisibleState,\n      timeout: {\n        enter: 120,\n        exit: 100\n      },\n      unmountOnExit: true,\n      onEnter: onOverlayEnter,\n      onEntered: onOverlayEntered,\n      onExit: onOverlayExit,\n      onExited: onOverlayExited\n    }, getColumnPTOptions('transition'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_portal__WEBPACK_IMPORTED_MODULE_27__.Portal, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_csstransition__WEBPACK_IMPORTED_MODULE_20__.CSSTransition, _extends({\n      nodeRef: overlayRef\n    }, transitionProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", _extends({\n      ref: overlayRef\n    }, filterOverlayProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(FocusTrap$1, {\n      autoFocus: true\n    }, filterHeader, items, filterFooter))));\n  };\n  var rowFilterElement = createRowFilterElement();\n  var menuButton = createMenuButton();\n  var clearButton = createClearButton();\n  var overlay = createOverlay();\n  var columnFilter = mergeProps({\n    className: cx('columnFilter', {\n      columnFilterProps: props\n    })\n  }, getColumnPTOptions('columnFilter'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", columnFilter, rowFilterElement, menuButton, clearButton, overlay);\n});\nColumnFilter.displayName = 'ColumnFilter';\nfunction ownKeys$3(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$3(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar HeaderCheckbox = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var getColumnProps = function getColumnProps() {\n    return ColumnBase.getCProps(props.column);\n  };\n  var _props$ptCallbacks = props.ptCallbacks,\n    ptm = _props$ptCallbacks.ptm,\n    ptmo = _props$ptCallbacks.ptmo,\n    cx = _props$ptCallbacks.cx;\n  var getColumnPTOptions = function getColumnPTOptions(key) {\n    var cProps = getColumnProps();\n    var columnMetaData = {\n      props: cProps,\n      parent: props.metaData,\n      hostName: props.hostName,\n      state: {},\n      context: {\n        checked: props.checked,\n        disabled: props.disabled\n      }\n    };\n    return mergeProps(ptm(\"column.\".concat(key), {\n      column: columnMetaData\n    }), ptm(\"column.\".concat(key), columnMetaData), ptmo(cProps, key, columnMetaData));\n  };\n  var onChange = function onChange(event) {\n    if (!props.disabled) {\n      props.onChange({\n        originalEvent: event,\n        checked: !props.checked\n      });\n    }\n  };\n  var headerCheckboxIconProps = mergeProps({\n    className: cx('checkIcon')\n  }, getColumnPTOptions('headerCheckbox.icon'));\n  var icon = props.checked ? props.checkIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_check__WEBPACK_IMPORTED_MODULE_11__.CheckIcon, headerCheckboxIconProps) : null;\n  var checkIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(icon, _objectSpread$3({}, headerCheckboxIconProps), {\n    props: props\n  });\n  var tabIndex = props.disabled ? null : 0;\n  var headerCheckboxProps = {\n    role: 'checkbox',\n    'aria-checked': props.checked,\n    'aria-label': props.checked ? ariaLabel('selectAll') : ariaLabel('unselectAll'),\n    tabIndex: tabIndex,\n    onChange: onChange,\n    icon: checkIcon,\n    checked: props.checked,\n    disabled: props.disabled,\n    unstyled: props.unstyled,\n    pt: getColumnPTOptions('headerCheckbox')\n  };\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Checkbox, headerCheckboxProps);\n});\nHeaderCheckbox.displayName = 'HeaderCheckbox';\nfunction ownKeys$2(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar HeaderCell = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState({}),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    styleObjectState = _React$useState2[0],\n    setStyleObjectState = _React$useState2[1];\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var prevColumn = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.usePrevious)(props.column);\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var parentMetaData = props.metaData,\n    ptCallbacks = props.ptCallbacks,\n    index = props.index;\n  var _props$ptCallbacks = props.ptCallbacks,\n    ptm = _props$ptCallbacks.ptm,\n    ptmo = _props$ptCallbacks.ptmo,\n    cx = _props$ptCallbacks.cx;\n  var params = {\n    index: index\n  };\n  var parentParams = _objectSpread$2(_objectSpread$2({}, parentMetaData), params);\n  var getColumnProps = function getColumnProps() {\n    return ColumnBase.getCProps(props.column);\n  };\n  var getColumnPTOptions = function getColumnPTOptions(key) {\n    var cProps = getColumnProps();\n    var columnMetaData = {\n      props: cProps,\n      parent: parentParams,\n      hostName: props.hostName,\n      state: {\n        styleObject: styleObjectState\n      },\n      context: {\n        index: props.index,\n        sorted: getSortMeta().sorted,\n        resizable: props.resizableColumns,\n        size: props.metaData.props.size,\n        showGridlines: props.metaData.props.showGridlines\n      }\n    };\n    return mergeProps(ptm(\"column.\".concat(key), {\n      column: columnMetaData\n    }), ptm(\"column.\".concat(key), columnMetaData), ptmo(cProps, key, columnMetaData));\n  };\n  var isBadgeVisible = function isBadgeVisible() {\n    return props.multiSortMeta && props.multiSortMeta.length > 1;\n  };\n  var isSortableDisabled = function isSortableDisabled() {\n    return !getColumnProp('sortable') || getColumnProp('sortable') && (props.allSortableDisabled || getColumnProp('sortableDisabled'));\n  };\n  var getColumnProp = function getColumnProp() {\n    return props.column ? typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string' ? ColumnBase.getCProp(props.column, arguments.length <= 0 ? undefined : arguments[0]) : ColumnBase.getCProp((arguments.length <= 0 ? undefined : arguments[0]) || props.column, arguments.length <= 1 ? undefined : arguments[1]) : null;\n  };\n  var getStyle = function getStyle() {\n    var headerStyle = getColumnProp('headerStyle');\n    var columnStyle = getColumnProp('style');\n    return getColumnProp('frozen') ? Object.assign({}, columnStyle, headerStyle, styleObjectState) : Object.assign({}, columnStyle, headerStyle);\n  };\n  var getMultiSortMetaIndex = function getMultiSortMetaIndex() {\n    return props.multiSortMeta.findIndex(function (meta) {\n      return meta.field === getColumnProp('field') || meta.field === getColumnProp('sortField');\n    });\n  };\n  var getSortMeta = function getSortMeta() {\n    var sorted = false;\n    var sortOrder = 0;\n    var metaIndex = -1;\n    if (props.sortMode === 'single') {\n      sorted = props.sortField && (props.sortField === getColumnProp('field') || props.sortField === getColumnProp('sortField'));\n      sortOrder = sorted ? props.sortOrder : 0;\n    } else if (props.sortMode === 'multiple') {\n      metaIndex = getMultiSortMetaIndex();\n      if (metaIndex > -1) {\n        sorted = true;\n        sortOrder = props.multiSortMeta[metaIndex].order;\n      }\n    }\n    return {\n      sorted: sorted,\n      sortOrder: sortOrder,\n      metaIndex: metaIndex\n    };\n  };\n  var getAriaSort = function getAriaSort(_ref) {\n    var sorted = _ref.sorted,\n      sortOrder = _ref.sortOrder;\n    if (getColumnProp('sortable')) {\n      if (sorted && sortOrder < 0) {\n        return 'descending';\n      } else if (sorted && sortOrder > 0) {\n        return 'ascending';\n      }\n      return 'none';\n    }\n    return null;\n  };\n  var updateStickyPosition = function updateStickyPosition() {\n    if (getColumnProp('frozen')) {\n      var styleObject = _objectSpread$2({}, styleObjectState);\n      var align = getColumnProp('alignFrozen');\n      if (align === 'right') {\n        var right = 0;\n        var next = elementRef.current.nextElementSibling;\n        if (next && next.classList.contains('p-frozen-column')) {\n          right = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);\n        }\n        styleObject.right = right + 'px';\n      } else {\n        var left = 0;\n        var prev = elementRef.current.previousElementSibling;\n        if (prev && prev.classList.contains('p-frozen-column')) {\n          left = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);\n        }\n        styleObject.left = left + 'px';\n      }\n      var filterRow = elementRef.current.parentElement.nextElementSibling;\n      if (filterRow) {\n        var _index = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.index(elementRef.current);\n        filterRow.children[_index].style.left = styleObject.left;\n        filterRow.children[_index].style.right = styleObject.right;\n      }\n      var isSameStyle = styleObjectState.left === styleObject.left && styleObjectState.right === styleObject.right;\n      !isSameStyle && setStyleObjectState(styleObject);\n    }\n  };\n  var updateSortableDisabled = function updateSortableDisabled(prevColumn) {\n    if (getColumnProp(prevColumn, 'sortableDisabled') !== getColumnProp('sortableDisabled') || getColumnProp(prevColumn, 'sortable') !== getColumnProp('sortable')) {\n      props.onSortableChange();\n    }\n  };\n  var _onClick = function onClick(event) {\n    if (!isSortableDisabled()) {\n      var targetNode = event.target;\n      if (primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(targetNode, 'data-p-sortable-column') === true || primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(targetNode, 'data-pc-section') === 'headertitle' || primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(targetNode, 'data-pc-section') === 'headercontent' || primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(targetNode, 'data-pc-section') === 'sortIcon' || primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(targetNode.parentElement, 'data-pc-section') === 'sortIcon' || targetNode.closest('[data-p-sortable-column=\"true\"]') && !targetNode.closest('[data-pc-section=\"filtermenubutton\"]')) {\n        primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.clearSelection();\n        props.onSortChange({\n          originalEvent: event,\n          column: props.column,\n          sortableDisabledFields: props.sortableDisabledFields\n        });\n      }\n    }\n  };\n  var _onMouseDown = function onMouseDown(event) {\n    props.onColumnMouseDown({\n      originalEvent: event,\n      column: props.column\n    });\n  };\n  var _onKeyDown = function onKeyDown(event) {\n    if ((event.code == 'Enter' || event.code === 'NumpadEnter' || event.code == 'Space') && event.target === elementRef.current && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(event.currentTarget, 'data-p-sortable-column') === true) {\n      _onClick(event);\n      event.preventDefault();\n    }\n  };\n  var _onDragStart = function onDragStart(event) {\n    props.onColumnDragStart({\n      originalEvent: event,\n      column: props.column\n    });\n  };\n  var _onDragOver = function onDragOver(event) {\n    props.onColumnDragOver({\n      originalEvent: event,\n      column: props.column\n    });\n  };\n  var _onDragLeave = function onDragLeave(event) {\n    props.onColumnDragLeave({\n      originalEvent: event,\n      column: props.column\n    });\n  };\n  var _onDrop = function onDrop(event) {\n    props.onColumnDrop({\n      originalEvent: event,\n      column: props.column\n    });\n  };\n  var onResizeStart = function onResizeStart(event) {\n    props.onColumnResizeStart({\n      originalEvent: event,\n      column: props.column\n    });\n  };\n  var onResizerClick = function onResizerClick(event) {\n    if (props.onColumnResizerClick) {\n      props.onColumnResizerClick({\n        originalEvent: event,\n        element: event.currentTarget.parentElement,\n        column: props.column\n      });\n      event.preventDefault();\n    }\n  };\n  var onResizerDoubleClick = function onResizerDoubleClick(event) {\n    if (props.onColumnResizerDoubleClick) {\n      props.onColumnResizerDoubleClick({\n        originalEvent: event,\n        element: event.currentTarget.parentElement,\n        column: props.column\n      });\n      event.preventDefault();\n    }\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (getColumnProp('frozen')) {\n      updateStickyPosition();\n    }\n    updateSortableDisabled(prevColumn);\n  });\n  var createResizer = function createResizer() {\n    if (props.resizableColumns && !getColumnProp('frozen')) {\n      var columnResizerProps = mergeProps({\n        className: cx('columnResizer'),\n        onMouseDown: function onMouseDown(e) {\n          return onResizeStart(e);\n        },\n        onTouchStart: function onTouchStart(e) {\n          return onResizeStart(e);\n        },\n        onClick: function onClick(e) {\n          return onResizerClick(e);\n        },\n        onDoubleClick: function onDoubleClick(e) {\n          return onResizerDoubleClick(e);\n        }\n      }, getColumnPTOptions('columnResizer'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", columnResizerProps);\n    }\n    return null;\n  };\n  var createTitle = function createTitle() {\n    var title = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(getColumnProp('header'), {\n      props: props.tableProps\n    });\n    var headerTitleProps = mergeProps({\n      className: cx('headerTitle')\n    }, getColumnPTOptions('headerTitle'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", headerTitleProps, title);\n  };\n  var createSortIcon = function createSortIcon(_ref2) {\n    var sorted = _ref2.sorted,\n      sortOrder = _ref2.sortOrder;\n    if (getColumnProp('sortable')) {\n      var sortIconProps = mergeProps({\n        className: cx('sortIcon')\n      }, getColumnPTOptions('sortIcon'));\n      var sortProps = mergeProps(getColumnPTOptions('sort'));\n      var icon = sorted ? sortOrder < 0 ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_sortamountdown__WEBPACK_IMPORTED_MODULE_29__.SortAmountDownIcon, sortIconProps) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_sortamountupalt__WEBPACK_IMPORTED_MODULE_30__.SortAmountUpAltIcon, sortIconProps) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_sortalt__WEBPACK_IMPORTED_MODULE_28__.SortAltIcon, sortIconProps);\n      var sortIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(props.sortIcon || icon, _objectSpread$2({}, sortIconProps), {\n        props: props,\n        sorted: sorted,\n        sortOrder: sortOrder\n      });\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", sortProps, sortIcon);\n    }\n    return null;\n  };\n  var createBadge = function createBadge(_ref3) {\n    var metaIndex = _ref3.metaIndex;\n    if (metaIndex !== -1 && isBadgeVisible()) {\n      var value = props.groupRowsBy && props.groupRowsBy === props.groupRowSortField ? metaIndex : metaIndex + 1;\n      var sortBadgeProps = mergeProps({\n        className: cx('sortBadge')\n      }, getColumnPTOptions('root'), getColumnPTOptions('sortBadge'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", sortBadgeProps, value);\n    }\n    return null;\n  };\n  var createCheckbox = function createCheckbox() {\n    if (props.showSelectAll && getColumnProp('selectionMode') === 'multiple' && props.filterDisplay !== 'row') {\n      var allRowsSelected = props.allRowsSelected(props.value);\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(HeaderCheckbox, {\n        hostName: props.hostName,\n        column: props.column,\n        checked: allRowsSelected,\n        onChange: props.onColumnCheckboxChange,\n        disabled: props.empty,\n        ptCallbacks: ptCallbacks,\n        metaData: parentMetaData,\n        unstyled: props.unstyled\n      });\n    }\n    return null;\n  };\n  var createFilter = function createFilter() {\n    if (props.filterDisplay === 'menu' && getColumnProp('filter')) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(ColumnFilter, {\n        hostName: props.hostName,\n        display: \"menu\",\n        column: props.column,\n        filters: props.filters,\n        onFilterChange: props.onFilterChange,\n        onFilterApply: props.onFilterApply,\n        filtersStore: props.filtersStore,\n        filterIcon: props.filterIcon,\n        filterClearIcon: props.filterClearIcon,\n        ptCallbacks: ptCallbacks,\n        metaData: parentMetaData,\n        unstyled: props.unstyled\n      });\n    }\n    return null;\n  };\n  var createHeader = function createHeader(sortMeta) {\n    var title = createTitle();\n    var sortIcon = createSortIcon(sortMeta);\n    var badge = createBadge(sortMeta);\n    var checkbox = createCheckbox();\n    var filter = createFilter();\n    var headerContentProps = mergeProps({\n      className: cx('headerContent')\n    }, getColumnPTOptions('headerContent'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", headerContentProps, title, sortIcon, badge, checkbox, filter);\n  };\n  var createElement = function createElement() {\n    var _isSortableDisabled = isSortableDisabled();\n    var sortMeta = getSortMeta();\n    var style = getStyle();\n    var align = getColumnProp('alignHeader') || getColumnProp('align');\n    var frozen = getColumnProp('frozen');\n    var tabIndex = getColumnProp('sortable') && !_isSortableDisabled ? props.tabIndex : null;\n    var colSpan = getColumnProp('colSpan');\n    var rowSpan = getColumnProp('rowSpan');\n    var ariaSort = getAriaSort(sortMeta);\n    var headerTooltip = getColumnProp('headerTooltip');\n    var headerClassName = getColumnProp('headerClassName');\n    var hasTooltip = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(headerTooltip);\n    var headerTooltipOptions = getColumnProp('headerTooltipOptions');\n    var resizer = createResizer();\n    var header = createHeader(sortMeta);\n    var headerCellProps = mergeProps({\n      className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(headerClassName, cx('headerCell', {\n        headerProps: props,\n        frozen: frozen,\n        sortMeta: sortMeta,\n        align: align,\n        _isSortableDisabled: _isSortableDisabled,\n        getColumnProp: getColumnProp\n      })),\n      style: style,\n      role: 'columnheader',\n      onClick: function onClick(e) {\n        return _onClick(e);\n      },\n      onKeyDown: function onKeyDown(e) {\n        return _onKeyDown(e);\n      },\n      onMouseDown: function onMouseDown(e) {\n        return _onMouseDown(e);\n      },\n      onDragStart: function onDragStart(e) {\n        return _onDragStart(e);\n      },\n      onDragOver: function onDragOver(e) {\n        return _onDragOver(e);\n      },\n      onDragLeave: function onDragLeave(e) {\n        return _onDragLeave(e);\n      },\n      onDrop: function onDrop(e) {\n        return _onDrop(e);\n      },\n      tabIndex: tabIndex,\n      colSpan: colSpan,\n      rowSpan: rowSpan,\n      'aria-sort': ariaSort,\n      'data-p-sortable-column': getColumnProp('sortable'),\n      'data-p-resizable-column': props.resizableColumns,\n      'data-p-highlight': sortMeta.sorted,\n      'data-p-filter-column': !props.metaData.props.headerColumnGroup && props.filterDisplay === 'row',\n      'data-p-frozen-column': getColumnProp('frozen'),\n      'data-p-reorderable-column': props.reorderableColumns\n    }, getColumnPTOptions('root'), getColumnPTOptions('headerCell'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"th\", _extends({\n      ref: elementRef\n    }, headerCellProps), resizer, header), hasTooltip && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_tooltip__WEBPACK_IMPORTED_MODULE_18__.Tooltip, _extends({\n      target: elementRef,\n      content: headerTooltip,\n      pt: getColumnPTOptions('tooltip'),\n      unstyled: props.unstyled\n    }, headerTooltipOptions)));\n  };\n  var element = createElement();\n  return element;\n});\nHeaderCell.displayName = 'HeaderCell';\nvar _excluded = [\"unstyled\", \"__TYPE\", \"ptOptions\"];\nfunction ownKeys$1(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$1(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar TableHeader = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    sortableDisabledFieldsState = _React$useState2[0],\n    setSortableDisabledFieldsState = _React$useState2[1];\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    allSortableDisabledState = _React$useState4[0],\n    setAllSortableDisabledState = _React$useState4[1];\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var isSingleSort = props.sortMode === 'single';\n  var isMultipleSort = props.sortMode === 'multiple';\n  var isAllSortableDisabled = isSingleSort && allSortableDisabledState;\n  var _props$ptCallbacks = props.ptCallbacks,\n    ptm = _props$ptCallbacks.ptm,\n    ptmo = _props$ptCallbacks.ptmo,\n    cx = _props$ptCallbacks.cx;\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var getColumnProp = function getColumnProp(column, name) {\n    return ColumnBase.getCProp(column, name);\n  };\n  var getColumnProps = function getColumnProps(column) {\n    return ColumnBase.getCProps(column);\n  };\n  var getRowProps = function getRowProps(row) {\n    return ColumnGroupBase.getCProps(row);\n  };\n  var getColumnGroupProps = function getColumnGroupProps() {\n    return props.headerColumnGroup ? ptmo(ColumnGroupBase.getCProps(props.headerColumnGroup)) : undefined;\n  };\n  var getColumnGroupPTOptions = function getColumnGroupPTOptions(key) {\n    var cGProps = getColumnGroupProps();\n    var columnGroupMetaData = {\n      props: cGProps,\n      parent: props.metaData,\n      hostName: props.hostName,\n      state: {\n        sortableDisabledFields: sortableDisabledFieldsState,\n        allSortableDisabled: allSortableDisabledState\n      }\n    };\n    return mergeProps(ptm(\"columnGroup.\".concat(key), {\n      columnGroup: columnGroupMetaData\n    }), ptm(\"columnGroup.\".concat(key), columnGroupMetaData), ptmo(cGProps, key, columnGroupMetaData));\n  };\n  var getColumnPTOptions = function getColumnPTOptions(column, key) {\n    var cProps = getColumnProps(column);\n    var columnMetaData = {\n      props: cProps,\n      parent: props.metaData,\n      hostName: props.hostName,\n      state: {\n        sortableDisabledFields: sortableDisabledFieldsState,\n        allSortableDisabled: allSortableDisabledState\n      }\n    };\n    return mergeProps(ptm(\"column.\".concat(key), {\n      column: columnMetaData\n    }), ptm(\"column.\".concat(key), columnMetaData), ptmo(cProps, key, columnMetaData));\n  };\n  var getRowPTOptions = function getRowPTOptions(row, key) {\n    var rProps = getRowProps(row);\n    var rowMetaData = {\n      props: rProps,\n      parent: props.metaData,\n      hostName: props.hostName\n    };\n    return mergeProps(ptm(\"row.\".concat(key), {\n      row: rowMetaData\n    }), ptm(\"row.\".concat(key), rowMetaData), ptmo(rProps, key, rowMetaData));\n  };\n  var isColumnSorted = function isColumnSorted(column) {\n    return props.sortField !== null ? getColumnProp(column, 'field') === props.sortField || getColumnProp(column, 'sortField') === props.sortField : false;\n  };\n  var updateSortableDisabled = function updateSortableDisabled() {\n    if (isSingleSort || isMultipleSort && props.onSortChange) {\n      var sortableDisabledFields = [];\n      var allSortableDisabled = false;\n      props.columns.forEach(function (column) {\n        if (getColumnProp(column, 'sortableDisabled')) {\n          sortableDisabledFields.push(getColumnProp(column, 'sortField') || getColumnProp(column, 'field'));\n          if (!allSortableDisabled && isColumnSorted(column)) {\n            allSortableDisabled = true;\n          }\n        }\n      });\n      setSortableDisabledFieldsState(sortableDisabledFields);\n      setAllSortableDisabledState(allSortableDisabled);\n    }\n  };\n  var onSortableChange = function onSortableChange() {\n    updateSortableDisabled();\n  };\n  var onCheckboxChange = function onCheckboxChange(e) {\n    props.onColumnCheckboxChange(e, props.value);\n  };\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMountEffect)(function () {\n    updateSortableDisabled();\n  });\n  var createGroupHeaderCells = function createGroupHeaderCells(row) {\n    var columns = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(RowBase.getCProp(row, 'children'));\n    return createHeaderCells(columns);\n  };\n  var createHeaderCells = function createHeaderCells(columns) {\n    return react__WEBPACK_IMPORTED_MODULE_0__.Children.map(columns, function (col, i) {\n      var isVisible = col ? !getColumnProp(col, 'hidden') : true;\n      var key = col ? getColumnProp(col, 'columnKey') || getColumnProp(col, 'field') || i : i;\n      return isVisible && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(HeaderCell, {\n        hostName: props.hostName,\n        allRowsSelected: props.allRowsSelected,\n        allSortableDisabled: isAllSortableDisabled,\n        column: col,\n        index: i,\n        empty: props.empty,\n        filterClearIcon: props.filterClearIcon,\n        filterDisplay: props.filterDisplay,\n        filterIcon: props.filterIcon,\n        filters: props.filters,\n        filtersStore: props.filtersStore,\n        groupRowSortField: props.groupRowSortField,\n        groupRowsBy: props.groupRowsBy,\n        key: key,\n        multiSortMeta: props.multiSortMeta,\n        onColumnCheckboxChange: onCheckboxChange,\n        onColumnDragLeave: props.onColumnDragLeave,\n        onColumnDragOver: props.onColumnDragOver,\n        onColumnDragStart: props.onColumnDragStart,\n        onColumnDrop: props.onColumnDrop,\n        onColumnMouseDown: props.onColumnMouseDown,\n        onColumnResizeStart: props.onColumnResizeStart,\n        onColumnResizerClick: props.onColumnResizerClick,\n        onColumnResizerDoubleClick: props.onColumnResizerDoubleClick,\n        onFilterApply: props.onFilterApply,\n        onFilterChange: props.onFilterChange,\n        onSortChange: props.onSortChange,\n        onSortableChange: onSortableChange,\n        reorderableColumns: props.reorderableColumns,\n        resizableColumns: props.resizableColumns,\n        showSelectAll: props.showSelectAll,\n        sortField: props.sortField,\n        sortIcon: props.sortIcon,\n        sortMode: props.sortMode,\n        sortOrder: props.sortOrder,\n        sortableDisabledFields: sortableDisabledFieldsState,\n        tabIndex: props.tabIndex,\n        tableProps: props.tableProps,\n        value: props.value,\n        ptCallbacks: props.ptCallbacks,\n        metaData: props.metaData,\n        unstyled: props.unstyled\n      });\n    });\n  };\n  var createCheckbox = function createCheckbox(column, selectionMode) {\n    if (props.showSelectAll && selectionMode === 'multiple') {\n      var allRowsSelected = props.allRowsSelected(props.value);\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(HeaderCheckbox, {\n        hostName: props.hostName,\n        column: column,\n        checked: allRowsSelected,\n        onChange: onCheckboxChange,\n        disabled: props.empty,\n        ptCallbacks: props.ptCallbacks,\n        metaData: props.metaData,\n        unstyled: props.unstyled\n      });\n    }\n    return null;\n  };\n  var createFilter = function createFilter(column, filter) {\n    if (filter) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(ColumnFilter, {\n        hostName: props.hostName,\n        display: \"row\",\n        column: column,\n        filterClearIcon: props.filterClearIcon,\n        filterIcon: props.filterIcon,\n        filters: props.filters,\n        filtersStore: props.filtersStore,\n        metaData: props.metaData,\n        onFilterApply: props.onFilterApply,\n        onFilterChange: props.onFilterChange,\n        ptCallbacks: props.ptCallbacks,\n        unstyled: props.unstyled\n      });\n    }\n    return null;\n  };\n  var createFilterCells = function createFilterCells() {\n    return react__WEBPACK_IMPORTED_MODULE_0__.Children.map(props.columns, function (col, i) {\n      var isVisible = !getColumnProp(col, 'hidden');\n      if (isVisible) {\n        var _ColumnBase$getCProps = ColumnBase.getCProps(col),\n          filterHeaderStyle = _ColumnBase$getCProps.filterHeaderStyle,\n          style = _ColumnBase$getCProps.style,\n          filterHeaderClassName = _ColumnBase$getCProps.filterHeaderClassName,\n          className = _ColumnBase$getCProps.className,\n          frozen = _ColumnBase$getCProps.frozen,\n          columnKey = _ColumnBase$getCProps.columnKey,\n          field = _ColumnBase$getCProps.field,\n          selectionMode = _ColumnBase$getCProps.selectionMode,\n          filter = _ColumnBase$getCProps.filter;\n        var colStyle = _objectSpread$1(_objectSpread$1({}, filterHeaderStyle || {}), style || {});\n        var colKey = columnKey || field || i;\n        var checkbox = createCheckbox(col, selectionMode);\n        var filterRow = createFilter(col, filter);\n        var headerCellProps = mergeProps({\n          style: colStyle,\n          className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(filterHeaderClassName, className, cx('headerCell', {\n            frozen: frozen,\n            column: col\n          }))\n        }, getColumnPTOptions(col, 'root'), getColumnPTOptions(col, 'headerCell'));\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"th\", _extends({\n          key: colKey\n        }, headerCellProps), checkbox, filterRow);\n      }\n      return null;\n    });\n  };\n  var createContent = function createContent() {\n    if (props.headerColumnGroup) {\n      var rows = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(ColumnGroupBase.getCProp(props.headerColumnGroup, 'children'));\n      return rows.map(function (row, i) {\n        var _RowBase$getProps = RowBase.getProps(row.props, context),\n          unstyled = _RowBase$getProps.unstyled;\n        _RowBase$getProps.__TYPE;\n        _RowBase$getProps.ptOptions;\n        var rest = _objectWithoutProperties(_RowBase$getProps, _excluded);\n        var headerRowProps = mergeProps({\n          role: 'row'\n        }, unstyled ? _objectSpread$1({\n          unstyled: unstyled\n        }, rest) : rest, getRowPTOptions(row, 'root'));\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"tr\", _extends({}, headerRowProps, {\n          key: i\n        }), createGroupHeaderCells(row));\n      });\n    }\n    var headerRowProps = mergeProps({\n      role: 'row'\n    }, ptm('headerRow', {\n      hostName: props.hostName\n    }));\n    var headerRow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"tr\", headerRowProps, createHeaderCells(props.columns));\n    var filterRow = props.filterDisplay === 'row' && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"tr\", headerRowProps, createFilterCells());\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, headerRow, filterRow);\n  };\n  var content = createContent();\n  var theadProps = mergeProps({\n    className: cx('thead'),\n    role: 'rowgroup'\n  }, getColumnGroupPTOptions('root'), ptm('thead', {\n    hostName: props.hostName\n  }));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"thead\", theadProps, content);\n});\nTableHeader.displayName = 'TableHeader';\nfunction _createForOfIteratorHelper(r, e) {\n  var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (!t) {\n    if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n      t && (r = t);\n      var _n = 0,\n        F = function F() {};\n      return {\n        s: F,\n        n: function n() {\n          return _n >= r.length ? {\n            done: !0\n          } : {\n            done: !1,\n            value: r[_n++]\n          };\n        },\n        e: function e(r) {\n          throw r;\n        },\n        f: F\n      };\n    }\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n  var o,\n    a = !0,\n    u = !1;\n  return {\n    s: function s() {\n      t = t.call(r);\n    },\n    n: function n() {\n      var r = t.next();\n      return a = r.done, r;\n    },\n    e: function e(r) {\n      u = !0, o = r;\n    },\n    f: function f() {\n      try {\n        a || null == t[\"return\"] || t[\"return\"]();\n      } finally {\n        if (u) throw o;\n      }\n    }\n  };\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar DataTable = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var props = DataTableBase.getProps(inProps, context);\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(props.first),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    firstState = _React$useState2[0],\n    setFirstState = _React$useState2[1];\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__.useState(props.rows),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    rowsState = _React$useState4[0],\n    setRowsState = _React$useState4[1];\n  var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_0__.useState(props.sortField),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    sortFieldState = _React$useState6[0],\n    setSortFieldState = _React$useState6[1];\n  var _React$useState7 = react__WEBPACK_IMPORTED_MODULE_0__.useState(props.sortOrder),\n    _React$useState8 = _slicedToArray(_React$useState7, 2),\n    sortOrderState = _React$useState8[0],\n    setSortOrderState = _React$useState8[1];\n  var _React$useState9 = react__WEBPACK_IMPORTED_MODULE_0__.useState(props.multiSortMeta),\n    _React$useState10 = _slicedToArray(_React$useState9, 2),\n    multiSortMetaState = _React$useState10[0],\n    setMultiSortMetaState = _React$useState10[1];\n  var _React$useState11 = react__WEBPACK_IMPORTED_MODULE_0__.useState(props.filters),\n    _React$useState12 = _slicedToArray(_React$useState11, 2),\n    filtersState = _React$useState12[0],\n    setFiltersState = _React$useState12[1];\n  var _React$useState13 = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),\n    _React$useState14 = _slicedToArray(_React$useState13, 2),\n    columnOrderState = _React$useState14[0],\n    setColumnOrderState = _React$useState14[1];\n  var _React$useState15 = react__WEBPACK_IMPORTED_MODULE_0__.useState(null),\n    _React$useState16 = _slicedToArray(_React$useState15, 2),\n    groupRowsSortMetaState = _React$useState16[0],\n    setGroupRowsSortMetaState = _React$useState16[1];\n  var _React$useState17 = react__WEBPACK_IMPORTED_MODULE_0__.useState({}),\n    _React$useState18 = _slicedToArray(_React$useState17, 2),\n    editingMetaState = _React$useState18[0],\n    setEditingMetaState = _React$useState18[1];\n  var _React$useState19 = react__WEBPACK_IMPORTED_MODULE_0__.useState({}),\n    _React$useState20 = _slicedToArray(_React$useState19, 2),\n    frozenEditingMetaState = _React$useState20[0],\n    setFrozenEditingMetaState = _React$useState20[1];\n  var _React$useState21 = react__WEBPACK_IMPORTED_MODULE_0__.useState(props.rows),\n    _React$useState22 = _slicedToArray(_React$useState21, 2),\n    d_rowsState = _React$useState22[0],\n    setD_rowsState = _React$useState22[1];\n  var _React$useState23 = react__WEBPACK_IMPORTED_MODULE_0__.useState({}),\n    _React$useState24 = _slicedToArray(_React$useState23, 2),\n    d_filtersState = _React$useState24[0],\n    setD_filtersState = _React$useState24[1];\n  var metaData = {\n    props: props,\n    state: {\n      first: firstState,\n      rows: rowsState,\n      sortField: sortFieldState,\n      sortOrder: sortOrderState,\n      multiSortMeta: multiSortMetaState,\n      filters: filtersState,\n      columnOrder: columnOrderState,\n      groupRowsSortMeta: groupRowsSortMetaState,\n      editingMeta: editingMetaState,\n      frozenEditingMeta: frozenEditingMetaState,\n      d_rows: d_rowsState,\n      d_filters: d_filtersState\n    },\n    context: {\n      scrollable: props.scrollable\n    }\n  };\n  var ptCallbacks = DataTableBase.setMetaData(metaData);\n  (0,primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.useHandleStyle)(DataTableBase.css.styles, ptCallbacks.isUnstyled, {\n    name: 'datatable'\n  });\n  var attributeSelector = react__WEBPACK_IMPORTED_MODULE_0__.useRef('');\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var tableRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var wrapperRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var bodyRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var frozenBodyRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var virtualScrollerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var reorderIndicatorUpRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var reorderIndicatorDownRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var colReorderIconWidth = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var colReorderIconHeight = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var resizeHelperRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var draggedColumnElement = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var draggedColumn = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var dropPosition = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var styleElement = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var responsiveStyleElement = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var beforeResizeStyleElement = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var columnWidthsState = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var tableWidthState = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var resizeColumn = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var resizeColumnElement = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var columnResizing = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var lastResizeHelperX = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var columnSortable = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var columnSortFunction = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var columnField = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var filterTimeout = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  if (props.rows !== d_rowsState && !props.onPage) {\n    setRowsState(props.rows);\n    setD_rowsState(props.rows);\n  }\n  var columnResizeStartListener = function columnResizeStartListener(event) {\n    return columnResizing.current && onColumnResize(event);\n  };\n  var columnResizeEndListener = function columnResizeEndListener() {\n    return columnResizing.current && (columnResizing.current = false, onColumnResizeEnd());\n  };\n  var _useEventListener = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEventListener)({\n      type: 'mousemove',\n      listener: columnResizeStartListener\n    }),\n    _useEventListener2 = _slicedToArray(_useEventListener, 2),\n    bindDocumentMouseMoveListener = _useEventListener2[0],\n    unbindDocumentMouseMoveListener = _useEventListener2[1];\n  var _useEventListener3 = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEventListener)({\n      type: 'mouseup',\n      listener: columnResizeEndListener\n    }),\n    _useEventListener4 = _slicedToArray(_useEventListener3, 2),\n    bindDocumentMouseUpListener = _useEventListener4[0],\n    unbindDocumentMouseUpListener = _useEventListener4[1];\n  var _useEventListener5 = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEventListener)({\n      type: 'touchmove',\n      listener: columnResizeStartListener\n    }),\n    _useEventListener6 = _slicedToArray(_useEventListener5, 2),\n    bindDocumentTouchMoveListener = _useEventListener6[0],\n    unbindDocumentTouchMoveListener = _useEventListener6[1];\n  var _useEventListener7 = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEventListener)({\n      type: 'touchend',\n      listener: columnResizeEndListener\n    }),\n    _useEventListener8 = _slicedToArray(_useEventListener7, 2),\n    bindDocumentTouchEndListener = _useEventListener8[0],\n    unbindDocumentTouchEndListener = _useEventListener8[1];\n  var isCustomStateStorage = function isCustomStateStorage() {\n    return props.stateStorage === 'custom';\n  };\n  var isStateful = function isStateful() {\n    return props.stateKey != null || isCustomStateStorage();\n  };\n  var isVirtualScrollerDisabled = function isVirtualScrollerDisabled() {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isEmpty(props.virtualScrollerOptions) || !props.scrollable;\n  };\n  var isEquals = function isEquals(data1, data2) {\n    return props.compareSelectionBy === 'equals' ? data1 === data2 : primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.equals(data1, data2, props.dataKey);\n  };\n  var hasFilter = function hasFilter() {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(getFilters()) || props.globalFilter;\n  };\n  var getFirst = function getFirst() {\n    return props.onPage ? props.first : firstState;\n  };\n  var getRows = function getRows() {\n    return props.onPage ? props.rows : rowsState;\n  };\n  var getSortField = function getSortField() {\n    return props.onSort ? props.sortField : sortFieldState;\n  };\n  var getSortOrder = function getSortOrder() {\n    return props.onSort ? props.sortOrder : sortOrderState;\n  };\n  var getMultiSortMeta = function getMultiSortMeta() {\n    return (props.onSort ? props.multiSortMeta : multiSortMetaState) || [];\n  };\n  var getFilters = function getFilters() {\n    return props.onFilter ? props.filters : filtersState;\n  };\n  var getColumnProp = function getColumnProp(column, name) {\n    return ColumnBase.getCProp(column, name);\n  };\n  var getColumns = function getColumns(ignoreReorderable) {\n    var columns = react__WEBPACK_IMPORTED_MODULE_0__.Children.toArray(props.children);\n    if (!columns) {\n      return null;\n    }\n    if (!ignoreReorderable && props.reorderableColumns && columnOrderState) {\n      var orderedColumns = columnOrderState.reduce(function (arr, columnKey) {\n        var column = findColumnByKey(columns, columnKey);\n        column && arr.push(column);\n        return arr;\n      }, []);\n      return [].concat(_toConsumableArray(orderedColumns), _toConsumableArray(columns.filter(function (col) {\n        return orderedColumns.indexOf(col) < 0;\n      })));\n    }\n    return columns;\n  };\n  var saveState = function saveState() {\n    var state = {};\n    if (props.paginator) {\n      state.first = getFirst();\n      state.rows = getRows();\n    }\n    var sortField = getSortField();\n    if (sortField) {\n      state.sortField = sortField;\n      state.sortOrder = getSortOrder();\n    }\n    var multiSortMeta = getMultiSortMeta();\n    if (multiSortMeta) {\n      state.multiSortMeta = multiSortMeta;\n    }\n    if (hasFilter()) {\n      state.filters = getFilters();\n    }\n    if (props.resizableColumns) {\n      saveColumnWidths(state);\n    }\n    if (props.reorderableColumns) {\n      state.columnOrder = columnOrderState;\n    }\n    if (props.expandedRows) {\n      state.expandedRows = props.expandedRows;\n    }\n    if (props.selection && props.onSelectionChange) {\n      state.selection = props.selection;\n    }\n    if (isCustomStateStorage()) {\n      if (props.customSaveState) {\n        props.customSaveState(state);\n      }\n    } else {\n      var storage = getStorage(props.stateStorage);\n      if (primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(state)) {\n        storage.setItem(props.stateKey, JSON.stringify(state));\n      }\n    }\n    if (props.onStateSave) {\n      props.onStateSave(state);\n    }\n  };\n  var clearState = function clearState() {\n    var storage = getStorage(props.stateStorage);\n    if (storage && props.stateKey) {\n      storage.removeItem(props.stateKey);\n    }\n  };\n  var restoreState = function restoreState() {\n    var restoredState = {};\n    if (isCustomStateStorage()) {\n      if (props.customRestoreState) {\n        restoredState = props.customRestoreState();\n      }\n    } else {\n      var storage = getStorage(props.stateStorage);\n      var stateString = storage.getItem(props.stateKey);\n      var dateFormat = /\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}Z/;\n      var reviver = function reviver(key, value) {\n        return typeof value === 'string' && dateFormat.test(value) ? new Date(value) : value;\n      };\n      if (stateString) {\n        restoredState = JSON.parse(stateString, reviver);\n      }\n    }\n    _restoreState(restoredState);\n  };\n  var restoreTableState = function restoreTableState(restoredState) {\n    _restoreState(restoredState);\n  };\n  var _restoreState = function _restoreState() {\n    var restoredState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(restoredState)) {\n      if (props.paginator) {\n        if (props.onPage) {\n          var getOnPageParams = function getOnPageParams(first, rows) {\n            var totalRecords = getTotalRecords(processedData());\n            var pageCount = Math.ceil(totalRecords / rows) || 1;\n            var page = Math.floor(first / rows);\n            return {\n              first: first,\n              rows: rows,\n              page: page,\n              pageCount: pageCount\n            };\n          };\n          props.onPage(createEvent(getOnPageParams(restoredState.first, restoredState.rows)));\n        } else {\n          setFirstState(restoredState.first);\n          setRowsState(restoredState.rows);\n        }\n      }\n      if (restoredState.sortField) {\n        if (props.onSort) {\n          props.onSort(createEvent({\n            sortField: restoredState.sortField,\n            sortOrder: restoredState.sortOrder\n          }));\n        } else {\n          setSortFieldState(restoredState.sortField);\n          setSortOrderState(restoredState.sortOrder);\n        }\n      }\n      if (restoredState.multiSortMeta) {\n        if (props.onSort) {\n          props.onSort(createEvent({\n            multiSortMeta: restoredState.multiSortMeta\n          }));\n        } else {\n          setMultiSortMetaState(restoredState.multiSortMeta);\n        }\n      }\n      if (restoredState.filters) {\n        setD_filtersState(cloneFilters(restoredState.filters));\n        if (props.onFilter) {\n          props.onFilter(createEvent({\n            filters: restoredState.filters\n          }));\n        } else {\n          setFiltersState(cloneFilters(restoredState.filters));\n        }\n      }\n      if (props.resizableColumns) {\n        columnWidthsState.current = restoredState.columnWidths;\n        tableWidthState.current = restoredState.tableWidth;\n        restoreColumnWidths();\n      }\n      if (props.reorderableColumns) {\n        setColumnOrderState(restoredState.columnOrder);\n      }\n      if (restoredState.expandedRows && props.onRowToggle) {\n        props.onRowToggle({\n          data: restoredState.expandedRows\n        });\n      }\n      if (restoredState.selection && props.onSelectionChange) {\n        props.onSelectionChange({\n          value: restoredState.selection\n        });\n      }\n      if (props.onStateRestore) {\n        props.onStateRestore(restoredState);\n      }\n    }\n  };\n  var saveColumnWidths = function saveColumnWidths(state) {\n    var widths = [];\n    var headers = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.find(elementRef.current, '[data-pc-section=\"thead\"] > tr > th');\n    headers.forEach(function (header) {\n      return widths.push(primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterWidth(header));\n    });\n    state.columnWidths = widths.join(',');\n    if (props.columnResizeMode === 'expand') {\n      state.tableWidth = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterWidth(tableRef.current) + 'px';\n    }\n  };\n  var addColumnWidthStyles = function addColumnWidthStyles(widths) {\n    createStyleElement();\n    var innerHTML = '';\n    var selector = \"[data-pc-name=\\\"datatable\\\"][\".concat(attributeSelector.current, \"] > [data-pc-section=\\\"wrapper\\\"] \").concat(isVirtualScrollerDisabled() ? '' : '> [data-pc-name=\"virtualscroller\"]', \" > [data-pc-section=\\\"table\\\"]\");\n    widths.forEach(function (width, index) {\n      var style = \"width: \".concat(width, \"px !important; max-width: \").concat(width, \"px !important\");\n      innerHTML = innerHTML + \"\\n                \".concat(selector, \" > [data-pc-section=\\\"thead\\\"] > tr > th:nth-child(\").concat(index + 1, \"),\\n                \").concat(selector, \" > [data-pc-section=\\\"tbody\\\"] > tr > td:nth-child(\").concat(index + 1, \"),\\n                \").concat(selector, \" > [data-pc-section=\\\"tfoot\\\"] > tr > td:nth-child(\").concat(index + 1, \") {\\n                    \").concat(style, \"\\n                }\\n            \");\n    });\n    styleElement.current.innerHTML = innerHTML;\n  };\n  var restoreColumnWidths = function restoreColumnWidths() {\n    if (columnWidthsState.current) {\n      var widths = columnWidthsState.current.split(',');\n      if (props.columnResizeMode === 'expand' && tableWidthState.current) {\n        tableRef.current.style.width = tableWidthState.current;\n        tableRef.current.style.minWidth = tableWidthState.current;\n      }\n      if (primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(widths)) {\n        addColumnWidthStyles(widths);\n      }\n    }\n  };\n  var findParentHeader = function findParentHeader(element) {\n    if (element.nodeName === 'TH') {\n      return element;\n    }\n    var parent = element.parentElement;\n    while (parent.nodeName !== 'TH') {\n      parent = parent.parentElement;\n      if (!parent) {\n        break;\n      }\n    }\n    return parent;\n  };\n  var getGroupRowSortField = function getGroupRowSortField() {\n    return props.sortMode === 'single' ? props.sortField : groupRowsSortMetaState ? groupRowsSortMetaState.field : null;\n  };\n  var getSelectableData = function getSelectableData(val) {\n    if (props.showSelectionElement || props.isDataSelectable) {\n      return val.filter(function (data, index) {\n        var isSelectable = true;\n        if (props.showSelectionElement) {\n          isSelectable = props.showSelectionElement({\n            rowIndex: index,\n            props: props\n          });\n        }\n        if (props.isDataSelectable && isSelectable) {\n          isSelectable = props.isDataSelectable({\n            data: data,\n            index: index\n          });\n        }\n        return isSelectable;\n      });\n    }\n    return val;\n  };\n  var allRowsSelected = function allRowsSelected(processedData) {\n    if (props.onSelectAllChange) {\n      return props.selectAll;\n    }\n    var data = props.selectionPageOnly ? dataToRender(processedData) : processedData;\n    var val = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(props.frozenValue) ? [].concat(_toConsumableArray(props.frozenValue), _toConsumableArray(data)) : data;\n    var selectableVal = getSelectableData(val);\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(selectableVal) && props.selection && selectableVal.every(function (sv) {\n      return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isArray(props.selection) && props.selection.some(function (s) {\n        return isEquals(s, sv);\n      });\n    });\n  };\n  var getSelectionModeInColumn = function getSelectionModeInColumn(columns) {\n    if (columns) {\n      var col = columns.find(function (c) {\n        return !!getColumnProp(c, 'selectionMode');\n      });\n      return col ? getColumnProp(col, 'selectionMode') : null;\n    }\n    return null;\n  };\n  var findColumnByKey = function findColumnByKey(columns, key) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(columns) ? columns.find(function (col) {\n      return getColumnProp(col, 'columnKey') === key || getColumnProp(col, 'field') === key;\n    }) : null;\n  };\n  var getTotalRecords = function getTotalRecords(data) {\n    return props.lazy ? props.totalRecords : data ? data.length : 0;\n  };\n  var onEditingMetaChange = function onEditingMetaChange(e) {\n    var rowData = e.rowData,\n      field = e.field,\n      editingKey = e.editingKey;\n    e.rowIndex;\n    var editing = e.editing;\n    var editingMeta = _objectSpread({}, editingMetaState);\n    var meta = editingMeta[editingKey];\n    if (editing) {\n      !meta && (meta = editingMeta[editingKey] = {\n        data: _objectSpread({}, rowData),\n        fields: []\n      });\n      meta.fields.push(field);\n    } else if (meta) {\n      var fields = meta.fields.filter(function (f) {\n        return f !== field;\n      });\n      !fields.length ? delete editingMeta[editingKey] : meta.fields = fields;\n    }\n    setEditingMetaState(editingMeta);\n  };\n  var clearEditingMetaData = function clearEditingMetaData() {\n    if (props.editMode && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(editingMetaState)) {\n      setEditingMetaState({});\n    }\n  };\n  var onFrozenEditingMetaChange = function onFrozenEditingMetaChange(e) {\n    var rowData = e.rowData,\n      field = e.field,\n      editingKey = e.editingKey,\n      editing = e.editing;\n    var frozenEditingMeta = _objectSpread({}, frozenEditingMetaState);\n    var meta = frozenEditingMeta[editingKey];\n    if (editing) {\n      !meta && (meta = frozenEditingMeta[editingKey] = {\n        data: _objectSpread({}, rowData),\n        fields: []\n      });\n      meta.fields.push(field);\n    } else if (meta) {\n      var fields = meta.fields.filter(function (f) {\n        return f !== field;\n      });\n      !fields.length ? delete frozenEditingMeta[editingKey] : meta.fields = fields;\n    }\n    setFrozenEditingMetaState(frozenEditingMeta);\n  };\n  var clearFrozenEditingMetaData = function clearFrozenEditingMetaData() {\n    if (props.editMode && primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(frozenEditingMetaState)) {\n      setFrozenEditingMetaState({});\n    }\n  };\n  var onColumnResizeStart = function onColumnResizeStart(e) {\n    createBeforeResizeStyleElement();\n    var event = e.originalEvent,\n      column = e.column;\n    var containerLeft = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOffset(elementRef.current).left;\n    resizeColumn.current = column;\n    resizeColumnElement.current = event.currentTarget.parentElement;\n    columnResizing.current = true;\n    lastResizeHelperX.current = (event.type === 'touchstart' ? event.changedTouches[0].clientX : event.pageX) - containerLeft + elementRef.current.scrollLeft;\n    bindColumnResizeEvents();\n  };\n  var onColumnResize = function onColumnResize(event) {\n    var containerLeft = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOffset(elementRef.current).left;\n    elementRef.current.setAttribute('data-p-unselectable-text', true);\n    resizeHelperRef.current.style.height = elementRef.current.offsetHeight + 'px';\n    resizeHelperRef.current.style.top = 0 + 'px';\n    resizeHelperRef.current.style.left = (event.type === 'touchmove' ? event.changedTouches[0].clientX : event.pageX) - containerLeft + elementRef.current.scrollLeft + 'px';\n    resizeHelperRef.current.style.display = 'block';\n  };\n  var onColumnResizeEnd = function onColumnResizeEnd() {\n    var delta = resizeHelperRef.current.offsetLeft - lastResizeHelperX.current;\n    var columnWidth = resizeColumnElement.current.offsetWidth;\n    var newColumnWidth = columnWidth + delta;\n    var minWidth = resizeColumnElement.current.style.minWidth || 15;\n    if (columnWidth + delta > parseInt(minWidth, 10)) {\n      if (props.columnResizeMode === 'fit') {\n        var nextColumn = resizeColumnElement.current.nextElementSibling;\n        var nextColumnWidth = nextColumn.offsetWidth - delta;\n        if (newColumnWidth > 15 && nextColumnWidth > 15) {\n          resizeTableCells(newColumnWidth, nextColumnWidth);\n        }\n      } else if (props.columnResizeMode === 'expand') {\n        var tableWidth = tableRef.current.offsetWidth + delta + 'px';\n        var updateTableWidth = function updateTableWidth(el) {\n          !!el && (el.style.width = el.style.minWidth = tableWidth);\n        };\n\n        // https://github.com/primefaces/primereact/issues/3970 Reasoning: resize table cells before updating the table width so that it can use existing computed cell widths and adjust only the one column.\n        resizeTableCells(newColumnWidth);\n        updateTableWidth(tableRef.current);\n        if (!isVirtualScrollerDisabled()) {\n          updateTableWidth(bodyRef.current);\n          updateTableWidth(frozenBodyRef.current);\n          if (wrapperRef.current) {\n            updateTableWidth(primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.findSingle(wrapperRef.current, '[data-pc-name=\"virtualscroller\"] > table > tbody'));\n          }\n        }\n      }\n      if (props.onColumnResizeEnd) {\n        props.onColumnResizeEnd({\n          element: resizeColumnElement.current,\n          column: resizeColumn.current,\n          delta: delta\n        });\n      }\n      if (isStateful()) {\n        saveState();\n      }\n    }\n    resizeHelperRef.current.style.display = 'none';\n    resizeColumn.current = null;\n    resizeColumnElement.current = null;\n    elementRef.current.setAttribute('data-p-unselectable-text', 'true');\n    destroyBeforeResizeStyleElement();\n    unbindColumnResizeEvents();\n  };\n  var resizeTableCells = function resizeTableCells(newColumnWidth, nextColumnWidth) {\n    var widths = [];\n    var colIndex = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.index(resizeColumnElement.current);\n    var headers = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.find(tableRef.current, '[data-pc-section=\"thead\"] > tr > th');\n    headers.forEach(function (header) {\n      return widths.push(primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterWidth(header));\n    });\n    destroyStyleElement();\n    createStyleElement();\n    var innerHTML = '';\n    var selector = \"[data-pc-name=\\\"datatable\\\"][\".concat(attributeSelector.current, \"] > [data-pc-section=\\\"wrapper\\\"] \").concat(isVirtualScrollerDisabled() ? '' : '> [data-pc-name=\"virtualscroller\"]', \" > [data-pc-section=\\\"table\\\"]\");\n    widths.forEach(function (width, index) {\n      var colWidth = index === colIndex ? newColumnWidth : nextColumnWidth && index === colIndex + 1 ? nextColumnWidth : width;\n      var style = \"width: \".concat(colWidth, \"px !important; max-width: \").concat(colWidth, \"px !important\");\n      innerHTML = innerHTML + \"\\n                 \".concat(selector, \" > [data-pc-section=\\\"thead\\\"] > tr > th:nth-child(\").concat(index + 1, \"),\\n                \").concat(selector, \" > [data-pc-section=\\\"tbody\\\"] > tr > td:nth-child(\").concat(index + 1, \"),\\n                \").concat(selector, \" > [data-pc-section=\\\"tfoot\\\"] > tr > td:nth-child(\").concat(index + 1, \") {\\n                    \").concat(style, \"\\n                }\\n            \");\n    });\n    styleElement.current.innerHTML = innerHTML;\n  };\n  var bindColumnResizeEvents = function bindColumnResizeEvents() {\n    bindDocumentMouseMoveListener();\n    bindDocumentMouseUpListener();\n    bindDocumentTouchMoveListener();\n    bindDocumentTouchEndListener();\n  };\n  var unbindColumnResizeEvents = function unbindColumnResizeEvents() {\n    unbindDocumentMouseMoveListener();\n    unbindDocumentMouseUpListener();\n    unbindDocumentTouchMoveListener();\n    unbindDocumentTouchEndListener();\n  };\n  var onColumnHeaderMouseDown = function onColumnHeaderMouseDown(e) {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.clearSelection();\n    var event = e.originalEvent,\n      column = e.column;\n    if (props.reorderableColumns && getColumnProp(column, 'reorderable') !== false && !getColumnProp(column, 'frozen')) {\n      if (event.target.nodeName === 'INPUT' || event.target.nodeName === 'TEXTAREA' || primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getAttribute(event.target, '[data-pc-section=\"columnresizer\"]')) {\n        event.currentTarget.draggable = false;\n      } else {\n        event.currentTarget.draggable = true;\n      }\n    }\n  };\n  var onColumnHeaderCheckboxChange = function onColumnHeaderCheckboxChange(e, processedData) {\n    if (props.onSelectAllChange) {\n      props.onSelectAllChange(e);\n    } else {\n      var originalEvent = e.originalEvent,\n        checked = e.checked;\n      var _data = props.selectionPageOnly ? dataToRender(processedData) : processedData;\n      var selection = props.selectionPageOnly && props.selection ? props.selection.filter(function (s) {\n        return !_data.some(function (d) {\n          return isEquals(s, d);\n        });\n      }) : [];\n      if (checked) {\n        selection = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(props.frozenValue) ? [].concat(_toConsumableArray(selection), _toConsumableArray(props.frozenValue), _toConsumableArray(_data)) : [].concat(_toConsumableArray(selection), _toConsumableArray(_data));\n        selection = getSelectableData(selection);\n        props.onAllRowsSelect && props.onAllRowsSelect({\n          originalEvent: originalEvent,\n          data: selection,\n          type: 'all'\n        });\n      } else {\n        props.onAllRowsUnselect && props.onAllRowsUnselect({\n          originalEvent: originalEvent,\n          data: selection,\n          type: 'all'\n        });\n      }\n      if (props.onSelectionChange) {\n        props.onSelectionChange({\n          originalEvent: originalEvent,\n          value: selection,\n          type: 'all'\n        });\n      }\n    }\n  };\n  var onColumnHeaderDragStart = function onColumnHeaderDragStart(e) {\n    var event = e.originalEvent,\n      column = e.column;\n    if (columnResizing.current) {\n      event.preventDefault();\n      return;\n    }\n    if (!props.reorderableColumns) {\n      return;\n    }\n    colReorderIconWidth.current = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getHiddenElementOuterWidth(reorderIndicatorUpRef.current);\n    colReorderIconHeight.current = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getHiddenElementOuterHeight(reorderIndicatorUpRef.current);\n    draggedColumn.current = column;\n    draggedColumnElement.current = findParentHeader(event.currentTarget);\n    event.dataTransfer.setData('text', 'b'); // Firefox requires this to make dragging possible\n  };\n  var onColumnHeaderDragOver = function onColumnHeaderDragOver(e) {\n    var event = e.originalEvent,\n      column = e.column;\n    var dropHeader = findParentHeader(event.currentTarget);\n    if (props.reorderableColumns && draggedColumnElement.current && dropHeader && !getColumnProp(column, 'frozen')) {\n      event.preventDefault();\n      if (draggedColumnElement.current !== dropHeader) {\n        var containerOffset = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOffset(elementRef.current);\n        var dropHeaderOffset = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOffset(dropHeader);\n        var targetLeft = dropHeaderOffset.left - containerOffset.left;\n        var columnCenter = dropHeaderOffset.left + dropHeader.offsetWidth / 2;\n        var dragIndex = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.index(draggedColumnElement.current);\n        var dropIndex = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.index(findParentHeader(event.currentTarget));\n        reorderIndicatorUpRef.current.style.top = dropHeaderOffset.top - containerOffset.top - (colReorderIconHeight.current - 1) + 'px';\n        reorderIndicatorDownRef.current.style.top = dropHeaderOffset.top - containerOffset.top + dropHeader.offsetHeight + 'px';\n        if (event.pageX > columnCenter && dragIndex < dropIndex) {\n          reorderIndicatorUpRef.current.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(colReorderIconWidth.current / 2) + 'px';\n          reorderIndicatorDownRef.current.style.left = targetLeft + dropHeader.offsetWidth - Math.ceil(colReorderIconWidth.current / 2) + 'px';\n          dropPosition.current = 1;\n        } else if (dragIndex > dropIndex) {\n          reorderIndicatorUpRef.current.style.left = targetLeft - Math.ceil(colReorderIconWidth.current / 2) + 'px';\n          reorderIndicatorDownRef.current.style.left = targetLeft - Math.ceil(colReorderIconWidth.current / 2) + 'px';\n          dropPosition.current = -1;\n        }\n        reorderIndicatorUpRef.current.style.display = 'block';\n        reorderIndicatorDownRef.current.style.display = 'block';\n      }\n    }\n  };\n  var onColumnHeaderDragLeave = function onColumnHeaderDragLeave(e) {\n    var event = e.originalEvent;\n    if (props.reorderableColumns && draggedColumnElement.current) {\n      event.preventDefault();\n      reorderIndicatorUpRef.current.style.display = 'none';\n      reorderIndicatorDownRef.current.style.display = 'none';\n    }\n  };\n  var onColumnHeaderDrop = function onColumnHeaderDrop(e) {\n    var event = e.originalEvent,\n      column = e.column;\n    event.preventDefault();\n    if (draggedColumnElement.current) {\n      var dragIndex = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.index(draggedColumnElement.current);\n      var dropIndex = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.index(findParentHeader(event.currentTarget));\n      var allowDrop = dragIndex !== dropIndex;\n      if (allowDrop && (dropIndex - dragIndex === 1 && dropPosition.current === -1 || dragIndex - dropIndex === 1 && dropPosition.current === 1)) {\n        allowDrop = false;\n      }\n      if (allowDrop) {\n        var _columns = getColumns();\n        var isSameColumn = function isSameColumn(col1, col2) {\n          return getColumnProp(col1, 'columnKey') || getColumnProp(col2, 'columnKey') ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.equals(col1.props, col2.props, 'columnKey') : primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.equals(col1.props, col2.props, 'field');\n        };\n        var dragColIndex = _columns.findIndex(function (child) {\n          return isSameColumn(child, draggedColumn.current);\n        });\n        var dropColIndex = _columns.findIndex(function (child) {\n          return isSameColumn(child, column);\n        });\n        var widths = [];\n        var headers = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.find(tableRef.current, '[data-pc-section=\"thead\"] > tr > th');\n        headers.forEach(function (header) {\n          return widths.push(primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterWidth(header));\n        });\n        var movedItem = widths.find(function (items, index) {\n          return index === dragColIndex;\n        });\n        var remainingItems = widths.filter(function (items, index) {\n          return index !== dragColIndex;\n        });\n        var reorderedWidths = [].concat(_toConsumableArray(remainingItems.slice(0, dropColIndex)), [movedItem], _toConsumableArray(remainingItems.slice(dropColIndex)));\n        addColumnWidthStyles(reorderedWidths);\n        if (dropColIndex < dragColIndex && dropPosition.current === 1) {\n          dropColIndex++;\n        }\n        if (dropColIndex > dragColIndex && dropPosition.current === -1) {\n          dropColIndex--;\n        }\n        primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.reorderArray(_columns, dragColIndex, dropColIndex);\n        var columnOrder = _columns.reduce(function (orders, col) {\n          orders.push(getColumnProp(col, 'columnKey') || getColumnProp(col, 'field'));\n          return orders;\n        }, []);\n        setColumnOrderState(columnOrder);\n        if (props.onColReorder) {\n          props.onColReorder({\n            originalEvent: event,\n            dragIndex: dragColIndex,\n            dropIndex: dropColIndex,\n            columns: _columns\n          });\n        }\n      }\n      reorderIndicatorUpRef.current.style.display = 'none';\n      reorderIndicatorDownRef.current.style.display = 'none';\n      draggedColumnElement.current.draggable = false;\n      draggedColumnElement.current = null;\n      draggedColumn.current = null;\n      dropPosition.current = null;\n    }\n  };\n  var createBeforeResizeStyleElement = function createBeforeResizeStyleElement() {\n    beforeResizeStyleElement.current = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.createInlineStyle(context && context.nonce || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].nonce, context && context.styleContainer);\n    var innerHTML = \"\\n[data-pc-name=\\\"datatable\\\"][\".concat(attributeSelector.current, \"] {\\n    user-select:none;\\n}\\n        \");\n    beforeResizeStyleElement.current.innerHTML = innerHTML;\n  };\n  var createStyleElement = function createStyleElement() {\n    styleElement.current = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.createInlineStyle(context && context.nonce || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].nonce, context && context.styleContainer);\n  };\n  var createResponsiveStyle = function createResponsiveStyle() {\n    if (!responsiveStyleElement.current) {\n      responsiveStyleElement.current = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.createInlineStyle(context && context.nonce || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].nonce, context && context.styleContainer);\n      var tableSelector = \".p-datatable-wrapper \".concat(isVirtualScrollerDisabled() ? '' : '> .p-virtualscroller', \" > .p-datatable-table\");\n      var selector = \".p-datatable[\".concat(attributeSelector.current, \"] > \").concat(tableSelector);\n      var gridLinesSelector = \".p-datatable[\".concat(attributeSelector.current, \"].p-datatable-gridlines > \").concat(tableSelector);\n      var innerHTML = \"\\n@media screen and (max-width: \".concat(props.breakpoint, \") {\\n    \").concat(selector, \" > .p-datatable-thead > tr > th,\\n    \").concat(selector, \" > .p-datatable-tfoot > tr > td {\\n        display: none;\\n    }\\n\\n    \").concat(selector, \" > .p-datatable-tbody > tr > td {\\n        display: flex;\\n        width: 100%;\\n        align-items: center;\\n        justify-content: space-between;\\n    }\\n\\n    \").concat(selector, \" > .p-datatable-tbody > tr > td:not(:last-child) {\\n        border: 0 none;\\n    }\\n\\n    \").concat(gridLinesSelector, \" > .p-datatable-tbody > tr > td:last-child {\\n        border-top: 0;\\n        border-right: 0;\\n        border-left: 0;\\n    }\\n\\n    \").concat(selector, \" > .p-datatable-tbody > tr > td > .p-column-title {\\n        display: block;\\n    }\\n}\\n\");\n      responsiveStyleElement.current.innerHTML = innerHTML;\n    }\n  };\n  var destroyResponsiveStyle = function destroyResponsiveStyle() {\n    responsiveStyleElement.current = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.removeInlineStyle(responsiveStyleElement.current);\n  };\n  var destroyStyleElement = function destroyStyleElement() {\n    styleElement.current = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.removeInlineStyle(styleElement.current);\n  };\n  var destroyBeforeResizeStyleElement = function destroyBeforeResizeStyleElement() {\n    beforeResizeStyleElement.current = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.removeInlineStyle(beforeResizeStyleElement.current);\n  };\n  var onPageChange = function onPageChange(e) {\n    clearEditingMetaData();\n    clearFrozenEditingMetaData();\n    if (props.onPage) {\n      props.onPage(createEvent(e));\n    } else {\n      setFirstState(e.first);\n      setRowsState(e.rows);\n    }\n    if (props.onValueChange) {\n      props.onValueChange(processedData());\n    }\n  };\n  var onSortChange = function onSortChange(e) {\n    clearEditingMetaData();\n    clearFrozenEditingMetaData();\n    var event = e.originalEvent,\n      column = e.column,\n      sortableDisabledFields = e.sortableDisabledFields;\n    var sortField = getColumnProp(column, 'sortField') || getColumnProp(column, 'field');\n    var sortOrder = props.defaultSortOrder;\n    var multiSortMeta;\n    var eventMeta;\n    columnSortable.current = getColumnProp(column, 'sortable');\n    columnSortFunction.current = getColumnProp(column, 'sortFunction');\n    columnField.current = sortField;\n    if (props.sortMode === 'multiple') {\n      var metaKey = event.metaKey || event.ctrlKey;\n      multiSortMeta = _toConsumableArray(getMultiSortMeta());\n      var sortMeta = multiSortMeta.find(function (sortMeta) {\n        return sortMeta.field === sortField;\n      });\n      sortOrder = sortMeta ? getCalculatedSortOrder(sortMeta.order) : sortOrder;\n      var newMetaData = {\n        field: sortField,\n        order: sortOrder\n      };\n      if (sortOrder) {\n        multiSortMeta = metaKey ? multiSortMeta : multiSortMeta.filter(function (meta) {\n          return sortableDisabledFields.some(function (field) {\n            return field === meta.field;\n          });\n        });\n        addSortMeta(newMetaData, multiSortMeta);\n      } else if (props.removableSort) {\n        removeSortMeta(newMetaData, multiSortMeta);\n      }\n      eventMeta = {\n        multiSortMeta: multiSortMeta\n      };\n    } else {\n      sortOrder = getSortField() === sortField ? getCalculatedSortOrder(getSortOrder()) : sortOrder;\n      if (props.removableSort) {\n        sortField = sortOrder ? sortField : null;\n      }\n      eventMeta = {\n        sortField: sortField,\n        sortOrder: sortOrder\n      };\n    }\n    if (props.onSort) {\n      props.onSort(createEvent(eventMeta));\n    } else {\n      setFirstState(0);\n      setSortFieldState(eventMeta.sortField);\n      setSortOrderState(eventMeta.sortOrder);\n      setMultiSortMetaState(eventMeta.multiSortMeta);\n    }\n    if (props.onValueChange) {\n      props.onValueChange(processedData({\n        sortField: sortField,\n        sortOrder: sortOrder,\n        multiSortMeta: multiSortMeta\n      }));\n    }\n  };\n  var getCalculatedSortOrder = function getCalculatedSortOrder(currentOrder) {\n    return props.removableSort ? props.defaultSortOrder === currentOrder ? currentOrder * -1 : 0 : currentOrder * -1;\n  };\n  var compareValuesOnSort = function compareValuesOnSort(value1, value2, comparator, order) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.sort(value1, value2, order, comparator, context && context.nullSortOrder || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].nullSortOrder);\n  };\n  var addSortMeta = function addSortMeta(meta, multiSortMeta) {\n    var index = multiSortMeta.findIndex(function (sortMeta) {\n      return sortMeta.field === meta.field;\n    });\n    if (index >= 0) {\n      multiSortMeta[index] = meta;\n    } else {\n      multiSortMeta.push(meta);\n    }\n  };\n  var removeSortMeta = function removeSortMeta(meta, multiSortMeta) {\n    var index = multiSortMeta.findIndex(function (sortMeta) {\n      return sortMeta.field === meta.field;\n    });\n    if (index >= 0) {\n      multiSortMeta.splice(index, 1);\n    }\n    multiSortMeta = multiSortMeta.length > 0 ? multiSortMeta : null;\n  };\n  var sortSingle = function sortSingle(data, field, order) {\n    if (props.groupRowsBy && props.groupRowsBy === props.sortField) {\n      var multiSortMeta = [{\n        field: props.sortField,\n        order: props.sortOrder || props.defaultSortOrder\n      }];\n      props.sortField !== field && multiSortMeta.push({\n        field: field,\n        order: order\n      });\n      return sortMultiple(data, multiSortMeta);\n    }\n    var value = _toConsumableArray(data);\n    if (columnSortable.current && columnSortFunction.current) {\n      value = columnSortFunction.current({\n        data: data,\n        field: field,\n        order: order\n      });\n    } else {\n      // performance optimization to prevent resolving field data in each loop\n      var lookupMap = new Map();\n      var comparator = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.localeComparator(context && context.locale || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].locale);\n      var _iterator = _createForOfIteratorHelper(data),\n        _step;\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var item = _step.value;\n          lookupMap.set(item, primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(item, field));\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n      value.sort(function (data1, data2) {\n        var value1 = lookupMap.get(data1);\n        var value2 = lookupMap.get(data2);\n        return compareValuesOnSort(value1, value2, comparator, order);\n      });\n    }\n    return value;\n  };\n  var sortMultiple = function sortMultiple(data) {\n    var multiSortMeta = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    if (props.groupRowsBy && (groupRowsSortMetaState || multiSortMeta.length && props.groupRowsBy === multiSortMeta[0].field)) {\n      var groupRowsSortMeta = groupRowsSortMetaState;\n      var firstSortMeta = multiSortMeta[0];\n      if (!groupRowsSortMeta) {\n        groupRowsSortMeta = firstSortMeta;\n        setGroupRowsSortMetaState(groupRowsSortMeta);\n      }\n      if (firstSortMeta.field !== groupRowsSortMeta.field) {\n        multiSortMeta = [groupRowsSortMeta].concat(_toConsumableArray(multiSortMeta));\n      }\n    }\n    var value = _toConsumableArray(data);\n    if (columnSortable.current && columnSortFunction.current) {\n      var meta = multiSortMeta.find(function (meta) {\n        return meta.field === columnField.current;\n      });\n      var field = columnField.current;\n      var order = meta ? meta.order : props.defaultSortOrder;\n      value = columnSortFunction.current({\n        data: data,\n        field: field,\n        order: order,\n        multiSortMeta: multiSortMeta\n      });\n    } else {\n      var comparator = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.localeComparator(context && context.locale || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].locale);\n      value.sort(function (data1, data2) {\n        return _multisortField(data1, data2, multiSortMeta, 0, comparator);\n      });\n    }\n    return value;\n  };\n  var _multisortField = function multisortField(data1, data2, multiSortMeta, index, comparator) {\n    if (!multiSortMeta || !multiSortMeta[index]) {\n      return;\n    }\n    var value1 = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(data1, multiSortMeta[index].field);\n    var value2 = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(data2, multiSortMeta[index].field);\n\n    // check if they are equal handling dates and locales\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.compare(value1, value2, comparator) === 0) {\n      return multiSortMeta.length - 1 > index ? _multisortField(data1, data2, multiSortMeta, index + 1, comparator) : 0;\n    }\n    return compareValuesOnSort(value1, value2, comparator, multiSortMeta[index].order);\n  };\n  var onFilterChange = function onFilterChange(filters) {\n    clearEditingMetaData();\n    clearFrozenEditingMetaData();\n    setD_filtersState(filters);\n  };\n  var onFilterApply = function onFilterApply(filtersToApply) {\n    clearTimeout(filterTimeout.current);\n    filterTimeout.current = setTimeout(function () {\n      var filters = cloneFilters(filtersToApply || d_filtersState);\n      if (props.onFilter) {\n        props.onFilter(createEvent({\n          filters: filters\n        }));\n      } else {\n        setFirstState(0);\n        setFiltersState(filters);\n      }\n      if (props.onValueChange) {\n        props.onValueChange(processedData({\n          filters: filters\n        }));\n      }\n    }, props.filterDelay);\n  };\n  var getActiveFilters = function getActiveFilters(filters) {\n    var removeEmptyFilters = function removeEmptyFilters(_ref) {\n      var _ref2 = _slicedToArray(_ref, 2),\n        key = _ref2[0],\n        value = _ref2[1];\n      if (value.constraints) {\n        var filteredConstraints = value.constraints.filter(function (constraint) {\n          return constraint.value !== null;\n        });\n        if (filteredConstraints.length > 0) {\n          return [key, _objectSpread(_objectSpread({}, value), {}, {\n            constraints: filteredConstraints\n          })];\n        }\n      } else if (value.value !== null) {\n        return [key, value];\n      }\n      return undefined;\n    };\n    var filterValidEntries = function filterValidEntries(entry) {\n      return entry !== undefined;\n    };\n    var entries = Object.entries(filters).map(removeEmptyFilters).filter(filterValidEntries);\n    return Object.fromEntries(entries);\n  };\n  var filterLocal = function filterLocal(data, filters) {\n    if (!data) {\n      return;\n    }\n    var activeFilters = filters ? getActiveFilters(filters) : {};\n    var columns = getColumns();\n    var filteredValue = [];\n    var isGlobalFilter = activeFilters.global || props.globalFilter;\n    var globalFilterFieldsArray;\n    if (isGlobalFilter) {\n      globalFilterFieldsArray = props.globalFilterFields || columns.filter(function (col) {\n        return !getColumnProp(col, 'excludeGlobalFilter');\n      }).map(function (col) {\n        return getColumnProp(col, 'filterField') || getColumnProp(col, 'field');\n      });\n    }\n    for (var i = 0; i < data.length; i++) {\n      var localMatch = true;\n      var globalMatch = false;\n      var localFiltered = false;\n      for (var prop in activeFilters) {\n        if (prop === 'null') {\n          continue;\n        }\n        if (Object.prototype.hasOwnProperty.call(activeFilters, prop) && prop !== 'global') {\n          localFiltered = true;\n          var filterField = prop;\n          var filterMeta = activeFilters[filterField];\n          if (filterMeta.operator) {\n            for (var j = 0; j < filterMeta.constraints.length; j++) {\n              var filterConstraint = filterMeta.constraints[j];\n              localMatch = executeLocalFilter(filterField, data[i], filterConstraint, j);\n              if (filterMeta.operator === primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterOperator.OR && localMatch || filterMeta.operator === primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterOperator.AND && !localMatch) {\n                break;\n              }\n            }\n          } else {\n            localMatch = executeLocalFilter(filterField, data[i], filterMeta, 0);\n          }\n          if (!localMatch) {\n            break;\n          }\n        }\n      }\n      if (localMatch && isGlobalFilter && !globalMatch && globalFilterFieldsArray) {\n        for (var _j = 0; _j < globalFilterFieldsArray.length; _j++) {\n          var globalFilterField = globalFilterFieldsArray[_j];\n          var matchMode = activeFilters.global ? activeFilters.global.matchMode : props.globalFilterMatchMode;\n          var value = activeFilters.global ? activeFilters.global.value : props.globalFilter;\n          globalMatch = primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterService.filters[matchMode](primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(data[i], globalFilterField), value, props.filterLocale);\n          if (globalMatch) {\n            break;\n          }\n        }\n      }\n      var matches = void 0;\n      if (isGlobalFilter) {\n        matches = localFiltered ? localFiltered && localMatch && globalMatch : globalMatch;\n      } else {\n        matches = localFiltered && localMatch;\n      }\n      if (matches) {\n        filteredValue.push(data[i]);\n      }\n    }\n    if (filteredValue.length === props.value.length || Object.keys(activeFilters).length === 0) {\n      filteredValue = data;\n    }\n    return filteredValue;\n  };\n  var executeLocalFilter = function executeLocalFilter(field, rowData, filterMeta, index) {\n    var filterValue = filterMeta.value;\n    var filterMatchMode = filterMeta.matchMode === 'custom' ? \"custom_\".concat(field) : filterMeta.matchMode || primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterMatchMode.STARTS_WITH;\n    var dataFieldValue = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(rowData, field);\n    var filterConstraint = primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterService.filters[filterMatchMode];\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isFunction(filterConstraint) && filterConstraint(dataFieldValue, filterValue, props.filterLocale, index);\n  };\n  var cloneFilters = function cloneFilters(filters) {\n    filters = filters || props.filters;\n    var cloned = {};\n    if (filters) {\n      Object.entries(filters).forEach(function (_ref3) {\n        var _ref4 = _slicedToArray(_ref3, 2),\n          prop = _ref4[0],\n          value = _ref4[1];\n        cloned[prop] = value.operator ? {\n          operator: value.operator,\n          constraints: value.constraints.map(function (constraint) {\n            return _objectSpread({}, constraint);\n          })\n        } : _objectSpread({}, value);\n      });\n    } else {\n      var _columns2 = getColumns();\n      cloned = _columns2.reduce(function (filters, col) {\n        var field = getColumnProp(col, 'filterField') || getColumnProp(col, 'field');\n        var filterFunction = getColumnProp(col, 'filterFunction');\n        var dataType = getColumnProp(col, 'dataType');\n        var matchMode = getColumnProp(col, 'filterMatchMode') || (context && context.filterMatchModeOptions[dataType] || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].filterMatchModeOptions[dataType] ? context && context.filterMatchModeOptions[dataType][0] || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].filterMatchModeOptions[dataType][0] : primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterMatchMode.STARTS_WITH);\n        var constraint = {\n          value: null,\n          matchMode: matchMode\n        };\n        if (filterFunction) {\n          primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterService.register(\"custom_\".concat(field), function () {\n            for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n              args[_key] = arguments[_key];\n            }\n            return filterFunction.apply(void 0, args.concat([{\n              column: col\n            }]));\n          });\n        }\n        filters[field] = props.filterDisplay === 'menu' ? {\n          operator: primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterOperator.AND,\n          constraints: [constraint]\n        } : constraint;\n        return filters;\n      }, {});\n    }\n    return cloned;\n  };\n  var filter = function filter(value, field, matchMode) {\n    var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n    var filters = _objectSpread({}, d_filtersState);\n    var meta = filters[field];\n    var constraint = meta && meta.operator ? meta.constraints[index] : meta;\n    constraint = meta ? {\n      value: value,\n      matchMode: matchMode || constraint.matchMode\n    } : {\n      value: value,\n      matchMode: matchMode\n    };\n    props.filterDisplay === 'menu' && meta && meta.operator ? filters[field].constraints[index] = constraint : filters[field] = constraint;\n    setD_filtersState(filters);\n    onFilterApply(filters);\n  };\n  var reset = function reset() {\n    setD_rowsState(props.rows);\n    setD_filtersState(cloneFilters(props.filters));\n    setGroupRowsSortMetaState(null);\n    setEditingMetaState({});\n    setFrozenEditingMetaState({});\n    if (!props.onPage) {\n      setFirstState(props.first);\n      setRowsState(props.rows);\n    }\n    if (!props.onSort) {\n      setSortFieldState(props.sortField);\n      setSortOrderState(props.sortOrder);\n      setMultiSortMetaState(props.multiSortMeta);\n    }\n    if (!props.onFilter) {\n      setFiltersState(props.filters);\n    }\n    resetColumnOrder();\n  };\n  var resetScroll = function resetScroll() {\n    if (wrapperRef.current) {\n      var scrollableContainer = !isVirtualScrollerDisabled() ? primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.findSingle(wrapperRef.current, '[data-pc-name=\"virtualscroller\"]') : wrapperRef.current;\n      scrollableContainer.scrollTo(0, 0);\n    }\n  };\n  var resetResizeColumnsWidth = function resetResizeColumnsWidth() {\n    destroyStyleElement();\n  };\n  var resetColumnOrder = function resetColumnOrder() {\n    var columns = getColumns(true);\n    var columnOrder = [];\n    if (columns) {\n      columnOrder = columns.reduce(function (orders, col) {\n        orders.push(getColumnProp(col, 'columnKey') || getColumnProp(col, 'field'));\n        return orders;\n      }, []);\n    }\n    setColumnOrderState(columnOrder);\n  };\n  var exportCSV = function exportCSV(options) {\n    var data;\n    var csv = \"\\uFEFF\";\n    if (options && options.selectionOnly) {\n      data = props.selection || [];\n    } else {\n      data = [].concat(_toConsumableArray(props.frozenValue || []), _toConsumableArray(processedData() || []));\n    }\n\n    // First build collection of exportable columns\n    var exportableColumns = getColumns().filter(function (column) {\n      var exportable = getColumnProp(column, 'exportable');\n      var field = getColumnProp(column, 'field');\n\n      // Column must be exportable (or undefined/not set) and have a field defined\n      return exportable !== false && field;\n    });\n\n    // headers\n    exportableColumns.forEach(function (column, i) {\n      var _ref5 = [getColumnProp(column, 'field'), getColumnProp(column, 'header'), getColumnProp(column, 'exportHeader')],\n        field = _ref5[0],\n        header = _ref5[1],\n        exportHeader = _ref5[2];\n      var columnHeader = String(exportHeader || header || field).replace(/\"/g, '\"\"').replace(/\\n/g, \"\\u2028\");\n      csv = csv + ('\"' + columnHeader + '\"');\n      if (i < exportableColumns.length - 1) {\n        csv = csv + props.csvSeparator;\n      }\n    });\n\n    // body\n    data.forEach(function (record) {\n      csv = csv + '\\n';\n      exportableColumns.forEach(function (column, i) {\n        var _ref6 = [getColumnProp(column, 'field'), getColumnProp(column, 'exportField')],\n          colField = _ref6[0],\n          exportField = _ref6[1];\n        var field = exportField || colField;\n        var cellData = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.resolveFieldData(record, field);\n        if (cellData != null) {\n          if (props.exportFunction) {\n            cellData = props.exportFunction({\n              data: cellData,\n              field: field,\n              rowData: record,\n              column: column\n            });\n          } else {\n            cellData = String(cellData).replace(/\"/g, '\"\"').replace(/\\n/g, \"\\u2028\");\n          }\n        } else {\n          cellData = '';\n        }\n        csv = csv + ('\"' + cellData + '\"');\n        if (i < exportableColumns.length - 1) {\n          csv = csv + props.csvSeparator;\n        }\n      });\n    });\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.exportCSV(csv, props.exportFilename);\n  };\n  var closeEditingCell = function closeEditingCell() {\n    if (props.editMode !== 'row') {\n      document.body.click();\n    }\n  };\n  var closeEditingRows = function closeEditingRows() {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.find(document.body, '[data-pc-section=\"roweditorcancelbuttonprops\"]').forEach(function (button, index) {\n      setTimeout(function () {\n        button.click();\n      }, index * 5);\n    });\n  };\n  var createEvent = function createEvent(event) {\n    return _objectSpread({\n      first: getFirst(),\n      rows: getRows(),\n      sortField: getSortField(),\n      sortOrder: getSortOrder(),\n      multiSortMeta: getMultiSortMeta(),\n      filters: getFilters()\n    }, event);\n  };\n  var processedData = function processedData(localState) {\n    var data = props.value || [];\n    if (!props.lazy) {\n      if (data && data.length) {\n        var filters = localState && localState.filters || getFilters();\n        var sortField = localState && localState.sortField || getSortField();\n        var sortOrder = localState && localState.sortOrder || getSortOrder();\n        var multiSortMeta = localState && localState.multiSortMeta || getMultiSortMeta();\n        var _columns3 = getColumns();\n        var sortColumn = _columns3.find(function (col) {\n          return getColumnProp(col, 'field') === sortField;\n        });\n        if (sortColumn) {\n          columnSortable.current = getColumnProp(sortColumn, 'sortable');\n          columnSortFunction.current = getColumnProp(sortColumn, 'sortFunction');\n        }\n        if (primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(filters) || props.globalFilter) {\n          data = filterLocal(data, filters);\n        }\n        if (sortField || primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(multiSortMeta)) {\n          if (props.sortMode === 'single') {\n            data = sortSingle(data, sortField, sortOrder);\n          } else if (props.sortMode === 'multiple') {\n            data = sortMultiple(data, multiSortMeta);\n          }\n        }\n      }\n    }\n    return data;\n  };\n  var dataToRender = function dataToRender(data) {\n    if (data && props.paginator) {\n      var first = props.lazy ? 0 : getFirst();\n      return data.slice(first, first + getRows());\n    }\n    return data;\n  };\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMountEffect)(function () {\n    if (elementRef.current) {\n      attributeSelector.current = (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.UniqueComponentId)();\n      elementRef.current.setAttribute(attributeSelector.current, '');\n    }\n\n    //setFiltersState(cloneFilters(props.filters)); // Github #4248\n    setD_filtersState(cloneFilters(props.filters));\n    if (isStateful()) {\n      restoreState();\n      if (props.resizableColumns) {\n        restoreColumnWidths();\n      }\n    }\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUpdateEffect)(function () {\n    if (props.responsiveLayout === 'stack' && !props.scrollable) {\n      createResponsiveStyle();\n    }\n    return function () {\n      destroyResponsiveStyle();\n    };\n  }, [props.breakpoint]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUpdateEffect)(function () {\n    var filters = cloneFilters(props.filters);\n    setFiltersState(filters);\n    setD_filtersState(cloneFilters(props.filters));\n    if (props.onValueChange) {\n      props.onValueChange(processedData({\n        filters: filters\n      }));\n    }\n  }, [props.filters]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUpdateEffect)(function () {\n    if (isStateful()) {\n      saveState();\n    }\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUpdateEffect)(function () {\n    destroyResponsiveStyle();\n    if (props.responsiveLayout === 'stack' && !props.scrollable) {\n      createResponsiveStyle();\n    }\n  }, [props.responsiveLayout, props.scrollable]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUpdateEffect)(function () {\n    if (props.globalFilter) {\n      filter(props.globalFilter, 'global', props.globalFilterMatchMode);\n    } else {\n      // #3819 was filtering but now reset filter state\n      if (d_filtersState['global']) {\n        var filters = _objectSpread({}, d_filtersState);\n        delete filters['global'];\n        setD_filtersState(filters);\n        onFilterApply(filters);\n      }\n    }\n  }, [props.globalFilter, props.globalFilterMatchMode]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUnmountEffect)(function () {\n    unbindColumnResizeEvents();\n    destroyStyleElement();\n    destroyResponsiveStyle();\n    destroyBeforeResizeStyleElement();\n  });\n  react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      clearState: clearState,\n      closeEditingCell: closeEditingCell,\n      closeEditingRows: closeEditingRows,\n      exportCSV: exportCSV,\n      filter: filter,\n      reset: reset,\n      resetColumnOrder: resetColumnOrder,\n      resetScroll: resetScroll,\n      resetResizeColumnsWidth: resetResizeColumnsWidth,\n      restoreColumnWidths: restoreColumnWidths,\n      restoreState: restoreState,\n      restoreTableState: restoreTableState,\n      saveState: saveState,\n      getFilterMeta: function getFilterMeta() {\n        return filtersState;\n      },\n      setFilterMeta: function setFilterMeta(filters) {\n        return setFiltersState(filters);\n      },\n      getSortMeta: function getSortMeta() {\n        return multiSortMetaState;\n      },\n      setSortMeta: function setSortMeta(sorts) {\n        return setMultiSortMetaState(sorts);\n      },\n      getElement: function getElement() {\n        return elementRef.current;\n      },\n      getTable: function getTable() {\n        return tableRef.current;\n      },\n      getVirtualScroller: function getVirtualScroller() {\n        return virtualScrollerRef.current;\n      }\n    };\n  });\n  var createLoader = function createLoader() {\n    if (props.loading) {\n      var loadingIconProps = mergeProps({\n        className: ptCallbacks.cx('loadingIcon')\n      }, ptCallbacks.ptm('loadingIcon'));\n      var icon = props.loadingIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_spinner__WEBPACK_IMPORTED_MODULE_7__.SpinnerIcon, _extends({}, loadingIconProps, {\n        spin: true\n      }));\n      var loadingIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(icon, _objectSpread({}, loadingIconProps), {\n        props: props\n      });\n      var loadingOverlayProps = mergeProps({\n        className: ptCallbacks.cx('loadingOverlay')\n      }, ptCallbacks.ptm('loadingOverlay'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", loadingOverlayProps, loadingIcon);\n    }\n    return null;\n  };\n  var createHeader = function createHeader() {\n    if (props.header) {\n      var _content = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(props.header, {\n        props: props\n      });\n      var headerProps = mergeProps({\n        className: ptCallbacks.cx('header')\n      }, ptCallbacks.ptm('header'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", headerProps, _content);\n    }\n    return null;\n  };\n  var createTableHeader = function createTableHeader(options, empty, _isVirtualScrollerDisabled) {\n    if (props.showHeaders === false) {\n      return null;\n    }\n    var sortField = getSortField();\n    var sortOrder = getSortOrder();\n    var multiSortMeta = _toConsumableArray(getMultiSortMeta());\n    var groupRowSortField = getGroupRowSortField();\n    var filters = d_filtersState;\n    var filtersStore = !props.onFilter && props.filters || getFilters();\n    var processedData = options.items,\n      virtualScrollerProps = options.props,\n      columns = options.columns;\n    var data = _isVirtualScrollerDisabled || virtualScrollerProps.lazy ? processedData : virtualScrollerProps.items;\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(TableHeader, {\n      hostName: \"DataTable\",\n      value: data,\n      tableProps: props,\n      columns: columns,\n      tabIndex: props.tabIndex,\n      empty: empty,\n      headerColumnGroup: props.headerColumnGroup,\n      resizableColumns: props.resizableColumns,\n      onColumnResizeStart: onColumnResizeStart,\n      onColumnResizerClick: props.onColumnResizerClick,\n      onColumnResizerDoubleClick: props.onColumnResizerDoubleClick,\n      sortMode: props.sortMode,\n      sortField: sortField,\n      sortIcon: props.sortIcon,\n      sortOrder: sortOrder,\n      multiSortMeta: multiSortMeta,\n      groupRowsBy: props.groupRowsBy,\n      groupRowSortField: groupRowSortField,\n      onSortChange: onSortChange,\n      filterDisplay: props.filterDisplay,\n      filters: filters,\n      filtersStore: filtersStore,\n      filterIcon: props.filterIcon,\n      filterClearIcon: props.filterClearIcon,\n      onFilterChange: onFilterChange,\n      onFilterApply: onFilterApply,\n      showSelectAll: props.showSelectAll,\n      allRowsSelected: allRowsSelected,\n      onColumnCheckboxChange: onColumnHeaderCheckboxChange,\n      onColumnMouseDown: onColumnHeaderMouseDown,\n      onColumnDragStart: onColumnHeaderDragStart,\n      onColumnDragOver: onColumnHeaderDragOver,\n      onColumnDragLeave: onColumnHeaderDragLeave,\n      onColumnDrop: onColumnHeaderDrop,\n      rowGroupMode: props.rowGroupMode,\n      reorderableColumns: props.reorderableColumns,\n      ptCallbacks: ptCallbacks,\n      metaData: metaData,\n      unstyled: props.unstyled\n    });\n  };\n  var createTableBody = function createTableBody(options, selectionModeInColumn, empty, isVirtualScrollerDisabled, processedData) {\n    var first = getFirst();\n    var rows = options.rows,\n      columns = options.columns,\n      contentRef = options.contentRef,\n      style = options.style,\n      className = options.className,\n      spacerStyle = options.spacerStyle,\n      itemSize = options.itemSize;\n    var frozenBody = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(props.frozenValue) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(TableBody, {\n      hostName: \"DataTable\",\n      ref: frozenBodyRef,\n      cellMemo: props.cellMemo,\n      cellMemoProps: props.cellMemoProps,\n      cellMemoPropsDepth: props.cellMemoPropsDepth,\n      cellClassName: props.cellClassName,\n      cellSelection: props.cellSelection,\n      checkIcon: props.checkIcon,\n      className: \"p-datatable-tbody p-datatable-frozen-tbody\",\n      collapsedRowIcon: props.collapsedRowIcon,\n      columns: columns,\n      compareSelectionBy: props.compareSelectionBy,\n      contextMenuSelection: props.contextMenuSelection,\n      dataKey: props.dataKey,\n      dragSelection: props.dragSelection,\n      editMode: props.editMode,\n      editingMeta: frozenEditingMetaState,\n      editingRows: props.editingRows,\n      emptyMessage: props.emptyMessage,\n      expandableRowGroups: props.expandableRowGroups,\n      expandedRowIcon: props.expandedRowIcon,\n      expandedRows: props.expandedRows,\n      first: first,\n      frozenRow: true,\n      groupRowsBy: props.groupRowsBy,\n      isDataSelectable: props.isDataSelectable,\n      isVirtualScrollerDisabled: true,\n      lazy: props.lazy,\n      loading: props.loading,\n      metaKeySelection: props.metaKeySelection,\n      onCellClick: props.onCellClick,\n      onCellSelect: props.onCellSelect,\n      onCellUnselect: props.onCellUnselect,\n      onContextMenu: props.onContextMenu,\n      onContextMenuSelectionChange: props.onContextMenuSelectionChange,\n      onEditingMetaChange: onFrozenEditingMetaChange,\n      onRowClick: props.onRowClick,\n      onRowCollapse: props.onRowCollapse,\n      onRowDoubleClick: props.onRowDoubleClick,\n      onRowPointerDown: props.onRowPointerDown,\n      onRowPointerUp: props.onRowPointerUp,\n      onRowEditCancel: props.onRowEditCancel,\n      onRowEditChange: props.onRowEditChange,\n      onRowEditComplete: props.onRowEditComplete,\n      onRowEditInit: props.onRowEditInit,\n      onRowEditSave: props.onRowEditSave,\n      onRowExpand: props.onRowExpand,\n      onRowMouseEnter: props.onRowMouseEnter,\n      onRowMouseLeave: props.onRowMouseLeave,\n      onRowReorder: props.onRowReorder,\n      onRowSelect: props.onRowSelect,\n      onRowToggle: props.onRowToggle,\n      onRowUnselect: props.onRowUnselect,\n      onSelectionChange: props.onSelectionChange,\n      paginator: props.paginator\n      // pass processedData #7546\n      ,\n\n      processedData: processedData,\n      reorderableRows: props.reorderableRows,\n      responsiveLayout: props.responsiveLayout,\n      rowClassName: props.rowClassName,\n      rowEditValidator: props.rowEditValidator,\n      rowEditorCancelIcon: props.rowEditorCancelIcon,\n      rowEditorInitIcon: props.rowEditorInitIcon,\n      rowEditorSaveIcon: props.rowEditorSaveIcon,\n      rowExpansionTemplate: props.rowExpansionTemplate,\n      rowGroupFooterTemplate: props.rowGroupFooterTemplate,\n      rowGroupHeaderTemplate: props.rowGroupHeaderTemplate,\n      rowGroupMode: props.rowGroupMode,\n      scrollable: props.scrollable,\n      selectOnEdit: props.selectOnEdit,\n      selection: props.selection,\n      selectionAutoFocus: props.selectionAutoFocus,\n      selectionMode: props.selectionMode,\n      selectionModeInColumn: selectionModeInColumn,\n      showRowReorderElement: props.showRowReorderElement,\n      showSelectionElement: props.showSelectionElement,\n      tabIndex: props.tabIndex,\n      tableProps: props,\n      tableSelector: attributeSelector.current,\n      value: props.frozenValue,\n      virtualScrollerOptions: options,\n      ptCallbacks: ptCallbacks,\n      metaData: metaData,\n      unstyled: props.unstyled\n    });\n    var body = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(TableBody, {\n      hostName: \"DataTable\",\n      ref: bodyRef,\n      cellMemo: props.cellMemo,\n      cellMemoProps: props.cellMemoProps,\n      cellMemoPropsDepth: props.cellMemoPropsDepth,\n      cellClassName: props.cellClassName,\n      cellSelection: props.cellSelection,\n      checkIcon: props.checkIcon,\n      className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)('p-datatable-tbody', className),\n      collapsedRowIcon: props.collapsedRowIcon,\n      columns: columns,\n      compareSelectionBy: props.compareSelectionBy,\n      contextMenuSelection: props.contextMenuSelection,\n      dataKey: props.dataKey,\n      dragSelection: props.dragSelection,\n      editMode: props.editMode,\n      editingMeta: editingMetaState,\n      editingRows: props.editingRows,\n      empty: empty,\n      emptyMessage: props.emptyMessage,\n      expandableRowGroups: props.expandableRowGroups,\n      expandedRowIcon: props.expandedRowIcon,\n      expandedRows: props.expandedRows,\n      first: first,\n      frozenRow: false,\n      groupRowsBy: props.groupRowsBy,\n      isDataSelectable: props.isDataSelectable,\n      isVirtualScrollerDisabled: isVirtualScrollerDisabled,\n      lazy: props.lazy,\n      loading: props.loading,\n      metaKeySelection: props.metaKeySelection,\n      onCellClick: props.onCellClick,\n      onCellSelect: props.onCellSelect,\n      onCellUnselect: props.onCellUnselect,\n      onContextMenu: props.onContextMenu,\n      onContextMenuSelectionChange: props.onContextMenuSelectionChange,\n      onEditingMetaChange: onEditingMetaChange,\n      onRowClick: props.onRowClick,\n      onRowCollapse: props.onRowCollapse,\n      onRowDoubleClick: props.onRowDoubleClick,\n      onRowEditCancel: props.onRowEditCancel,\n      onRowEditChange: props.onRowEditChange,\n      onRowEditComplete: props.onRowEditComplete,\n      onRowEditInit: props.onRowEditInit,\n      onRowEditSave: props.onRowEditSave,\n      onRowExpand: props.onRowExpand,\n      onRowMouseEnter: props.onRowMouseEnter,\n      onRowMouseLeave: props.onRowMouseLeave,\n      onRowPointerDown: props.onRowPointerDown,\n      onRowPointerUp: props.onRowPointerUp,\n      onRowReorder: props.onRowReorder,\n      onRowSelect: props.onRowSelect,\n      onRowToggle: props.onRowToggle,\n      onRowUnselect: props.onRowUnselect,\n      onSelectionChange: props.onSelectionChange,\n      paginator: props.paginator\n      // pass processedData #7546\n      ,\n\n      processedData: processedData,\n      reorderableRows: props.reorderableRows,\n      responsiveLayout: props.responsiveLayout,\n      rowClassName: props.rowClassName,\n      rowEditValidator: props.rowEditValidator,\n      rowEditorCancelIcon: props.rowEditorCancelIcon,\n      rowEditorInitIcon: props.rowEditorInitIcon,\n      rowEditorSaveIcon: props.rowEditorSaveIcon,\n      rowExpansionTemplate: props.rowExpansionTemplate,\n      rowGroupFooterTemplate: props.rowGroupFooterTemplate,\n      rowGroupHeaderTemplate: props.rowGroupHeaderTemplate,\n      rowGroupMode: props.rowGroupMode,\n      scrollable: props.scrollable,\n      selectOnEdit: props.selectOnEdit,\n      selection: props.selection,\n      selectionAutoFocus: props.selectionAutoFocus,\n      selectionMode: props.selectionMode,\n      selectionModeInColumn: selectionModeInColumn,\n      showRowReorderElement: props.showRowReorderElement,\n      showSelectionElement: props.showSelectionElement,\n      style: style,\n      tabIndex: props.tabIndex,\n      tableProps: props,\n      tableSelector: attributeSelector.current,\n      value: dataToRender(rows),\n      virtualScrollerContentRef: contentRef,\n      virtualScrollerOptions: options,\n      ptCallbacks: ptCallbacks,\n      metaData: metaData,\n      unstyled: props.unstyled\n    });\n    var spacerBody = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isNotEmpty(spacerStyle) ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(TableBody, {\n      hostName: \"DataTable\",\n      style: {\n        height: \"calc(\".concat(spacerStyle.height, \" - \").concat(rows.length * itemSize, \"px)\")\n      },\n      className: \"p-datatable-virtualscroller-spacer\",\n      ptCallbacks: ptCallbacks,\n      metaData: metaData,\n      unstyled: props.unstyled\n    }) : null;\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, frozenBody, body, spacerBody);\n  };\n  var createTableFooter = function createTableFooter(options) {\n    var columns = options.columns;\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(TableFooter, {\n      hostName: \"DataTable\",\n      tableProps: props,\n      columns: columns,\n      footerColumnGroup: props.footerColumnGroup,\n      ptCallbacks: ptCallbacks,\n      metaData: metaData,\n      unstyled: props.unstyled\n    });\n  };\n  var createContent = function createContent(processedData, columns, selectionModeInColumn, empty) {\n    if (!columns) {\n      return;\n    }\n    var _isVirtualScrollerDisabled = isVirtualScrollerDisabled();\n    var virtualScrollerOptions = props.virtualScrollerOptions || {};\n    var wrapperProps = mergeProps({\n      className: ptCallbacks.cx('wrapper'),\n      style: _objectSpread(_objectSpread({}, ptCallbacks.sx('wrapper')), {}, {\n        maxHeight: _isVirtualScrollerDisabled ? props.scrollHeight : null\n      })\n    }, ptCallbacks.ptm('wrapper'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", _extends({\n      ref: wrapperRef\n    }, wrapperProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_virtualscroller__WEBPACK_IMPORTED_MODULE_9__.VirtualScroller, _extends({\n      ref: virtualScrollerRef\n    }, virtualScrollerOptions, {\n      items: processedData,\n      columns: columns,\n      style: _objectSpread(_objectSpread({}, virtualScrollerOptions.style), {\n        height: props.scrollHeight !== 'flex' ? props.scrollHeight : undefined\n      }),\n      scrollHeight: props.scrollHeight !== 'flex' ? undefined : '100%',\n      disabled: _isVirtualScrollerDisabled,\n      loaderDisabled: true,\n      inline: true,\n      autoSize: true,\n      pt: ptCallbacks.ptm('virtualScroller'),\n      __parentMetadata: {\n        parent: metaData\n      },\n      showSpacer: false,\n      unstyled: props.unstyled,\n      contentTemplate: function contentTemplate(options) {\n        var ref = function ref(el) {\n          tableRef.current = el;\n          options.spacerRef && options.spacerRef(el);\n        };\n        var tableHeader = createTableHeader(options, empty, _isVirtualScrollerDisabled);\n        var tableBody = createTableBody(options, selectionModeInColumn, empty, _isVirtualScrollerDisabled, processedData);\n        var tableFooter = createTableFooter(options);\n        var tableProps = mergeProps({\n          className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(props.tableClassName, ptCallbacks.cx('table')),\n          style: props.tableStyle,\n          role: 'table'\n        }, ptCallbacks.ptm('table'));\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"table\", _extends({\n          ref: ref\n        }, tableProps), tableHeader, tableBody, tableFooter);\n      }\n    })));\n  };\n  var createFooter = function createFooter() {\n    if (props.footer) {\n      var _content2 = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getJSXElement(props.footer, {\n        props: props\n      });\n      var footerProps = mergeProps({\n        className: ptCallbacks.cx('footer')\n      }, ptCallbacks.ptm('footer'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", footerProps, _content2);\n    }\n    return null;\n  };\n  var createPaginator = function createPaginator(position, totalRecords) {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_paginator__WEBPACK_IMPORTED_MODULE_8__.Paginator, {\n      first: getFirst(),\n      rows: getRows(),\n      pageLinkSize: props.pageLinkSize,\n      className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(props.paginatorClassName, ptCallbacks.cx('paginator', {\n        position: position\n      })),\n      onPageChange: onPageChange,\n      template: props.paginatorTemplate,\n      totalRecords: totalRecords,\n      rowsPerPageOptions: props.rowsPerPageOptions,\n      currentPageReportTemplate: props.currentPageReportTemplate,\n      leftContent: props.paginatorLeft,\n      rightContent: props.paginatorRight,\n      alwaysShow: props.alwaysShowPaginator,\n      dropdownAppendTo: props.paginatorDropdownAppendTo,\n      pt: ptCallbacks.ptm('paginator'),\n      unstyled: props.unstyled,\n      __parentMetadata: {\n        parent: metaData\n      }\n    });\n  };\n  var createPaginatorTop = function createPaginatorTop(totalRecords) {\n    if (props.paginator && props.paginatorPosition !== 'bottom') {\n      return createPaginator('top', totalRecords);\n    }\n    return null;\n  };\n  var createPaginatorBottom = function createPaginatorBottom(totalRecords) {\n    if (props.paginator && props.paginatorPosition !== 'top') {\n      return createPaginator('bottom', totalRecords);\n    }\n    return null;\n  };\n  var createResizeHelper = function createResizeHelper() {\n    if (props.resizableColumns) {\n      var resizeHelperProps = mergeProps({\n        className: ptCallbacks.cx('resizeHelper'),\n        style: ptCallbacks.sx('resizeHelper')\n      }, ptCallbacks.ptm('resizeHelper'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", _extends({\n        ref: resizeHelperRef\n      }, resizeHelperProps));\n    }\n    return null;\n  };\n  var createReorderIndicators = function createReorderIndicators() {\n    if (props.reorderableColumns) {\n      var style = {\n        position: 'absolute',\n        display: 'none'\n      };\n      var reorderIndicatorUpProps = mergeProps({\n        className: ptCallbacks.cx('reorderIndicatorUp'),\n        style: ptCallbacks.sx('reorderIndicatorUp', {\n          style: style\n        })\n      }, ptCallbacks.ptm('reorderIndicatorUp'));\n      var reorderIndicatorUpIconProps = mergeProps(ptCallbacks.ptm('reorderIndicatorUpIcon'));\n      var reorderIndicatorUpIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(props.reorderIndicatorUpIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_arrowdown__WEBPACK_IMPORTED_MODULE_5__.ArrowDownIcon, reorderIndicatorUpIconProps), _objectSpread({}, reorderIndicatorUpIconProps), {\n        props: props\n      });\n      var reorderIndicatorDownProps = mergeProps({\n        className: ptCallbacks.cx('reorderIndicatorDown'),\n        style: ptCallbacks.sx('reorderIndicatorDown', {\n          style: style\n        })\n      }, ptCallbacks.ptm('reorderIndicatorDown'));\n      var reorderIndicatorDownIconProps = mergeProps(ptCallbacks.ptm('reorderIndicatorDownIcon'));\n      var reorderIndicatorDownIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.IconUtils.getJSXIcon(props.reorderIndicatorDownIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_arrowup__WEBPACK_IMPORTED_MODULE_6__.ArrowUpIcon, reorderIndicatorDownIconProps), _objectSpread({}, reorderIndicatorDownIconProps), {\n        props: props\n      });\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", _extends({\n        ref: reorderIndicatorUpRef\n      }, reorderIndicatorUpProps), reorderIndicatorUpIcon), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", _extends({\n        ref: reorderIndicatorDownRef\n      }, reorderIndicatorDownProps), reorderIndicatorDownIcon));\n    }\n    return null;\n  };\n  var data = processedData();\n  var columns = getColumns();\n  var totalRecords = getTotalRecords(data);\n  var empty = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.isEmpty(data);\n  var selectionModeInColumn = getSelectionModeInColumn(columns);\n  var selectable = props.selectionMode || selectionModeInColumn;\n  var loader = createLoader();\n  var header = createHeader();\n  var paginatorTop = createPaginatorTop(totalRecords);\n  var content = createContent(data, columns, selectionModeInColumn, empty);\n  var paginatorBottom = createPaginatorBottom(totalRecords);\n  var footer = createFooter();\n  var resizeHelper = createResizeHelper();\n  var reorderIndicators = createReorderIndicators();\n  var rootProps = mergeProps({\n    id: props.id,\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(props.className, ptCallbacks.cx('root', {\n      selectable: selectable\n    })),\n    style: props.style,\n    'data-scrollselectors': '.p-datatable-wrapper',\n    'data-showgridlines': props.showGridlines\n  }, DataTableBase.getOtherProps(props), ptCallbacks.ptm('root'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", _extends({\n    ref: elementRef\n  }, rootProps), loader, header, paginatorTop, content, paginatorBottom, footer, resizeHelper, reorderIndicators);\n});\nDataTable.displayName = 'DataTable';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/datatable/datatable.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/dialog/dialog.esm.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/primereact/dialog/dialog.esm.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Dialog: () => (/* binding */ Dialog)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/componentbase */ \"../react-ui/node_modules/primereact/componentbase/componentbase.esm.js\");\n/* harmony import */ var primereact_csstransition__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/csstransition */ \"../react-ui/node_modules/primereact/csstransition/csstransition.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n/* harmony import */ var primereact_icons_times__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! primereact/icons/times */ \"../react-ui/node_modules/primereact/icons/times/index.esm.js\");\n/* harmony import */ var primereact_icons_windowmaximize__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! primereact/icons/windowmaximize */ \"../react-ui/node_modules/primereact/icons/windowmaximize/index.esm.js\");\n/* harmony import */ var primereact_icons_windowminimize__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! primereact/icons/windowminimize */ \"../react-ui/node_modules/primereact/icons/windowminimize/index.esm.js\");\n/* harmony import */ var primereact_portal__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! primereact/portal */ \"../react-ui/node_modules/primereact/portal/portal.esm.js\");\n/* harmony import */ var primereact_ripple__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! primereact/ripple */ \"../react-ui/node_modules/primereact/ripple/ripple.esm.js\");\n'use client';\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toConsumableArray(r) {\n  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nvar styles$1 = '';\nvar FocusTrapBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'FocusTrap',\n    children: undefined\n  },\n  css: {\n    styles: styles$1\n  },\n  getProps: function getProps(props) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.getMergedProps(props, FocusTrapBase.defaultProps);\n  },\n  getOtherProps: function getOtherProps(props) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.getDiffProps(props, FocusTrapBase.defaultProps);\n  }\n});\nfunction ownKeys$2(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar FocusTrap = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().forwardRef(function (inProps, ref) {\n  var targetRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n  var firstFocusableElementRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n  var lastFocusableElementRef = react__WEBPACK_IMPORTED_MODULE_0___default().useRef(null);\n  var context = react__WEBPACK_IMPORTED_MODULE_0___default().useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = FocusTrapBase.getProps(inProps, context);\n  var metaData = {\n    props: props\n  };\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useStyle)(FocusTrapBase.css.styles, {\n    name: 'focustrap'\n  });\n  var _FocusTrapBase$setMet = FocusTrapBase.setMetaData(_objectSpread$2({}, metaData));\n  _FocusTrapBase$setMet.ptm;\n  react__WEBPACK_IMPORTED_MODULE_0___default().useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      getInk: function getInk() {\n        return firstFocusableElementRef.current;\n      },\n      getTarget: function getTarget() {\n        return targetRef.current;\n      }\n    };\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMountEffect)(function () {\n    if (!props.disabled) {\n      targetRef.current = getTarget();\n      setAutoFocus(targetRef.current);\n    }\n  });\n  var getTarget = function getTarget() {\n    return firstFocusableElementRef.current && firstFocusableElementRef.current.parentElement;\n  };\n\n  /**\n   * This method sets the auto focus on the first focusable element within the target element.\n   * It first tries to find a focusable element using the autoFocusSelector. If no such element is found,\n   * it then tries to find a focusable element using the firstFocusableSelector.\n   * If the autoFocus prop is set to true and a focusable element is found, it sets the focus on that element.\n   *\n   * @param {HTMLElement} target - The target element within which to find a focusable element.\n   */\n  var setAutoFocus = function setAutoFocus(target) {\n    var _ref = props || {},\n      _ref$autoFocusSelecto = _ref.autoFocusSelector,\n      autoFocusSelector = _ref$autoFocusSelecto === void 0 ? '' : _ref$autoFocusSelecto,\n      _ref$firstFocusableSe = _ref.firstFocusableSelector,\n      firstFocusableSelector = _ref$firstFocusableSe === void 0 ? '' : _ref$firstFocusableSe,\n      _ref$autoFocus = _ref.autoFocus,\n      autoFocus = _ref$autoFocus === void 0 ? false : _ref$autoFocus;\n    var defaultAutoFocusSelector = \"\".concat(getComputedSelector(autoFocusSelector));\n    var computedAutoFocusSelector = \"[autofocus]\".concat(defaultAutoFocusSelector, \", [data-pc-autofocus='true']\").concat(defaultAutoFocusSelector);\n    var focusableElement = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getFirstFocusableElement(target, computedAutoFocusSelector);\n    autoFocus && !focusableElement && (focusableElement = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getFirstFocusableElement(target, getComputedSelector(firstFocusableSelector)));\n    primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.focus(focusableElement);\n  };\n  var getComputedSelector = function getComputedSelector(selector) {\n    return \":not(.p-hidden-focusable):not([data-p-hidden-focusable=\\\"true\\\"])\".concat(selector !== null && selector !== void 0 ? selector : '');\n  };\n  var onFirstHiddenElementFocus = function onFirstHiddenElementFocus(event) {\n    var _targetRef$current;\n    var currentTarget = event.currentTarget,\n      relatedTarget = event.relatedTarget;\n    var focusableElement = relatedTarget === currentTarget.$_pfocustrap_lasthiddenfocusableelement || !((_targetRef$current = targetRef.current) !== null && _targetRef$current !== void 0 && _targetRef$current.contains(relatedTarget)) ? primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getFirstFocusableElement(currentTarget.parentElement, getComputedSelector(currentTarget.$_pfocustrap_focusableselector)) : currentTarget.$_pfocustrap_lasthiddenfocusableelement;\n    primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.focus(focusableElement);\n  };\n  var onLastHiddenElementFocus = function onLastHiddenElementFocus(event) {\n    var _targetRef$current2;\n    var currentTarget = event.currentTarget,\n      relatedTarget = event.relatedTarget;\n    var focusableElement = relatedTarget === currentTarget.$_pfocustrap_firsthiddenfocusableelement || !((_targetRef$current2 = targetRef.current) !== null && _targetRef$current2 !== void 0 && _targetRef$current2.contains(relatedTarget)) ? primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getLastFocusableElement(currentTarget.parentElement, getComputedSelector(currentTarget.$_pfocustrap_focusableselector)) : currentTarget.$_pfocustrap_firsthiddenfocusableelement;\n    primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.focus(focusableElement);\n  };\n  var createHiddenFocusableElements = function createHiddenFocusableElements() {\n    var _ref2 = props || {},\n      _ref2$tabIndex = _ref2.tabIndex,\n      tabIndex = _ref2$tabIndex === void 0 ? 0 : _ref2$tabIndex;\n    var createFocusableElement = function createFocusableElement(inRef, onFocus, section) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n        ref: inRef,\n        className: 'p-hidden-accessible p-hidden-focusable',\n        tabIndex: tabIndex,\n        role: 'presentation',\n        \"aria-hidden\": true,\n        \"data-p-hidden-accessible\": true,\n        \"data-p-hidden-focusable\": true,\n        onFocus: onFocus,\n        \"data-pc-section\": section\n      });\n    };\n    var firstFocusableElement = createFocusableElement(firstFocusableElementRef, onFirstHiddenElementFocus, 'firstfocusableelement');\n    var lastFocusableElement = createFocusableElement(lastFocusableElementRef, onLastHiddenElementFocus, 'lastfocusableelement');\n    if (firstFocusableElementRef.current && lastFocusableElementRef.current) {\n      firstFocusableElementRef.current.$_pfocustrap_lasthiddenfocusableelement = lastFocusableElementRef.current;\n      lastFocusableElementRef.current.$_pfocustrap_firsthiddenfocusableelement = firstFocusableElementRef.current;\n    }\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, firstFocusableElement, props.children, lastFocusableElement);\n  };\n  return createHiddenFocusableElements();\n}));\nvar FocusTrap$1 = FocusTrap;\nfunction ownKeys$1(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$1(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar classes = {\n  closeButtonIcon: 'p-dialog-header-close-icon',\n  closeButton: 'p-dialog-header-icon p-dialog-header-close p-link',\n  maximizableIcon: 'p-dialog-header-maximize-icon',\n  maximizableButton: 'p-dialog-header-icon p-dialog-header-maximize p-link',\n  header: function header(_ref) {\n    var props = _ref.props;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.classNames)('p-dialog-header', props.headerClassName);\n  },\n  headerTitle: 'p-dialog-title',\n  headerIcons: 'p-dialog-header-icons',\n  content: function content(_ref2) {\n    var props = _ref2.props;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.classNames)('p-dialog-content', props.contentClassName);\n  },\n  footer: function footer(_ref3) {\n    var props = _ref3.props;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.classNames)('p-dialog-footer', props.footerClassName);\n  },\n  mask: function mask(_ref4) {\n    var props = _ref4.props,\n      maskVisibleState = _ref4.maskVisibleState;\n    var positions = ['center', 'left', 'right', 'top', 'top-left', 'top-right', 'bottom', 'bottom-left', 'bottom-right'];\n    var pos = positions.find(function (item) {\n      return item === props.position || item.replace('-', '') === props.position;\n    });\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.classNames)('p-dialog-mask', pos ? \"p-dialog-\".concat(pos) : '', {\n      'p-component-overlay p-component-overlay-enter': props.modal,\n      'p-dialog-visible': maskVisibleState,\n      'p-dialog-draggable': props.draggable,\n      'p-dialog-resizable': props.resizable\n    }, props.maskClassName);\n  },\n  root: function root(_ref5) {\n    var props = _ref5.props,\n      maximized = _ref5.maximized,\n      context = _ref5.context;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.classNames)('p-dialog p-component', {\n      'p-dialog-rtl': props.rtl,\n      'p-dialog-maximized': maximized,\n      'p-dialog-default': !maximized,\n      'p-input-filled': context && context.inputStyle === 'filled' || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].inputStyle === 'filled',\n      'p-ripple-disabled': context && context.ripple === false || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ripple === false\n    });\n  },\n  transition: 'p-dialog'\n};\nvar styles = \"\\n@layer primereact {\\n    .p-dialog-mask {\\n        background-color: transparent;\\n        transition-property: background-color;\\n    }\\n\\n    .p-dialog-visible {\\n        display: flex;\\n    }\\n\\n    .p-dialog-mask.p-component-overlay {\\n        pointer-events: auto;\\n    }\\n\\n    .p-dialog {\\n        display: flex;\\n        flex-direction: column;\\n        pointer-events: auto;\\n        max-height: 90%;\\n        transform: scale(1);\\n        position: relative;\\n    }\\n\\n    .p-dialog-content {\\n        overflow-y: auto;\\n        flex-grow: 1;\\n    }\\n\\n    .p-dialog-header {\\n        display: flex;\\n        align-items: center;\\n        flex-shrink: 0;\\n    }\\n\\n    .p-dialog-footer {\\n        flex-shrink: 0;\\n    }\\n\\n    .p-dialog .p-dialog-header-icons {\\n        display: flex;\\n        align-items: center;\\n        align-self: flex-start;\\n        flex-shrink: 0;\\n    }\\n\\n    .p-dialog .p-dialog-header-icon {\\n        display: flex;\\n        align-items: center;\\n        justify-content: center;\\n        overflow: hidden;\\n        position: relative;\\n    }\\n\\n    .p-dialog .p-dialog-title {\\n        flex-grow: 1;\\n    }\\n\\n    /* Fluid */\\n    .p-fluid .p-dialog-footer .p-button {\\n        width: auto;\\n    }\\n\\n    /* Animation */\\n    /* Center */\\n    .p-dialog-enter {\\n        opacity: 0;\\n        transform: scale(0.7);\\n    }\\n\\n    .p-dialog-enter-active {\\n        opacity: 1;\\n        transform: scale(1);\\n        transition: all 150ms cubic-bezier(0, 0, 0.2, 1);\\n    }\\n\\n    .p-dialog-enter-done {\\n        transform: none;\\n    }\\n\\n    .p-dialog-exit-active {\\n        opacity: 0;\\n        transform: scale(0.7);\\n        transition: all 150ms cubic-bezier(0.4, 0, 0.2, 1);\\n    }\\n\\n    /* Top, Bottom, Left, Right, Top* and Bottom* */\\n    .p-dialog-top .p-dialog,\\n    .p-dialog-bottom .p-dialog,\\n    .p-dialog-left .p-dialog,\\n    .p-dialog-right .p-dialog,\\n    .p-dialog-top-left .p-dialog,\\n    .p-dialog-top-right .p-dialog,\\n    .p-dialog-bottom-left .p-dialog,\\n    .p-dialog-bottom-right .p-dialog {\\n        margin: 0.75em;\\n    }\\n\\n    .p-dialog-top .p-dialog-enter,\\n    .p-dialog-top .p-dialog-exit-active {\\n        transform: translate3d(0px, -100%, 0px);\\n    }\\n\\n    .p-dialog-bottom .p-dialog-enter,\\n    .p-dialog-bottom .p-dialog-exit-active {\\n        transform: translate3d(0px, 100%, 0px);\\n    }\\n\\n    .p-dialog-left .p-dialog-enter,\\n    .p-dialog-left .p-dialog-exit-active,\\n    .p-dialog-top-left .p-dialog-enter,\\n    .p-dialog-top-left .p-dialog-exit-active,\\n    .p-dialog-bottom-left .p-dialog-enter,\\n    .p-dialog-bottom-left .p-dialog-exit-active {\\n        transform: translate3d(-100%, 0px, 0px);\\n    }\\n\\n    .p-dialog-right .p-dialog-enter,\\n    .p-dialog-right .p-dialog-exit-active,\\n    .p-dialog-top-right .p-dialog-enter,\\n    .p-dialog-top-right .p-dialog-exit-active,\\n    .p-dialog-bottom-right .p-dialog-enter,\\n    .p-dialog-bottom-right .p-dialog-exit-active {\\n        transform: translate3d(100%, 0px, 0px);\\n    }\\n\\n    .p-dialog-top .p-dialog-enter-active,\\n    .p-dialog-bottom .p-dialog-enter-active,\\n    .p-dialog-left .p-dialog-enter-active,\\n    .p-dialog-top-left .p-dialog-enter-active,\\n    .p-dialog-bottom-left .p-dialog-enter-active,\\n    .p-dialog-right .p-dialog-enter-active,\\n    .p-dialog-top-right .p-dialog-enter-active,\\n    .p-dialog-bottom-right .p-dialog-enter-active {\\n        transform: translate3d(0px, 0px, 0px);\\n        transition: all 0.3s ease-out;\\n    }\\n\\n    .p-dialog-top .p-dialog-exit-active,\\n    .p-dialog-bottom .p-dialog-exit-active,\\n    .p-dialog-left .p-dialog-exit-active,\\n    .p-dialog-top-left .p-dialog-exit-active,\\n    .p-dialog-bottom-left .p-dialog-exit-active,\\n    .p-dialog-right .p-dialog-exit-active,\\n    .p-dialog-top-right .p-dialog-exit-active,\\n    .p-dialog-bottom-right .p-dialog-exit-active {\\n        transition: all 0.3s ease-out;\\n    }\\n\\n    /* Maximize */\\n    .p-dialog-maximized {\\n        transition: none;\\n        transform: none;\\n        margin: 0;\\n        width: 100vw !important;\\n        height: 100vh !important;\\n        max-height: 100%;\\n        top: 0px !important;\\n        left: 0px !important;\\n    }\\n\\n    .p-dialog-maximized .p-dialog-content {\\n        flex-grow: 1;\\n    }\\n\\n    .p-confirm-dialog .p-dialog-content {\\n        display: flex;\\n        align-items: center;\\n    }\\n\\n    /* Resizable */\\n    .p-dialog .p-resizable-handle {\\n        position: absolute;\\n        font-size: 0.1px;\\n        display: block;\\n        cursor: se-resize;\\n        width: 12px;\\n        height: 12px;\\n        right: 1px;\\n        bottom: 1px;\\n    }\\n\\n    .p-dialog-draggable .p-dialog-header {\\n        cursor: move;\\n    }\\n}\\n\";\nvar inlineStyles = {\n  mask: function mask(_ref6) {\n    var props = _ref6.props;\n    return _objectSpread$1({\n      position: 'fixed',\n      height: '100%',\n      width: '100%',\n      left: 0,\n      top: 0,\n      display: 'flex',\n      justifyContent: props.position === 'left' || props.position === 'top-left' || props.position === 'bottom-left' ? 'flex-start' : props.position === 'right' || props.position === 'top-right' || props.position === 'bottom-right' ? 'flex-end' : 'center',\n      alignItems: props.position === 'top' || props.position === 'top-left' || props.position === 'top-right' ? 'flex-start' : props.position === 'bottom' || props.position === 'bottom-left' || props.position === 'bottom-right' ? 'flex-end' : 'center',\n      pointerEvents: !props.modal && 'none'\n    }, props.maskStyle);\n  }\n};\nvar DialogBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'Dialog',\n    __parentMetadata: null,\n    appendTo: null,\n    ariaCloseIconLabel: null,\n    baseZIndex: 0,\n    blockScroll: false,\n    breakpoints: null,\n    className: null,\n    closable: true,\n    closeIcon: null,\n    closeOnEscape: true,\n    content: null,\n    contentClassName: null,\n    contentStyle: null,\n    dismissableMask: false,\n    draggable: true,\n    focusOnShow: true,\n    footer: null,\n    footerClassName: null,\n    header: null,\n    headerClassName: null,\n    headerStyle: null,\n    icons: null,\n    id: null,\n    keepInViewport: true,\n    maskClassName: null,\n    maskStyle: null,\n    maximizable: false,\n    maximizeIcon: null,\n    maximized: false,\n    minX: 0,\n    minY: 0,\n    minimizeIcon: null,\n    modal: true,\n    onClick: null,\n    onDrag: null,\n    onDragEnd: null,\n    onDragStart: null,\n    onHide: null,\n    onMaskClick: null,\n    onMaximize: null,\n    onResize: null,\n    onResizeEnd: null,\n    onResizeStart: null,\n    onShow: null,\n    position: 'center',\n    resizable: true,\n    rtl: false,\n    showHeader: true,\n    showCloseIcon: true,\n    style: null,\n    transitionOptions: null,\n    visible: false,\n    children: undefined\n  },\n  css: {\n    classes: classes,\n    styles: styles,\n    inlineStyles: inlineStyles\n  }\n});\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar Dialog = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = DialogBase.getProps(inProps, context);\n  var uniqueId = props.id ? props.id : (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.UniqueComponentId)();\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(uniqueId),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    idState = _React$useState2[0];\n  _React$useState2[1];\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    maskVisibleState = _React$useState4[0],\n    setMaskVisibleState = _React$useState4[1];\n  var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    visibleState = _React$useState6[0],\n    setVisibleState = _React$useState6[1];\n  var _React$useState7 = react__WEBPACK_IMPORTED_MODULE_0__.useState(props.maximized),\n    _React$useState8 = _slicedToArray(_React$useState7, 2),\n    maximizedState = _React$useState8[0],\n    setMaximizedState = _React$useState8[1];\n  var dialogRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var maskRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var pointerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var headerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var footerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var closeRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var dragging = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var resizing = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var lastPageX = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var lastPageY = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var styleElement = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var attributeSelector = react__WEBPACK_IMPORTED_MODULE_0__.useRef(uniqueId);\n  var focusElementOnHide = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var maximized = props.onMaximize ? props.maximized : maximizedState;\n  var shouldBlockScroll = visibleState && (props.blockScroll || props.maximizable && maximized);\n  var isCloseOnEscape = props.closable && props.closeOnEscape && visibleState;\n  var displayOrder = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useDisplayOrder)('dialog', isCloseOnEscape);\n  var _DialogBase$setMetaDa = DialogBase.setMetaData(_objectSpread(_objectSpread({\n      props: props\n    }, props.__parentMetadata), {}, {\n      state: {\n        id: idState,\n        maximized: maximized,\n        containerVisible: maskVisibleState\n      }\n    })),\n    ptm = _DialogBase$setMetaDa.ptm,\n    cx = _DialogBase$setMetaDa.cx,\n    sx = _DialogBase$setMetaDa.sx,\n    isUnstyled = _DialogBase$setMetaDa.isUnstyled;\n  (0,primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.useHandleStyle)(DialogBase.css.styles, isUnstyled, {\n    name: 'dialog'\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useGlobalOnEscapeKey)({\n    callback: function callback(event) {\n      onClose(event);\n    },\n    when: isCloseOnEscape && displayOrder,\n    priority: [primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.ESC_KEY_HANDLING_PRIORITIES.DIALOG, displayOrder]\n  });\n  var _useEventListener = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEventListener)({\n      type: 'mousemove',\n      target: function target() {\n        return window.document;\n      },\n      listener: function listener(event) {\n        return onResize(event);\n      }\n    }),\n    _useEventListener2 = _slicedToArray(_useEventListener, 2),\n    bindDocumentResizeListener = _useEventListener2[0],\n    unbindDocumentResizeListener = _useEventListener2[1];\n  var _useEventListener3 = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEventListener)({\n      type: 'mouseup',\n      target: function target() {\n        return window.document;\n      },\n      listener: function listener(event) {\n        return onResizeEnd(event);\n      }\n    }),\n    _useEventListener4 = _slicedToArray(_useEventListener3, 2),\n    bindDocumentResizeEndListener = _useEventListener4[0],\n    unbindDocumentResizEndListener = _useEventListener4[1];\n  var _useEventListener5 = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEventListener)({\n      type: 'mousemove',\n      target: function target() {\n        return window.document;\n      },\n      listener: function listener(event) {\n        return onDrag(event);\n      }\n    }),\n    _useEventListener6 = _slicedToArray(_useEventListener5, 2),\n    bindDocumentDragListener = _useEventListener6[0],\n    unbindDocumentDragListener = _useEventListener6[1];\n  var _useEventListener7 = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useEventListener)({\n      type: 'mouseup',\n      target: function target() {\n        return window.document;\n      },\n      listener: function listener(event) {\n        return onDragEnd(event);\n      }\n    }),\n    _useEventListener8 = _slicedToArray(_useEventListener7, 2),\n    bindDocumentDragEndListener = _useEventListener8[0],\n    unbindDocumentDragEndListener = _useEventListener8[1];\n  var onClose = function onClose(event) {\n    props.onHide(event);\n    event.preventDefault();\n  };\n  var focus = function focus() {\n    var activeElement = document.activeElement;\n    var isActiveElementInDialog = activeElement && dialogRef.current && dialogRef.current.contains(activeElement);\n    if (!isActiveElementInDialog && props.closable && props.showCloseIcon && props.showHeader && closeRef.current) {\n      closeRef.current.focus();\n    }\n  };\n  var onDialogPointerDown = function onDialogPointerDown(event) {\n    pointerRef.current = event.target;\n    props.onPointerDown && props.onPointerDown(event);\n  };\n  var onMaskPointerUp = function onMaskPointerUp(event) {\n    if (props.dismissableMask && props.modal && maskRef.current === event.target && !pointerRef.current) {\n      onClose(event);\n    }\n    props.onMaskClick && props.onMaskClick(event);\n    pointerRef.current = null;\n  };\n  var toggleMaximize = function toggleMaximize(event) {\n    if (props.onMaximize) {\n      props.onMaximize({\n        originalEvent: event,\n        maximized: !maximized\n      });\n    } else {\n      setMaximizedState(function (prevMaximized) {\n        return !prevMaximized;\n      });\n    }\n    event.preventDefault();\n  };\n  var onDragStart = function onDragStart(event) {\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.hasClass(event.target, 'p-dialog-header-icon') || primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.hasClass(event.target.parentElement, 'p-dialog-header-icon')) {\n      return;\n    }\n    if (props.draggable) {\n      dragging.current = true;\n      lastPageX.current = event.pageX;\n      lastPageY.current = event.pageY;\n      primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.addClass(document.body, 'p-unselectable-text');\n      props.onDragStart && props.onDragStart(event);\n    }\n  };\n  var onDrag = function onDrag(event) {\n    if (dragging.current) {\n      var width = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getOuterWidth(dialogRef.current);\n      var height = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getOuterHeight(dialogRef.current);\n      var deltaX = event.pageX - lastPageX.current;\n      var deltaY = event.pageY - lastPageY.current;\n      var offset = dialogRef.current.getBoundingClientRect();\n      var leftPos = offset.left + deltaX;\n      var topPos = offset.top + deltaY;\n      var viewport = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getViewport();\n      var computedStyle = getComputedStyle(dialogRef.current);\n      var leftMargin = parseFloat(computedStyle.marginLeft);\n      var topMargin = parseFloat(computedStyle.marginTop);\n      dialogRef.current.style.position = 'fixed';\n      if (props.keepInViewport) {\n        if (leftPos >= props.minX && leftPos + width < viewport.width) {\n          lastPageX.current = event.pageX;\n          dialogRef.current.style.left = leftPos - leftMargin + 'px';\n        }\n        if (topPos >= props.minY && topPos + height < viewport.height) {\n          lastPageY.current = event.pageY;\n          dialogRef.current.style.top = topPos - topMargin + 'px';\n        }\n      } else {\n        lastPageX.current = event.pageX;\n        dialogRef.current.style.left = leftPos - leftMargin + 'px';\n        lastPageY.current = event.pageY;\n        dialogRef.current.style.top = topPos - topMargin + 'px';\n      }\n      props.onDrag && props.onDrag(event);\n    }\n  };\n  var onDragEnd = function onDragEnd(event) {\n    if (dragging.current) {\n      dragging.current = false;\n      primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.removeClass(document.body, 'p-unselectable-text');\n      props.onDragEnd && props.onDragEnd(event);\n    }\n  };\n  var onResizeStart = function onResizeStart(event) {\n    if (props.resizable) {\n      resizing.current = true;\n      lastPageX.current = event.pageX;\n      lastPageY.current = event.pageY;\n      primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.addClass(document.body, 'p-unselectable-text');\n      props.onResizeStart && props.onResizeStart(event);\n    }\n  };\n  var convertToPx = function convertToPx(value, property, viewport) {\n    !viewport && (viewport = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getViewport());\n    var val = parseInt(value);\n    if (/^(\\d+|(\\.\\d+))(\\.\\d+)?%$/.test(value)) {\n      return val * (viewport[property] / 100);\n    }\n    return val;\n  };\n  var onResize = function onResize(event) {\n    if (resizing.current) {\n      var deltaX = event.pageX - lastPageX.current;\n      var deltaY = event.pageY - lastPageY.current;\n      var width = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getOuterWidth(dialogRef.current);\n      var height = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getOuterHeight(dialogRef.current);\n      var offset = dialogRef.current.getBoundingClientRect();\n      var viewport = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getViewport();\n      var hasBeenDragged = !parseInt(dialogRef.current.style.top) || !parseInt(dialogRef.current.style.left);\n      var minWidth = convertToPx(dialogRef.current.style.minWidth, 'width', viewport);\n      var minHeight = convertToPx(dialogRef.current.style.minHeight, 'height', viewport);\n      var newWidth = width + deltaX;\n      var newHeight = height + deltaY;\n      if (hasBeenDragged) {\n        newWidth = newWidth + deltaX;\n        newHeight = newHeight + deltaY;\n      }\n      if ((!minWidth || newWidth > minWidth) && offset.left + newWidth < viewport.width) {\n        dialogRef.current.style.width = newWidth + 'px';\n      }\n      if ((!minHeight || newHeight > minHeight) && offset.top + newHeight < viewport.height) {\n        dialogRef.current.style.height = newHeight + 'px';\n      }\n      lastPageX.current = event.pageX;\n      lastPageY.current = event.pageY;\n      props.onResize && props.onResize(event);\n    }\n  };\n  var onResizeEnd = function onResizeEnd(event) {\n    if (resizing.current) {\n      resizing.current = false;\n      primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.removeClass(document.body, 'p-unselectable-text');\n      props.onResizeEnd && props.onResizeEnd(event);\n    }\n  };\n  var resetPosition = function resetPosition() {\n    dialogRef.current.style.position = '';\n    dialogRef.current.style.left = '';\n    dialogRef.current.style.top = '';\n    dialogRef.current.style.margin = '';\n  };\n  var onEnter = function onEnter() {\n    dialogRef.current.setAttribute(attributeSelector.current, '');\n  };\n  var onEntered = function onEntered() {\n    props.onShow && props.onShow();\n    if (props.focusOnShow) {\n      focus();\n    }\n    enableDocumentSettings();\n  };\n  var onExiting = function onExiting() {\n    if (props.modal) {\n      !isUnstyled() && primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.addClass(maskRef.current, 'p-component-overlay-leave');\n    }\n  };\n  var onExited = function onExited() {\n    dragging.current = false;\n    primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ZIndexUtils.clear(maskRef.current);\n    setMaskVisibleState(false);\n    disableDocumentSettings();\n\n    // return focus to element before dialog was open\n    primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.focus(focusElementOnHide.current);\n    focusElementOnHide.current = null;\n  };\n  var enableDocumentSettings = function enableDocumentSettings() {\n    bindGlobalListeners();\n  };\n  var disableDocumentSettings = function disableDocumentSettings() {\n    unbindGlobalListeners();\n  };\n  var updateScrollBlocker = function updateScrollBlocker() {\n    // Scroll should be unblocked if there is at least one dialog that blocks scrolling:\n    var isThereAnyDialogThatBlocksScrolling = document.primeDialogParams && document.primeDialogParams.some(function (i) {\n      return i.hasBlockScroll;\n    });\n    if (isThereAnyDialogThatBlocksScrolling) {\n      primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.blockBodyScroll();\n    } else {\n      primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.unblockBodyScroll();\n    }\n  };\n  var updateGlobalDialogsRegistry = function updateGlobalDialogsRegistry(isMounted) {\n    // Update current dialog info in global registry if it is mounted and visible:\n    if (isMounted && visibleState) {\n      var newParam = {\n        id: idState,\n        hasBlockScroll: shouldBlockScroll\n      };\n\n      // Create registry if not yet created:\n      if (!document.primeDialogParams) {\n        document.primeDialogParams = [];\n      }\n      var currentDialogIndexInRegistry = document.primeDialogParams.findIndex(function (dialogInRegistry) {\n        return dialogInRegistry.id === idState;\n      });\n      if (currentDialogIndexInRegistry === -1) {\n        document.primeDialogParams = [].concat(_toConsumableArray(document.primeDialogParams), [newParam]);\n      } else {\n        document.primeDialogParams = document.primeDialogParams.toSpliced(currentDialogIndexInRegistry, 1, newParam);\n      }\n    }\n    // Or remove it from global registry if unmounted or invisible:\n    else {\n      document.primeDialogParams = document.primeDialogParams && document.primeDialogParams.filter(function (param) {\n        return param.id !== idState;\n      });\n    }\n\n    // Always update scroll blocker after dialog registry - this way we ensure that\n    // p-overflow-hidden class is properly added/removed:\n    updateScrollBlocker();\n  };\n  var bindGlobalListeners = function bindGlobalListeners() {\n    if (props.draggable) {\n      bindDocumentDragListener();\n      bindDocumentDragEndListener();\n    }\n    if (props.resizable) {\n      bindDocumentResizeListener();\n      bindDocumentResizeEndListener();\n    }\n  };\n  var unbindGlobalListeners = function unbindGlobalListeners() {\n    unbindDocumentDragListener();\n    unbindDocumentDragEndListener();\n    unbindDocumentResizeListener();\n    unbindDocumentResizEndListener();\n  };\n  var createStyle = function createStyle() {\n    styleElement.current = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.createInlineStyle(context && context.nonce || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].nonce, context && context.styleContainer);\n    var innerHTML = '';\n    for (var breakpoint in props.breakpoints) {\n      innerHTML = innerHTML + \"\\n                @media screen and (max-width: \".concat(breakpoint, \") {\\n                     [data-pc-name=\\\"dialog\\\"][\").concat(attributeSelector.current, \"] {\\n                        width: \").concat(props.breakpoints[breakpoint], \" !important;\\n                    }\\n                }\\n            \");\n    }\n    styleElement.current.innerHTML = innerHTML;\n  };\n  var destroyStyle = function destroyStyle() {\n    styleElement.current = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.removeInlineStyle(styleElement.current);\n  };\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useMountEffect)(function () {\n    updateGlobalDialogsRegistry(true);\n    if (props.visible) {\n      setMaskVisibleState(true);\n    }\n  });\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (props.breakpoints) {\n      createStyle();\n    }\n    return function () {\n      destroyStyle();\n    };\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [props.breakpoints]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUpdateEffect)(function () {\n    if (props.visible && !maskVisibleState) {\n      setMaskVisibleState(true);\n    }\n    if (props.visible !== visibleState && maskVisibleState) {\n      setVisibleState(props.visible);\n    }\n    if (props.visible) {\n      // Remember the focused element before we opened the dialog\n      // so we can return focus to it once we close the dialog.\n      focusElementOnHide.current = document.activeElement;\n    }\n  }, [props.visible, maskVisibleState]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUpdateEffect)(function () {\n    if (maskVisibleState) {\n      primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ZIndexUtils.set('modal', maskRef.current, context && context.autoZIndex || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].autoZIndex, props.baseZIndex || context && context.zIndex.modal || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].zIndex.modal);\n      setVisibleState(true);\n    }\n  }, [maskVisibleState]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUpdateEffect)(function () {\n    updateGlobalDialogsRegistry(true);\n  }, [shouldBlockScroll, visibleState]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_4__.useUnmountEffect)(function () {\n    disableDocumentSettings();\n    updateGlobalDialogsRegistry(false);\n    primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.removeInlineStyle(styleElement.current);\n    primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ZIndexUtils.clear(maskRef.current);\n  });\n  react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      resetPosition: resetPosition,\n      getElement: function getElement() {\n        return dialogRef.current;\n      },\n      getMask: function getMask() {\n        return maskRef.current;\n      },\n      getContent: function getContent() {\n        return contentRef.current;\n      },\n      getHeader: function getHeader() {\n        return headerRef.current;\n      },\n      getFooter: function getFooter() {\n        return footerRef.current;\n      },\n      getCloseButton: function getCloseButton() {\n        return closeRef.current;\n      }\n    };\n  });\n  var createCloseIcon = function createCloseIcon() {\n    if (props.closable && props.showCloseIcon) {\n      var labelAria = props.ariaCloseIconLabel || (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('close');\n      var closeButtonIconProps = mergeProps({\n        className: cx('closeButtonIcon'),\n        'aria-hidden': true\n      }, ptm('closeButtonIcon'));\n      var icon = props.closeIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_times__WEBPACK_IMPORTED_MODULE_6__.TimesIcon, closeButtonIconProps);\n      var headerCloseIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.IconUtils.getJSXIcon(icon, _objectSpread({}, closeButtonIconProps), {\n        props: props\n      });\n      var closeButtonProps = mergeProps({\n        ref: closeRef,\n        type: 'button',\n        className: cx('closeButton'),\n        'aria-label': labelAria,\n        onClick: onClose,\n        onKeyDown: function onKeyDown(ev) {\n          if (ev.key !== 'Escape') {\n            ev.stopPropagation();\n          }\n        }\n      }, ptm('closeButton'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", closeButtonProps, headerCloseIcon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_10__.Ripple, null));\n    }\n    return null;\n  };\n  var createMaximizeIcon = function createMaximizeIcon() {\n    var icon;\n    var maximizableIconProps = mergeProps({\n      className: cx('maximizableIcon')\n    }, ptm('maximizableIcon'));\n    if (!maximized) {\n      icon = props.maximizeIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_windowmaximize__WEBPACK_IMPORTED_MODULE_7__.WindowMaximizeIcon, maximizableIconProps);\n    } else {\n      icon = props.minimizeIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_windowminimize__WEBPACK_IMPORTED_MODULE_8__.WindowMinimizeIcon, maximizableIconProps);\n    }\n    var toggleIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.IconUtils.getJSXIcon(icon, maximizableIconProps, {\n      props: props\n    });\n    if (props.maximizable) {\n      var maximizableButtonProps = mergeProps({\n        type: 'button',\n        className: cx('maximizableButton'),\n        onClick: toggleMaximize\n      }, ptm('maximizableButton'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", maximizableButtonProps, toggleIcon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_10__.Ripple, null));\n    }\n    return null;\n  };\n  var createHeader = function createHeader() {\n    if (props.showHeader) {\n      var closeIcon = createCloseIcon();\n      var maximizeIcon = createMaximizeIcon();\n      var icons = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.getJSXElement(props.icons, props);\n      var header = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.getJSXElement(props.header, props);\n      var headerId = idState + '_header';\n      var headerProps = mergeProps({\n        ref: headerRef,\n        style: props.headerStyle,\n        className: cx('header'),\n        onMouseDown: onDragStart\n      }, ptm('header'));\n      var headerTitleProps = mergeProps({\n        id: headerId,\n        className: cx('headerTitle')\n      }, ptm('headerTitle'));\n      var headerIconsProps = mergeProps({\n        className: cx('headerIcons')\n      }, ptm('headerIcons'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", headerProps, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", headerTitleProps, header), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", headerIconsProps, icons, maximizeIcon, closeIcon));\n    }\n    return null;\n  };\n  var createContent = function createContent() {\n    var contentId = idState + '_content';\n    var contentProps = mergeProps({\n      id: contentId,\n      ref: contentRef,\n      style: props.contentStyle,\n      className: cx('content')\n    }, ptm('content'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", contentProps, props.children);\n  };\n  var createFooter = function createFooter() {\n    var footer = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.getJSXElement(props.footer, props);\n    var footerProps = mergeProps({\n      ref: footerRef,\n      className: cx('footer')\n    }, ptm('footer'));\n    return footer && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", footerProps, footer);\n  };\n  var createResizer = function createResizer() {\n    if (props.resizable) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", {\n        className: \"p-resizable-handle\",\n        style: {\n          zIndex: 90\n        },\n        onMouseDown: onResizeStart\n      });\n    }\n    return null;\n  };\n  var createTemplateElement = function createTemplateElement() {\n    var _props$children;\n    var messageProps = {\n      header: props.header,\n      content: props.message,\n      message: props === null || props === void 0 || (_props$children = props.children) === null || _props$children === void 0 || (_props$children = _props$children[1]) === null || _props$children === void 0 || (_props$children = _props$children.props) === null || _props$children === void 0 ? void 0 : _props$children.children\n    };\n    var templateElementProps = {\n      headerRef: headerRef,\n      contentRef: contentRef,\n      footerRef: footerRef,\n      closeRef: closeRef,\n      hide: onClose,\n      message: messageProps\n    };\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.getJSXElement(inProps.content, templateElementProps);\n  };\n  var createElement = function createElement() {\n    var header = createHeader();\n    var content = createContent();\n    var footer = createFooter();\n    var resizer = createResizer();\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, header, content, footer, resizer);\n  };\n  var createDialog = function createDialog() {\n    var headerId = idState + '_header';\n    var contentId = idState + '_content';\n    var transitionTimeout = {\n      enter: props.position === 'center' ? 150 : 300,\n      exit: props.position === 'center' ? 150 : 300\n    };\n    var maskProps = mergeProps({\n      ref: maskRef,\n      style: sx('mask'),\n      className: cx('mask'),\n      onPointerUp: onMaskPointerUp\n    }, ptm('mask'));\n    var rootProps = mergeProps({\n      ref: dialogRef,\n      id: idState,\n      className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.classNames)(props.className, cx('root', {\n        props: props,\n        maximized: maximized,\n        context: context\n      })),\n      style: props.style,\n      onClick: props.onClick,\n      role: 'dialog',\n      'aria-labelledby': headerId,\n      'aria-describedby': contentId,\n      'aria-modal': props.modal,\n      onPointerDown: onDialogPointerDown\n    }, DialogBase.getOtherProps(props), ptm('root'));\n    var transitionProps = mergeProps({\n      classNames: cx('transition'),\n      timeout: transitionTimeout,\n      \"in\": visibleState,\n      options: props.transitionOptions,\n      unmountOnExit: true,\n      onEnter: onEnter,\n      onEntered: onEntered,\n      onExiting: onExiting,\n      onExited: onExited\n    }, ptm('transition'));\n    var contentElement = null;\n    if (inProps !== null && inProps !== void 0 && inProps.content) {\n      contentElement = createTemplateElement();\n    } else {\n      contentElement = createElement();\n    }\n    var rootElement = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", maskProps, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_csstransition__WEBPACK_IMPORTED_MODULE_3__.CSSTransition, _extends({\n      nodeRef: dialogRef\n    }, transitionProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", rootProps, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(FocusTrap$1, {\n      autoFocus: props.focusOnShow\n    }, contentElement))));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_portal__WEBPACK_IMPORTED_MODULE_9__.Portal, {\n      element: rootElement,\n      appendTo: props.appendTo,\n      visible: true\n    });\n  };\n  return maskVisibleState && createDialog();\n});\nDialog.displayName = 'Dialog';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/dialog/dialog.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/dropdown/dropdown.esm.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/dropdown/dropdown.esm.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Dropdown: () => (/* binding */ Dropdown)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/componentbase */ \"../react-ui/node_modules/primereact/componentbase/componentbase.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_icons_chevrondown__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/icons/chevrondown */ \"../react-ui/node_modules/primereact/icons/chevrondown/index.esm.js\");\n/* harmony import */ var primereact_icons_chevronup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! primereact/icons/chevronup */ \"../react-ui/node_modules/primereact/icons/chevronup/index.esm.js\");\n/* harmony import */ var primereact_icons_spinner__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! primereact/icons/spinner */ \"../react-ui/node_modules/primereact/icons/spinner/index.esm.js\");\n/* harmony import */ var primereact_icons_times__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! primereact/icons/times */ \"../react-ui/node_modules/primereact/icons/times/index.esm.js\");\n/* harmony import */ var primereact_overlayservice__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! primereact/overlayservice */ \"../react-ui/node_modules/primereact/overlayservice/overlayservice.esm.js\");\n/* harmony import */ var primereact_tooltip__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! primereact/tooltip */ \"../react-ui/node_modules/primereact/tooltip/tooltip.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n/* harmony import */ var primereact_csstransition__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! primereact/csstransition */ \"../react-ui/node_modules/primereact/csstransition/csstransition.esm.js\");\n/* harmony import */ var primereact_icons_search__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! primereact/icons/search */ \"../react-ui/node_modules/primereact/icons/search/index.esm.js\");\n/* harmony import */ var primereact_portal__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! primereact/portal */ \"../react-ui/node_modules/primereact/portal/portal.esm.js\");\n/* harmony import */ var primereact_virtualscroller__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! primereact/virtualscroller */ \"../react-ui/node_modules/primereact/virtualscroller/virtualscroller.esm.js\");\n/* harmony import */ var primereact_ripple__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! primereact/ripple */ \"../react-ui/node_modules/primereact/ripple/ripple.esm.js\");\n/* harmony import */ var primereact_icons_check__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! primereact/icons/check */ \"../react-ui/node_modules/primereact/icons/check/index.esm.js\");\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nfunction _arrayLikeToArray$1(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _unsupportedIterableToArray$1(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray$1(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0;\n  }\n}\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray$1(r, e) || _nonIterableRest();\n}\nfunction ownKeys$2(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar classes = {\n  root: function root(_ref) {\n    var props = _ref.props,\n      focusedState = _ref.focusedState,\n      overlayVisibleState = _ref.overlayVisibleState,\n      context = _ref.context;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_10__.classNames)('p-dropdown p-component p-inputwrapper', {\n      'p-disabled': props.disabled,\n      'p-invalid': props.invalid,\n      'p-focus': focusedState,\n      'p-variant-filled': props.variant ? props.variant === 'filled' : context && context.inputStyle === 'filled',\n      'p-dropdown-clearable': props.showClear && !props.disabled,\n      'p-inputwrapper-filled': primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.isNotEmpty(props.value),\n      'p-inputwrapper-focus': focusedState || overlayVisibleState\n    });\n  },\n  input: function input(_ref2) {\n    var props = _ref2.props,\n      label = _ref2.label;\n    return props.editable ? 'p-dropdown-label p-inputtext' : (0,primereact_utils__WEBPACK_IMPORTED_MODULE_10__.classNames)('p-dropdown-label p-inputtext', {\n      'p-placeholder': label === null && props.placeholder,\n      'p-dropdown-label-empty': label === null && !props.placeholder\n    });\n  },\n  trigger: 'p-dropdown-trigger',\n  emptyMessage: 'p-dropdown-empty-message',\n  itemGroup: function itemGroup(_ref3) {\n    var optionGroupLabel = _ref3.optionGroupLabel;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_10__.classNames)('p-dropdown-item-group', {\n      'p-dropdown-item-empty': !optionGroupLabel || optionGroupLabel.length === 0\n    });\n  },\n  itemGroupLabel: 'p-dropdown-item-group-label',\n  dropdownIcon: 'p-dropdown-trigger-icon p-clickable',\n  loadingIcon: 'p-dropdown-trigger-icon p-clickable',\n  clearIcon: 'p-dropdown-clear-icon p-clickable',\n  filterIcon: 'p-dropdown-filter-icon',\n  filterClearIcon: 'p-dropdown-filter-clear-icon',\n  filterContainer: function filterContainer(_ref4) {\n    var clearIcon = _ref4.clearIcon;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_10__.classNames)('p-dropdown-filter-container', {\n      'p-dropdown-clearable-filter': !!clearIcon\n    });\n  },\n  filterInput: function filterInput(_ref5) {\n    var props = _ref5.props,\n      context = _ref5.context;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_10__.classNames)('p-dropdown-filter p-inputtext p-component', {\n      'p-variant-filled': props.variant ? props.variant === 'filled' : context && context.inputStyle === 'filled'\n    });\n  },\n  list: function list(_ref6) {\n    var virtualScrollerOptions = _ref6.virtualScrollerOptions;\n    return virtualScrollerOptions ? 'p-dropdown-items' : 'p-dropdown-items';\n  },\n  panel: function panel(_ref7) {\n    var context = _ref7.context;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_10__.classNames)('p-dropdown-panel p-component', {\n      'p-input-filled': context && context.inputStyle === 'filled' || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].inputStyle === 'filled',\n      'p-ripple-disabled': context && context.ripple === false || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ripple === false\n    });\n  },\n  item: function item(_ref8) {\n    var selected = _ref8.selected,\n      disabled = _ref8.disabled,\n      label = _ref8.label,\n      index = _ref8.index,\n      focusedOptionIndex = _ref8.focusedOptionIndex,\n      highlightOnSelect = _ref8.highlightOnSelect;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_10__.classNames)('p-dropdown-item', {\n      'p-highlight': selected && highlightOnSelect,\n      'p-disabled': disabled,\n      'p-focus': index === focusedOptionIndex,\n      'p-dropdown-item-empty': !label || label.length === 0\n    });\n  },\n  itemLabel: 'p-dropdown-item-label',\n  checkIcon: 'p-dropdown-check-icon',\n  blankIcon: 'p-dropdown-blank-icon',\n  wrapper: 'p-dropdown-items-wrapper',\n  header: 'p-dropdown-header',\n  footer: 'p-dropdown-footer',\n  transition: 'p-connected-overlay'\n};\nvar styles = \"\\n@layer primereact {\\n    .p-dropdown {\\n        display: inline-flex;\\n        cursor: pointer;\\n        position: relative;\\n        user-select: none;\\n    }\\n    \\n    .p-dropdown-trigger {\\n        display: flex;\\n        align-items: center;\\n        justify-content: center;\\n        flex-shrink: 0;\\n    }\\n    \\n    .p-dropdown-label {\\n        display: block;\\n        white-space: nowrap;\\n        overflow: hidden;\\n        flex: 1 1 auto;\\n        width: 1%;\\n        text-overflow: ellipsis;\\n        cursor: pointer;\\n    }\\n    \\n    .p-dropdown-label-empty {\\n        overflow: hidden;\\n        visibility: hidden;\\n    }\\n    \\n    input.p-dropdown-label  {\\n        cursor: default;\\n    }\\n    \\n    .p-dropdown .p-dropdown-panel {\\n        min-width: 100%;\\n    }\\n    \\n    .p-dropdown-panel {\\n        position: absolute;\\n        top: 0;\\n        left: 0;\\n    }\\n    \\n    .p-dropdown-items-wrapper {\\n        overflow: auto;\\n    }\\n    \\n    .p-dropdown-item {\\n        cursor: pointer;\\n        font-weight: normal;\\n        white-space: nowrap;\\n        position: relative;\\n        overflow: hidden;\\n    }\\n    \\n    .p-dropdown-items {\\n        margin: 0;\\n        padding: 0;\\n        list-style-type: none;\\n    }\\n    \\n    .p-dropdown-filter {\\n        width: 100%;\\n    }\\n    \\n    .p-dropdown-filter-container {\\n        position: relative;\\n    }\\n    \\n    .p-dropdown-clear-icon,\\n    .p-dropdown-filter-icon,\\n    .p-dropdown-filter-clear-icon {\\n        position: absolute;\\n        top: 50%;\\n        margin-top: -.5rem;\\n        right: 2rem;\\n    }\\n    \\n    .p-fluid .p-dropdown {\\n        display: flex;\\n    }\\n    \\n    .p-fluid .p-dropdown .p-dropdown-label {\\n        width: 1%;\\n    }\\n}\\n\";\nvar inlineStyles = {\n  wrapper: function wrapper(_ref9) {\n    var props = _ref9.props;\n    return {\n      maxHeight: props.scrollHeight || 'auto'\n    };\n  },\n  panel: function panel(_ref10) {\n    var props = _ref10.props;\n    return _objectSpread$2({}, props.panelStyle);\n  }\n};\nvar DropdownBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'Dropdown',\n    __parentMetadata: null,\n    appendTo: null,\n    ariaLabel: null,\n    ariaLabelledBy: null,\n    autoFocus: false,\n    autoOptionFocus: false,\n    checkmark: false,\n    children: undefined,\n    className: null,\n    clearIcon: null,\n    collapseIcon: null,\n    dataKey: null,\n    disabled: false,\n    dropdownIcon: null,\n    editable: false,\n    emptyFilterMessage: null,\n    emptyMessage: null,\n    filter: false,\n    filterBy: null,\n    filterClearIcon: null,\n    filterDelay: 300,\n    filterIcon: null,\n    filterInputAutoFocus: false,\n    filterLocale: undefined,\n    filterMatchMode: 'contains',\n    filterPlaceholder: null,\n    filterTemplate: null,\n    focusInputRef: null,\n    focusOnHover: true,\n    highlightOnSelect: true,\n    id: null,\n    inputId: null,\n    inputRef: null,\n    invalid: false,\n    itemTemplate: null,\n    loading: false,\n    loadingIcon: null,\n    maxLength: null,\n    name: null,\n    onBlur: null,\n    onChange: null,\n    onClick: null,\n    onContextMenu: null,\n    onFilter: null,\n    onFocus: null,\n    onHide: null,\n    onMouseDown: null,\n    onShow: null,\n    optionDisabled: null,\n    optionGroupChildren: 'items',\n    optionGroupLabel: null,\n    optionGroupTemplate: null,\n    optionLabel: null,\n    options: null,\n    optionValue: null,\n    panelClassName: null,\n    panelFooterTemplate: null,\n    panelStyle: null,\n    placeholder: null,\n    required: false,\n    resetFilterOnHide: false,\n    scrollHeight: '200px',\n    selectOnFocus: false,\n    showClear: false,\n    showFilterClear: false,\n    showOnFocus: false,\n    style: null,\n    tabIndex: null,\n    tooltip: null,\n    tooltipOptions: null,\n    transitionOptions: null,\n    useOptionAsValue: false,\n    value: null,\n    valueTemplate: null,\n    variant: null,\n    virtualScrollerOptions: null\n  },\n  css: {\n    classes: classes,\n    styles: styles,\n    inlineStyles: inlineStyles\n  }\n});\nvar BlankIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_17__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"rect\", {\n    width: \"1\",\n    height: \"1\",\n    fill: \"currentColor\",\n    fillOpacity: \"0\"\n  }));\n}));\nBlankIcon.displayName = 'BlankIcon';\nvar DropdownItem = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var ptm = props.ptm,\n    cx = props.cx,\n    selected = props.selected,\n    disabled = props.disabled,\n    option = props.option,\n    label = props.label,\n    index = props.index,\n    focusedOptionIndex = props.focusedOptionIndex,\n    ariaSetSize = props.ariaSetSize,\n    checkmark = props.checkmark,\n    highlightOnSelect = props.highlightOnSelect,\n    onInputKeyDown = props.onInputKeyDown;\n  var getPTOptions = function getPTOptions(key) {\n    return ptm(key, {\n      context: {\n        selected: selected,\n        disabled: disabled,\n        focused: index === focusedOptionIndex\n      }\n    });\n  };\n  var _onClick = function onClick(event, i) {\n    if (props.onClick) {\n      props.onClick({\n        originalEvent: event,\n        option: option\n      });\n    }\n  };\n  var content = props.template ? primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.getJSXElement(props.template, props.option) : props.label;\n  var itemProps = mergeProps({\n    id: \"dropdownItem_\".concat(index),\n    role: 'option',\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_10__.classNames)(option.className, cx('item', {\n      selected: selected,\n      disabled: disabled,\n      label: label,\n      index: index,\n      focusedOptionIndex: focusedOptionIndex,\n      highlightOnSelect: highlightOnSelect\n    })),\n    style: props.style,\n    tabIndex: 0,\n    onClick: function onClick(e) {\n      return _onClick(e);\n    },\n    onKeyDown: function onKeyDown(e) {\n      return onInputKeyDown(e);\n    },\n    onMouseMove: function onMouseMove(e) {\n      return props === null || props === void 0 ? void 0 : props.onMouseMove(e, index);\n    },\n    'aria-setsize': ariaSetSize,\n    'aria-posinset': index + 1,\n    'aria-label': label,\n    'aria-selected': selected,\n    'data-p-highlight': selected,\n    'data-p-focused': focusedOptionIndex === index,\n    'data-p-disabled': disabled\n  }, getPTOptions('item'));\n  var itemGroupLabelProps = mergeProps({\n    className: cx('itemLabel')\n  }, getPTOptions('itemLabel'));\n  var iconRenderer = function iconRenderer() {\n    if (selected) {\n      var checkIconProps = mergeProps({\n        className: cx('checkIcon')\n      }, getPTOptions('checkIcon'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_check__WEBPACK_IMPORTED_MODULE_16__.CheckIcon, checkIconProps);\n    }\n    var blankIconProps = mergeProps({\n      className: cx('blankIcon')\n    }, getPTOptions('blankIcon'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(BlankIcon, blankIconProps);\n  };\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"li\", _extends({\n    key: props.label\n  }, itemProps), checkmark && iconRenderer(), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", itemGroupLabelProps, content), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_15__.Ripple, null));\n});\nDropdownItem.displayName = 'DropdownItem';\nfunction ownKeys$1(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$1(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar DropdownPanel = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (props, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var ptm = props.ptm,\n    cx = props.cx,\n    sx = props.sx;\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var filterInputRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var isEmptyFilter = !(props.visibleOptions && props.visibleOptions.length) && props.hasFilter;\n  var ariaSetSize = props.visibleOptions ? props.visibleOptions.length : 0;\n  var filterOptions = {\n    filter: function filter(e) {\n      return onFilterInputChange(e);\n    },\n    reset: function reset() {\n      return props.resetFilter();\n    }\n  };\n  var getPTOptions = function getPTOptions(key, options) {\n    return ptm(key, _objectSpread$1({\n      hostName: props.hostName\n    }, options));\n  };\n  var onEnter = function onEnter() {\n    props.onEnter(function () {\n      if (props.virtualScrollerRef.current) {\n        var selectedIndex = props.getSelectedOptionIndex();\n        if (selectedIndex !== -1) {\n          setTimeout(function () {\n            return props.virtualScrollerRef.current.scrollToIndex(selectedIndex);\n          }, 0);\n        }\n      }\n    });\n  };\n  var onEntered = function onEntered() {\n    props.onEntered(function () {\n      if (props.filter && props.filterInputAutoFocus) {\n        primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.focus(filterInputRef.current, false);\n      }\n    });\n  };\n  var onFilterInputChange = function onFilterInputChange(event) {\n    props.onFilterInputChange && props.onFilterInputChange(event);\n  };\n  var createFooter = function createFooter() {\n    if (props.panelFooterTemplate) {\n      var content = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.getJSXElement(props.panelFooterTemplate, props, props.onOverlayHide);\n      var footerProps = mergeProps({\n        className: cx('footer')\n      }, getPTOptions('footer'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", footerProps, content);\n    }\n    return null;\n  };\n  var changeFocusedItemOnHover = function changeFocusedItemOnHover(event, index) {\n    if (props.focusOnHover) {\n      var _props$changeFocusedO;\n      props === null || props === void 0 || (_props$changeFocusedO = props.changeFocusedOptionIndex) === null || _props$changeFocusedO === void 0 || _props$changeFocusedO.call(props, event, index);\n    }\n  };\n  var createEmptyMessage = function createEmptyMessage(emptyMessage, isFilter) {\n    var message = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.getJSXElement(emptyMessage, props) || (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.localeOption)(isFilter ? 'emptyFilterMessage' : 'emptyMessage');\n    var emptyMessageProps = mergeProps({\n      className: cx('emptyMessage')\n    }, getPTOptions('emptyMessage'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"li\", emptyMessageProps, message);\n  };\n  var createItem = function createItem(option, index) {\n    var scrollerOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    var style = {\n      height: scrollerOptions.props ? scrollerOptions.props.itemSize : undefined\n    };\n    style = _objectSpread$1(_objectSpread$1({}, style), option.style);\n    if (option.group && props.optionGroupLabel) {\n      var optionGroupLabel = props.optionGroupLabel;\n      var groupContent = props.optionGroupTemplate ? primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.getJSXElement(props.optionGroupTemplate, option, index) : props.getOptionGroupLabel(option);\n      var key = index + '_' + props.getOptionGroupRenderKey(option);\n      var itemGroupProps = mergeProps({\n        className: cx('itemGroup', {\n          optionGroupLabel: optionGroupLabel\n        }),\n        style: style,\n        'data-p-highlight': props.selected\n      }, getPTOptions('itemGroup'));\n      var itemGroupLabelProps = mergeProps({\n        className: cx('itemGroupLabel')\n      }, getPTOptions('itemGroupLabel'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"li\", _extends({\n        key: key\n      }, itemGroupProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", itemGroupLabelProps, groupContent));\n    }\n    var optionKey = props.getOptionRenderKey(option) + '_' + index;\n    var optionLabel = props.getOptionLabel(option);\n    var disabled = props.isOptionDisabled(option);\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(DropdownItem, {\n      key: optionKey,\n      label: optionLabel,\n      index: index,\n      focusedOptionIndex: props.focusedOptionIndex,\n      option: option,\n      ariaSetSize: ariaSetSize,\n      onInputKeyDown: props.onInputKeyDown,\n      style: style,\n      template: props.itemTemplate,\n      selected: props.isSelected(option),\n      highlightOnSelect: props.highlightOnSelect,\n      disabled: disabled,\n      onClick: props.onOptionClick,\n      onMouseMove: changeFocusedItemOnHover,\n      ptm: ptm,\n      cx: cx,\n      checkmark: props.checkmark\n    });\n  };\n  var createItems = function createItems() {\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.isNotEmpty(props.visibleOptions)) {\n      return props.visibleOptions.map(createItem);\n    } else if (props.hasFilter) {\n      return createEmptyMessage(props.emptyFilterMessage, true);\n    }\n    return createEmptyMessage(props.emptyMessage);\n  };\n  var createFilterClearIcon = function createFilterClearIcon() {\n    if (props.showFilterClear && props.filterValue) {\n      var ariaLabelFilterClear = (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.localeOption)('clear');\n      var clearIconProps = mergeProps({\n        className: cx('filterClearIcon'),\n        'aria-label': ariaLabelFilterClear,\n        onClick: function onClick() {\n          return props.onFilterClearIconClick(function () {\n            return primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.focus(filterInputRef.current);\n          });\n        }\n      }, getPTOptions('filterClearIcon'));\n      var icon = props.filterClearIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_times__WEBPACK_IMPORTED_MODULE_7__.TimesIcon, clearIconProps);\n      var filterClearIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.IconUtils.getJSXIcon(icon, _objectSpread$1({}, clearIconProps), {\n        props: props\n      });\n      return filterClearIcon;\n    }\n    return null;\n  };\n  var createFilter = function createFilter() {\n    if (props.filter) {\n      var clearIcon = createFilterClearIcon();\n      var filterIconProps = mergeProps({\n        className: cx('filterIcon')\n      }, getPTOptions('filterIcon'));\n      var icon = props.filterIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_search__WEBPACK_IMPORTED_MODULE_12__.SearchIcon, filterIconProps);\n      var filterIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.IconUtils.getJSXIcon(icon, _objectSpread$1({}, filterIconProps), {\n        props: props\n      });\n      var filterContainerProps = mergeProps({\n        className: cx('filterContainer', {\n          clearIcon: clearIcon\n        })\n      }, getPTOptions('filterContainer'));\n      var filterInputProps = mergeProps({\n        ref: filterInputRef,\n        type: 'text',\n        autoComplete: 'off',\n        className: cx('filterInput', {\n          context: context\n        }),\n        placeholder: props.filterPlaceholder,\n        onKeyDown: props.onFilterInputKeyDown,\n        onChange: function onChange(e) {\n          return onFilterInputChange(e);\n        },\n        value: props.filterValue\n      }, getPTOptions('filterInput'));\n      var content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", filterContainerProps, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"input\", filterInputProps), clearIcon, filterIcon);\n      if (props.filterTemplate) {\n        var defaultContentOptions = {\n          className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_10__.classNames)('p-dropdown-filter-container', {\n            'p-dropdown-clearable-filter': !!clearIcon\n          }),\n          element: content,\n          filterOptions: filterOptions,\n          filterInputKeyDown: props.onFilterInputKeyDown,\n          filterInputChange: onFilterInputChange,\n          filterIconClassName: 'p-dropdown-filter-icon',\n          clearIcon: clearIcon,\n          props: props\n        };\n        content = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.getJSXElement(props.filterTemplate, defaultContentOptions);\n      }\n      var headerProps = mergeProps({\n        className: cx('header')\n      }, getPTOptions('header'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", headerProps, content);\n    }\n    return null;\n  };\n  var createContent = function createContent() {\n    if (props.virtualScrollerOptions) {\n      var virtualScrollerProps = _objectSpread$1(_objectSpread$1({}, props.virtualScrollerOptions), {\n        style: _objectSpread$1(_objectSpread$1({}, props.virtualScrollerOptions.style), {\n          height: props.scrollHeight\n        }),\n        className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_10__.classNames)('p-dropdown-items-wrapper', props.virtualScrollerOptions.className),\n        items: props.visibleOptions,\n        autoSize: true,\n        onLazyLoad: function onLazyLoad(event) {\n          return props.virtualScrollerOptions.onLazyLoad(_objectSpread$1(_objectSpread$1({}, event), {\n            filter: props.filterValue\n          }));\n        },\n        itemTemplate: function itemTemplate(item, options) {\n          return item && createItem(item, options.index, options);\n        },\n        contentTemplate: function contentTemplate(options) {\n          var emptyMessage = props.hasFilter ? props.emptyFilterMessage : props.emptyMessage;\n          var content = isEmptyFilter ? createEmptyMessage(emptyMessage) : options.children;\n          var listProps = mergeProps({\n            ref: options.contentRef,\n            style: options.style,\n            className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_10__.classNames)(options.className, cx('list', {\n              virtualScrollerProps: props.virtualScrollerOptions\n            })),\n            role: 'listbox',\n            'aria-label': (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('listLabel')\n          }, getPTOptions('list'));\n          return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"ul\", listProps, content);\n        }\n      });\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_virtualscroller__WEBPACK_IMPORTED_MODULE_14__.VirtualScroller, _extends({\n        ref: props.virtualScrollerRef\n      }, virtualScrollerProps, {\n        pt: ptm('virtualScroller')\n      }));\n    }\n    var items = createItems();\n    var wrapperProps = mergeProps({\n      className: cx('wrapper'),\n      style: sx('wrapper')\n    }, getPTOptions('wrapper'));\n    var listProps = mergeProps({\n      className: cx('list'),\n      role: 'listbox',\n      'aria-label': (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('listLabel')\n    }, getPTOptions('list'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", wrapperProps, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"ul\", listProps, items));\n  };\n  var createElement = function createElement() {\n    var filter = createFilter();\n    var content = createContent();\n    var footer = createFooter();\n    var panelProps = mergeProps({\n      className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_10__.classNames)(props.panelClassName, cx('panel', {\n        context: context\n      })),\n      style: sx('panel'),\n      onClick: props.onClick\n    }, getPTOptions('panel'));\n    var transitionProps = mergeProps({\n      classNames: cx('transition'),\n      \"in\": props[\"in\"],\n      timeout: {\n        enter: 120,\n        exit: 100\n      },\n      options: props.transitionOptions,\n      unmountOnExit: true,\n      onEnter: onEnter,\n      onEntered: onEntered,\n      onExit: props.onExit,\n      onExited: props.onExited\n    }, getPTOptions('transition'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_csstransition__WEBPACK_IMPORTED_MODULE_11__.CSSTransition, _extends({\n      nodeRef: ref\n    }, transitionProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", _extends({\n      ref: ref\n    }, panelProps), props.firstFocusableElement, filter, content, footer, props.lastFocusableElement));\n  };\n  var element = createElement();\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_portal__WEBPACK_IMPORTED_MODULE_13__.Portal, {\n    element: element,\n    appendTo: props.appendTo\n  });\n}));\nDropdownPanel.displayName = 'DropdownPanel';\nfunction _createForOfIteratorHelper(r, e) {\n  var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (!t) {\n    if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n      t && (r = t);\n      var _n = 0,\n        F = function F() {};\n      return {\n        s: F,\n        n: function n() {\n          return _n >= r.length ? {\n            done: !0\n          } : {\n            done: !1,\n            value: r[_n++]\n          };\n        },\n        e: function e(r) {\n          throw r;\n        },\n        f: F\n      };\n    }\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n  var o,\n    a = !0,\n    u = !1;\n  return {\n    s: function s() {\n      t = t.call(r);\n    },\n    n: function n() {\n      var r = t.next();\n      return a = r.done, r;\n    },\n    e: function e(r) {\n      u = !0, o = r;\n    },\n    f: function f() {\n      try {\n        a || null == t[\"return\"] || t[\"return\"]();\n      } finally {\n        if (u) throw o;\n      }\n    }\n  };\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar Dropdown = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = DropdownBase.getProps(inProps, context);\n  var _useDebounce = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useDebounce)('', props.filterDelay || 0),\n    _useDebounce2 = _slicedToArray(_useDebounce, 3),\n    filterValue = _useDebounce2[0],\n    filterState = _useDebounce2[1],\n    setFilterState = _useDebounce2[2];\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    focusedState = _React$useState2[0],\n    setFocusedState = _React$useState2[1];\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__.useState(-1),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    focusedOptionIndex = _React$useState4[0],\n    setFocusedOptionIndex = _React$useState4[1];\n  var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    overlayVisibleState = _React$useState6[0],\n    setOverlayVisibleState = _React$useState6[1];\n  var clickedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var overlayRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var firstHiddenFocusableElementOnOverlay = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var lastHiddenFocusableElementOnOverlay = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var inputRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(props.inputRef);\n  var focusInputRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(props.focusInputRef);\n  var virtualScrollerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var searchTimeout = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var searchValue = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var isLazy = props.virtualScrollerOptions && props.virtualScrollerOptions.lazy;\n  var hasFilter = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.isNotEmpty(filterState);\n  var appendTo = props.appendTo || context && context.appendTo || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].appendTo;\n  var _DropdownBase$setMeta = DropdownBase.setMetaData(_objectSpread(_objectSpread({\n      props: props\n    }, props.__parentMetadata), {}, {\n      state: {\n        filter: filterState,\n        focused: focusedState,\n        overlayVisible: overlayVisibleState\n      }\n    })),\n    ptm = _DropdownBase$setMeta.ptm,\n    cx = _DropdownBase$setMeta.cx,\n    sx = _DropdownBase$setMeta.sx,\n    isUnstyled = _DropdownBase$setMeta.isUnstyled;\n  (0,primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.useHandleStyle)(DropdownBase.css.styles, isUnstyled, {\n    name: 'dropdown'\n  });\n  var _useOverlayListener = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useOverlayListener)({\n      target: elementRef,\n      overlay: overlayRef,\n      listener: function listener(event, _ref) {\n        var type = _ref.type,\n          valid = _ref.valid;\n        if (valid) {\n          if (type === 'outside') {\n            if (!isClearClicked(event)) {\n              hide();\n            }\n          } else if (context.hideOverlaysOnDocumentScrolling) {\n            hide();\n          } else if (!primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.isDocument(event.target)) {\n            alignOverlay();\n          }\n        }\n      },\n      when: overlayVisibleState\n    }),\n    _useOverlayListener2 = _slicedToArray(_useOverlayListener, 2),\n    bindOverlayListener = _useOverlayListener2[0],\n    unbindOverlayListener = _useOverlayListener2[1];\n  var flatOptions = function flatOptions(options) {\n    return (options || []).reduce(function (result, option, index) {\n      result.push(_objectSpread(_objectSpread({}, option), {}, {\n        group: true,\n        index: index\n      }));\n      var optionGroupChildren = getOptionGroupChildren(option);\n      optionGroupChildren && optionGroupChildren.forEach(function (o) {\n        return result.push(o);\n      });\n      return result;\n    }, []);\n  };\n  var getVisibleOptions = function getVisibleOptions() {\n    var options = props.optionGroupLabel ? flatOptions(props.options) : props.options;\n    if (hasFilter && !isLazy) {\n      var _filterValue = filterState.trim().toLocaleLowerCase(props.filterLocale);\n      var searchFields = props.filterBy ? props.filterBy.split(',') : [props.optionLabel || 'label'];\n      if (props.optionGroupLabel) {\n        var filteredGroups = [];\n        var _iterator = _createForOfIteratorHelper(props.options),\n          _step;\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var optgroup = _step.value;\n            var filteredSubOptions = primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterService.filter(getOptionGroupChildren(optgroup), searchFields, _filterValue, props.filterMatchMode, props.filterLocale);\n            if (filteredSubOptions && filteredSubOptions.length) {\n              filteredGroups.push(_objectSpread(_objectSpread({}, optgroup), _defineProperty({}, \"\".concat(props.optionGroupChildren), filteredSubOptions)));\n            }\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n        return flatOptions(filteredGroups);\n      }\n      return primereact_api__WEBPACK_IMPORTED_MODULE_1__.FilterService.filter(options, searchFields, _filterValue, props.filterMatchMode, props.filterLocale);\n    }\n    return options;\n  };\n  var onFirstHiddenFocus = function onFirstHiddenFocus(event) {\n    var focusableEl = event.relatedTarget === focusInputRef.current ? primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.getFirstFocusableElement(overlayRef.current, ':not([data-p-hidden-focusable=\"true\"])') : focusInputRef.current;\n    primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.focus(focusableEl);\n  };\n  var onLastHiddenFocus = function onLastHiddenFocus(event) {\n    var focusableEl = event.relatedTarget === focusInputRef.current ? primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.getLastFocusableElement(overlayRef.current, ':not([data-p-hidden-focusable=\"true\"])') : focusInputRef.current;\n    primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.focus(focusableEl);\n  };\n  var isClearClicked = function isClearClicked(event) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.isAttributeEquals(event.target, 'data-pc-section', 'clearicon') || primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.isAttributeEquals(event.target.parentElement || event.target, 'data-pc-section', 'filterclearicon');\n  };\n  var _onClick = function onClick(event) {\n    if (props.disabled || props.loading) {\n      return;\n    }\n    props.onClick && props.onClick(event);\n\n    // do not continue if the user defined click wants to prevent it\n    if (event.defaultPrevented) {\n      return;\n    }\n    if (isClearClicked(event) || event.target.tagName === 'INPUT') {\n      return;\n    } else if (!overlayRef.current || !(overlayRef.current && overlayRef.current.contains(event.target))) {\n      primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.focus(focusInputRef.current);\n      overlayVisibleState ? hide() : show();\n    }\n    event.preventDefault();\n    clickedRef.current = true;\n  };\n  var onInputFocus = function onInputFocus(event) {\n    if (props.showOnFocus && !overlayVisibleState) {\n      show();\n    }\n    setFocusedState(true);\n    props.onFocus && props.onFocus(event);\n  };\n  var onInputBlur = function onInputBlur(event) {\n    setFocusedState(false);\n    if (props.onBlur) {\n      setTimeout(function () {\n        var currentValue = inputRef.current ? inputRef.current.value : undefined;\n        props.onBlur({\n          originalEvent: event.originalEvent,\n          value: currentValue,\n          stopPropagation: function stopPropagation() {\n            event.originalEvent.stopPropagation();\n          },\n          preventDefault: function preventDefault() {\n            event.originalEvent.preventDefault();\n          },\n          target: {\n            name: props.name,\n            id: props.id,\n            value: currentValue\n          }\n        });\n      }, 200);\n    }\n  };\n  var onOptionSelect = function onOptionSelect(event, option) {\n    var isHide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n    selectItem({\n      originalEvent: event,\n      option: option\n    });\n    if (isHide) {\n      hide();\n      primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.focus(focusInputRef.current);\n    }\n  };\n  var onPanelClick = function onPanelClick(event) {\n    primereact_overlayservice__WEBPACK_IMPORTED_MODULE_8__.OverlayService.emit('overlay-click', {\n      originalEvent: event,\n      target: elementRef.current\n    });\n  };\n  var onInputKeyDown = function onInputKeyDown(event) {\n    if (props.disabled) {\n      event.preventDefault();\n      return;\n    }\n    var code = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.isAndroid() ? event.key : event.code;\n    switch (code) {\n      case 'ArrowDown':\n        onArrowDownKey(event);\n        break;\n      case 'ArrowUp':\n        onArrowUpKey(event);\n        break;\n      case 'ArrowLeft':\n      case 'ArrowRight':\n        onArrowLeftKey(event, props.editable);\n        break;\n      case 'Home':\n        onHomeKey(event);\n        break;\n      case 'End':\n        onEndKey(event);\n        break;\n      case 'PageDown':\n        onPageDownKey(event);\n        break;\n      case 'PageUp':\n        onPageUpKey(event);\n        break;\n      case 'Space':\n        onSpaceKey(event, props.editable);\n        break;\n      case 'NumpadEnter':\n      case 'Enter':\n        onEnterKey(event);\n        break;\n      case 'Escape':\n        onEscapeKey(event);\n        break;\n      case 'Tab':\n        onTabKey(event);\n        break;\n      case 'Backspace':\n        onBackspaceKey(event, props.editable);\n        break;\n      case 'ShiftLeft':\n      case 'ShiftRight':\n        //NOOP\n        break;\n      default:\n        var metaKey = event.metaKey || event.ctrlKey || event.altKey;\n\n        // Only handle printable characters when no meta keys are pressed\n        if (!metaKey && primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.isPrintableCharacter(event.key)) {\n          !overlayVisibleState && !props.editable && show();\n          !props.editable && searchOptions(event, event.key);\n        }\n        break;\n    }\n    clickedRef.current = false;\n  };\n  var onFilterInputKeyDown = function onFilterInputKeyDown(event) {\n    switch (event.code) {\n      case 'ArrowDown':\n        onArrowDownKey(event);\n        break;\n      case 'ArrowUp':\n        onArrowUpKey(event);\n        break;\n      case 'ArrowLeft':\n      case 'ArrowRight':\n        onArrowLeftKey(event, true);\n        break;\n      case 'Enter':\n      case 'NumpadEnter':\n        onEnterKey(event);\n        event.preventDefault();\n        break;\n      case 'Escape':\n        onEscapeKey(event);\n        break;\n    }\n  };\n  var hasFocusableElements = function hasFocusableElements() {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.getFocusableElements(overlayRef.current, ':not([data-p-hidden-focusable=\"true\"])').length > 0;\n  };\n  var isOptionMatched = function isOptionMatched(option) {\n    var _getOptionLabel;\n    return isValidOption(option) && ((_getOptionLabel = getOptionLabel(option)) === null || _getOptionLabel === void 0 ? void 0 : _getOptionLabel.toLocaleLowerCase(props.filterLocale).startsWith(searchValue.current.toLocaleLowerCase(props.filterLocale)));\n  };\n  var isValidOption = function isValidOption(option) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.isNotEmpty(option) && !(isOptionDisabled(option) || isOptionGroup(option));\n  };\n  var hasSelectedOption = function hasSelectedOption() {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.isNotEmpty(props.value);\n  };\n  var isValidSelectedOption = function isValidSelectedOption(option) {\n    return isValidOption(option) && isSelected(option);\n  };\n  var findSelectedOptionIndex = function findSelectedOptionIndex() {\n    return hasSelectedOption ? visibleOptions.findIndex(function (option) {\n      return isValidSelectedOption(option);\n    }) : -1;\n  };\n  var findFirstFocusedOptionIndex = function findFirstFocusedOptionIndex() {\n    var selectedIndex = findSelectedOptionIndex();\n    return selectedIndex < 0 ? findFirstOptionIndex() : selectedIndex;\n  };\n  var searchOptions = function searchOptions(event, _char) {\n    searchValue.current = (searchValue.current || '') + _char;\n    var optionIndex = -1;\n    var matched = false;\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.isNotEmpty(searchValue.current)) {\n      if (focusedOptionIndex !== -1) {\n        optionIndex = visibleOptions.slice(focusedOptionIndex).findIndex(function (option) {\n          return isOptionMatched(option);\n        });\n        optionIndex = optionIndex === -1 ? visibleOptions.slice(0, focusedOptionIndex).findIndex(function (option) {\n          return isOptionMatched(option);\n        }) : optionIndex + focusedOptionIndex;\n      } else {\n        optionIndex = visibleOptions.findIndex(function (option) {\n          return isOptionMatched(option);\n        });\n      }\n      if (optionIndex !== -1) {\n        matched = true;\n      }\n      if (optionIndex === -1 && focusedOptionIndex === -1) {\n        optionIndex = findFirstFocusedOptionIndex();\n      }\n      if (optionIndex !== -1) {\n        changeFocusedOptionIndex(event, optionIndex);\n      }\n    }\n    if (searchTimeout.current) {\n      clearTimeout(searchTimeout.current);\n    }\n    searchTimeout.current = setTimeout(function () {\n      searchValue.current = '';\n      searchTimeout.current = null;\n    }, 500);\n    return matched;\n  };\n  var findLastFocusedOptionIndex = function findLastFocusedOptionIndex() {\n    var selectedIndex = findSelectedOptionIndex();\n    return selectedIndex < 0 ? findLastOptionIndex() : selectedIndex;\n  };\n  var findFirstOptionIndex = function findFirstOptionIndex() {\n    return visibleOptions.findIndex(function (option) {\n      return isValidOption(option);\n    });\n  };\n  var findLastOptionIndex = function findLastOptionIndex() {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.findLastIndex(visibleOptions, function (option) {\n      return isValidOption(option);\n    });\n  };\n  var findNextOptionIndex = function findNextOptionIndex(index) {\n    var matchedOptionIndex = index < visibleOptions.length - 1 ? visibleOptions.slice(index + 1).findIndex(function (option) {\n      return isValidOption(option);\n    }) : -1;\n    return matchedOptionIndex > -1 ? matchedOptionIndex + index + 1 : index;\n  };\n  var findPrevOptionIndex = function findPrevOptionIndex(index) {\n    var matchedOptionIndex = index > 0 ? primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.findLastIndex(visibleOptions.slice(0, index), function (option) {\n      return isValidOption(option);\n    }) : -1;\n    return matchedOptionIndex > -1 ? matchedOptionIndex : index;\n  };\n  var changeFocusedOptionIndex = function changeFocusedOptionIndex(event, index) {\n    if (focusedOptionIndex !== index) {\n      setFocusedOptionIndex(index);\n      focusOnItem(index);\n      if (props.selectOnFocus) {\n        onOptionSelect(event, visibleOptions[index], false);\n      }\n    }\n  };\n  var focusOnItem = function focusOnItem(index) {\n    var focusedItem = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.findSingle(overlayRef.current, \"li[id=\\\"dropdownItem_\".concat(index, \"\\\"]\"));\n    focusedItem && focusedItem.focus();\n  };\n  var onArrowDownKey = function onArrowDownKey(event) {\n    if (!overlayVisibleState) {\n      show();\n      props.editable && changeFocusedOptionIndex(event, findSelectedOptionIndex());\n    } else {\n      var optionIndex = focusedOptionIndex !== -1 ? findNextOptionIndex(focusedOptionIndex) : clickedRef.current ? findFirstOptionIndex() : findFirstFocusedOptionIndex();\n      changeFocusedOptionIndex(event, optionIndex);\n    }\n    event.preventDefault();\n  };\n  var onArrowUpKey = function onArrowUpKey(event) {\n    var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    if (event.altKey && !pressedInInputText) {\n      if (focusedOptionIndex !== -1) {\n        onOptionSelect(event, visibleOptions[focusedOptionIndex]);\n      }\n      state.overlayVisible && hide();\n      event.preventDefault();\n    } else {\n      var optionIndex = focusedOptionIndex !== -1 ? findPrevOptionIndex(focusedOptionIndex) : clickedRef.current ? findLastOptionIndex() : findLastFocusedOptionIndex();\n      changeFocusedOptionIndex(event, optionIndex);\n      !overlayVisibleState && show();\n      event.preventDefault();\n    }\n  };\n  var onArrowLeftKey = function onArrowLeftKey(event) {\n    var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    pressedInInputText && setFocusedOptionIndex(-1);\n  };\n  var onHomeKey = function onHomeKey(event) {\n    var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    if (pressedInInputText) {\n      event.currentTarget.setSelectionRange(0, 0);\n      setFocusedOptionIndex(-1);\n    } else {\n      changeFocusedOptionIndex(event, findFirstOptionIndex());\n      !overlayVisibleState && show();\n    }\n    event.preventDefault();\n  };\n  var onEndKey = function onEndKey(event) {\n    var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    if (pressedInInputText) {\n      var target = event.currentTarget;\n      var len = target.value.length;\n      target.setSelectionRange(len, len);\n      setFocusedOptionIndex(-1);\n    } else {\n      changeFocusedOptionIndex(event, findLastOptionIndex());\n      !overlayVisibleState && show();\n    }\n    event.preventDefault();\n  };\n  var onPageUpKey = function onPageUpKey(event) {\n    event.preventDefault();\n  };\n  var onPageDownKey = function onPageDownKey(event) {\n    event.preventDefault();\n  };\n  var onSpaceKey = function onSpaceKey(event) {\n    var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    !pressedInInputText && onEnterKey(event);\n  };\n  var onEnterKey = function onEnterKey(event) {\n    event.preventDefault();\n    if (!overlayVisibleState) {\n      setFocusedOptionIndex(-1);\n      onArrowDownKey(event);\n    } else {\n      if (focusedOptionIndex === -1) {\n        return;\n      }\n      var focusedOption = visibleOptions[focusedOptionIndex];\n      var optionValue = getOptionValue(focusedOption);\n      if (optionValue == null || optionValue == undefined) {\n        hide();\n        resetFilter();\n        updateEditableLabel(selectedOption);\n        return;\n      }\n      onOptionSelect(event, focusedOption);\n    }\n  };\n  var onEscapeKey = function onEscapeKey(event) {\n    overlayVisibleState && hide();\n    event.preventDefault();\n  };\n  var onTabKey = function onTabKey(event) {\n    var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    if (!pressedInInputText) {\n      if (overlayVisibleState && !hasFocusableElements()) {\n        primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.focus(firstHiddenFocusableElementOnOverlay.current);\n        event.preventDefault();\n      } else {\n        if (focusedOptionIndex !== -1) {\n          onOptionSelect(event, visibleOptions[focusedOptionIndex]);\n        }\n        overlayVisibleState && hide();\n      }\n    }\n  };\n  var onBackspaceKey = function onBackspaceKey(event) {\n    var pressedInInputText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    if (event && pressedInInputText) {\n      !overlayVisibleState && show();\n    }\n  };\n  var findInArray = function findInArray(visibleOptions, searchText) {\n    if (!searchText || !(visibleOptions !== null && visibleOptions !== void 0 && visibleOptions.length)) return -1;\n    var normalizedSearch = searchText.toLocaleLowerCase();\n    var exactMatch = visibleOptions.findIndex(function (item) {\n      return getOptionLabel(item).toLocaleLowerCase() === normalizedSearch;\n    });\n    if (exactMatch !== -1) return exactMatch;\n    return visibleOptions.findIndex(function (item) {\n      return getOptionLabel(item).toLocaleLowerCase().startsWith(normalizedSearch);\n    });\n  };\n  var onEditableInputChange = function onEditableInputChange(event) {\n    !overlayVisibleState && show();\n    var searchIndex = null;\n    if (event.target.value && visibleOptions) {\n      searchIndex = findInArray(visibleOptions, event.target.value);\n    }\n    setFocusedOptionIndex(searchIndex);\n    if (props.onChange) {\n      props.onChange({\n        originalEvent: event.originalEvent,\n        value: event.target.value,\n        stopPropagation: function stopPropagation() {\n          event.originalEvent.stopPropagation();\n        },\n        preventDefault: function preventDefault() {\n          event.originalEvent.preventDefault();\n        },\n        target: {\n          name: props.name,\n          id: props.id,\n          value: event.target.value\n        }\n      });\n    }\n  };\n  var onEditableInputFocus = function onEditableInputFocus(event) {\n    setFocusedState(true);\n    hide();\n    props.onFocus && props.onFocus(event);\n  };\n  var onOptionClick = function onOptionClick(event) {\n    var option = event.option;\n    if (!option.disabled) {\n      selectItem(event);\n      primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.focus(focusInputRef.current);\n    }\n    hide();\n  };\n  var onFilterInputChange = function onFilterInputChange(event) {\n    var filter = event.target.value;\n    setFilterState(filter);\n    if (props.onFilter) {\n      props.onFilter({\n        originalEvent: event,\n        filter: filter\n      });\n    }\n  };\n  var onFilterClearIconClick = function onFilterClearIconClick(callback) {\n    resetFilter(callback);\n  };\n  var resetFilter = function resetFilter(callback) {\n    setFilterState('');\n    props.onFilter && props.onFilter({\n      filter: ''\n    });\n    callback && callback();\n  };\n  var clear = function clear(event) {\n    if (props.onChange) {\n      props.onChange({\n        originalEvent: event,\n        value: undefined,\n        stopPropagation: function stopPropagation() {\n          event === null || event === void 0 || event.stopPropagation();\n        },\n        preventDefault: function preventDefault() {\n          event === null || event === void 0 || event.preventDefault();\n        },\n        target: {\n          name: props.name,\n          id: props.id,\n          value: undefined\n        }\n      });\n    }\n    if (props.filter) {\n      resetFilter();\n    }\n    updateEditableLabel();\n    setFocusedOptionIndex(-1);\n  };\n  var selectItem = function selectItem(event) {\n    if (selectedOption !== event.option) {\n      updateEditableLabel(event.option);\n      setFocusedOptionIndex(-1);\n      var optionValue = getOptionValue(event.option);\n      var selectedOptionIndex = findOptionIndexInList(event.option, visibleOptions);\n      if (props.onChange) {\n        props.onChange({\n          originalEvent: event.originalEvent,\n          value: optionValue,\n          stopPropagation: function stopPropagation() {\n            event.originalEvent.stopPropagation();\n          },\n          preventDefault: function preventDefault() {\n            event.originalEvent.preventDefault();\n          },\n          target: {\n            name: props.name,\n            id: props.id,\n            value: optionValue\n          }\n        });\n      }\n      changeFocusedOptionIndex(event.originalEvent, selectedOptionIndex);\n    }\n  };\n  var getSelectedOptionIndex = function getSelectedOptionIndex(options) {\n    options = options || visibleOptions;\n    if (options) {\n      if (props.optionGroupLabel) {\n        for (var i = 0; i < options.length; i++) {\n          var selectedOptionIndex = findOptionIndexInList(props.value, getOptionGroupChildren(options[i]));\n          if (selectedOptionIndex !== -1) {\n            return {\n              group: i,\n              option: selectedOptionIndex\n            };\n          }\n        }\n      } else {\n        return findOptionIndexInList(props.value, options);\n      }\n    }\n    return -1;\n  };\n  var equalityKey = function equalityKey() {\n    return props.optionValue ? null : props.dataKey;\n  };\n  var findOptionIndexInList = function findOptionIndexInList(value, list) {\n    var key = equalityKey();\n    return list.findIndex(function (item) {\n      return primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.equals(value, getOptionValue(item), key);\n    });\n  };\n  var isSelected = function isSelected(option) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.equals(props.value, getOptionValue(option), equalityKey());\n  };\n  var show = function show() {\n    setFocusedOptionIndex(focusedOptionIndex !== -1 ? focusedOptionIndex : props.autoOptionFocus ? findFirstFocusedOptionIndex() : props.editable ? -1 : findSelectedOptionIndex());\n    setOverlayVisibleState(true);\n  };\n  var hide = function hide() {\n    setOverlayVisibleState(false);\n    clickedRef.current = false;\n  };\n  var onFocus = function onFocus() {\n    if (props.editable && !overlayVisibleState && clickedRef.current === false) {\n      primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.focus(inputRef.current);\n    }\n  };\n  var onOverlayEnter = function onOverlayEnter(callback) {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ZIndexUtils.set('overlay', overlayRef.current, context && context.autoZIndex || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].autoZIndex, context && context.zIndex.overlay || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].zIndex.overlay);\n    primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.addStyles(overlayRef.current, {\n      position: 'absolute',\n      top: '0',\n      left: '0'\n    });\n    alignOverlay();\n    callback && callback();\n  };\n  var onOverlayEntered = function onOverlayEntered(callback) {\n    callback && callback();\n    bindOverlayListener();\n    props.onShow && props.onShow();\n  };\n  var onOverlayExit = function onOverlayExit() {\n    unbindOverlayListener();\n  };\n  var onOverlayExited = function onOverlayExited() {\n    if (props.filter && props.resetFilterOnHide) {\n      resetFilter();\n    }\n    primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ZIndexUtils.clear(overlayRef.current);\n    props.onHide && props.onHide();\n  };\n  var alignOverlay = function alignOverlay() {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.alignOverlay(overlayRef.current, inputRef.current.parentElement, props.appendTo || context && context.appendTo || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].appendTo);\n  };\n  var scrollInView = function scrollInView() {\n    var focusedItem = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.findSingle(overlayRef.current, 'li[data-p-focused=\"true\"]');\n    if (focusedItem && focusedItem.scrollIntoView) {\n      focusedItem.scrollIntoView({\n        block: 'nearest',\n        inline: 'nearest'\n      });\n    } else {\n      var highlightItem = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.findSingle(overlayRef.current, 'li[data-p-highlight=\"true\"]');\n      if (highlightItem && highlightItem.scrollIntoView) {\n        highlightItem.scrollIntoView({\n          block: 'nearest',\n          inline: 'nearest'\n        });\n      }\n    }\n  };\n  var updateEditableLabel = function updateEditableLabel(option) {\n    if (inputRef.current) {\n      inputRef.current.value = option ? getOptionLabel(option) : props.value || '';\n\n      // #1413 NVDA screenreader\n      if (focusInputRef.current) {\n        focusInputRef.current.value = inputRef.current.value;\n      }\n    }\n  };\n  var getOptionLabel = function getOptionLabel(option) {\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.isScalar(option)) {\n      return \"\".concat(option);\n    }\n    var optionLabel = props.optionLabel ? primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.resolveFieldData(option, props.optionLabel) : option['label'];\n    return \"\".concat(optionLabel);\n  };\n  var getOptionValue = function getOptionValue(option) {\n    if (props.useOptionAsValue) {\n      return option;\n    }\n    var optionValue = props.optionValue ? primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.resolveFieldData(option, props.optionValue) : option ? option['value'] : primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.resolveFieldData(option, 'value');\n    return props.optionValue || primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.isNotEmpty(optionValue) ? optionValue : option;\n  };\n  var getOptionRenderKey = function getOptionRenderKey(option) {\n    return props.dataKey ? primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.resolveFieldData(option, props.dataKey) : getOptionLabel(option);\n  };\n  var isOptionGroup = function isOptionGroup(option) {\n    return props.optionGroupLabel && option.group;\n  };\n  var isOptionDisabled = function isOptionDisabled(option) {\n    if (props.optionDisabled) {\n      return primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.isFunction(props.optionDisabled) ? props.optionDisabled(option) : primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.resolveFieldData(option, props.optionDisabled);\n    }\n    return option && option.disabled !== undefined ? option.disabled : false;\n  };\n  var getOptionGroupRenderKey = function getOptionGroupRenderKey(optionGroup) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.resolveFieldData(optionGroup, props.optionGroupLabel);\n  };\n  var getOptionGroupLabel = function getOptionGroupLabel(optionGroup) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.resolveFieldData(optionGroup, props.optionGroupLabel);\n  };\n  var getOptionGroupChildren = function getOptionGroupChildren(optionGroup) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.resolveFieldData(optionGroup, props.optionGroupChildren);\n  };\n  var updateInputField = function updateInputField() {\n    if (props.editable && inputRef.current) {\n      var label = selectedOption ? getOptionLabel(selectedOption) : null;\n      var value = label || props.value || '';\n      inputRef.current.value = value;\n\n      // #1413 NVDA screenreader\n      if (focusInputRef.current) {\n        focusInputRef.current.value = value;\n      }\n    }\n  };\n  var getSelectedOption = function getSelectedOption() {\n    var index = getSelectedOptionIndex(props.options);\n    return index !== -1 ? props.optionGroupLabel ? getOptionGroupChildren(props.options[index.group])[index.option] : props.options[index] : null;\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      show: show,\n      hide: hide,\n      clear: clear,\n      focus: function focus() {\n        return primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.focus(focusInputRef.current);\n      },\n      getElement: function getElement() {\n        return elementRef.current;\n      },\n      getOverlay: function getOverlay() {\n        return overlayRef.current;\n      },\n      getInput: function getInput() {\n        return inputRef.current;\n      },\n      getFocusInput: function getFocusInput() {\n        return focusInputRef.current;\n      },\n      getVirtualScroller: function getVirtualScroller() {\n        return virtualScrollerRef.current;\n      }\n    };\n  });\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.combinedRefs(inputRef, props.inputRef);\n    primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.combinedRefs(focusInputRef, props.focusInputRef);\n  }, [inputRef, props.inputRef, focusInputRef, props.focusInputRef]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMountEffect)(function () {\n    if (props.autoFocus) {\n      primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.focus(focusInputRef.current, props.autoFocus);\n    }\n    alignOverlay();\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUpdateEffect)(function () {\n    if (overlayVisibleState && (props.value || focusedOptionIndex >= 0)) {\n      scrollInView();\n    }\n  }, [overlayVisibleState, props.value, focusedOptionIndex]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUpdateEffect)(function () {\n    if (overlayVisibleState && filterState && props.filter) {\n      alignOverlay();\n    }\n  }, [overlayVisibleState, filterState, props.filter]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUpdateEffect)(function () {\n    virtualScrollerRef.current && virtualScrollerRef.current.scrollInView(0);\n  }, [filterState]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUpdateEffect)(function () {\n    updateInputField();\n    if (inputRef.current) {\n      inputRef.current.selectedIndex = 1;\n    }\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUnmountEffect)(function () {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ZIndexUtils.clear(overlayRef.current);\n  });\n  var createHiddenSelect = function createHiddenSelect() {\n    var option = {\n      value: '',\n      label: props.placeholder\n    };\n    if (selectedOption) {\n      var optionValue = getOptionValue(selectedOption);\n      option = {\n        value: _typeof(optionValue) === 'object' ? props.options.findIndex(function (o) {\n          return o === optionValue;\n        }) : optionValue,\n        label: getOptionLabel(selectedOption)\n      };\n    }\n    var hiddenSelectedMessageProps = mergeProps({\n      className: 'p-hidden-accessible p-dropdown-hidden-select'\n    }, ptm('hiddenSelectedMessage'));\n    var selectProps = mergeProps({\n      ref: inputRef,\n      required: props.required,\n      defaultValue: option.value,\n      name: props.name,\n      tabIndex: -1\n    }, ptm('select'));\n    var optionProps = mergeProps({\n      value: option.value\n    }, ptm('option'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", hiddenSelectedMessageProps, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"select\", selectProps, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"option\", optionProps, option.label)));\n  };\n  var createKeyboardHelper = function createKeyboardHelper() {\n    var value = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.isNotEmpty(selectedOption) ? getOptionLabel(selectedOption) : null;\n    if (props.editable) {\n      value = value || props.value || '';\n    }\n    var hiddenSelectedMessageProps = mergeProps({\n      className: 'p-hidden-accessible'\n    }, ptm('hiddenSelectedMessage'));\n    var inputProps = mergeProps(_objectSpread({\n      ref: focusInputRef,\n      id: props.inputId,\n      defaultValue: value,\n      type: 'text',\n      readOnly: true,\n      'aria-haspopup': 'listbox',\n      onFocus: onInputFocus,\n      onBlur: onInputBlur,\n      onKeyDown: onInputKeyDown,\n      disabled: props.disabled,\n      tabIndex: !props.disabled ? props.tabIndex || 0 : -1\n    }, ariaProps), ptm('input'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", hiddenSelectedMessageProps, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"input\", inputProps));\n  };\n  var createLabel = function createLabel() {\n    var label = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.isNotEmpty(selectedOption) ? getOptionLabel(selectedOption) : null;\n    if (props.editable) {\n      var value = label || props.value || '';\n      var _inputProps = mergeProps(_objectSpread({\n        ref: inputRef,\n        type: 'text',\n        defaultValue: value,\n        className: cx('input', {\n          label: label\n        }),\n        disabled: props.disabled,\n        placeholder: props.placeholder,\n        maxLength: props.maxLength,\n        onInput: onEditableInputChange,\n        onFocus: onEditableInputFocus,\n        onKeyDown: onInputKeyDown,\n        onBlur: onInputBlur,\n        tabIndex: !props.disabled ? props.tabIndex || 0 : -1,\n        'aria-haspopup': 'listbox'\n      }, ariaProps), ptm('input'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"input\", _inputProps);\n    }\n    var content = props.valueTemplate ? primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.getJSXElement(props.valueTemplate, selectedOption, props) : label || props.placeholder || props.emptyMessage || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, \"\\xA0\");\n    var inputProps = mergeProps({\n      ref: inputRef,\n      className: cx('input', {\n        label: label\n      }),\n      tabIndex: '-1'\n    }, ptm('input'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", inputProps, content);\n  };\n  var onClearIconKeyDown = function onClearIconKeyDown(event) {\n    if (event.key === 'Enter' || event.code === 'Space') {\n      clear(event);\n      event.preventDefault();\n    }\n  };\n  var createClearIcon = function createClearIcon() {\n    if (props.value != null && props.showClear && !props.disabled && !primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.isEmpty(props.options)) {\n      var clearIconProps = mergeProps({\n        className: cx('clearIcon'),\n        onPointerUp: clear,\n        tabIndex: props.editable ? -1 : props.tabIndex || '0',\n        onKeyDown: onClearIconKeyDown,\n        'aria-label': (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.localeOption)('clear')\n      }, ptm('clearIcon'));\n      var icon = props.clearIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_times__WEBPACK_IMPORTED_MODULE_7__.TimesIcon, clearIconProps);\n      return primereact_utils__WEBPACK_IMPORTED_MODULE_10__.IconUtils.getJSXIcon(icon, _objectSpread({}, clearIconProps), {\n        props: props\n      });\n    }\n    return null;\n  };\n  var createLoadingIcon = function createLoadingIcon() {\n    var loadingIconProps = mergeProps({\n      className: cx('loadingIcon'),\n      'data-pr-overlay-visible': overlayVisibleState\n    }, ptm('loadingIcon'));\n    var icon = props.loadingIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_spinner__WEBPACK_IMPORTED_MODULE_6__.SpinnerIcon, {\n      spin: true\n    });\n    var loadingIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.IconUtils.getJSXIcon(icon, _objectSpread({}, loadingIconProps), {\n      props: props\n    });\n    var ariaLabel = props.placeholder || props.ariaLabel;\n    var loadingButtonProps = mergeProps({\n      className: cx('trigger'),\n      role: 'button',\n      'aria-haspopup': 'listbox',\n      'aria-expanded': overlayVisibleState,\n      'aria-label': ariaLabel\n    }, ptm('trigger'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", loadingButtonProps, loadingIcon);\n  };\n  var createDropdownIcon = function createDropdownIcon() {\n    var dropdownIconProps = mergeProps({\n      className: cx('dropdownIcon'),\n      'data-pr-overlay-visible': overlayVisibleState\n    }, ptm('dropdownIcon'));\n    var icon = !overlayVisibleState ? props.dropdownIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_chevrondown__WEBPACK_IMPORTED_MODULE_4__.ChevronDownIcon, dropdownIconProps) : props.collapseIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_chevronup__WEBPACK_IMPORTED_MODULE_5__.ChevronUpIcon, dropdownIconProps);\n    var dropdownIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.IconUtils.getJSXIcon(icon, _objectSpread({}, dropdownIconProps), {\n      props: props\n    });\n    var ariaLabel = props.placeholder || props.ariaLabel;\n    var triggerProps = mergeProps({\n      className: cx('trigger'),\n      role: 'button',\n      'aria-haspopup': 'listbox',\n      'aria-expanded': overlayVisibleState,\n      'aria-label': ariaLabel\n    }, ptm('trigger'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", triggerProps, dropdownIcon);\n  };\n  var visibleOptions = getVisibleOptions();\n  var selectedOption = getSelectedOption();\n  var hasTooltip = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.isNotEmpty(props.tooltip);\n  var otherProps = DropdownBase.getOtherProps(props);\n  var ariaProps = primereact_utils__WEBPACK_IMPORTED_MODULE_10__.ObjectUtils.reduceKeys(otherProps, primereact_utils__WEBPACK_IMPORTED_MODULE_10__.DomHandler.ARIA_PROPS);\n  var hiddenSelect = createHiddenSelect();\n  var keyboardHelper = createKeyboardHelper();\n  var labelElement = createLabel();\n  var dropdownIcon = props.loading ? createLoadingIcon() : createDropdownIcon();\n  var clearIcon = createClearIcon();\n  var rootProps = mergeProps({\n    id: props.id,\n    ref: elementRef,\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_10__.classNames)(props.className, cx('root', {\n      context: context,\n      focusedState: focusedState,\n      overlayVisibleState: overlayVisibleState\n    })),\n    style: props.style,\n    onClick: function onClick(e) {\n      return _onClick(e);\n    },\n    onMouseDown: props.onMouseDown,\n    onContextMenu: props.onContextMenu,\n    onFocus: onFocus,\n    'data-p-disabled': props.disabled,\n    'data-p-focus': focusedState,\n    'aria-activedescendant': focusedState ? \"dropdownItem_\".concat(focusedOptionIndex) : undefined\n  }, otherProps, ptm('root'));\n  var firstHiddenFocusableElementProps = mergeProps({\n    ref: firstHiddenFocusableElementOnOverlay,\n    role: 'presentation',\n    className: 'p-hidden-accessible p-hidden-focusable',\n    tabIndex: '0',\n    onFocus: onFirstHiddenFocus,\n    'data-p-hidden-accessible': true,\n    'data-p-hidden-focusable': true\n  }, ptm('hiddenFirstFocusableEl'));\n  var lastHiddenFocusableElementProps = mergeProps({\n    ref: lastHiddenFocusableElementOnOverlay,\n    role: 'presentation',\n    className: 'p-hidden-accessible p-hidden-focusable',\n    tabIndex: '0',\n    onFocus: onLastHiddenFocus,\n    'data-p-hidden-accessible': true,\n    'data-p-hidden-focusable': true\n  }, ptm('hiddenLastFocusableEl'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", rootProps, keyboardHelper, hiddenSelect, labelElement, clearIcon, dropdownIcon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(DropdownPanel, _extends({\n    hostName: \"Dropdown\",\n    ref: overlayRef,\n    visibleOptions: visibleOptions,\n    virtualScrollerRef: virtualScrollerRef\n  }, props, {\n    appendTo: appendTo,\n    cx: cx,\n    filterValue: filterValue,\n    focusedOptionIndex: focusedOptionIndex,\n    getOptionGroupChildren: getOptionGroupChildren,\n    getOptionGroupLabel: getOptionGroupLabel,\n    getOptionGroupRenderKey: getOptionGroupRenderKey,\n    getOptionLabel: getOptionLabel,\n    getOptionRenderKey: getOptionRenderKey,\n    getSelectedOptionIndex: getSelectedOptionIndex,\n    hasFilter: hasFilter,\n    \"in\": overlayVisibleState,\n    isOptionDisabled: isOptionDisabled,\n    isSelected: isSelected,\n    onOverlayHide: hide,\n    onClick: onPanelClick,\n    onEnter: onOverlayEnter,\n    onEntered: onOverlayEntered,\n    onExit: onOverlayExit,\n    onExited: onOverlayExited,\n    onFilterClearIconClick: onFilterClearIconClick,\n    onFilterInputChange: onFilterInputChange,\n    onFilterInputKeyDown: onFilterInputKeyDown,\n    onOptionClick: onOptionClick,\n    onInputKeyDown: onInputKeyDown,\n    ptm: ptm,\n    resetFilter: resetFilter,\n    changeFocusedOptionIndex: changeFocusedOptionIndex,\n    firstFocusableElement: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", firstHiddenFocusableElementProps),\n    lastFocusableElement: /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", lastHiddenFocusableElementProps),\n    sx: sx\n  }))), hasTooltip && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_tooltip__WEBPACK_IMPORTED_MODULE_9__.Tooltip, _extends({\n    target: elementRef,\n    content: props.tooltip,\n    pt: ptm('tooltip')\n  }, props.tooltipOptions)));\n}));\nDropdown.displayName = 'Dropdown';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/dropdown/dropdown.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/hooks/hooks.esm.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/primereact/hooks/hooks.esm.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ESC_KEY_HANDLING_PRIORITIES: () => (/* binding */ ESC_KEY_HANDLING_PRIORITIES),\n/* harmony export */   useClickOutside: () => (/* binding */ useClickOutside),\n/* harmony export */   useCounter: () => (/* binding */ useCounter),\n/* harmony export */   useDebounce: () => (/* binding */ useDebounce),\n/* harmony export */   useDisplayOrder: () => (/* binding */ useDisplayOrder),\n/* harmony export */   useEventListener: () => (/* binding */ useEventListener),\n/* harmony export */   useFavicon: () => (/* binding */ useFavicon),\n/* harmony export */   useGlobalOnEscapeKey: () => (/* binding */ useGlobalOnEscapeKey),\n/* harmony export */   useIntersectionObserver: () => (/* binding */ useIntersectionObserver),\n/* harmony export */   useInterval: () => (/* binding */ useInterval),\n/* harmony export */   useLocalStorage: () => (/* binding */ useLocalStorage),\n/* harmony export */   useMatchMedia: () => (/* binding */ useMatchMedia),\n/* harmony export */   useMergeProps: () => (/* binding */ useMergeProps),\n/* harmony export */   useMountEffect: () => (/* binding */ useMountEffect),\n/* harmony export */   useMouse: () => (/* binding */ useMouse),\n/* harmony export */   useMove: () => (/* binding */ useMove),\n/* harmony export */   useOverlayListener: () => (/* binding */ useOverlayListener),\n/* harmony export */   useOverlayScrollListener: () => (/* binding */ useOverlayScrollListener),\n/* harmony export */   usePrevious: () => (/* binding */ usePrevious),\n/* harmony export */   useResizeListener: () => (/* binding */ useResizeListener),\n/* harmony export */   useSessionStorage: () => (/* binding */ useSessionStorage),\n/* harmony export */   useStorage: () => (/* binding */ useStorage),\n/* harmony export */   useStyle: () => (/* binding */ useStyle),\n/* harmony export */   useTimeout: () => (/* binding */ useTimeout),\n/* harmony export */   useUnmountEffect: () => (/* binding */ useUnmountEffect),\n/* harmony export */   useUpdateEffect: () => (/* binding */ useUpdateEffect)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n'use client';\n\n\n\n\n\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nvar usePrevious = function usePrevious(newValue) {\n  var ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    ref.current = newValue;\n    return function () {\n      ref.current = null;\n    };\n  }, [newValue]);\n  return ref.current;\n};\n\n/* eslint-disable */\nvar useUnmountEffect = function useUnmountEffect(fn) {\n  return react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    return fn;\n  }, []);\n};\n/* eslint-enable */\n\nvar useEventListener = function useEventListener(_ref) {\n  var _ref$target = _ref.target,\n    target = _ref$target === void 0 ? 'document' : _ref$target,\n    type = _ref.type,\n    listener = _ref.listener,\n    options = _ref.options,\n    _ref$when = _ref.when,\n    when = _ref$when === void 0 ? true : _ref$when;\n  var targetRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var listenerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var prevListener = usePrevious(listener);\n  var prevOptions = usePrevious(options);\n  var bind = function bind() {\n    var bindOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var bindTarget = bindOptions.target;\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_1__.ObjectUtils.isNotEmpty(bindTarget)) {\n      unbind();\n      (bindOptions.when || when) && (targetRef.current = primereact_utils__WEBPACK_IMPORTED_MODULE_1__.DomHandler.getTargetElement(bindTarget));\n    }\n    if (!listenerRef.current && targetRef.current) {\n      listenerRef.current = function (event) {\n        return listener && listener(event);\n      };\n      targetRef.current.addEventListener(type, listenerRef.current, options);\n    }\n  };\n  var unbind = function unbind() {\n    if (listenerRef.current) {\n      targetRef.current.removeEventListener(type, listenerRef.current, options);\n      listenerRef.current = null;\n    }\n  };\n  var dispose = function dispose() {\n    unbind();\n    // Prevent memory leak by releasing\n    prevListener = null;\n    prevOptions = null;\n  };\n  var updateTarget = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () {\n    if (when) {\n      targetRef.current = primereact_utils__WEBPACK_IMPORTED_MODULE_1__.DomHandler.getTargetElement(target);\n    } else {\n      unbind();\n      targetRef.current = null;\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [target, when]);\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    updateTarget();\n  }, [updateTarget]);\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    var listenerChanged = \"\".concat(prevListener) !== \"\".concat(listener);\n    var optionsChanged = prevOptions !== options;\n    var listenerExists = listenerRef.current;\n    if (listenerExists && (listenerChanged || optionsChanged)) {\n      unbind();\n      when && bind();\n    } else if (!listenerExists) {\n      dispose();\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [listener, options, when]);\n  useUnmountEffect(function () {\n    dispose();\n  });\n  return [bind, unbind];\n};\nvar useClickOutside = function useClickOutside(ref, callback) {\n  var isOutsideClicked = function isOutsideClicked(event) {\n    if (!ref.current || ref.current.contains(event.target)) {\n      return;\n    }\n    callback(event);\n  };\n  var _useEventListener = useEventListener({\n      type: 'mousedown',\n      listener: isOutsideClicked\n    }),\n    _useEventListener2 = _slicedToArray(_useEventListener, 2),\n    bindMouseDownListener = _useEventListener2[0],\n    unbindMouseDownListener = _useEventListener2[1];\n  var _useEventListener3 = useEventListener({\n      type: 'touchstart',\n      listener: isOutsideClicked\n    }),\n    _useEventListener4 = _slicedToArray(_useEventListener3, 2),\n    bindTouchStartListener = _useEventListener4[0],\n    unbindTouchStartListener = _useEventListener4[1];\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (!ref.current) {\n      return;\n    }\n    bindMouseDownListener();\n    bindTouchStartListener();\n    return function () {\n      unbindMouseDownListener();\n      unbindTouchStartListener();\n    };\n  });\n  return [ref, callback];\n};\nvar useCounter = function useCounter() {\n  var initialValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n    step: 1\n  };\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(initialValue),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    count = _React$useState2[0],\n    setCount = _React$useState2[1];\n  var increment = function increment() {\n    if (options.max && count >= options.max) {\n      return;\n    }\n    setCount(count + options.step);\n  };\n  var decrement = function decrement() {\n    if (options.min || options.min === 0 && count <= options.min) {\n      return null;\n    }\n    setCount(count - options.step);\n  };\n  var reset = function reset() {\n    setCount(0);\n  };\n  return {\n    count: count,\n    increment: increment,\n    decrement: decrement,\n    reset: reset\n  };\n};\nvar useDebounce = function useDebounce(initialValue, delay) {\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(initialValue),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    inputValue = _React$useState2[0],\n    setInputValue = _React$useState2[1];\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__.useState(initialValue),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    debouncedValue = _React$useState4[0],\n    setDebouncedValue = _React$useState4[1];\n  var mountedRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var timeoutRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var cancelTimer = function cancelTimer() {\n    return window.clearTimeout(timeoutRef.current);\n  };\n  useMountEffect(function () {\n    mountedRef.current = true;\n  });\n  useUnmountEffect(function () {\n    cancelTimer();\n  });\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (!mountedRef.current) {\n      return;\n    }\n    cancelTimer();\n    timeoutRef.current = window.setTimeout(function () {\n      setDebouncedValue(inputValue);\n    }, delay);\n  }, [inputValue, delay]);\n  return [inputValue, debouncedValue, setInputValue];\n};\nvar groupToDisplayedElements = {};\nvar useDisplayOrder = function useDisplayOrder(group) {\n  var isVisible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(function () {\n      return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_1__.UniqueComponentId)();\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 1),\n    uid = _React$useState2[0];\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__.useState(0),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    displayOrder = _React$useState4[0],\n    setDisplayOrder = _React$useState4[1];\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (isVisible) {\n      if (!groupToDisplayedElements[group]) {\n        groupToDisplayedElements[group] = [];\n      }\n      var newDisplayOrder = groupToDisplayedElements[group].push(uid);\n      setDisplayOrder(newDisplayOrder);\n      return function () {\n        delete groupToDisplayedElements[group][newDisplayOrder - 1];\n\n        // Reduce array length, by removing undefined elements at the end of array:\n        var lastIndex = groupToDisplayedElements[group].length - 1;\n        var lastOrder = primereact_utils__WEBPACK_IMPORTED_MODULE_1__.ObjectUtils.findLastIndex(groupToDisplayedElements[group], function (el) {\n          return el !== undefined;\n        });\n        if (lastOrder !== lastIndex) {\n          groupToDisplayedElements[group].splice(lastOrder + 1);\n        }\n        setDisplayOrder(undefined);\n      };\n    }\n  }, [group, uid, isVisible]);\n  return displayOrder;\n};\nvar TYPE_MAP = {\n  ico: 'image/x-icon',\n  png: 'image/png',\n  svg: 'image/svg+xml',\n  gif: 'image/gif'\n};\nvar useFavicon = function useFavicon() {\n  var newIcon = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  var rel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'shortcut icon';\n  react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect(function () {\n    if (newIcon) {\n      var linkElements = document.querySelectorAll(\"link[rel*='icon']\");\n      linkElements.forEach(function (linkEl) {\n        document.head.removeChild(linkEl);\n      });\n      var link = document.createElement('link');\n      link.setAttribute('type', TYPE_MAP[newIcon.split('.').pop()]);\n      link.setAttribute('rel', rel);\n      link.setAttribute('href', newIcon);\n      document.head.appendChild(link);\n    }\n  }, [newIcon, rel]);\n};\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toConsumableArray(r) {\n  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\n\n/**\n * Priorities of different components (bigger number handled first)\n */\nvar ESC_KEY_HANDLING_PRIORITIES = {\n  SIDEBAR: 100,\n  SLIDE_MENU: 200,\n  DIALOG: 300,\n  IMAGE: 400,\n  MENU: 500,\n  OVERLAY_PANEL: 600,\n  PASSWORD: 700,\n  CASCADE_SELECT: 800,\n  SPLIT_BUTTON: 900,\n  SPEED_DIAL: 1000,\n  TOOLTIP: 1200\n};\n\n/**\n * Object, that manages global escape key handling logic\n */\nvar globalEscKeyHandlingLogic = {\n  /**\n   * Mapping from ESC_KEY_HANDLING_PRIORITY to array of related listeners, grouped by priority\n   * @example\n   * Map<{\n   *     [ESC_KEY_HANDLING_PRIORITIES.SIDEBAR]: Map<{\n   *         1: () => {...},\n   *         2: () => {...}\n   *     }>,\n   *     [ESC_KEY_HANDLING_PRIORITIES.DIALOG]: Map<{\n   *         1: () => {...},\n   *         2: () => {...}\n   *     }>\n   * }>;\n   */\n  escKeyListeners: new Map(),\n  /**\n   * Keydown handler (attached to any keydown)\n   */\n  onGlobalKeyDown: function onGlobalKeyDown(event) {\n    // Do nothing if not an \"esc\" key is pressed:\n    if (event.code !== 'Escape') {\n      return;\n    }\n    var escKeyListeners = globalEscKeyHandlingLogic.escKeyListeners;\n    var maxPrimaryPriority = Math.max.apply(Math, _toConsumableArray(escKeyListeners.keys()));\n    var theMostImportantEscHandlersSet = escKeyListeners.get(maxPrimaryPriority);\n    var maxSecondaryPriority = Math.max.apply(Math, _toConsumableArray(theMostImportantEscHandlersSet.keys()));\n    var theMostImportantEscHandler = theMostImportantEscHandlersSet.get(maxSecondaryPriority);\n    theMostImportantEscHandler(event);\n  },\n  /**\n   * Attach global keydown listener if there are any \"esc\" key handlers assigned,\n   * otherwise detach.\n   */\n  refreshGlobalKeyDownListener: function refreshGlobalKeyDownListener() {\n    var document = primereact_utils__WEBPACK_IMPORTED_MODULE_1__.DomHandler.getTargetElement('document');\n    if (this.escKeyListeners.size > 0) {\n      document.addEventListener('keydown', this.onGlobalKeyDown);\n    } else {\n      document.removeEventListener('keydown', this.onGlobalKeyDown);\n    }\n  },\n  /**\n   * Add \"Esc\" key handler\n   */\n  addListener: function addListener(callback, _ref) {\n    var _this = this;\n    var _ref2 = _slicedToArray(_ref, 2),\n      primaryPriority = _ref2[0],\n      secondaryPriority = _ref2[1];\n    var escKeyListeners = this.escKeyListeners;\n    if (!escKeyListeners.has(primaryPriority)) {\n      escKeyListeners.set(primaryPriority, new Map());\n    }\n    var primaryPriorityListeners = escKeyListeners.get(primaryPriority);\n\n    // To prevent unexpected override of callback:\n    if (primaryPriorityListeners.has(secondaryPriority)) {\n      throw new Error(\"Unexpected: global esc key listener with priority [\".concat(primaryPriority, \", \").concat(secondaryPriority, \"] already exists.\"));\n    }\n    primaryPriorityListeners.set(secondaryPriority, callback);\n    this.refreshGlobalKeyDownListener();\n    return function () {\n      primaryPriorityListeners[\"delete\"](secondaryPriority);\n      if (primaryPriorityListeners.size === 0) {\n        escKeyListeners[\"delete\"](primaryPriority);\n      }\n      _this.refreshGlobalKeyDownListener();\n    };\n  }\n};\nvar useGlobalOnEscapeKey = function useGlobalOnEscapeKey(_ref3) {\n  var callback = _ref3.callback,\n    when = _ref3.when,\n    priority = _ref3.priority;\n  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n    if (!when) {\n      return;\n    }\n    return globalEscKeyHandlingLogic.addListener(callback, priority);\n  }, [callback, when, priority]);\n};\nvar useIntersectionObserver = function useIntersectionObserver(ref) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    isElementVisible = _React$useState2[0],\n    setIsElementVisible = _React$useState2[1];\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (!ref.current) {\n      return;\n    }\n    var observer = new IntersectionObserver(function (_ref) {\n      var _ref2 = _slicedToArray(_ref, 1),\n        entry = _ref2[0];\n      setIsElementVisible(entry.isIntersecting);\n    }, options);\n    observer.observe(ref.current);\n    return function () {\n      observer.disconnect();\n    };\n  }, [options, ref]);\n  return isElementVisible;\n};\n\n/* eslint-disable */\nvar useInterval = function useInterval(fn) {\n  var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var when = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n  var timeout = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var savedCallback = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var clear = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () {\n    return clearInterval(timeout.current);\n  }, [timeout.current]);\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    savedCallback.current = fn;\n  });\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    function callback() {\n      savedCallback.current();\n    }\n    if (when) {\n      timeout.current = setInterval(callback, delay);\n      return clear;\n    } else {\n      clear();\n    }\n  }, [delay, when]);\n  useUnmountEffect(function () {\n    clear();\n  });\n  return [clear];\n};\n/* eslint-enable */\n\nvar useMatchMedia = function useMatchMedia(query) {\n  var when = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    matches = _React$useState2[0],\n    setMatches = _React$useState2[1];\n  var matchMedia = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var handleChange = function handleChange(e) {\n    return setMatches(e.matches);\n  };\n  var bind = function bind() {\n    return matchMedia.current && matchMedia.current.addEventListener('change', handleChange);\n  };\n  var unbind = function unbind() {\n    return matchMedia.current && matchMedia.current.removeEventListener('change', handleChange) && (matchMedia.current = null);\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (when) {\n      matchMedia.current = window.matchMedia(query);\n      setMatches(matchMedia.current.matches);\n      bind();\n    }\n    return unbind;\n  }, [query, when]);\n  return matches;\n};\n/* eslint-enable */\n\n/**\n * Hook to merge properties including custom merge function for things like Tailwind merge.\n */\nvar useMergeProps = function useMergeProps() {\n  var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(primereact_api__WEBPACK_IMPORTED_MODULE_2__.PrimeReactContext);\n  return function () {\n    for (var _len = arguments.length, props = new Array(_len), _key = 0; _key < _len; _key++) {\n      props[_key] = arguments[_key];\n    }\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_1__.mergeProps)(props, context === null || context === void 0 ? void 0 : context.ptOptions);\n  };\n};\n\n/* eslint-disable */\n\n/**\n * Custom hook to run a mount effect only once.\n * @param {*} fn the callback function\n * @returns the hook\n */\nvar useMountEffect = function useMountEffect(fn) {\n  var mounted = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  return react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (!mounted.current) {\n      mounted.current = true;\n      return fn && fn();\n    }\n  }, []);\n};\n/* eslint-enable */\n\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nfunction ownKeys$1(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$1(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar useMouse = function useMouse() {\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState({\n      x: 0,\n      y: 0\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    position = _React$useState2[0],\n    setPosition = _React$useState2[1];\n  var ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var handleMouseMove = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function (event) {\n    var x;\n    var y;\n    if (ref.current) {\n      var rect = event.currentTarget.getBoundingClientRect();\n      x = event.pageX - rect.left - (window.pageXOffset || window.scrollX);\n      y = event.pageY - rect.top - (window.pageYOffset || window.scrollY);\n    } else {\n      x = event.clientX;\n      y = event.clientY;\n    }\n    setPosition({\n      x: Math.max(0, Math.round(x)),\n      y: Math.max(0, Math.round(y))\n    });\n  }, []);\n  var _useEventListener = useEventListener({\n      target: ref,\n      type: 'mousemove',\n      listener: handleMouseMove\n    }),\n    _useEventListener2 = _slicedToArray(_useEventListener, 2),\n    bindMouseMoveEventListener = _useEventListener2[0],\n    unbindMouseMoveEventListener = _useEventListener2[1];\n  var _useEventListener3 = useEventListener({\n      type: 'mousemove',\n      listener: handleMouseMove\n    }),\n    _useEventListener4 = _slicedToArray(_useEventListener3, 2),\n    bindDocumentMoveEventListener = _useEventListener4[0],\n    unbindDocumentMoveEventListener = _useEventListener4[1];\n  var reset = function reset() {\n    return setPosition({\n      x: 0,\n      y: 0\n    });\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    bindMouseMoveEventListener();\n    if (!ref.current) {\n      bindDocumentMoveEventListener();\n    }\n    return function () {\n      unbindMouseMoveEventListener();\n\n      // eslint-disable-next-line react-hooks/exhaustive-deps\n      if (!ref.current) {\n        unbindDocumentMoveEventListener();\n      }\n    };\n  }, [bindDocumentMoveEventListener, bindMouseMoveEventListener, unbindDocumentMoveEventListener, unbindMouseMoveEventListener]);\n  return _objectSpread$1(_objectSpread$1({\n    ref: ref\n  }, position), {}, {\n    reset: reset\n  });\n};\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nfunction useMove(_ref) {\n  var _ref$mode = _ref.mode,\n    mode = _ref$mode === void 0 ? 'both' : _ref$mode,\n    _ref$initialValue = _ref.initialValue,\n    initialValue = _ref$initialValue === void 0 ? {\n      x: 0,\n      y: 0\n    } : _ref$initialValue;\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(initialValue),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    positions = _React$useState2[0],\n    setPositions = _React$useState2[1];\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    active = _React$useState4[0],\n    setActive = _React$useState4[1];\n  var isMounted = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var isSliding = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var onMouseMove = function onMouseMove(event) {\n    return updateMousePosition({\n      x: event.clientX,\n      y: event.clientY\n    });\n  };\n  var handlePositionChange = function handlePositionChange(_ref2) {\n    var clampedX = _ref2.clampedX,\n      clampedY = _ref2.clampedY;\n    if (mode === 'vertical') {\n      setPositions({\n        y: 1 - clampedY\n      });\n    } else if (mode === 'horizontal') {\n      setPositions({\n        x: clampedX\n      });\n    } else if (mode === 'both') {\n      setPositions({\n        x: clampedX,\n        y: clampedY\n      });\n    }\n  };\n  var onMouseDown = function onMouseDown(event) {\n    startScrubbing();\n    event.preventDefault();\n    onMouseMove(event);\n  };\n  var stopScrubbing = function stopScrubbing() {\n    if (isSliding.current && isMounted.current) {\n      isSliding.current = false;\n      setActive(false);\n      unbindListeners();\n    }\n  };\n  var onTouchMove = function onTouchMove(event) {\n    if (event.cancelable) {\n      event.preventDefault();\n    }\n    updateMousePosition({\n      x: event.changedTouches[0].clientX,\n      y: event.changedTouches[0].clientY\n    });\n  };\n  var onTouchStart = function onTouchStart(event) {\n    if (event.cancelable) {\n      event.preventDefault();\n    }\n    startScrubbing();\n    onTouchMove(event);\n  };\n  var _useEventListener = useEventListener({\n      type: 'mousemove',\n      listener: onMouseMove\n    }),\n    _useEventListener2 = _slicedToArray(_useEventListener, 2),\n    bindDocumentMouseMoveListener = _useEventListener2[0],\n    unbindDocumentMouseMoveListener = _useEventListener2[1];\n  var _useEventListener3 = useEventListener({\n      type: 'mouseup',\n      listener: stopScrubbing\n    }),\n    _useEventListener4 = _slicedToArray(_useEventListener3, 2),\n    bindDocumentMouseUpListener = _useEventListener4[0],\n    unbindDocumentMouseUpListener = _useEventListener4[1];\n  var _useEventListener5 = useEventListener({\n      type: 'touchmove',\n      listener: onTouchMove\n    }),\n    _useEventListener6 = _slicedToArray(_useEventListener5, 2),\n    bindDocumentTouchMoveListener = _useEventListener6[0],\n    unbindDocumentTouchMoveListener = _useEventListener6[1];\n  var _useEventListener7 = useEventListener({\n      type: 'touchend',\n      listener: stopScrubbing\n    }),\n    _useEventListener8 = _slicedToArray(_useEventListener7, 2),\n    bindDocumentTouchEndListener = _useEventListener8[0],\n    unbindDocumentTouchEndListener = _useEventListener8[1];\n  var _useEventListener9 = useEventListener({\n      target: ref,\n      type: 'mousedown',\n      listener: onMouseDown\n    }),\n    _useEventListener10 = _slicedToArray(_useEventListener9, 2),\n    bindMouseDownListener = _useEventListener10[0],\n    unbindMouseDownListener = _useEventListener10[1];\n  var _useEventListener11 = useEventListener({\n      target: ref,\n      type: 'touchstart',\n      listener: onTouchStart,\n      options: {\n        passive: false\n      }\n    }),\n    _useEventListener12 = _slicedToArray(_useEventListener11, 2),\n    bindTouchStartListener = _useEventListener12[0],\n    unbindTouchStartListener = _useEventListener12[1];\n  var clamp = function clamp(value, min, max) {\n    return Math.min(Math.max(value, min), max);\n  };\n  var clampPositions = function clampPositions(_ref3) {\n    var x = _ref3.x,\n      y = _ref3.y;\n    return {\n      clampedX: clamp(x, 0, 1),\n      clampedY: clamp(y, 0, 1)\n    };\n  };\n  var bindListeners = function bindListeners() {\n    bindDocumentMouseMoveListener();\n    bindDocumentMouseUpListener();\n    bindDocumentTouchMoveListener();\n    bindDocumentTouchEndListener();\n  };\n  var unbindListeners = function unbindListeners() {\n    unbindDocumentMouseMoveListener();\n    unbindDocumentMouseUpListener();\n    unbindDocumentTouchMoveListener();\n    unbindDocumentTouchEndListener();\n  };\n  var reset = function reset() {\n    setPositions(initialValue);\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    isMounted.current = true;\n  }, []);\n  var startScrubbing = function startScrubbing() {\n    if (!isSliding.current && isMounted.current) {\n      isSliding.current = true;\n      setActive(true);\n      bindListeners();\n    }\n  };\n  var updateMousePosition = function updateMousePosition(_ref4) {\n    var x = _ref4.x,\n      y = _ref4.y;\n    if (isSliding.current) {\n      var rect = ref.current.getBoundingClientRect();\n      var _clampPositions = clampPositions({\n          x: (x - rect.left) / rect.width,\n          y: (y - rect.top) / rect.height\n        }),\n        clampedX = _clampPositions.clampedX,\n        clampedY = _clampPositions.clampedY;\n      handlePositionChange({\n        clampedX: clampedX,\n        clampedY: clampedY\n      });\n    }\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (ref.current) {\n      bindMouseDownListener();\n      bindTouchStartListener();\n    }\n    return function () {\n      if (ref.current) {\n        unbindMouseDownListener();\n        unbindTouchStartListener();\n      }\n    };\n  }, [bindMouseDownListener, bindTouchStartListener, positions, unbindMouseDownListener, unbindTouchStartListener]);\n  return _objectSpread(_objectSpread({\n    ref: ref\n  }, positions), {}, {\n    active: active,\n    reset: reset\n  });\n}\nvar useOverlayScrollListener = function useOverlayScrollListener(_ref) {\n  var target = _ref.target,\n    listener = _ref.listener,\n    options = _ref.options,\n    _ref$when = _ref.when,\n    when = _ref$when === void 0 ? true : _ref$when;\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_2__.PrimeReactContext);\n  var targetRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var listenerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var scrollableParentsRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef([]);\n  var prevListener = usePrevious(listener);\n  var prevOptions = usePrevious(options);\n  var bind = function bind() {\n    var bindOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_1__.ObjectUtils.isNotEmpty(bindOptions.target)) {\n      unbind();\n      (bindOptions.when || when) && (targetRef.current = primereact_utils__WEBPACK_IMPORTED_MODULE_1__.DomHandler.getTargetElement(bindOptions.target));\n    }\n    if (!listenerRef.current && targetRef.current) {\n      var hideOnScroll = context ? context.hideOverlaysOnDocumentScrolling : primereact_api__WEBPACK_IMPORTED_MODULE_2__[\"default\"].hideOverlaysOnDocumentScrolling;\n      var nodes = scrollableParentsRef.current = primereact_utils__WEBPACK_IMPORTED_MODULE_1__.DomHandler.getScrollableParents(targetRef.current);\n\n      // Ensure window/body is always included as fallback\n      if (!nodes.some(function (node) {\n        return node === document.body || node === window;\n      })) {\n        nodes.push(hideOnScroll ? window : document.body);\n      }\n      listenerRef.current = function (event) {\n        return listener && listener(event);\n      };\n      nodes.forEach(function (node) {\n        return node.addEventListener('scroll', listenerRef.current, options);\n      });\n    }\n  };\n  var unbind = function unbind() {\n    if (listenerRef.current) {\n      var nodes = scrollableParentsRef.current;\n      nodes.forEach(function (node) {\n        return node.removeEventListener('scroll', listenerRef.current, options);\n      });\n      listenerRef.current = null;\n    }\n  };\n  var dispose = function dispose() {\n    unbind();\n    // #5927 prevent memory leak by releasing\n    scrollableParentsRef.current = null;\n    prevListener = null;\n    prevOptions = null;\n  };\n  var updateTarget = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () {\n    if (when) {\n      targetRef.current = primereact_utils__WEBPACK_IMPORTED_MODULE_1__.DomHandler.getTargetElement(target);\n    } else {\n      unbind();\n      targetRef.current = null;\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [target, when]);\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    updateTarget();\n  }, [updateTarget]);\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    var listenerChanged = \"\".concat(prevListener) !== \"\".concat(listener);\n    var optionsChanged = prevOptions !== options;\n    var listenerExists = listenerRef.current;\n    if (listenerExists && (listenerChanged || optionsChanged)) {\n      unbind();\n      when && bind();\n    } else if (!listenerExists) {\n      dispose();\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [listener, options, when]);\n  useUnmountEffect(function () {\n    dispose();\n  });\n  return [bind, unbind];\n};\nvar useResizeListener = function useResizeListener(_ref) {\n  var listener = _ref.listener,\n    _ref$when = _ref.when,\n    when = _ref$when === void 0 ? true : _ref$when;\n  return useEventListener({\n    target: 'window',\n    type: 'resize',\n    listener: listener,\n    when: when\n  });\n};\nvar useOverlayListener = function useOverlayListener(_ref) {\n  var target = _ref.target,\n    overlay = _ref.overlay,\n    _listener = _ref.listener,\n    _ref$when = _ref.when,\n    when = _ref$when === void 0 ? true : _ref$when,\n    _ref$type = _ref.type,\n    type = _ref$type === void 0 ? 'click' : _ref$type;\n  var targetRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var overlayRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n\n  /**\n   * The parameters of the 'listener' method in the following event handlers;\n   * @param {Event} event A click event of the document.\n   * @param {string} options.type The custom type to detect event.\n   * @param {boolean} options.valid It is controlled by PrimeReact. It is determined whether it is valid or not according to some custom validation.\n   */\n  var _useEventListener = useEventListener({\n      target: 'window',\n      type: type,\n      listener: function listener(event) {\n        _listener && _listener(event, {\n          type: 'outside',\n          valid: event.which !== 3 && isOutsideClicked(event)\n        });\n      },\n      when: when\n    }),\n    _useEventListener2 = _slicedToArray(_useEventListener, 2),\n    bindDocumentClickListener = _useEventListener2[0],\n    unbindDocumentClickListener = _useEventListener2[1];\n  var _useResizeListener = useResizeListener({\n      listener: function listener(event) {\n        _listener && _listener(event, {\n          type: 'resize',\n          valid: !primereact_utils__WEBPACK_IMPORTED_MODULE_1__.DomHandler.isTouchDevice()\n        });\n      },\n      when: when\n    }),\n    _useResizeListener2 = _slicedToArray(_useResizeListener, 2),\n    bindWindowResizeListener = _useResizeListener2[0],\n    unbindWindowResizeListener = _useResizeListener2[1];\n  var _useEventListener3 = useEventListener({\n      target: 'window',\n      type: 'orientationchange',\n      listener: function listener(event) {\n        _listener && _listener(event, {\n          type: 'orientationchange',\n          valid: true\n        });\n      },\n      when: when\n    }),\n    _useEventListener4 = _slicedToArray(_useEventListener3, 2),\n    bindWindowOrientationChangeListener = _useEventListener4[0],\n    unbindWindowOrientationChangeListener = _useEventListener4[1];\n  var _useOverlayScrollList = useOverlayScrollListener({\n      target: target,\n      listener: function listener(event) {\n        _listener && _listener(event, {\n          type: 'scroll',\n          valid: true\n        });\n      },\n      when: when\n    }),\n    _useOverlayScrollList2 = _slicedToArray(_useOverlayScrollList, 2),\n    bindOverlayScrollListener = _useOverlayScrollList2[0],\n    unbindOverlayScrollListener = _useOverlayScrollList2[1];\n  var isOutsideClicked = function isOutsideClicked(event) {\n    return targetRef.current && !(targetRef.current.isSameNode(event.target) || targetRef.current.contains(event.target) || overlayRef.current && overlayRef.current.contains(event.target));\n  };\n  var bind = function bind() {\n    bindDocumentClickListener();\n    bindWindowResizeListener();\n    bindWindowOrientationChangeListener();\n    bindOverlayScrollListener();\n  };\n  var unbind = function unbind() {\n    unbindDocumentClickListener();\n    unbindWindowResizeListener();\n    unbindWindowOrientationChangeListener();\n    unbindOverlayScrollListener();\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (when) {\n      targetRef.current = primereact_utils__WEBPACK_IMPORTED_MODULE_1__.DomHandler.getTargetElement(target);\n      overlayRef.current = primereact_utils__WEBPACK_IMPORTED_MODULE_1__.DomHandler.getTargetElement(overlay);\n    } else {\n      unbind();\n      targetRef.current = overlayRef.current = null;\n    }\n  }, [target, overlay, when]);\n  useUnmountEffect(function () {\n    unbind();\n  });\n  return [bind, unbind];\n};\n/* eslint-enable */\n\n/**\n * Hook to wrap around useState that stores the value in the browser local/session storage.\n *\n * @param {any} initialValue the initial value to store\n * @param {string} key the key to store the value in local/session storage\n * @param {string} storage either 'local' or 'session' for what type of storage\n * @returns a stateful value, and a function to update it.\n */\nvar useStorage = function useStorage(initialValue, key) {\n  var storage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'local';\n  // Since the local storage API isn't available in server-rendering environments,\n  // we check that typeof window !== 'undefined' to make SSR and SSG work properly.\n  var storageAvailable = typeof window !== 'undefined';\n\n  // subscribe to window storage event so changes in one tab to a stored value\n  // are properly reflected in all tabs\n  var _useEventListener = useEventListener({\n      target: 'window',\n      type: 'storage',\n      listener: function listener(event) {\n        var area = storage === 'local' ? window.localStorage : window.sessionStorage;\n        if (event.storageArea === area && event.key === key) {\n          var newValue = event.newValue ? JSON.parse(event.newValue) : undefined;\n          setStoredValue(newValue);\n        }\n      }\n    }),\n    _useEventListener2 = _slicedToArray(_useEventListener, 2),\n    bindWindowStorageListener = _useEventListener2[0],\n    unbindWindowStorageListener = _useEventListener2[1];\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(initialValue),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    storedValue = _React$useState2[0],\n    setStoredValue = _React$useState2[1];\n  var setValue = function setValue(value) {\n    try {\n      // Allow value to be a function so we have same API as useState\n      var valueToStore = value instanceof Function ? value(storedValue) : value;\n      setStoredValue(valueToStore);\n      if (storageAvailable) {\n        var serializedValue = JSON.stringify(valueToStore);\n        storage === 'local' ? window.localStorage.setItem(key, serializedValue) : window.sessionStorage.setItem(key, serializedValue);\n      }\n    } catch (error) {\n      throw new Error(\"PrimeReact useStorage: Failed to serialize the value at key: \".concat(key));\n    }\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (!storageAvailable) {\n      setStoredValue(initialValue);\n    }\n    try {\n      var item = storage === 'local' ? window.localStorage.getItem(key) : window.sessionStorage.getItem(key);\n      setStoredValue(item ? JSON.parse(item) : initialValue);\n    } catch (error) {\n      // If error also return initialValue\n      setStoredValue(initialValue);\n    }\n    bindWindowStorageListener();\n    return function () {\n      return unbindWindowStorageListener();\n    };\n  }, []);\n  return [storedValue, setValue];\n};\n\n/**\n * Hook to wrap around useState that stores the value in the browser local storage.\n *\n * @param {any} initialValue the initial value to store\n * @param {string} key the key to store the value in local storage\n * @returns a stateful value, and a function to update it.\n */\nvar useLocalStorage = function useLocalStorage(initialValue, key) {\n  return useStorage(initialValue, key, 'local');\n};\n\n/**\n * Hook to wrap around useState that stores the value in the browser session storage.\n *\n * @param {any} initialValue the initial value to store\n * @param {string} key the key to store the value in session storage\n * @returns a stateful value, and a function to update it.\n */\nvar useSessionStorage = function useSessionStorage(initialValue, key) {\n  return useStorage(initialValue, key, 'session');\n};\n/* eslint-enable */\n\nvar _id = 0;\nvar useStyle = function useStyle(css) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false),\n    _useState2 = _slicedToArray(_useState, 2),\n    isLoaded = _useState2[0],\n    setIsLoaded = _useState2[1];\n  var styleRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n  var context = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(primereact_api__WEBPACK_IMPORTED_MODULE_2__.PrimeReactContext);\n  var defaultDocument = primereact_utils__WEBPACK_IMPORTED_MODULE_1__.DomHandler.isClient() ? window.document : undefined;\n  var _options$document = options.document,\n    document = _options$document === void 0 ? defaultDocument : _options$document,\n    _options$manual = options.manual,\n    manual = _options$manual === void 0 ? false : _options$manual,\n    _options$name = options.name,\n    name = _options$name === void 0 ? \"style_\".concat(++_id) : _options$name,\n    _options$id = options.id,\n    id = _options$id === void 0 ? undefined : _options$id,\n    _options$media = options.media,\n    media = _options$media === void 0 ? undefined : _options$media;\n  var getCurrentStyleRef = function getCurrentStyleRef(styleContainer) {\n    var existingStyle = styleContainer.querySelector(\"style[data-primereact-style-id=\\\"\".concat(name, \"\\\"]\"));\n    if (existingStyle) {\n      return existingStyle;\n    }\n    if (id !== undefined) {\n      var existingElement = document.getElementById(id);\n      if (existingElement) {\n        return existingElement;\n      }\n    }\n\n    // finally if not found create the new style\n    return document.createElement('style');\n  };\n  var update = function update(newCSS) {\n    isLoaded && css !== newCSS && (styleRef.current.textContent = newCSS);\n  };\n  var load = function load() {\n    if (!document || isLoaded) {\n      return;\n    }\n    var styleContainer = (context === null || context === void 0 ? void 0 : context.styleContainer) || document.head;\n    styleRef.current = getCurrentStyleRef(styleContainer);\n    if (!styleRef.current.isConnected) {\n      styleRef.current.type = 'text/css';\n      if (id) {\n        styleRef.current.id = id;\n      }\n      if (media) {\n        styleRef.current.media = media;\n      }\n      primereact_utils__WEBPACK_IMPORTED_MODULE_1__.DomHandler.addNonce(styleRef.current, context && context.nonce || primereact_api__WEBPACK_IMPORTED_MODULE_2__[\"default\"].nonce);\n      styleContainer.appendChild(styleRef.current);\n      if (name) {\n        styleRef.current.setAttribute('data-primereact-style-id', name);\n      }\n    }\n    styleRef.current.textContent = css;\n    setIsLoaded(true);\n  };\n  var unload = function unload() {\n    if (!document || !styleRef.current) {\n      return;\n    }\n    primereact_utils__WEBPACK_IMPORTED_MODULE_1__.DomHandler.removeInlineStyle(styleRef.current);\n    setIsLoaded(false);\n  };\n  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {\n    if (!manual) {\n      load();\n    }\n\n    // return () => {if (!manual) unload()}; /* @todo */\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [manual]);\n  return {\n    id: id,\n    name: name,\n    update: update,\n    unload: unload,\n    load: load,\n    isLoaded: isLoaded\n  };\n};\n\n/* eslint-disable */\nvar useTimeout = function useTimeout(fn) {\n  var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n  var when = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n  var timeout = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var savedCallback = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var clear = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(function () {\n    return clearTimeout(timeout.current);\n  }, [timeout.current]);\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    savedCallback.current = fn;\n  });\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    function callback() {\n      savedCallback.current();\n    }\n    if (when) {\n      timeout.current = setTimeout(callback, delay);\n      return clear;\n    } else {\n      clear();\n    }\n  }, [delay, when]);\n  useUnmountEffect(function () {\n    clear();\n  });\n  return [clear];\n};\n/* eslint-enable */\n\n/* eslint-disable */\nvar useUpdateEffect = function useUpdateEffect(fn, deps) {\n  var mounted = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  return react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (!mounted.current) {\n      mounted.current = true;\n      return;\n    }\n    return fn && fn();\n  }, deps);\n};\n/* eslint-enable */\n\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/hooks/hooks.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/iconbase/iconbase.esm.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/iconbase/iconbase.esm.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   IconBase: () => (/* binding */ IconBase)\n/* harmony export */ });\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n'use client';\n\n\nvar IconBase = {\n  defaultProps: {\n    __TYPE: 'IconBase',\n    className: null,\n    label: null,\n    spin: false\n  },\n  getProps: function getProps(props) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.getMergedProps(props, IconBase.defaultProps);\n  },\n  getOtherProps: function getOtherProps(props) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.getDiffProps(props, IconBase.defaultProps);\n  },\n  getPTI: function getPTI(props) {\n    var isLabelEmpty = primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.isEmpty(props.label);\n    var otherProps = IconBase.getOtherProps(props);\n    var ptiProps = {\n      className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_0__.classNames)('p-icon', {\n        'p-icon-spin': props.spin\n      }, props.className),\n      role: !isLabelEmpty ? 'img' : undefined,\n      'aria-label': !isLabelEmpty ? props.label : undefined,\n      'aria-hidden': props.label ? isLabelEmpty : undefined\n    };\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_0__.ObjectUtils.getMergedProps(otherProps, ptiProps);\n  }\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/iconbase/iconbase.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/angledoubleleft/index.esm.js":
/*!******************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/angledoubleleft/index.esm.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   AngleDoubleLeftIcon: () => (/* binding */ AngleDoubleLeftIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar AngleDoubleLeftIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M5.71602 11.164C5.80782 11.2021 5.9063 11.2215 6.00569 11.221C6.20216 11.2301 6.39427 11.1612 6.54025 11.0294C6.68191 10.8875 6.76148 10.6953 6.76148 10.4948C6.76148 10.2943 6.68191 10.1021 6.54025 9.96024L3.51441 6.9344L6.54025 3.90855C6.624 3.76126 6.65587 3.59011 6.63076 3.42254C6.60564 3.25498 6.525 3.10069 6.40175 2.98442C6.2785 2.86815 6.11978 2.79662 5.95104 2.7813C5.78229 2.76598 5.61329 2.80776 5.47112 2.89994L1.97123 6.39983C1.82957 6.54167 1.75 6.73393 1.75 6.9344C1.75 7.13486 1.82957 7.32712 1.97123 7.46896L5.47112 10.9991C5.54096 11.0698 5.62422 11.1259 5.71602 11.164ZM11.0488 10.9689C11.1775 11.1156 11.3585 11.2061 11.5531 11.221C11.7477 11.2061 11.9288 11.1156 12.0574 10.9689C12.1815 10.8302 12.25 10.6506 12.25 10.4645C12.25 10.2785 12.1815 10.0989 12.0574 9.96024L9.03158 6.93439L12.0574 3.90855C12.1248 3.76739 12.1468 3.60881 12.1204 3.45463C12.0939 3.30045 12.0203 3.15826 11.9097 3.04765C11.7991 2.93703 11.6569 2.86343 11.5027 2.83698C11.3486 2.81053 11.19 2.83252 11.0488 2.89994L7.51865 6.36957C7.37699 6.51141 7.29742 6.70367 7.29742 6.90414C7.29742 7.1046 7.37699 7.29686 7.51865 7.4387L11.0488 10.9689Z\",\n    fill: \"currentColor\"\n  }));\n}));\nAngleDoubleLeftIcon.displayName = 'AngleDoubleLeftIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/angledoubleleft/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/angledoubleright/index.esm.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/angledoubleright/index.esm.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   AngleDoubleRightIcon: () => (/* binding */ AngleDoubleRightIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar AngleDoubleRightIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M7.68757 11.1451C7.7791 11.1831 7.8773 11.2024 7.9764 11.2019C8.07769 11.1985 8.17721 11.1745 8.26886 11.1312C8.36052 11.088 8.44238 11.0265 8.50943 10.9505L12.0294 7.49085C12.1707 7.34942 12.25 7.15771 12.25 6.95782C12.25 6.75794 12.1707 6.56622 12.0294 6.42479L8.50943 2.90479C8.37014 2.82159 8.20774 2.78551 8.04633 2.80192C7.88491 2.81833 7.73309 2.88635 7.6134 2.99588C7.4937 3.10541 7.41252 3.25061 7.38189 3.40994C7.35126 3.56927 7.37282 3.73423 7.44337 3.88033L10.4605 6.89748L7.44337 9.91463C7.30212 10.0561 7.22278 10.2478 7.22278 10.4477C7.22278 10.6475 7.30212 10.8393 7.44337 10.9807C7.51301 11.0512 7.59603 11.1071 7.68757 11.1451ZM1.94207 10.9505C2.07037 11.0968 2.25089 11.1871 2.44493 11.2019C2.63898 11.1871 2.81949 11.0968 2.94779 10.9505L6.46779 7.49085C6.60905 7.34942 6.68839 7.15771 6.68839 6.95782C6.68839 6.75793 6.60905 6.56622 6.46779 6.42479L2.94779 2.90479C2.80704 2.83757 2.6489 2.81563 2.49517 2.84201C2.34143 2.86839 2.19965 2.94178 2.08936 3.05207C1.97906 3.16237 1.90567 3.30415 1.8793 3.45788C1.85292 3.61162 1.87485 3.76975 1.94207 3.9105L4.95922 6.92765L1.94207 9.9448C1.81838 10.0831 1.75 10.2621 1.75 10.4477C1.75 10.6332 1.81838 10.8122 1.94207 10.9505Z\",\n    fill: \"currentColor\"\n  }));\n}));\nAngleDoubleRightIcon.displayName = 'AngleDoubleRightIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/angledoubleright/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/angledown/index.esm.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/angledown/index.esm.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   AngleDownIcon: () => (/* binding */ AngleDownIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar AngleDownIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M3.58659 4.5007C3.68513 4.50023 3.78277 4.51945 3.87379 4.55723C3.9648 4.59501 4.04735 4.65058 4.11659 4.7207L7.11659 7.7207L10.1166 4.7207C10.2619 4.65055 10.4259 4.62911 10.5843 4.65956C10.7427 4.69002 10.8871 4.77074 10.996 4.88976C11.1049 5.00877 11.1726 5.15973 11.1889 5.32022C11.2052 5.48072 11.1693 5.6422 11.0866 5.7807L7.58659 9.2807C7.44597 9.42115 7.25534 9.50004 7.05659 9.50004C6.85784 9.50004 6.66722 9.42115 6.52659 9.2807L3.02659 5.7807C2.88614 5.64007 2.80725 5.44945 2.80725 5.2507C2.80725 5.05195 2.88614 4.86132 3.02659 4.7207C3.09932 4.64685 3.18675 4.58911 3.28322 4.55121C3.37969 4.51331 3.48305 4.4961 3.58659 4.5007Z\",\n    fill: \"currentColor\"\n  }));\n}));\nAngleDownIcon.displayName = 'AngleDownIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/angledown/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/angleleft/index.esm.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/angleleft/index.esm.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   AngleLeftIcon: () => (/* binding */ AngleLeftIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar AngleLeftIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M8.75 11.185C8.65146 11.1854 8.55381 11.1662 8.4628 11.1284C8.37179 11.0906 8.28924 11.0351 8.22 10.965L4.72 7.46496C4.57955 7.32433 4.50066 7.13371 4.50066 6.93496C4.50066 6.73621 4.57955 6.54558 4.72 6.40496L8.22 2.93496C8.36095 2.84357 8.52851 2.80215 8.69582 2.81733C8.86312 2.83252 9.02048 2.90344 9.14268 3.01872C9.26487 3.134 9.34483 3.28696 9.36973 3.4531C9.39463 3.61924 9.36303 3.78892 9.28 3.93496L6.28 6.93496L9.28 9.93496C9.42045 10.0756 9.49934 10.2662 9.49934 10.465C9.49934 10.6637 9.42045 10.8543 9.28 10.995C9.13526 11.1257 8.9448 11.1939 8.75 11.185Z\",\n    fill: \"currentColor\"\n  }));\n}));\nAngleLeftIcon.displayName = 'AngleLeftIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/angleleft/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/angleright/index.esm.js":
/*!*************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/angleright/index.esm.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   AngleRightIcon: () => (/* binding */ AngleRightIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar AngleRightIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M5.25 11.1728C5.14929 11.1694 5.05033 11.1455 4.9592 11.1025C4.86806 11.0595 4.78666 10.9984 4.72 10.9228C4.57955 10.7822 4.50066 10.5916 4.50066 10.3928C4.50066 10.1941 4.57955 10.0035 4.72 9.86283L7.72 6.86283L4.72 3.86283C4.66067 3.71882 4.64765 3.55991 4.68275 3.40816C4.71785 3.25642 4.79932 3.11936 4.91585 3.01602C5.03238 2.91268 5.17819 2.84819 5.33305 2.83149C5.4879 2.81479 5.64411 2.84671 5.78 2.92283L9.28 6.42283C9.42045 6.56346 9.49934 6.75408 9.49934 6.95283C9.49934 7.15158 9.42045 7.34221 9.28 7.48283L5.78 10.9228C5.71333 10.9984 5.63193 11.0595 5.5408 11.1025C5.44966 11.1455 5.35071 11.1694 5.25 11.1728Z\",\n    fill: \"currentColor\"\n  }));\n}));\nAngleRightIcon.displayName = 'AngleRightIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/angleright/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/angleup/index.esm.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/angleup/index.esm.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   AngleUpIcon: () => (/* binding */ AngleUpIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar AngleUpIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M10.4134 9.49931C10.3148 9.49977 10.2172 9.48055 10.1262 9.44278C10.0352 9.405 9.95263 9.34942 9.88338 9.27931L6.88338 6.27931L3.88338 9.27931C3.73811 9.34946 3.57409 9.3709 3.41567 9.34044C3.25724 9.30999 3.11286 9.22926 3.00395 9.11025C2.89504 8.99124 2.82741 8.84028 2.8111 8.67978C2.79478 8.51928 2.83065 8.35781 2.91338 8.21931L6.41338 4.71931C6.55401 4.57886 6.74463 4.49997 6.94338 4.49997C7.14213 4.49997 7.33276 4.57886 7.47338 4.71931L10.9734 8.21931C11.1138 8.35994 11.1927 8.55056 11.1927 8.74931C11.1927 8.94806 11.1138 9.13868 10.9734 9.27931C10.9007 9.35315 10.8132 9.41089 10.7168 9.44879C10.6203 9.48669 10.5169 9.5039 10.4134 9.49931Z\",\n    fill: \"currentColor\"\n  }));\n}));\nAngleUpIcon.displayName = 'AngleUpIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/angleup/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/arrowdown/index.esm.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/arrowdown/index.esm.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ArrowDownIcon: () => (/* binding */ ArrowDownIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar ArrowDownIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M6.99994 14C6.91097 14.0004 6.82281 13.983 6.74064 13.9489C6.65843 13.9148 6.58387 13.8646 6.52133 13.8013L1.10198 8.38193C0.982318 8.25351 0.917175 8.08367 0.920272 7.90817C0.923368 7.73267 0.994462 7.56523 1.11858 7.44111C1.24269 7.317 1.41014 7.2459 1.58563 7.2428C1.76113 7.23971 1.93098 7.30485 2.0594 7.42451L6.32263 11.6877V0.677419C6.32263 0.497756 6.394 0.325452 6.52104 0.198411C6.64808 0.0713706 6.82039 0 7.00005 0C7.17971 0 7.35202 0.0713706 7.47906 0.198411C7.6061 0.325452 7.67747 0.497756 7.67747 0.677419V11.6877L11.9407 7.42451C12.0691 7.30485 12.2389 7.23971 12.4144 7.2428C12.5899 7.2459 12.7574 7.317 12.8815 7.44111C13.0056 7.56523 13.0767 7.73267 13.0798 7.90817C13.0829 8.08367 13.0178 8.25351 12.8981 8.38193L7.47875 13.8013C7.41621 13.8646 7.34164 13.9148 7.25944 13.9489C7.17727 13.983 7.08912 14.0004 7.00015 14C7.00012 14 7.00009 14 7.00005 14C7.00001 14 6.99998 14 6.99994 14Z\",\n    fill: \"currentColor\"\n  }));\n}));\nArrowDownIcon.displayName = 'ArrowDownIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/arrowdown/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/arrowup/index.esm.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/arrowup/index.esm.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ArrowUpIcon: () => (/* binding */ ArrowUpIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar ArrowUpIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M6.51551 13.799C6.64205 13.9255 6.813 13.9977 6.99193 14C7.17087 13.9977 7.34182 13.9255 7.46835 13.799C7.59489 13.6725 7.66701 13.5015 7.66935 13.3226V2.31233L11.9326 6.57554C11.9951 6.63887 12.0697 6.68907 12.1519 6.72319C12.2341 6.75731 12.3223 6.77467 12.4113 6.77425C12.5003 6.77467 12.5885 6.75731 12.6707 6.72319C12.7529 6.68907 12.8274 6.63887 12.89 6.57554C13.0168 6.44853 13.0881 6.27635 13.0881 6.09683C13.0881 5.91732 13.0168 5.74514 12.89 5.61812L7.48846 0.216594C7.48274 0.210436 7.4769 0.204374 7.47094 0.198411C7.3439 0.0713707 7.1716 0 6.99193 0C6.81227 0 6.63997 0.0713707 6.51293 0.198411C6.50704 0.204296 6.50128 0.210278 6.49563 0.216354L1.09386 5.61812C0.974201 5.74654 0.909057 5.91639 0.912154 6.09189C0.91525 6.26738 0.986345 6.43483 1.11046 6.55894C1.23457 6.68306 1.40202 6.75415 1.57752 6.75725C1.75302 6.76035 1.92286 6.6952 2.05128 6.57554L6.31451 2.31231V13.3226C6.31685 13.5015 6.38898 13.6725 6.51551 13.799Z\",\n    fill: \"currentColor\"\n  }));\n}));\nArrowUpIcon.displayName = 'ArrowUpIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/arrowup/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/bars/index.esm.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/bars/index.esm.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   BarsIcon: () => (/* binding */ BarsIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar BarsIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M13.3226 3.6129H0.677419C0.497757 3.6129 0.325452 3.54152 0.198411 3.41448C0.0713707 3.28744 0 3.11514 0 2.93548C0 2.75581 0.0713707 2.58351 0.198411 2.45647C0.325452 2.32943 0.497757 2.25806 0.677419 2.25806H13.3226C13.5022 2.25806 13.6745 2.32943 13.8016 2.45647C13.9286 2.58351 14 2.75581 14 2.93548C14 3.11514 13.9286 3.28744 13.8016 3.41448C13.6745 3.54152 13.5022 3.6129 13.3226 3.6129ZM13.3226 7.67741H0.677419C0.497757 7.67741 0.325452 7.60604 0.198411 7.479C0.0713707 7.35196 0 7.17965 0 6.99999C0 6.82033 0.0713707 6.64802 0.198411 6.52098C0.325452 6.39394 0.497757 6.32257 0.677419 6.32257H13.3226C13.5022 6.32257 13.6745 6.39394 13.8016 6.52098C13.9286 6.64802 14 6.82033 14 6.99999C14 7.17965 13.9286 7.35196 13.8016 7.479C13.6745 7.60604 13.5022 7.67741 13.3226 7.67741ZM0.677419 11.7419H13.3226C13.5022 11.7419 13.6745 11.6706 13.8016 11.5435C13.9286 11.4165 14 11.2442 14 11.0645C14 10.8848 13.9286 10.7125 13.8016 10.5855C13.6745 10.4585 13.5022 10.3871 13.3226 10.3871H0.677419C0.497757 10.3871 0.325452 10.4585 0.198411 10.5855C0.0713707 10.7125 0 10.8848 0 11.0645C0 11.2442 0.0713707 11.4165 0.198411 11.5435C0.325452 11.6706 0.497757 11.7419 0.677419 11.7419Z\",\n    fill: \"currentColor\"\n  }));\n}));\nBarsIcon.displayName = 'BarsIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/bars/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/check/index.esm.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/check/index.esm.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   CheckIcon: () => (/* binding */ CheckIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar CheckIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M4.86199 11.5948C4.78717 11.5923 4.71366 11.5745 4.64596 11.5426C4.57826 11.5107 4.51779 11.4652 4.46827 11.4091L0.753985 7.69483C0.683167 7.64891 0.623706 7.58751 0.580092 7.51525C0.536478 7.44299 0.509851 7.36177 0.502221 7.27771C0.49459 7.19366 0.506156 7.10897 0.536046 7.03004C0.565935 6.95111 0.613367 6.88 0.674759 6.82208C0.736151 6.76416 0.8099 6.72095 0.890436 6.69571C0.970973 6.67046 1.05619 6.66385 1.13966 6.67635C1.22313 6.68886 1.30266 6.72017 1.37226 6.76792C1.44186 6.81567 1.4997 6.8786 1.54141 6.95197L4.86199 10.2503L12.6397 2.49483C12.7444 2.42694 12.8689 2.39617 12.9932 2.40745C13.1174 2.41873 13.2343 2.47141 13.3251 2.55705C13.4159 2.64268 13.4753 2.75632 13.4938 2.87973C13.5123 3.00315 13.4888 3.1292 13.4271 3.23768L5.2557 11.4091C5.20618 11.4652 5.14571 11.5107 5.07801 11.5426C5.01031 11.5745 4.9368 11.5923 4.86199 11.5948Z\",\n    fill: \"currentColor\"\n  }));\n}));\nCheckIcon.displayName = 'CheckIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/check/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/chevrondown/index.esm.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/chevrondown/index.esm.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ChevronDownIcon: () => (/* binding */ ChevronDownIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar ChevronDownIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M7.01744 10.398C6.91269 10.3985 6.8089 10.378 6.71215 10.3379C6.61541 10.2977 6.52766 10.2386 6.45405 10.1641L1.13907 4.84913C1.03306 4.69404 0.985221 4.5065 1.00399 4.31958C1.02276 4.13266 1.10693 3.95838 1.24166 3.82747C1.37639 3.69655 1.55301 3.61742 1.74039 3.60402C1.92777 3.59062 2.11386 3.64382 2.26584 3.75424L7.01744 8.47394L11.769 3.75424C11.9189 3.65709 12.097 3.61306 12.2748 3.62921C12.4527 3.64535 12.6199 3.72073 12.7498 3.84328C12.8797 3.96582 12.9647 4.12842 12.9912 4.30502C13.0177 4.48162 12.9841 4.662 12.8958 4.81724L7.58083 10.1322C7.50996 10.2125 7.42344 10.2775 7.32656 10.3232C7.22968 10.3689 7.12449 10.3944 7.01744 10.398Z\",\n    fill: \"currentColor\"\n  }));\n}));\nChevronDownIcon.displayName = 'ChevronDownIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/chevrondown/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/chevronright/index.esm.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/chevronright/index.esm.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ChevronRightIcon: () => (/* binding */ ChevronRightIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar ChevronRightIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M4.38708 13C4.28408 13.0005 4.18203 12.9804 4.08691 12.9409C3.99178 12.9014 3.9055 12.8433 3.83313 12.7701C3.68634 12.6231 3.60388 12.4238 3.60388 12.2161C3.60388 12.0084 3.68634 11.8091 3.83313 11.6622L8.50507 6.99022L3.83313 2.31827C3.69467 2.16968 3.61928 1.97313 3.62287 1.77005C3.62645 1.56698 3.70872 1.37322 3.85234 1.22959C3.99596 1.08597 4.18972 1.00371 4.3928 1.00012C4.59588 0.996539 4.79242 1.07192 4.94102 1.21039L10.1669 6.43628C10.3137 6.58325 10.3962 6.78249 10.3962 6.99022C10.3962 7.19795 10.3137 7.39718 10.1669 7.54416L4.94102 12.7701C4.86865 12.8433 4.78237 12.9014 4.68724 12.9409C4.59212 12.9804 4.49007 13.0005 4.38708 13Z\",\n    fill: \"currentColor\"\n  }));\n}));\nChevronRightIcon.displayName = 'ChevronRightIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/chevronright/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/chevronup/index.esm.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/chevronup/index.esm.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ChevronUpIcon: () => (/* binding */ ChevronUpIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar ChevronUpIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M12.2097 10.4113C12.1057 10.4118 12.0027 10.3915 11.9067 10.3516C11.8107 10.3118 11.7237 10.2532 11.6506 10.1792L6.93602 5.46461L2.22139 10.1476C2.07272 10.244 1.89599 10.2877 1.71953 10.2717C1.54307 10.2556 1.3771 10.1808 1.24822 10.0593C1.11933 9.93766 1.035 9.77633 1.00874 9.6011C0.982477 9.42587 1.0158 9.2469 1.10338 9.09287L6.37701 3.81923C6.52533 3.6711 6.72639 3.58789 6.93602 3.58789C7.14565 3.58789 7.3467 3.6711 7.49502 3.81923L12.7687 9.09287C12.9168 9.24119 13 9.44225 13 9.65187C13 9.8615 12.9168 10.0626 12.7687 10.2109C12.616 10.3487 12.4151 10.4207 12.2097 10.4113Z\",\n    fill: \"currentColor\"\n  }));\n}));\nChevronUpIcon.displayName = 'ChevronUpIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/chevronup/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/filter/index.esm.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/filter/index.esm.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   FilterIcon: () => (/* binding */ FilterIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar FilterIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M8.64708 14H5.35296C5.18981 13.9979 5.03395 13.9321 4.91858 13.8167C4.8032 13.7014 4.73745 13.5455 4.73531 13.3824V7L0.329431 0.98C0.259794 0.889466 0.217389 0.780968 0.20718 0.667208C0.19697 0.553448 0.219379 0.439133 0.271783 0.337647C0.324282 0.236453 0.403423 0.151519 0.500663 0.0920138C0.597903 0.0325088 0.709548 0.000692754 0.823548 0H13.1765C13.2905 0.000692754 13.4021 0.0325088 13.4994 0.0920138C13.5966 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7826 0.780968 13.7402 0.889466 13.6706 0.98L9.26472 7V13.3824C9.26259 13.5455 9.19683 13.7014 9.08146 13.8167C8.96609 13.9321 8.81022 13.9979 8.64708 14ZM5.97061 12.7647H8.02943V6.79412C8.02878 6.66289 8.07229 6.53527 8.15296 6.43177L11.9412 1.23529H2.05884L5.86355 6.43177C5.94422 6.53527 5.98773 6.66289 5.98708 6.79412L5.97061 12.7647Z\",\n    fill: \"currentColor\"\n  }));\n}));\nFilterIcon.displayName = 'FilterIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/filter/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/filterslash/index.esm.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/filterslash/index.esm.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   FilterSlashIcon: () => (/* binding */ FilterSlashIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar FilterSlashIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M13.4994 0.0920138C13.5967 0.151519 13.6758 0.236453 13.7283 0.337647C13.7807 0.439133 13.8031 0.553448 13.7929 0.667208C13.7827 0.780968 13.7403 0.889466 13.6707 0.98L11.406 4.06823C11.3099 4.19928 11.1656 4.28679 11.005 4.3115C10.8444 4.33621 10.6805 4.2961 10.5495 4.2C10.4184 4.1039 10.3309 3.95967 10.3062 3.79905C10.2815 3.63843 10.3216 3.47458 10.4177 3.34353L11.9412 1.23529H7.41184C7.24803 1.23529 7.09093 1.17022 6.97509 1.05439C6.85926 0.938558 6.79419 0.781457 6.79419 0.617647C6.79419 0.453837 6.85926 0.296736 6.97509 0.180905C7.09093 0.0650733 7.24803 0 7.41184 0H13.1765C13.2905 0.000692754 13.4022 0.0325088 13.4994 0.0920138ZM4.20008 0.181168H4.24126L13.2013 9.03411C13.3169 9.14992 13.3819 9.3069 13.3819 9.47058C13.3819 9.63426 13.3169 9.79124 13.2013 9.90705C13.1445 9.96517 13.0766 10.0112 13.0016 10.0423C12.9266 10.0735 12.846 10.0891 12.7648 10.0882C12.6836 10.0886 12.6032 10.0728 12.5283 10.0417C12.4533 10.0106 12.3853 9.96479 12.3283 9.90705L9.3142 6.92587L9.26479 6.99999V13.3823C9.26265 13.5455 9.19689 13.7014 9.08152 13.8167C8.96615 13.9321 8.81029 13.9979 8.64714 14H5.35302C5.18987 13.9979 5.03401 13.9321 4.91864 13.8167C4.80327 13.7014 4.73751 13.5455 4.73537 13.3823V6.99999L0.329492 1.02117C0.259855 0.930634 0.21745 0.822137 0.207241 0.708376C0.197031 0.594616 0.21944 0.480301 0.271844 0.378815C0.324343 0.277621 0.403484 0.192687 0.500724 0.133182C0.597964 0.073677 0.709609 0.041861 0.823609 0.0411682H3.86243C3.92448 0.0461551 3.9855 0.060022 4.04361 0.0823446C4.10037 0.10735 4.15311 0.140655 4.20008 0.181168ZM8.02949 6.79411C8.02884 6.66289 8.07235 6.53526 8.15302 6.43176L8.42478 6.05293L3.55773 1.23529H2.0589L5.84714 6.43176C5.92781 6.53526 5.97132 6.66289 5.97067 6.79411V12.7647H8.02949V6.79411Z\",\n    fill: \"currentColor\"\n  }));\n}));\nFilterSlashIcon.displayName = 'FilterSlashIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/filterslash/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/pencil/index.esm.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/pencil/index.esm.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   PencilIcon: () => (/* binding */ PencilIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar PencilIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M0.609628 13.959C0.530658 13.9599 0.452305 13.9451 0.379077 13.9156C0.305849 13.8861 0.239191 13.8424 0.18294 13.787C0.118447 13.7234 0.0688234 13.6464 0.0376166 13.5614C0.00640987 13.4765 -0.00560954 13.3857 0.00241768 13.2956L0.25679 10.1501C0.267698 10.0041 0.331934 9.86709 0.437312 9.76516L9.51265 0.705715C10.0183 0.233014 10.6911 -0.0203041 11.3835 0.00127367C12.0714 0.00660201 12.7315 0.27311 13.2298 0.746671C13.7076 1.23651 13.9824 1.88848 13.9992 2.57201C14.0159 3.25554 13.7733 3.92015 13.32 4.4327L4.23648 13.5331C4.13482 13.6342 4.0017 13.6978 3.85903 13.7133L0.667067 14L0.609628 13.959ZM1.43018 10.4696L1.25787 12.714L3.50619 12.5092L12.4502 3.56444C12.6246 3.35841 12.7361 3.10674 12.7714 2.83933C12.8067 2.57193 12.7644 2.30002 12.6495 2.05591C12.5346 1.8118 12.3519 1.60575 12.1231 1.46224C11.8943 1.31873 11.6291 1.2438 11.3589 1.24633C11.1813 1.23508 11.0033 1.25975 10.8355 1.31887C10.6677 1.37798 10.5136 1.47033 10.3824 1.59036L1.43018 10.4696Z\",\n    fill: \"currentColor\"\n  }));\n}));\nPencilIcon.displayName = 'PencilIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/pencil/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/plus/index.esm.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/plus/index.esm.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   PlusIcon: () => (/* binding */ PlusIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar PlusIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M7.67742 6.32258V0.677419C7.67742 0.497757 7.60605 0.325452 7.47901 0.198411C7.35197 0.0713707 7.17966 0 7 0C6.82034 0 6.64803 0.0713707 6.52099 0.198411C6.39395 0.325452 6.32258 0.497757 6.32258 0.677419V6.32258H0.677419C0.497757 6.32258 0.325452 6.39395 0.198411 6.52099C0.0713707 6.64803 0 6.82034 0 7C0 7.17966 0.0713707 7.35197 0.198411 7.47901C0.325452 7.60605 0.497757 7.67742 0.677419 7.67742H6.32258V13.3226C6.32492 13.5015 6.39704 13.6725 6.52358 13.799C6.65012 13.9255 6.82106 13.9977 7 14C7.17966 14 7.35197 13.9286 7.47901 13.8016C7.60605 13.6745 7.67742 13.5022 7.67742 13.3226V7.67742H13.3226C13.5022 7.67742 13.6745 7.60605 13.8016 7.47901C13.9286 7.35197 14 7.17966 14 7C13.9977 6.82106 13.9255 6.65012 13.799 6.52358C13.6725 6.39704 13.5015 6.32492 13.3226 6.32258H7.67742Z\",\n    fill: \"currentColor\"\n  }));\n}));\nPlusIcon.displayName = 'PlusIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/plus/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/search/index.esm.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/search/index.esm.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   SearchIcon: () => (/* binding */ SearchIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar SearchIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M2.67602 11.0265C3.6661 11.688 4.83011 12.0411 6.02086 12.0411C6.81149 12.0411 7.59438 11.8854 8.32483 11.5828C8.87005 11.357 9.37808 11.0526 9.83317 10.6803L12.9769 13.8241C13.0323 13.8801 13.0983 13.9245 13.171 13.9548C13.2438 13.985 13.3219 14.0003 13.4007 14C13.4795 14.0003 13.5575 13.985 13.6303 13.9548C13.7031 13.9245 13.7691 13.8801 13.8244 13.8241C13.9367 13.7116 13.9998 13.5592 13.9998 13.4003C13.9998 13.2414 13.9367 13.089 13.8244 12.9765L10.6807 9.8328C11.053 9.37773 11.3573 8.86972 11.5831 8.32452C11.8857 7.59408 12.0414 6.81119 12.0414 6.02056C12.0414 4.8298 11.6883 3.66579 11.0268 2.67572C10.3652 1.68564 9.42494 0.913972 8.32483 0.45829C7.22472 0.00260857 6.01418 -0.116618 4.84631 0.115686C3.67844 0.34799 2.60568 0.921393 1.76369 1.76338C0.921698 2.60537 0.348296 3.67813 0.115991 4.84601C-0.116313 6.01388 0.00291375 7.22441 0.458595 8.32452C0.914277 9.42464 1.68595 10.3649 2.67602 11.0265ZM3.35565 2.0158C4.14456 1.48867 5.07206 1.20731 6.02086 1.20731C7.29317 1.20731 8.51338 1.71274 9.41304 2.6124C10.3127 3.51206 10.8181 4.73226 10.8181 6.00457C10.8181 6.95337 10.5368 7.88088 10.0096 8.66978C9.48251 9.45868 8.73328 10.0736 7.85669 10.4367C6.98011 10.7997 6.01554 10.8947 5.08496 10.7096C4.15439 10.5245 3.2996 10.0676 2.62869 9.39674C1.95778 8.72583 1.50089 7.87104 1.31579 6.94046C1.13068 6.00989 1.22568 5.04532 1.58878 4.16874C1.95187 3.29215 2.56675 2.54292 3.35565 2.0158Z\",\n    fill: \"currentColor\"\n  }));\n}));\nSearchIcon.displayName = 'SearchIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/search/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/sortalt/index.esm.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/sortalt/index.esm.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   SortAltIcon: () => (/* binding */ SortAltIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar SortAltIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M5.64515 3.61291C5.47353 3.61291 5.30192 3.54968 5.16644 3.4142L3.38708 1.63484L1.60773 3.4142C1.34579 3.67613 0.912244 3.67613 0.650309 3.4142C0.388374 3.15226 0.388374 2.71871 0.650309 2.45678L2.90837 0.198712C3.17031 -0.0632236 3.60386 -0.0632236 3.86579 0.198712L6.12386 2.45678C6.38579 2.71871 6.38579 3.15226 6.12386 3.4142C5.98837 3.54968 5.81676 3.61291 5.64515 3.61291Z\",\n    fill: \"currentColor\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M3.38714 14C3.01681 14 2.70972 13.6929 2.70972 13.3226V0.677419C2.70972 0.307097 3.01681 0 3.38714 0C3.75746 0 4.06456 0.307097 4.06456 0.677419V13.3226C4.06456 13.6929 3.75746 14 3.38714 14Z\",\n    fill: \"currentColor\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M10.6129 14C10.4413 14 10.2697 13.9368 10.1342 13.8013L7.87611 11.5432C7.61418 11.2813 7.61418 10.8477 7.87611 10.5858C8.13805 10.3239 8.5716 10.3239 8.83353 10.5858L10.6129 12.3652L12.3922 10.5858C12.6542 10.3239 13.0877 10.3239 13.3497 10.5858C13.6116 10.8477 13.6116 11.2813 13.3497 11.5432L11.0916 13.8013C10.9561 13.9368 10.7845 14 10.6129 14Z\",\n    fill: \"currentColor\"\n  }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M10.6129 14C10.2426 14 9.93552 13.6929 9.93552 13.3226V0.677419C9.93552 0.307097 10.2426 0 10.6129 0C10.9833 0 11.2904 0.307097 11.2904 0.677419V13.3226C11.2904 13.6929 10.9832 14 10.6129 14Z\",\n    fill: \"currentColor\"\n  }));\n}));\nSortAltIcon.displayName = 'SortAltIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/sortalt/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/sortamountdown/index.esm.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/sortamountdown/index.esm.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   SortAmountDownIcon: () => (/* binding */ SortAmountDownIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar SortAmountDownIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M4.93953 10.5858L3.83759 11.6877V0.677419C3.83759 0.307097 3.53049 0 3.16017 0C2.78985 0 2.48275 0.307097 2.48275 0.677419V11.6877L1.38082 10.5858C1.11888 10.3239 0.685331 10.3239 0.423396 10.5858C0.16146 10.8477 0.16146 11.2813 0.423396 11.5432L2.68146 13.8013C2.74469 13.8645 2.81694 13.9097 2.89823 13.9458C2.97952 13.9819 3.06985 14 3.16017 14C3.25049 14 3.33178 13.9819 3.42211 13.9458C3.5034 13.9097 3.57565 13.8645 3.63888 13.8013L5.89694 11.5432C6.15888 11.2813 6.15888 10.8477 5.89694 10.5858C5.63501 10.3239 5.20146 10.3239 4.93953 10.5858ZM13.0957 0H7.22468C6.85436 0 6.54726 0.307097 6.54726 0.677419C6.54726 1.04774 6.85436 1.35484 7.22468 1.35484H13.0957C13.466 1.35484 13.7731 1.04774 13.7731 0.677419C13.7731 0.307097 13.466 0 13.0957 0ZM7.22468 5.41935H9.48275C9.85307 5.41935 10.1602 5.72645 10.1602 6.09677C10.1602 6.4671 9.85307 6.77419 9.48275 6.77419H7.22468C6.85436 6.77419 6.54726 6.4671 6.54726 6.09677C6.54726 5.72645 6.85436 5.41935 7.22468 5.41935ZM7.6763 8.12903H7.22468C6.85436 8.12903 6.54726 8.43613 6.54726 8.80645C6.54726 9.17677 6.85436 9.48387 7.22468 9.48387H7.6763C8.04662 9.48387 8.35372 9.17677 8.35372 8.80645C8.35372 8.43613 8.04662 8.12903 7.6763 8.12903ZM7.22468 2.70968H11.2892C11.6595 2.70968 11.9666 3.01677 11.9666 3.3871C11.9666 3.75742 11.6595 4.06452 11.2892 4.06452H7.22468C6.85436 4.06452 6.54726 3.75742 6.54726 3.3871C6.54726 3.01677 6.85436 2.70968 7.22468 2.70968Z\",\n    fill: \"currentColor\"\n  }));\n}));\nSortAmountDownIcon.displayName = 'SortAmountDownIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/sortamountdown/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/sortamountupalt/index.esm.js":
/*!******************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/sortamountupalt/index.esm.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   SortAmountUpAltIcon: () => (/* binding */ SortAmountUpAltIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar SortAmountUpAltIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M3.63435 0.19871C3.57113 0.135484 3.49887 0.0903226 3.41758 0.0541935C3.255 -0.0180645 3.06532 -0.0180645 2.90274 0.0541935C2.82145 0.0903226 2.74919 0.135484 2.68597 0.19871L0.427901 2.45677C0.165965 2.71871 0.165965 3.15226 0.427901 3.41419C0.689836 3.67613 1.12338 3.67613 1.38532 3.41419L2.48726 2.31226V13.3226C2.48726 13.6929 2.79435 14 3.16467 14C3.535 14 3.84209 13.6929 3.84209 13.3226V2.31226L4.94403 3.41419C5.07951 3.54968 5.25113 3.6129 5.42274 3.6129C5.59435 3.6129 5.76597 3.54968 5.90145 3.41419C6.16338 3.15226 6.16338 2.71871 5.90145 2.45677L3.64338 0.19871H3.63435ZM13.7685 13.3226C13.7685 12.9523 13.4615 12.6452 13.0911 12.6452H7.22016C6.84984 12.6452 6.54274 12.9523 6.54274 13.3226C6.54274 13.6929 6.84984 14 7.22016 14H13.0911C13.4615 14 13.7685 13.6929 13.7685 13.3226ZM7.22016 8.58064C6.84984 8.58064 6.54274 8.27355 6.54274 7.90323C6.54274 7.5329 6.84984 7.22581 7.22016 7.22581H9.47823C9.84855 7.22581 10.1556 7.5329 10.1556 7.90323C10.1556 8.27355 9.84855 8.58064 9.47823 8.58064H7.22016ZM7.22016 5.87097H7.67177C8.0421 5.87097 8.34919 5.56387 8.34919 5.19355C8.34919 4.82323 8.0421 4.51613 7.67177 4.51613H7.22016C6.84984 4.51613 6.54274 4.82323 6.54274 5.19355C6.54274 5.56387 6.84984 5.87097 7.22016 5.87097ZM11.2847 11.2903H7.22016C6.84984 11.2903 6.54274 10.9832 6.54274 10.6129C6.54274 10.2426 6.84984 9.93548 7.22016 9.93548H11.2847C11.655 9.93548 11.9621 10.2426 11.9621 10.6129C11.9621 10.9832 11.655 11.2903 11.2847 11.2903Z\",\n    fill: \"currentColor\"\n  }));\n}));\nSortAmountUpAltIcon.displayName = 'SortAmountUpAltIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/sortamountupalt/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/spinner/index.esm.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/spinner/index.esm.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   SpinnerIcon: () => (/* binding */ SpinnerIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar SpinnerIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M6.99701 14C5.85441 13.999 4.72939 13.7186 3.72012 13.1832C2.71084 12.6478 1.84795 11.8737 1.20673 10.9284C0.565504 9.98305 0.165424 8.89526 0.041387 7.75989C-0.0826496 6.62453 0.073125 5.47607 0.495122 4.4147C0.917119 3.35333 1.59252 2.4113 2.46241 1.67077C3.33229 0.930247 4.37024 0.413729 5.4857 0.166275C6.60117 -0.0811796 7.76026 -0.0520535 8.86188 0.251112C9.9635 0.554278 10.9742 1.12227 11.8057 1.90555C11.915 2.01493 11.9764 2.16319 11.9764 2.31778C11.9764 2.47236 11.915 2.62062 11.8057 2.73C11.7521 2.78503 11.688 2.82877 11.6171 2.85864C11.5463 2.8885 11.4702 2.90389 11.3933 2.90389C11.3165 2.90389 11.2404 2.8885 11.1695 2.85864C11.0987 2.82877 11.0346 2.78503 10.9809 2.73C9.9998 1.81273 8.73246 1.26138 7.39226 1.16876C6.05206 1.07615 4.72086 1.44794 3.62279 2.22152C2.52471 2.99511 1.72683 4.12325 1.36345 5.41602C1.00008 6.70879 1.09342 8.08723 1.62775 9.31926C2.16209 10.5513 3.10478 11.5617 4.29713 12.1803C5.48947 12.7989 6.85865 12.988 8.17414 12.7157C9.48963 12.4435 10.6711 11.7264 11.5196 10.6854C12.3681 9.64432 12.8319 8.34282 12.8328 7C12.8328 6.84529 12.8943 6.69692 13.0038 6.58752C13.1132 6.47812 13.2616 6.41667 13.4164 6.41667C13.5712 6.41667 13.7196 6.47812 13.8291 6.58752C13.9385 6.69692 14 6.84529 14 7C14 8.85651 13.2622 10.637 11.9489 11.9497C10.6356 13.2625 8.85432 14 6.99701 14Z\",\n    fill: \"currentColor\"\n  }));\n}));\nSpinnerIcon.displayName = 'SpinnerIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/spinner/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/times/index.esm.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/times/index.esm.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   TimesIcon: () => (/* binding */ TimesIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar TimesIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    d: \"M8.01186 7.00933L12.27 2.75116C12.341 2.68501 12.398 2.60524 12.4375 2.51661C12.4769 2.42798 12.4982 2.3323 12.4999 2.23529C12.5016 2.13827 12.4838 2.0419 12.4474 1.95194C12.4111 1.86197 12.357 1.78024 12.2884 1.71163C12.2198 1.64302 12.138 1.58893 12.0481 1.55259C11.9581 1.51625 11.8617 1.4984 11.7647 1.50011C11.6677 1.50182 11.572 1.52306 11.4834 1.56255C11.3948 1.60204 11.315 1.65898 11.2488 1.72997L6.99067 5.98814L2.7325 1.72997C2.59553 1.60234 2.41437 1.53286 2.22718 1.53616C2.03999 1.53946 1.8614 1.61529 1.72901 1.74767C1.59663 1.88006 1.5208 2.05865 1.5175 2.24584C1.5142 2.43303 1.58368 2.61419 1.71131 2.75116L5.96948 7.00933L1.71131 11.2675C1.576 11.403 1.5 11.5866 1.5 11.7781C1.5 11.9696 1.576 12.1532 1.71131 12.2887C1.84679 12.424 2.03043 12.5 2.2219 12.5C2.41338 12.5 2.59702 12.424 2.7325 12.2887L6.99067 8.03052L11.2488 12.2887C11.3843 12.424 11.568 12.5 11.7594 12.5C11.9509 12.5 12.1346 12.424 12.27 12.2887C12.4053 12.1532 12.4813 11.9696 12.4813 11.7781C12.4813 11.5866 12.4053 11.403 12.27 11.2675L8.01186 7.00933Z\",\n    fill: \"currentColor\"\n  }));\n}));\nTimesIcon.displayName = 'TimesIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/times/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/trash/index.esm.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/trash/index.esm.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   TrashIcon: () => (/* binding */ TrashIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar TrashIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M3.44802 13.9955H10.552C10.8056 14.0129 11.06 13.9797 11.3006 13.898C11.5412 13.8163 11.7632 13.6877 11.9537 13.5196C12.1442 13.3515 12.2995 13.1473 12.4104 12.9188C12.5213 12.6903 12.5858 12.442 12.6 12.1884V4.36041H13.4C13.5591 4.36041 13.7117 4.29722 13.8243 4.18476C13.9368 4.07229 14 3.91976 14 3.76071C14 3.60166 13.9368 3.44912 13.8243 3.33666C13.7117 3.22419 13.5591 3.16101 13.4 3.16101H12.0537C12.0203 3.1557 11.9863 3.15299 11.952 3.15299C11.9178 3.15299 11.8838 3.1557 11.8503 3.16101H11.2285C11.2421 3.10893 11.2487 3.05513 11.248 3.00106V1.80966C11.2171 1.30262 10.9871 0.828306 10.608 0.48989C10.229 0.151475 9.73159 -0.0236625 9.22402 0.00257442H4.77602C4.27251 -0.0171866 3.78126 0.160868 3.40746 0.498617C3.03365 0.836366 2.807 1.30697 2.77602 1.80966V3.00106C2.77602 3.0556 2.78346 3.10936 2.79776 3.16101H0.6C0.521207 3.16101 0.443185 3.17652 0.37039 3.20666C0.297595 3.2368 0.231451 3.28097 0.175736 3.33666C0.120021 3.39235 0.0758251 3.45846 0.0456722 3.53121C0.0155194 3.60397 0 3.68196 0 3.76071C0 3.83946 0.0155194 3.91744 0.0456722 3.9902C0.0758251 4.06296 0.120021 4.12907 0.175736 4.18476C0.231451 4.24045 0.297595 4.28462 0.37039 4.31476C0.443185 4.3449 0.521207 4.36041 0.6 4.36041H1.40002V12.1884C1.41426 12.442 1.47871 12.6903 1.58965 12.9188C1.7006 13.1473 1.85582 13.3515 2.04633 13.5196C2.23683 13.6877 2.45882 13.8163 2.69944 13.898C2.94005 13.9797 3.1945 14.0129 3.44802 13.9955ZM2.60002 4.36041H11.304V12.1884C11.304 12.5163 10.952 12.7961 10.504 12.7961H3.40002C2.97602 12.7961 2.60002 12.5163 2.60002 12.1884V4.36041ZM3.95429 3.16101C3.96859 3.10936 3.97602 3.0556 3.97602 3.00106V1.80966C3.97602 1.48183 4.33602 1.20197 4.77602 1.20197H9.24802C9.66403 1.20197 10.048 1.48183 10.048 1.80966V3.00106C10.0473 3.05515 10.054 3.10896 10.0678 3.16101H3.95429ZM5.57571 10.997C5.41731 10.995 5.26597 10.9311 5.15395 10.8191C5.04193 10.7071 4.97808 10.5558 4.97601 10.3973V6.77517C4.97601 6.61612 5.0392 6.46359 5.15166 6.35112C5.26413 6.23866 5.41666 6.17548 5.57571 6.17548C5.73476 6.17548 5.8873 6.23866 5.99976 6.35112C6.11223 6.46359 6.17541 6.61612 6.17541 6.77517V10.3894C6.17647 10.4688 6.16174 10.5476 6.13208 10.6213C6.10241 10.695 6.05841 10.762 6.00261 10.8186C5.94682 10.8751 5.88035 10.92 5.80707 10.9506C5.73378 10.9813 5.65514 10.9971 5.57571 10.997ZM7.99968 10.8214C8.11215 10.9339 8.26468 10.997 8.42373 10.997C8.58351 10.9949 8.73604 10.93 8.84828 10.8163C8.96052 10.7025 9.02345 10.5491 9.02343 10.3894V6.77517C9.02343 6.61612 8.96025 6.46359 8.84778 6.35112C8.73532 6.23866 8.58278 6.17548 8.42373 6.17548C8.26468 6.17548 8.11215 6.23866 7.99968 6.35112C7.88722 6.46359 7.82404 6.61612 7.82404 6.77517V10.3973C7.82404 10.5564 7.88722 10.7089 7.99968 10.8214Z\",\n    fill: \"currentColor\"\n  }));\n}));\nTrashIcon.displayName = 'TrashIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/trash/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/windowmaximize/index.esm.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/windowmaximize/index.esm.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   WindowMaximizeIcon: () => (/* binding */ WindowMaximizeIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar WindowMaximizeIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14ZM9.77805 7.42192C9.89013 7.534 10.0415 7.59788 10.2 7.59995C10.3585 7.59788 10.5099 7.534 10.622 7.42192C10.7341 7.30985 10.798 7.15844 10.8 6.99995V3.94242C10.8066 3.90505 10.8096 3.86689 10.8089 3.82843C10.8079 3.77159 10.7988 3.7157 10.7824 3.6623C10.756 3.55552 10.701 3.45698 10.622 3.37798C10.5099 3.2659 10.3585 3.20202 10.2 3.19995H7.00002C6.84089 3.19995 6.68828 3.26317 6.57576 3.37569C6.46324 3.48821 6.40002 3.64082 6.40002 3.79995C6.40002 3.95908 6.46324 4.11169 6.57576 4.22422C6.68828 4.33674 6.84089 4.39995 7.00002 4.39995H8.80006L6.19997 7.00005C6.10158 7.11005 6.04718 7.25246 6.04718 7.40005C6.04718 7.54763 6.10158 7.69004 6.19997 7.80005C6.30202 7.91645 6.44561 7.98824 6.59997 8.00005C6.75432 7.98824 6.89791 7.91645 6.99997 7.80005L9.60002 5.26841V6.99995C9.6021 7.15844 9.66598 7.30985 9.77805 7.42192ZM1.4 14H3.8C4.17066 13.9979 4.52553 13.8498 4.78763 13.5877C5.04973 13.3256 5.1979 12.9707 5.2 12.6V10.2C5.1979 9.82939 5.04973 9.47452 4.78763 9.21242C4.52553 8.95032 4.17066 8.80215 3.8 8.80005H1.4C1.02934 8.80215 0.674468 8.95032 0.412371 9.21242C0.150274 9.47452 0.00210008 9.82939 0 10.2V12.6C0.00210008 12.9707 0.150274 13.3256 0.412371 13.5877C0.674468 13.8498 1.02934 13.9979 1.4 14ZM1.25858 10.0586C1.29609 10.0211 1.34696 10 1.4 10H3.8C3.85304 10 3.90391 10.0211 3.94142 10.0586C3.97893 10.0961 4 10.147 4 10.2V12.6C4 12.6531 3.97893 12.704 3.94142 12.7415C3.90391 12.779 3.85304 12.8 3.8 12.8H1.4C1.34696 12.8 1.29609 12.779 1.25858 12.7415C1.22107 12.704 1.2 12.6531 1.2 12.6V10.2C1.2 10.147 1.22107 10.0961 1.25858 10.0586Z\",\n    fill: \"currentColor\"\n  }));\n}));\nWindowMaximizeIcon.displayName = 'WindowMaximizeIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/windowmaximize/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/icons/windowminimize/index.esm.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/icons/windowminimize/index.esm.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   WindowMinimizeIcon: () => (/* binding */ WindowMinimizeIcon)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/iconbase */ \"../react-ui/node_modules/primereact/iconbase/iconbase.esm.js\");\n'use client';\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nvar WindowMinimizeIcon = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var pti = primereact_iconbase__WEBPACK_IMPORTED_MODULE_1__.IconBase.getPTI(inProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"svg\", _extends({\n    ref: ref,\n    width: \"14\",\n    height: \"14\",\n    viewBox: \"0 0 14 14\",\n    fill: \"none\",\n    xmlns: \"http://www.w3.org/2000/svg\"\n  }, pti), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"path\", {\n    fillRule: \"evenodd\",\n    clipRule: \"evenodd\",\n    d: \"M11.8 0H2.2C1.61652 0 1.05694 0.231785 0.644365 0.644365C0.231785 1.05694 0 1.61652 0 2.2V7C0 7.15913 0.063214 7.31174 0.175736 7.42426C0.288258 7.53679 0.44087 7.6 0.6 7.6C0.75913 7.6 0.911742 7.53679 1.02426 7.42426C1.13679 7.31174 1.2 7.15913 1.2 7V2.2C1.2 1.93478 1.30536 1.68043 1.49289 1.49289C1.68043 1.30536 1.93478 1.2 2.2 1.2H11.8C12.0652 1.2 12.3196 1.30536 12.5071 1.49289C12.6946 1.68043 12.8 1.93478 12.8 2.2V11.8C12.8 12.0652 12.6946 12.3196 12.5071 12.5071C12.3196 12.6946 12.0652 12.8 11.8 12.8H7C6.84087 12.8 6.68826 12.8632 6.57574 12.9757C6.46321 13.0883 6.4 13.2409 6.4 13.4C6.4 13.5591 6.46321 13.7117 6.57574 13.8243C6.68826 13.9368 6.84087 14 7 14H11.8C12.3835 14 12.9431 13.7682 13.3556 13.3556C13.7682 12.9431 14 12.3835 14 11.8V2.2C14 1.61652 13.7682 1.05694 13.3556 0.644365C12.9431 0.231785 12.3835 0 11.8 0ZM6.368 7.952C6.44137 7.98326 6.52025 7.99958 6.6 8H9.8C9.95913 8 10.1117 7.93678 10.2243 7.82426C10.3368 7.71174 10.4 7.55913 10.4 7.4C10.4 7.24087 10.3368 7.08826 10.2243 6.97574C10.1117 6.86321 9.95913 6.8 9.8 6.8H8.048L10.624 4.224C10.73 4.11026 10.7877 3.95982 10.7849 3.80438C10.7822 3.64894 10.7192 3.50063 10.6093 3.3907C10.4994 3.28077 10.3511 3.2178 10.1956 3.21506C10.0402 3.21232 9.88974 3.27002 9.776 3.376L7.2 5.952V4.2C7.2 4.04087 7.13679 3.88826 7.02426 3.77574C6.91174 3.66321 6.75913 3.6 6.6 3.6C6.44087 3.6 6.28826 3.66321 6.17574 3.77574C6.06321 3.88826 6 4.04087 6 4.2V7.4C6.00042 7.47975 6.01674 7.55862 6.048 7.632C6.07656 7.70442 6.11971 7.7702 6.17475 7.82524C6.2298 7.88029 6.29558 7.92344 6.368 7.952ZM1.4 8.80005H3.8C4.17066 8.80215 4.52553 8.95032 4.78763 9.21242C5.04973 9.47452 5.1979 9.82939 5.2 10.2V12.6C5.1979 12.9707 5.04973 13.3256 4.78763 13.5877C4.52553 13.8498 4.17066 13.9979 3.8 14H1.4C1.02934 13.9979 0.674468 13.8498 0.412371 13.5877C0.150274 13.3256 0.00210008 12.9707 0 12.6V10.2C0.00210008 9.82939 0.150274 9.47452 0.412371 9.21242C0.674468 8.95032 1.02934 8.80215 1.4 8.80005ZM3.94142 12.7415C3.97893 12.704 4 12.6531 4 12.6V10.2C4 10.147 3.97893 10.0961 3.94142 10.0586C3.90391 10.0211 3.85304 10 3.8 10H1.4C1.34696 10 1.29609 10.0211 1.25858 10.0586C1.22107 10.0961 1.2 10.147 1.2 10.2V12.6C1.2 12.6531 1.22107 12.704 1.25858 12.7415C1.29609 12.779 1.34696 12.8 1.4 12.8H3.8C3.85304 12.8 3.90391 12.779 3.94142 12.7415Z\",\n    fill: \"currentColor\"\n  }));\n}));\nWindowMinimizeIcon.displayName = 'WindowMinimizeIcon';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/icons/windowminimize/index.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/inputnumber/inputnumber.esm.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/inputnumber/inputnumber.esm.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   InputNumber: () => (/* binding */ InputNumber)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/componentbase */ \"../react-ui/node_modules/primereact/componentbase/componentbase.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_icons_angledown__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/icons/angledown */ \"../react-ui/node_modules/primereact/icons/angledown/index.esm.js\");\n/* harmony import */ var primereact_icons_angleup__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! primereact/icons/angleup */ \"../react-ui/node_modules/primereact/icons/angleup/index.esm.js\");\n/* harmony import */ var primereact_inputtext__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! primereact/inputtext */ \"../react-ui/node_modules/primereact/inputtext/inputtext.esm.js\");\n/* harmony import */ var primereact_ripple__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! primereact/ripple */ \"../react-ui/node_modules/primereact/ripple/ripple.esm.js\");\n/* harmony import */ var primereact_tooltip__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! primereact/tooltip */ \"../react-ui/node_modules/primereact/tooltip/tooltip.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n'use client';\n\n\n\n\n\n\n\n\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toConsumableArray(r) {\n  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nvar classes = {\n  root: function root(_ref) {\n    var props = _ref.props,\n      focusedState = _ref.focusedState,\n      stacked = _ref.stacked,\n      horizontal = _ref.horizontal,\n      vertical = _ref.vertical;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_9__.classNames)('p-inputnumber p-component p-inputwrapper', {\n      'p-inputwrapper-filled': props.value != null && props.value.toString().length > 0,\n      'p-inputwrapper-focus': focusedState,\n      'p-inputnumber-buttons-stacked': stacked,\n      'p-inputnumber-buttons-horizontal': horizontal,\n      'p-inputnumber-buttons-vertical': vertical,\n      'p-invalid': props.invalid\n    });\n  },\n  input: function input(_ref2) {\n    var props = _ref2.props,\n      context = _ref2.context;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_9__.classNames)('p-inputnumber-input', {\n      'p-variant-filled': props.variant ? props.variant === 'filled' : context && context.inputStyle === 'filled'\n    });\n  },\n  buttonGroup: 'p-inputnumber-button-group',\n  incrementButton: function incrementButton(_ref3) {\n    var props = _ref3.props;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_9__.classNames)('p-inputnumber-button p-inputnumber-button-up p-button p-button-icon-only p-component', {\n      'p-disabled': props.disabled\n    });\n  },\n  incrementIcon: 'p-button-icon',\n  decrementButton: function decrementButton(_ref4) {\n    var props = _ref4.props;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_9__.classNames)('p-inputnumber-button p-inputnumber-button-down p-button p-button-icon-only p-component', {\n      'p-disabled': props.disabled\n    });\n  },\n  decrementIcon: 'p-button-icon'\n};\nvar styles = \"\\n@layer primereact {\\n    .p-inputnumber {\\n        display: inline-flex;\\n    }\\n    \\n    .p-inputnumber-button {\\n        display: flex;\\n        align-items: center;\\n        justify-content: center;\\n        flex: 0 0 auto;\\n    }\\n    \\n    .p-inputnumber-buttons-stacked .p-button.p-inputnumber-button .p-button-label,\\n    .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button .p-button-label {\\n        display: none;\\n    }\\n    \\n    .p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-up {\\n        border-top-left-radius: 0;\\n        border-bottom-left-radius: 0;\\n        border-bottom-right-radius: 0;\\n        padding: 0;\\n    }\\n    \\n    .p-inputnumber-buttons-stacked .p-inputnumber-input {\\n        border-top-right-radius: 0;\\n        border-bottom-right-radius: 0;\\n    }\\n    \\n    .p-inputnumber-buttons-stacked .p-button.p-inputnumber-button-down {\\n        border-top-left-radius: 0;\\n        border-top-right-radius: 0;\\n        border-bottom-left-radius: 0;\\n        padding: 0;\\n    }\\n    \\n    .p-inputnumber-buttons-stacked .p-inputnumber-button-group {\\n        display: flex;\\n        flex-direction: column;\\n    }\\n    \\n    .p-inputnumber-buttons-stacked .p-inputnumber-button-group .p-button.p-inputnumber-button {\\n        flex: 1 1 auto;\\n    }\\n    \\n    .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-up {\\n        order: 3;\\n        border-top-left-radius: 0;\\n        border-bottom-left-radius: 0;\\n    }\\n    \\n    .p-inputnumber-buttons-horizontal .p-inputnumber-input {\\n        order: 2;\\n        border-radius: 0;\\n    }\\n    \\n    .p-inputnumber-buttons-horizontal .p-button.p-inputnumber-button-down {\\n        order: 1;\\n        border-top-right-radius: 0;\\n        border-bottom-right-radius: 0;\\n    }\\n    \\n    .p-inputnumber-buttons-vertical {\\n        flex-direction: column;\\n    }\\n    \\n    .p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-up {\\n        order: 1;\\n        border-bottom-left-radius: 0;\\n        border-bottom-right-radius: 0;\\n        width: 100%;\\n    }\\n    \\n    .p-inputnumber-buttons-vertical .p-inputnumber-input {\\n        order: 2;\\n        border-radius: 0;\\n        text-align: center;\\n    }\\n    \\n    .p-inputnumber-buttons-vertical .p-button.p-inputnumber-button-down {\\n        order: 3;\\n        border-top-left-radius: 0;\\n        border-top-right-radius: 0;\\n        width: 100%;\\n    }\\n    \\n    .p-inputnumber-input {\\n        flex: 1 1 auto;\\n    }\\n    \\n    .p-fluid .p-inputnumber {\\n        width: 100%;\\n    }\\n    \\n    .p-fluid .p-inputnumber .p-inputnumber-input {\\n        width: 1%;\\n    }\\n    \\n    .p-fluid .p-inputnumber-buttons-vertical .p-inputnumber-input {\\n        width: 100%;\\n    }\\n}\\n\";\nvar InputNumberBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'InputNumber',\n    __parentMetadata: null,\n    allowEmpty: true,\n    ariaLabelledBy: null,\n    autoFocus: false,\n    buttonLayout: 'stacked',\n    className: null,\n    currency: undefined,\n    currencyDisplay: undefined,\n    decrementButtonClassName: null,\n    decrementButtonIcon: null,\n    disabled: false,\n    format: true,\n    id: null,\n    incrementButtonClassName: null,\n    incrementButtonIcon: null,\n    inputClassName: null,\n    inputId: null,\n    inputMode: null,\n    inputRef: null,\n    inputStyle: null,\n    invalid: false,\n    variant: null,\n    locale: undefined,\n    localeMatcher: undefined,\n    max: null,\n    maxFractionDigits: undefined,\n    maxLength: null,\n    min: null,\n    minFractionDigits: undefined,\n    mode: 'decimal',\n    name: null,\n    onBlur: null,\n    onChange: null,\n    onFocus: null,\n    onKeyDown: null,\n    onKeyUp: null,\n    onValueChange: null,\n    pattern: null,\n    placeholder: null,\n    prefix: null,\n    readOnly: false,\n    required: false,\n    roundingMode: undefined,\n    showButtons: false,\n    size: null,\n    step: 1,\n    style: null,\n    suffix: null,\n    tabIndex: null,\n    tooltip: null,\n    tooltipOptions: null,\n    type: 'text',\n    useGrouping: true,\n    value: null,\n    children: undefined\n  },\n  css: {\n    classes: classes,\n    styles: styles\n  }\n});\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar InputNumber = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = InputNumberBase.getProps(inProps, context);\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    focusedState = _React$useState2[0],\n    setFocusedState = _React$useState2[1];\n  var metaData = _objectSpread(_objectSpread({\n    props: props\n  }, props.__parentMetadata), {}, {\n    state: {\n      focused: focusedState\n    }\n  });\n  var _InputNumberBase$setM = InputNumberBase.setMetaData(metaData),\n    ptm = _InputNumberBase$setM.ptm,\n    cx = _InputNumberBase$setM.cx,\n    isUnstyled = _InputNumberBase$setM.isUnstyled;\n  (0,primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.useHandleStyle)(InputNumberBase.css.styles, isUnstyled, {\n    name: 'inputnumber'\n  });\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var inputRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var timer = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var lastValue = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var numberFormat = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var groupChar = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var prefixChar = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var suffixChar = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var isSpecialChar = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _numeral = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _group = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _minusSign = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _currency = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _decimal = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _decimalSeparator = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _suffix = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _prefix = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _index = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var isFocusedByClick = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var _locale = props.locale || context && context.locale || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].locale;\n  var stacked = props.showButtons && props.buttonLayout === 'stacked';\n  var horizontal = props.showButtons && props.buttonLayout === 'horizontal';\n  var vertical = props.showButtons && props.buttonLayout === 'vertical';\n  var inputMode = props.inputMode || (props.mode === 'decimal' && !props.minFractionDigits && !props.maxFractionDigits ? 'numeric' : 'decimal');\n  var getOptions = function getOptions() {\n    var _props$minFractionDig, _props$maxFractionDig;\n    return {\n      localeMatcher: props.localeMatcher,\n      style: props.mode,\n      currency: props.currency,\n      currencyDisplay: props.currencyDisplay,\n      useGrouping: props.useGrouping,\n      minimumFractionDigits: (_props$minFractionDig = props.minFractionDigits) !== null && _props$minFractionDig !== void 0 ? _props$minFractionDig : undefined,\n      maximumFractionDigits: (_props$maxFractionDig = props.maxFractionDigits) !== null && _props$maxFractionDig !== void 0 ? _props$maxFractionDig : undefined,\n      roundingMode: props.roundingMode\n    };\n  };\n  var constructParser = function constructParser() {\n    numberFormat.current = new Intl.NumberFormat(_locale, getOptions());\n    var numerals = _toConsumableArray(new Intl.NumberFormat(_locale, {\n      useGrouping: false\n    }).format(9876543210)).reverse();\n    var index = new Map(numerals.map(function (d, i) {\n      return [d, i];\n    }));\n    _numeral.current = new RegExp(\"[\".concat(numerals.join(''), \"]\"), 'g');\n    _group.current = getGroupingExpression(); // regular expression /[,]/g, /[.]/g\n    _minusSign.current = getMinusSignExpression(); // regular expression /[-]/g\n    _currency.current = getCurrencyExpression(); // regular expression for currency (e.g. /[$]/g, /[€]/g, /[]/g and more)\n    _decimal.current = getDecimalExpression(); // regular expression /[,]/g, /[.]/g, /[]/g\n    _decimalSeparator.current = getDecimalSeparator(); // current decimal separator  '.', ','\n    _suffix.current = getSuffixExpression(); // regular expression for suffix (e.g. /℃/g)\n    _prefix.current = getPrefixExpression(); // regular expression for prefix (e.g. /\\ days/g)\n    _index.current = function (d) {\n      return index.get(d);\n    };\n  };\n  var escapeRegExp = function escapeRegExp(text) {\n    return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n  };\n\n  /**\n   * get decimal separator in current locale\n   */\n  var getDecimalSeparator = function getDecimalSeparator() {\n    return new Intl.NumberFormat(_locale, {\n      useGrouping: false\n    }).format(1.1).trim().replace(_numeral.current, '');\n  };\n  var getDecimalExpression = function getDecimalExpression() {\n    var formatter = new Intl.NumberFormat(_locale, _objectSpread(_objectSpread({}, getOptions()), {}, {\n      useGrouping: false\n    }));\n    return new RegExp(\"[\".concat(formatter.format(1.1).replace(_currency.current, '').trim().replace(_numeral.current, ''), \"]\"), 'g');\n  };\n  var getGroupingExpression = function getGroupingExpression() {\n    var formatter = new Intl.NumberFormat(_locale, {\n      useGrouping: true\n    });\n    groupChar.current = formatter.format(1000000).trim().replace(_numeral.current, '').charAt(0);\n    return new RegExp(\"[\".concat(groupChar.current, \"]\"), 'g');\n  };\n  var getMinusSignExpression = function getMinusSignExpression() {\n    var formatter = new Intl.NumberFormat(_locale, {\n      useGrouping: false\n    });\n    return new RegExp(\"[\".concat(formatter.format(-1).trim().replace(_numeral.current, ''), \"]\"), 'g');\n  };\n  var getCurrencyExpression = function getCurrencyExpression() {\n    if (props.currency) {\n      var formatter = new Intl.NumberFormat(_locale, {\n        style: 'currency',\n        currency: props.currency,\n        currencyDisplay: props.currencyDisplay,\n        minimumFractionDigits: 0,\n        maximumFractionDigits: 0,\n        roundingMode: props.roundingMode\n      });\n      return new RegExp(\"[\".concat(formatter.format(1).replace(/\\s/g, '').replace(_numeral.current, '').replace(_group.current, ''), \"]\"), 'g');\n    }\n    return new RegExp('[]', 'g');\n  };\n  var getPrefixExpression = function getPrefixExpression() {\n    if (props.prefix) {\n      prefixChar.current = props.prefix;\n    } else {\n      var formatter = new Intl.NumberFormat(_locale, {\n        style: props.mode,\n        currency: props.currency,\n        currencyDisplay: props.currencyDisplay\n      });\n      prefixChar.current = formatter.format(1).split('1')[0];\n    }\n    return new RegExp(\"\".concat(escapeRegExp(prefixChar.current || '')), 'g');\n  };\n  var getSuffixExpression = function getSuffixExpression() {\n    if (props.suffix) {\n      suffixChar.current = props.suffix;\n    } else {\n      var formatter = new Intl.NumberFormat(_locale, {\n        style: props.mode,\n        currency: props.currency,\n        currencyDisplay: props.currencyDisplay,\n        minimumFractionDigits: 0,\n        maximumFractionDigits: 0,\n        roundingMode: props.roundingMode\n      });\n      suffixChar.current = formatter.format(1).split('1')[1];\n    }\n    return new RegExp(\"\".concat(escapeRegExp(suffixChar.current || '')), 'g');\n  };\n  var formatValue = function formatValue(value) {\n    if (value != null) {\n      if (value === '-') {\n        // Minus sign\n        return value;\n      }\n      if (props.format) {\n        var formatter = new Intl.NumberFormat(_locale, getOptions());\n        var _formattedValue = formatter.format(value);\n        if (props.prefix) {\n          _formattedValue = props.prefix + _formattedValue;\n        }\n        if (props.suffix) {\n          _formattedValue = _formattedValue + props.suffix;\n        }\n        return _formattedValue;\n      }\n      return value.toString();\n    }\n    return '';\n  };\n  var parseValue = function parseValue(text) {\n    var filteredText = text.replace(_suffix.current, '').replace(_prefix.current, '').trim().replace(/\\s/g, '').replace(_currency.current, '').replace(_group.current, '').replace(_minusSign.current, '-').replace(_decimal.current, '.').replace(_numeral.current, _index.current);\n    if (filteredText) {\n      if (filteredText === '-') {\n        // Minus sign\n        return filteredText;\n      }\n      var parsedValue = +filteredText;\n      return isNaN(parsedValue) ? null : parsedValue;\n    }\n    return null;\n  };\n  var _repeat = function repeat(event, interval, dir) {\n    var i = interval || 500;\n    clearTimer();\n    timer.current = setTimeout(function () {\n      _repeat(event, 40, dir);\n    }, i);\n    spin(event, dir);\n  };\n  var spin = function spin(event, dir) {\n    if (inputRef.current) {\n      var step = props.step * dir;\n      var currentValue = parseValue(inputRef.current.value) || 0;\n      var newValue = validateValue(currentValue + step);\n      if (props.maxLength && props.maxLength < formatValue(newValue).length) {\n        return;\n      }\n\n      // #3913 onChange should be called before onValueChange\n      handleOnChange(event, currentValue, newValue);\n      // touch devices trigger the keyboard to display because of setSelectionRange\n      !primereact_utils__WEBPACK_IMPORTED_MODULE_9__.DomHandler.isTouchDevice() && updateInput(newValue, null, 'spin');\n      updateModel(event, newValue);\n    }\n  };\n  var onUpButtonMouseDown = function onUpButtonMouseDown(event) {\n    if (!props.disabled && !props.readOnly) {\n      if (!primereact_utils__WEBPACK_IMPORTED_MODULE_9__.DomHandler.isTouchDevice()) {\n        primereact_utils__WEBPACK_IMPORTED_MODULE_9__.DomHandler.focus(inputRef.current, props.autoFocus);\n      }\n      _repeat(event, null, 1);\n      event.preventDefault();\n    }\n  };\n  var onUpButtonMouseUp = function onUpButtonMouseUp() {\n    if (!props.disabled && !props.readOnly) {\n      clearTimer();\n    }\n  };\n  var onUpButtonMouseLeave = function onUpButtonMouseLeave() {\n    if (!props.disabled && !props.readOnly) {\n      clearTimer();\n    }\n  };\n  var onUpButtonKeyUp = function onUpButtonKeyUp() {\n    if (!props.disabled && !props.readOnly) {\n      clearTimer();\n    }\n  };\n  var onUpButtonKeyDown = function onUpButtonKeyDown(event) {\n    if (!props.disabled && !props.readOnly && (event.keyCode === 32 || event.keyCode === 13)) {\n      _repeat(event, null, 1);\n    }\n  };\n  var onDownButtonMouseDown = function onDownButtonMouseDown(event) {\n    if (!props.disabled && !props.readOnly) {\n      if (!primereact_utils__WEBPACK_IMPORTED_MODULE_9__.DomHandler.isTouchDevice()) {\n        primereact_utils__WEBPACK_IMPORTED_MODULE_9__.DomHandler.focus(inputRef.current, props.autoFocus);\n      }\n      _repeat(event, null, -1);\n      event.preventDefault();\n    }\n  };\n  var onDownButtonMouseUp = function onDownButtonMouseUp() {\n    if (!props.disabled && !props.readOnly) {\n      clearTimer();\n    }\n  };\n  var onDownButtonMouseLeave = function onDownButtonMouseLeave() {\n    if (!props.disabled && !props.readOnly) {\n      clearTimer();\n    }\n  };\n  var onDownButtonKeyUp = function onDownButtonKeyUp() {\n    if (!props.disabled && !props.readOnly) {\n      clearTimer();\n    }\n  };\n  var onDownButtonKeyDown = function onDownButtonKeyDown(event) {\n    if (!props.disabled && !props.readOnly && (event.keyCode === 32 || event.keyCode === 13)) {\n      _repeat(event, null, -1);\n    }\n  };\n  var onInput = function onInput(event) {\n    if (props.disabled || props.readOnly) {\n      return;\n    }\n    if (isSpecialChar.current) {\n      event.target.value = lastValue.current;\n      isSpecialChar.current = false;\n    }\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_9__.DomHandler.isAndroid()) {\n      return;\n    }\n\n    // #6324 Chrome is allowing accent-dead characters through...\n    var inputType = event.nativeEvent.inputType;\n    var data = event.nativeEvent.data;\n    if (inputType === 'insertText' && /\\D/.test(data)) {\n      event.target.value = lastValue.current;\n    }\n  };\n  var onInputAndroidKey = function onInputAndroidKey(event) {\n    if (!primereact_utils__WEBPACK_IMPORTED_MODULE_9__.DomHandler.isAndroid() || props.disabled || props.readOnly) {\n      return;\n    }\n    if (props.onKeyUp) {\n      props.onKeyUp(event);\n\n      // do not continue if the user defined event wants to prevent\n      if (event.defaultPrevented) {\n        return;\n      }\n    }\n    var code = event.which || event.keyCode;\n    if (code !== 13) {\n      // to submit a form\n      event.preventDefault();\n    }\n    var _char = String.fromCharCode(code);\n    var _isDecimalSign = isDecimalSign(_char);\n    var _isMinusSign = isMinusSign(_char);\n    if (48 <= code && code <= 57 || _isMinusSign || _isDecimalSign) {\n      insert(event, _char, {\n        isDecimalSign: _isDecimalSign,\n        isMinusSign: _isMinusSign\n      });\n    } else {\n      updateValue(event, event.target.value, null, 'delete-single');\n    }\n  };\n  var onInputKeyDown = function onInputKeyDown(event) {\n    if (props.disabled || props.readOnly) {\n      return;\n    }\n    if (event.altKey || event.ctrlKey || event.metaKey) {\n      // #7039 Treat cut as normal character\n      if (event.key.toLowerCase() === 'x' && (event.ctrlKey || event.metaKey)) {\n        isSpecialChar.current = false;\n      } else {\n        isSpecialChar.current = true;\n      }\n      return;\n    }\n    if (props.onKeyDown) {\n      props.onKeyDown(event);\n\n      // Do not continue if the user-defined event wants to prevent\n      if (event.defaultPrevented) {\n        return;\n      }\n    }\n    lastValue.current = event.target.value;\n\n    // Android is handled specially in onInputAndroidKey\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_9__.DomHandler.isAndroid()) {\n      return;\n    }\n    var selectionStart = event.target.selectionStart;\n    var selectionEnd = event.target.selectionEnd;\n    var inputValue = event.target.value;\n    var newValueStr = null;\n    switch (event.code) {\n      //up\n      case 'ArrowUp':\n        spin(event, 1);\n        event.preventDefault();\n        break;\n\n      //down\n      case 'ArrowDown':\n        spin(event, -1);\n        event.preventDefault();\n        break;\n\n      //left\n      case 'ArrowLeft':\n        if (!isNumeralChar(inputValue.charAt(selectionStart - 1))) {\n          event.preventDefault();\n        }\n        break;\n\n      //right\n      case 'ArrowRight':\n        if (!isNumeralChar(inputValue.charAt(selectionStart))) {\n          event.preventDefault();\n        }\n        break;\n\n      //enter and tab\n      case 'Tab':\n      case 'Enter':\n      case 'NumpadEnter':\n        newValueStr = validateValue(parseValue(inputValue));\n        inputRef.current.value = formatValue(newValueStr);\n        inputRef.current.setAttribute('aria-valuenow', newValueStr);\n        updateModel(event, newValueStr);\n        break;\n\n      //backspace\n      case 'Backspace':\n        event.preventDefault();\n        if (selectionStart === selectionEnd) {\n          var deleteChar = inputValue.charAt(selectionStart - 1);\n          if (isNumeralChar(deleteChar)) {\n            var _getDecimalCharIndexe = getDecimalCharIndexes(inputValue),\n              decimalCharIndex = _getDecimalCharIndexe.decimalCharIndex,\n              decimalCharIndexWithoutPrefix = _getDecimalCharIndexe.decimalCharIndexWithoutPrefix;\n            var decimalLength = getDecimalLength(inputValue);\n            if (_group.current.test(deleteChar)) {\n              _group.current.lastIndex = 0;\n              newValueStr = inputValue.slice(0, selectionStart - 2) + inputValue.slice(selectionStart - 1);\n            } else if (_decimal.current.test(deleteChar)) {\n              _decimal.current.lastIndex = 0;\n              if (decimalLength) {\n                inputRef.current.setSelectionRange(selectionStart - 1, selectionStart - 1);\n              } else {\n                newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n              }\n            } else if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n              var insertedText = isDecimalMode() && (props.minFractionDigits || 0) < decimalLength ? '' : '0';\n              newValueStr = inputValue.slice(0, selectionStart - 1) + insertedText + inputValue.slice(selectionStart);\n            } else if (decimalCharIndexWithoutPrefix === 1) {\n              newValueStr = inputValue.slice(0, selectionStart - 1) + '0' + inputValue.slice(selectionStart);\n              newValueStr = parseValue(newValueStr) > 0 ? newValueStr : '';\n            } else {\n              newValueStr = inputValue.slice(0, selectionStart - 1) + inputValue.slice(selectionStart);\n            }\n          } else if (_currency.current.test(deleteChar)) {\n            var _getCharIndexes = getCharIndexes(inputValue),\n              minusCharIndex = _getCharIndexes.minusCharIndex,\n              currencyCharIndex = _getCharIndexes.currencyCharIndex;\n            if (minusCharIndex === currencyCharIndex - 1) {\n              newValueStr = inputValue.slice(0, minusCharIndex) + inputValue.slice(selectionStart);\n            }\n          }\n          updateValue(event, newValueStr, null, 'delete-single');\n        } else {\n          newValueStr = deleteRange(inputValue, selectionStart, selectionEnd);\n          updateValue(event, newValueStr, null, 'delete-range');\n        }\n        break;\n\n      // del\n      case 'Delete':\n        event.preventDefault();\n        if (selectionStart === selectionEnd) {\n          var _deleteChar = inputValue.charAt(selectionStart);\n          var _getDecimalCharIndexe2 = getDecimalCharIndexes(inputValue),\n            _decimalCharIndex = _getDecimalCharIndexe2.decimalCharIndex,\n            _decimalCharIndexWithoutPrefix = _getDecimalCharIndexe2.decimalCharIndexWithoutPrefix;\n          if (isNumeralChar(_deleteChar)) {\n            var _decimalLength = getDecimalLength(inputValue);\n            if (_group.current.test(_deleteChar)) {\n              _group.current.lastIndex = 0;\n              newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 2);\n            } else if (_decimal.current.test(_deleteChar)) {\n              _decimal.current.lastIndex = 0;\n              if (_decimalLength) {\n                inputRef.current.setSelectionRange(selectionStart + 1, selectionStart + 1);\n              } else {\n                newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n              }\n            } else if (_decimalCharIndex > 0 && selectionStart > _decimalCharIndex) {\n              var _insertedText = isDecimalMode() && (props.minFractionDigits || 0) < _decimalLength ? '' : '0';\n              newValueStr = inputValue.slice(0, selectionStart) + _insertedText + inputValue.slice(selectionStart + 1);\n            } else if (_decimalCharIndexWithoutPrefix === 1) {\n              newValueStr = inputValue.slice(0, selectionStart) + '0' + inputValue.slice(selectionStart + 1);\n              newValueStr = parseValue(newValueStr) > 0 ? newValueStr : '';\n            } else {\n              newValueStr = inputValue.slice(0, selectionStart) + inputValue.slice(selectionStart + 1);\n            }\n          }\n          updateValue(event, newValueStr, null, 'delete-back-single');\n        } else {\n          newValueStr = deleteRange(inputValue, selectionStart, selectionEnd);\n          updateValue(event, newValueStr, null, 'delete-range');\n        }\n        break;\n      case 'End':\n        event.preventDefault();\n        if (!primereact_utils__WEBPACK_IMPORTED_MODULE_9__.ObjectUtils.isEmpty(props.max)) {\n          updateModel(event, props.max);\n        }\n        break;\n      case 'Home':\n        event.preventDefault();\n        if (!primereact_utils__WEBPACK_IMPORTED_MODULE_9__.ObjectUtils.isEmpty(props.min)) {\n          updateModel(event, props.min);\n        }\n        break;\n      default:\n        event.preventDefault();\n        var _char2 = event.key;\n        if (_char2) {\n          // get decimal separator in current locale\n          if (_char2 === '.') {\n            _char2 = _decimalSeparator.current;\n          }\n          var _isDecimalSign = isDecimalSign(_char2);\n          var _isMinusSign = isMinusSign(_char2);\n          if (Number(_char2) >= 0 && Number(_char2) <= 9 || _isMinusSign || _isDecimalSign) {\n            insert(event, _char2, {\n              isDecimalSign: _isDecimalSign,\n              isMinusSign: _isMinusSign\n            });\n          }\n        }\n        break;\n    }\n  };\n  var onPaste = function onPaste(event) {\n    event.preventDefault();\n    if (props.disabled || props.readOnly) {\n      return;\n    }\n    var data = (event.clipboardData || window.clipboardData).getData('Text');\n    if (data) {\n      var filteredData = parseValue(data);\n      if (filteredData != null) {\n        if (isFloat(filteredData)) {\n          var _formattedValue2 = formatValue(filteredData);\n          inputRef.current.value = _formattedValue2;\n          updateModel(event, filteredData);\n        } else {\n          insert(event, filteredData.toString());\n        }\n      }\n    }\n  };\n  var allowMinusSign = function allowMinusSign() {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_9__.ObjectUtils.isEmpty(props.min) || props.min < 0;\n  };\n  var isMinusSign = function isMinusSign(_char3) {\n    if (_minusSign.current.test(_char3) || _char3 === '-') {\n      _minusSign.current.lastIndex = 0;\n      return true;\n    }\n    return false;\n  };\n  var replaceDecimalSeparator = function replaceDecimalSeparator(val) {\n    if (isFloat(val)) {\n      return val.toString().replace(/\\.(?=[^.]*$)/, _decimalSeparator.current);\n    }\n    return val;\n  };\n  var isDecimalSign = function isDecimalSign(_char4) {\n    if (_decimal.current.test(_char4) || isFloat(_char4)) {\n      _decimal.current.lastIndex = 0;\n      return true;\n    }\n    return false;\n  };\n  var isDecimalMode = function isDecimalMode() {\n    return props.mode === 'decimal';\n  };\n  var isFloat = function isFloat(val) {\n    var formatter = new Intl.NumberFormat(_locale, getOptions());\n    var parseVal = parseValue(formatter.format(val));\n    if (parseVal === null) {\n      return false;\n    }\n    return parseVal % 1 !== 0;\n  };\n  var getDecimalCharIndexes = function getDecimalCharIndexes(val) {\n    var decimalCharIndex = val.search(_decimal.current);\n    _decimal.current.lastIndex = 0;\n    var filteredVal = val.replace(_prefix.current, '').trim().replace(/\\s/g, '').replace(_currency.current, '');\n    var decimalCharIndexWithoutPrefix = filteredVal.search(_decimal.current);\n    _decimal.current.lastIndex = 0;\n    return {\n      decimalCharIndex: decimalCharIndex,\n      decimalCharIndexWithoutPrefix: decimalCharIndexWithoutPrefix\n    };\n  };\n  var getCharIndexes = function getCharIndexes(val) {\n    var decimalCharIndex = val.search(_decimal.current);\n    _decimal.current.lastIndex = 0;\n    var minusCharIndex = val.search(_minusSign.current);\n    _minusSign.current.lastIndex = 0;\n    var suffixCharIndex = val.search(_suffix.current);\n    _suffix.current.lastIndex = 0;\n    var currencyCharIndex = val.search(_currency.current);\n    if (currencyCharIndex === 0 && prefixChar.current && prefixChar.current.length > 1) {\n      currencyCharIndex = prefixChar.current.trim().length;\n    }\n    _currency.current.lastIndex = 0;\n    return {\n      decimalCharIndex: decimalCharIndex,\n      minusCharIndex: minusCharIndex,\n      suffixCharIndex: suffixCharIndex,\n      currencyCharIndex: currencyCharIndex\n    };\n  };\n  var insert = function insert(event, text) {\n    var sign = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n      isDecimalSign: false,\n      isMinusSign: false\n    };\n    var minusCharIndexOnText = text.search(_minusSign.current);\n    _minusSign.current.lastIndex = 0;\n    if (!allowMinusSign() && minusCharIndexOnText !== -1) {\n      return;\n    }\n    var selectionStart = inputRef.current.selectionStart;\n    var selectionEnd = inputRef.current.selectionEnd;\n    var inputValue = inputRef.current.value.trim();\n    var _getCharIndexes2 = getCharIndexes(inputValue),\n      decimalCharIndex = _getCharIndexes2.decimalCharIndex,\n      minusCharIndex = _getCharIndexes2.minusCharIndex,\n      suffixCharIndex = _getCharIndexes2.suffixCharIndex,\n      currencyCharIndex = _getCharIndexes2.currencyCharIndex;\n    var maxFractionDigits = numberFormat.current.resolvedOptions().maximumFractionDigits;\n    var hasBoundOrAffix = props.min || props.max || props.suffix || props.prefix; //only exception\n    var newValueStr;\n    if (sign.isMinusSign) {\n      var isNewMinusSign = minusCharIndex === -1;\n\n      // #6522 - Selected negative value can't be overwritten with a minus ('-') symbol\n      if (selectionStart === 0 || selectionStart === currencyCharIndex + 1) {\n        newValueStr = inputValue;\n        if (isNewMinusSign || selectionEnd !== 0) {\n          newValueStr = insertText(inputValue, text, 0, selectionEnd);\n        }\n        updateValue(event, newValueStr, text, 'insert');\n      }\n    } else if (sign.isDecimalSign) {\n      if (decimalCharIndex > 0 && selectionStart === decimalCharIndex) {\n        updateValue(event, inputValue, text, 'insert');\n      } else if (decimalCharIndex > selectionStart && decimalCharIndex < selectionEnd) {\n        newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);\n        updateValue(event, newValueStr, text, 'insert');\n      } else if (decimalCharIndex === -1 && (maxFractionDigits || props.maxFractionDigits)) {\n        var allowedDecimal = inputMode !== 'numeric' || inputMode === 'numeric' && hasBoundOrAffix;\n        if (allowedDecimal) {\n          newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);\n          updateValue(event, newValueStr, text, 'insert');\n        }\n      }\n    } else {\n      var operation = selectionStart !== selectionEnd ? 'range-insert' : 'insert';\n      if (decimalCharIndex > 0 && selectionStart > decimalCharIndex) {\n        if (selectionStart + text.length - (decimalCharIndex + 1) <= maxFractionDigits) {\n          var charIndex = currencyCharIndex >= selectionStart ? currencyCharIndex - 1 : suffixCharIndex >= selectionStart ? suffixCharIndex : inputValue.length;\n          newValueStr = inputValue.slice(0, selectionStart) + text + inputValue.slice(selectionStart + text.length, charIndex) + inputValue.slice(charIndex);\n          updateValue(event, newValueStr, text, operation);\n        }\n      } else {\n        newValueStr = insertText(inputValue, text, selectionStart, selectionEnd);\n        updateValue(event, newValueStr, text, operation);\n      }\n    }\n  };\n  var replaceSuffix = function replaceSuffix(value) {\n    return value ? value.replace(_suffix.current, '').trim().replace(/\\s/g, '').replace(_currency.current, '') : value;\n  };\n  var insertText = function insertText(value, text, start, end) {\n    var textSplit = isDecimalSign(text) ? text : text.split(_decimal.current);\n    if (textSplit.length === 2) {\n      var decimalCharIndex = value.slice(start, end).search(_decimal.current);\n      _decimal.current.lastIndex = 0;\n      return decimalCharIndex > 0 ? value.slice(0, start) + formatValue(text) + replaceSuffix(value).slice(end) : value || formatValue(text);\n    } else if (isDecimalSign(text) && value.length === 0) {\n      return formatValue('0.');\n    } else if (end - start === value.length) {\n      return formatValue(text);\n    } else if (start === 0) {\n      var suffix = primereact_utils__WEBPACK_IMPORTED_MODULE_9__.ObjectUtils.isLetter(value[end]) ? end - 1 : end;\n      return text + value.slice(suffix);\n    } else if (end === value.length) {\n      return value.slice(0, start) + text;\n    }\n    var selectionValue = value.slice(start, end);\n    // Fix: if the suffix starts with a space, the input will be cleared after pasting\n    var space = /\\s$/.test(selectionValue) ? ' ' : '';\n    return value.slice(0, start) + text + space + value.slice(end);\n  };\n  var deleteRange = function deleteRange(value, start, end) {\n    var newValueStr;\n    if (end - start === value.length) {\n      newValueStr = '';\n    } else if (start === 0) {\n      newValueStr = value.slice(end);\n    } else if (end === value.length) {\n      newValueStr = value.slice(0, start);\n    } else {\n      newValueStr = value.slice(0, start) + value.slice(end);\n    }\n    return newValueStr;\n  };\n  var initCursor = function initCursor() {\n    var selectionStart = inputRef.current.selectionStart;\n    var inputValue = inputRef.current.value;\n    var valueLength = inputValue.length;\n    var index = null;\n\n    // remove prefix\n    var prefixLength = (prefixChar.current || '').length;\n    inputValue = inputValue.replace(_prefix.current, '');\n    selectionStart = selectionStart - prefixLength;\n    var _char5 = inputValue.charAt(selectionStart);\n    if (isNumeralChar(_char5)) {\n      return selectionStart + prefixLength;\n    }\n\n    //left\n    var i = selectionStart - 1;\n    while (i >= 0) {\n      _char5 = inputValue.charAt(i);\n      if (isNumeralChar(_char5)) {\n        index = i + prefixLength;\n        break;\n      } else {\n        i--;\n      }\n    }\n    if (index !== null) {\n      inputRef.current.setSelectionRange(index + 1, index + 1);\n    } else {\n      i = selectionStart;\n      while (i < valueLength) {\n        _char5 = inputValue.charAt(i);\n        if (isNumeralChar(_char5)) {\n          index = i + prefixLength;\n          break;\n        } else {\n          i++;\n        }\n      }\n      if (index !== null) {\n        inputRef.current.setSelectionRange(index, index);\n      }\n    }\n    return index || 0;\n  };\n  var onInputPointerDown = function onInputPointerDown() {\n    isFocusedByClick.current = true;\n  };\n  var onInputClick = function onInputClick() {\n    initCursor();\n  };\n  var isNumeralChar = function isNumeralChar(_char6) {\n    if (_char6.length === 1 && (_numeral.current.test(_char6) || _decimal.current.test(_char6) || _group.current.test(_char6) || _minusSign.current.test(_char6))) {\n      resetRegex();\n      return true;\n    }\n    return false;\n  };\n  var resetRegex = function resetRegex() {\n    _numeral.current.lastIndex = 0;\n    _decimal.current.lastIndex = 0;\n    _group.current.lastIndex = 0;\n    _minusSign.current.lastIndex = 0;\n  };\n  var updateValue = function updateValue(event, valueStr, insertedValueStr, operation) {\n    var currentValue = inputRef.current.value;\n    var newValue = null;\n    if (valueStr != null) {\n      newValue = evaluateEmpty(parseValue(valueStr));\n      updateInput(newValue, insertedValueStr, operation, valueStr);\n      handleOnChange(event, currentValue, newValue);\n    }\n  };\n  var evaluateEmpty = function evaluateEmpty(newValue) {\n    return !newValue && !props.allowEmpty ? props.min || 0 : newValue;\n  };\n  var handleOnChange = function handleOnChange(event, currentValue, newValue) {\n    if (props.onChange && isValueChanged(currentValue, newValue)) {\n      props.onChange({\n        originalEvent: event,\n        value: newValue\n      });\n    }\n  };\n  var isValueChanged = function isValueChanged(currentValue, newValue) {\n    if (newValue === null && currentValue !== null) {\n      return true;\n    }\n    if (newValue != null) {\n      var parsedCurrentValue = typeof currentValue === 'string' ? parseValue(currentValue) : currentValue;\n      return newValue !== parsedCurrentValue;\n    }\n    return false;\n  };\n  var validateValue = function validateValue(value) {\n    if (value === '-') {\n      return null;\n    }\n    return validateValueByLimit(value);\n  };\n  var validateValueByLimit = function validateValueByLimit(value) {\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_9__.ObjectUtils.isEmpty(value)) {\n      return null;\n    }\n    if (props.min !== null && value < props.min) {\n      return props.min;\n    }\n    if (props.max !== null && value > props.max) {\n      return props.max;\n    }\n    return value;\n  };\n  var updateInput = function updateInput(value, insertedValueStr, operation, valueStr) {\n    insertedValueStr = insertedValueStr || '';\n    var inputEl = inputRef.current;\n    var inputValue = inputEl.value;\n    var newValue = formatValue(value);\n    var currentLength = inputValue.length;\n    if (newValue !== valueStr) {\n      newValue = concatValues(newValue, valueStr);\n    }\n    if (currentLength === 0) {\n      inputEl.value = newValue;\n      inputEl.setSelectionRange(0, 0);\n      var index = initCursor();\n      var selectionEnd = index + insertedValueStr.length + (isDecimalSign(insertedValueStr) ? 1 : 0);\n      inputEl.setSelectionRange(selectionEnd, selectionEnd);\n    } else {\n      var selectionStart = inputEl.selectionStart;\n      var _selectionEnd = inputEl.selectionEnd;\n      if (props.maxLength && props.maxLength < newValue.length) {\n        return;\n      }\n      inputEl.value = newValue;\n      var newLength = newValue.length;\n      if (operation === 'range-insert') {\n        var startValue = parseValue((inputValue || '').slice(0, selectionStart));\n        var startValueStr = startValue !== null ? startValue.toString() : '';\n        var startExpr = startValueStr.split('').join(\"(\".concat(groupChar.current, \")?\"));\n        var sRegex = new RegExp(startExpr, 'g');\n        sRegex.test(newValue);\n        var tExpr = insertedValueStr.split('').join(\"(\".concat(groupChar.current, \")?\"));\n        var tRegex = new RegExp(tExpr, 'g');\n        tRegex.test(newValue.slice(sRegex.lastIndex));\n        _selectionEnd = sRegex.lastIndex + tRegex.lastIndex;\n        inputEl.setSelectionRange(_selectionEnd, _selectionEnd);\n      } else if (newLength === currentLength) {\n        if (operation === 'insert' || operation === 'delete-back-single') {\n          var newSelectionEnd = _selectionEnd;\n          if (insertedValueStr === '0') {\n            newSelectionEnd = _selectionEnd + 1;\n          } else {\n            newSelectionEnd = newSelectionEnd + Number(isDecimalSign(value) || isDecimalSign(insertedValueStr));\n          }\n          inputEl.setSelectionRange(newSelectionEnd, newSelectionEnd);\n        } else if (operation === 'delete-single') {\n          inputEl.setSelectionRange(_selectionEnd - 1, _selectionEnd - 1);\n        } else if (operation === 'delete-range' || operation === 'spin') {\n          inputEl.setSelectionRange(_selectionEnd, _selectionEnd);\n        }\n      } else if (operation === 'delete-back-single') {\n        var prevChar = inputValue.charAt(_selectionEnd - 1);\n        var nextChar = inputValue.charAt(_selectionEnd);\n        var diff = currentLength - newLength;\n        var isGroupChar = _group.current.test(nextChar);\n        if (isGroupChar && diff === 1) {\n          _selectionEnd = _selectionEnd + 1;\n        } else if (!isGroupChar && isNumeralChar(prevChar)) {\n          _selectionEnd = _selectionEnd + (-1 * diff + 1);\n        }\n        _group.current.lastIndex = 0;\n        inputEl.setSelectionRange(_selectionEnd, _selectionEnd);\n      } else if (inputValue === '-' && operation === 'insert') {\n        inputEl.setSelectionRange(0, 0);\n        var _index2 = initCursor();\n        var _selectionEnd2 = _index2 + insertedValueStr.length + 1;\n        inputEl.setSelectionRange(_selectionEnd2, _selectionEnd2);\n      } else {\n        _selectionEnd = _selectionEnd + (newLength - currentLength);\n        inputEl.setSelectionRange(_selectionEnd, _selectionEnd);\n      }\n    }\n    inputEl.setAttribute('aria-valuenow', value);\n  };\n  var updateInputValue = function updateInputValue(newValue) {\n    newValue = evaluateEmpty(newValue);\n    var inputEl = inputRef.current;\n    var value = inputEl.value;\n    var _formattedValue = formattedValue(newValue);\n    if (value !== _formattedValue) {\n      inputEl.value = _formattedValue;\n      inputEl.setAttribute('aria-valuenow', newValue);\n    }\n  };\n  var formattedValue = function formattedValue(val) {\n    return formatValue(evaluateEmpty(val));\n  };\n  var concatValues = function concatValues(val1, val2) {\n    if (val1 && val2) {\n      var decimalCharIndex = val2.search(_decimal.current);\n      _decimal.current.lastIndex = 0;\n      var newVal1 = replaceDecimalSeparator(val1).split(_decimal.current)[0].replace(_suffix.current, '').trim();\n      return decimalCharIndex !== -1 ? newVal1 + val2.slice(decimalCharIndex) : val1;\n    }\n    return val1;\n  };\n  var getDecimalLength = function getDecimalLength(value) {\n    if (value) {\n      var valueSplit = value.split(_decimal.current);\n      if (valueSplit.length === 2) {\n        return replaceSuffix(valueSplit[1]).length;\n      }\n    }\n    return 0;\n  };\n  var updateModel = function updateModel(event, value) {\n    if (props.onValueChange) {\n      props.onValueChange({\n        originalEvent: event,\n        value: value,\n        stopPropagation: function stopPropagation() {\n          event === null || event === void 0 || event.stopPropagation();\n        },\n        preventDefault: function preventDefault() {\n          event === null || event === void 0 || event.preventDefault();\n        },\n        target: {\n          name: props.name,\n          id: props.id,\n          value: value\n        }\n      });\n    }\n  };\n  var onInputFocus = function onInputFocus(event) {\n    setFocusedState(true);\n    props.onFocus && props.onFocus(event);\n    if ((props.suffix || props.currency || props.prefix) && inputRef.current && !isFocusedByClick.current) {\n      // GitHub #1866,#5537\n      var inputValue = inputRef.current.value;\n      var prefixLength = (prefixChar.current || '').length;\n      var suffixLength = (suffixChar.current || '').length;\n      var end = inputValue.length === 0 ? 0 : inputValue.length - suffixLength;\n      inputRef.current.setSelectionRange(prefixLength, end);\n    }\n  };\n  var onInputBlur = function onInputBlur(event) {\n    setFocusedState(false);\n    isFocusedByClick.current = false;\n    if (inputRef.current) {\n      var currentValue = inputRef.current.value;\n      if (isValueChanged(currentValue, props.value)) {\n        var newValue = validateValue(parseValue(currentValue));\n        updateInputValue(newValue);\n        updateModel(event, newValue);\n      }\n    }\n    props.onBlur && props.onBlur(event);\n  };\n  var clearTimer = function clearTimer() {\n    if (timer.current) {\n      clearInterval(timer.current);\n    }\n  };\n  var changeValue = function changeValue() {\n    var val = validateValueByLimit(props.value);\n    updateInputValue(props.format ? val : replaceDecimalSeparator(val));\n    var newValue = validateValue(props.value);\n    if (props.value !== null && props.value !== newValue) {\n      updateModel(null, newValue);\n    }\n  };\n  var getFormatter = function getFormatter() {\n    return numberFormat.current;\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      focus: function focus() {\n        return primereact_utils__WEBPACK_IMPORTED_MODULE_9__.DomHandler.focus(inputRef.current);\n      },\n      getFormatter: getFormatter,\n      getElement: function getElement() {\n        return elementRef.current;\n      },\n      getInput: function getInput() {\n        return inputRef.current;\n      }\n    };\n  });\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_9__.ObjectUtils.combinedRefs(inputRef, props.inputRef);\n  }, [inputRef, props.inputRef]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUnmountEffect)(function () {\n    clearTimer();\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMountEffect)(function () {\n    constructParser();\n    var newValue = validateValue(props.value);\n    if (props.value !== null && props.value !== newValue) {\n      updateModel(null, newValue);\n    }\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUpdateEffect)(function () {\n    constructParser();\n    changeValue();\n  }, [_locale, props.locale, props.localeMatcher, props.mode, props.currency, props.currencyDisplay, props.useGrouping, props.minFractionDigits, props.maxFractionDigits, props.suffix, props.prefix]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUpdateEffect)(function () {\n    changeValue();\n  }, [props.value]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUpdateEffect)(function () {\n    // #5245 prevent infinite loop\n    if (props.disabled) {\n      clearTimer();\n    }\n  }, [props.disabled]);\n  var createInputElement = function createInputElement() {\n    var className = (0,primereact_utils__WEBPACK_IMPORTED_MODULE_9__.classNames)(props.inputClassName, cx('input', {\n      context: context\n    }));\n    var valueToRender = formattedValue(props.value);\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_inputtext__WEBPACK_IMPORTED_MODULE_6__.InputText, _extends({\n      ref: inputRef,\n      id: props.inputId,\n      style: props.inputStyle,\n      role: \"spinbutton\",\n      className: className,\n      defaultValue: valueToRender,\n      type: props.type,\n      size: props.size,\n      tabIndex: props.tabIndex,\n      inputMode: inputMode,\n      maxLength: props.maxLength,\n      disabled: props.disabled,\n      required: props.required,\n      pattern: props.pattern,\n      placeholder: props.placeholder,\n      readOnly: props.readOnly,\n      name: props.name,\n      autoFocus: props.autoFocus,\n      onKeyDown: onInputKeyDown,\n      onKeyPress: onInputAndroidKey,\n      onInput: onInput,\n      onClick: onInputClick,\n      onPointerDown: onInputPointerDown,\n      onBlur: onInputBlur,\n      onFocus: onInputFocus,\n      onPaste: onPaste,\n      min: props.min,\n      max: props.max,\n      \"aria-valuemin\": props.min,\n      \"aria-valuemax\": props.max,\n      \"aria-valuenow\": props.value\n    }, ariaProps, dataProps, {\n      pt: ptm('input'),\n      unstyled: props.unstyled,\n      __parentMetadata: {\n        parent: metaData\n      }\n    }));\n  };\n  var createUpButton = function createUpButton() {\n    var incrementIconProps = mergeProps({\n      className: cx('incrementIcon')\n    }, ptm('incrementIcon'));\n    var icon = props.incrementButtonIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_angleup__WEBPACK_IMPORTED_MODULE_5__.AngleUpIcon, incrementIconProps);\n    var upButton = primereact_utils__WEBPACK_IMPORTED_MODULE_9__.IconUtils.getJSXIcon(icon, _objectSpread({}, incrementIconProps), {\n      props: props\n    });\n    var incrementButtonProps = mergeProps({\n      type: 'button',\n      className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_9__.classNames)(props.incrementButtonClassName, cx('incrementButton')),\n      onPointerLeave: onUpButtonMouseLeave,\n      onPointerDown: function onPointerDown(e) {\n        return onUpButtonMouseDown(e);\n      },\n      onPointerUp: onUpButtonMouseUp,\n      onKeyDown: function onKeyDown(e) {\n        return onUpButtonKeyDown(e);\n      },\n      onKeyUp: onUpButtonKeyUp,\n      disabled: props.disabled,\n      tabIndex: -1,\n      'aria-hidden': true\n    }, ptm('incrementButton'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", incrementButtonProps, upButton, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_7__.Ripple, null));\n  };\n  var createDownButton = function createDownButton() {\n    var decrementIconProps = mergeProps({\n      className: cx('decrementIcon')\n    }, ptm('decrementIcon'));\n    var icon = props.decrementButtonIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_angledown__WEBPACK_IMPORTED_MODULE_4__.AngleDownIcon, decrementIconProps);\n    var downButton = primereact_utils__WEBPACK_IMPORTED_MODULE_9__.IconUtils.getJSXIcon(icon, _objectSpread({}, decrementIconProps), {\n      props: props\n    });\n    var decrementButtonProps = mergeProps({\n      type: 'button',\n      className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_9__.classNames)(props.decrementButtonClassName, cx('decrementButton')),\n      onPointerLeave: onDownButtonMouseLeave,\n      onPointerDown: function onPointerDown(e) {\n        return onDownButtonMouseDown(e);\n      },\n      onPointerUp: onDownButtonMouseUp,\n      onKeyDown: function onKeyDown(e) {\n        return onDownButtonKeyDown(e);\n      },\n      onKeyUp: onDownButtonKeyUp,\n      disabled: props.disabled,\n      tabIndex: -1,\n      'aria-hidden': true\n    }, ptm('decrementButton'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", decrementButtonProps, downButton, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_7__.Ripple, null));\n  };\n  var createButtonGroup = function createButtonGroup() {\n    var upButton = props.showButtons && createUpButton();\n    var downButton = props.showButtons && createDownButton();\n    var buttonGroupProps = mergeProps({\n      className: cx('buttonGroup')\n    }, ptm('buttonGroup'));\n    if (stacked) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", buttonGroupProps, upButton, downButton);\n    }\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, upButton, downButton);\n  };\n  var hasTooltip = primereact_utils__WEBPACK_IMPORTED_MODULE_9__.ObjectUtils.isNotEmpty(props.tooltip);\n  var otherProps = InputNumberBase.getOtherProps(props);\n  var dataProps = primereact_utils__WEBPACK_IMPORTED_MODULE_9__.ObjectUtils.reduceKeys(otherProps, primereact_utils__WEBPACK_IMPORTED_MODULE_9__.DomHandler.DATA_PROPS);\n  var ariaProps = primereact_utils__WEBPACK_IMPORTED_MODULE_9__.ObjectUtils.reduceKeys(otherProps, primereact_utils__WEBPACK_IMPORTED_MODULE_9__.DomHandler.ARIA_PROPS);\n  var inputElement = createInputElement();\n  var buttonGroup = createButtonGroup();\n  var rootProps = mergeProps({\n    id: props.id,\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_9__.classNames)(props.className, cx('root', {\n      focusedState: focusedState,\n      stacked: stacked,\n      horizontal: horizontal,\n      vertical: vertical\n    })),\n    style: props.style\n  }, otherProps, ptm('root'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", _extends({\n    ref: elementRef\n  }, rootProps), inputElement, buttonGroup), hasTooltip && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_tooltip__WEBPACK_IMPORTED_MODULE_8__.Tooltip, _extends({\n    target: elementRef,\n    content: props.tooltip,\n    pt: ptm('tooltip')\n  }, props.tooltipOptions)));\n}));\nInputNumber.displayName = 'InputNumber';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/inputnumber/inputnumber.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/inputswitch/inputswitch.esm.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/inputswitch/inputswitch.esm.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   InputSwitch: () => (/* binding */ InputSwitch)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/componentbase */ \"../react-ui/node_modules/primereact/componentbase/componentbase.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_tooltip__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/tooltip */ \"../react-ui/node_modules/primereact/tooltip/tooltip.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n'use client';\n\n\n\n\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nvar classes = {\n  root: function root(_ref) {\n    var props = _ref.props,\n      checked = _ref.checked;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.classNames)('p-inputswitch p-component', {\n      'p-highlight': checked,\n      'p-disabled': props.disabled,\n      'p-invalid': props.invalid\n    });\n  },\n  input: 'p-inputswitch-input',\n  slider: 'p-inputswitch-slider'\n};\nvar InputSwitchBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'InputSwitch',\n    autoFocus: false,\n    checked: false,\n    className: null,\n    disabled: false,\n    falseValue: false,\n    id: null,\n    inputId: null,\n    inputRef: null,\n    invalid: false,\n    name: null,\n    onBlur: null,\n    onChange: null,\n    onFocus: null,\n    style: null,\n    tabIndex: null,\n    tooltip: null,\n    tooltipOptions: null,\n    trueValue: true,\n    children: undefined\n  },\n  css: {\n    classes: classes\n  }\n});\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar InputSwitch = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = InputSwitchBase.getProps(inProps, context);\n  var _InputSwitchBase$setM = InputSwitchBase.setMetaData({\n      props: props\n    }),\n    ptm = _InputSwitchBase$setM.ptm,\n    cx = _InputSwitchBase$setM.cx,\n    isUnstyled = _InputSwitchBase$setM.isUnstyled;\n  (0,primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.useHandleStyle)(InputSwitchBase.css.styles, isUnstyled, {\n    name: 'inputswitch'\n  });\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var inputRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(props.inputRef);\n  var checked = props.checked === props.trueValue;\n  var onChange = function onChange(event) {\n    if (props.onChange) {\n      var value = checked ? props.falseValue : props.trueValue;\n      props.onChange({\n        originalEvent: event,\n        value: value,\n        stopPropagation: function stopPropagation() {\n          event === null || event === void 0 || event.stopPropagation();\n        },\n        preventDefault: function preventDefault() {\n          event === null || event === void 0 || event.preventDefault();\n        },\n        target: {\n          name: props.name,\n          id: props.id,\n          value: value\n        }\n      });\n    }\n  };\n  var onFocus = function onFocus(event) {\n    var _props$onFocus;\n    props === null || props === void 0 || (_props$onFocus = props.onFocus) === null || _props$onFocus === void 0 || _props$onFocus.call(props, event);\n  };\n  var onBlur = function onBlur(event) {\n    var _props$onBlur;\n    props === null || props === void 0 || (_props$onBlur = props.onBlur) === null || _props$onBlur === void 0 || _props$onBlur.call(props, event);\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      focus: function focus() {\n        return primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.focus(inputRef.current);\n      },\n      getElement: function getElement() {\n        return elementRef.current;\n      },\n      getInput: function getInput() {\n        return inputRef.current;\n      }\n    };\n  });\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.combinedRefs(inputRef, props.inputRef);\n  }, [inputRef, props.inputRef]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMountEffect)(function () {\n    if (props.autoFocus) {\n      primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.focus(inputRef.current, props.autoFocus);\n    }\n  });\n  var hasTooltip = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.isNotEmpty(props.tooltip);\n  var otherProps = InputSwitchBase.getOtherProps(props);\n  var ariaProps = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.reduceKeys(otherProps, primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.ARIA_PROPS);\n  var rootProps = mergeProps({\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.classNames)(props.className, cx('root', {\n      checked: checked\n    })),\n    style: props.style,\n    role: 'checkbox',\n    'aria-checked': checked,\n    'data-p-highlight': checked,\n    'data-p-disabled': props.disabled\n  }, otherProps, ptm('root'));\n  var inputProps = mergeProps(_objectSpread({\n    type: 'checkbox',\n    id: props.inputId,\n    name: props.name,\n    checked: checked,\n    onChange: onChange,\n    onFocus: onFocus,\n    onBlur: onBlur,\n    disabled: props.disabled,\n    role: 'switch',\n    tabIndex: props.tabIndex,\n    'aria-checked': checked,\n    className: cx('input')\n  }, ariaProps), ptm('input'));\n  var sliderProps = mergeProps({\n    className: cx('slider')\n  }, ptm('slider'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", _extends({\n    id: props.id,\n    ref: elementRef\n  }, rootProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"input\", _extends({\n    ref: inputRef\n  }, inputProps)), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", sliderProps)), hasTooltip && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_tooltip__WEBPACK_IMPORTED_MODULE_4__.Tooltip, _extends({\n    target: elementRef,\n    content: props.tooltip,\n    pt: ptm('tooltip')\n  }, props.tooltipOptions)));\n}));\nInputSwitch.displayName = 'InputSwitch';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/inputswitch/inputswitch.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/inputtext/inputtext.esm.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/inputtext/inputtext.esm.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   InputText: () => (/* binding */ InputText)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/componentbase */ \"../react-ui/node_modules/primereact/componentbase/componentbase.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_keyfilter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/keyfilter */ \"../react-ui/node_modules/primereact/keyfilter/keyfilter.esm.js\");\n/* harmony import */ var primereact_tooltip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! primereact/tooltip */ \"../react-ui/node_modules/primereact/tooltip/tooltip.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n'use client';\n\n\n\n\n\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nvar classes = {\n  root: function root(_ref) {\n    var props = _ref.props,\n      isFilled = _ref.isFilled,\n      context = _ref.context;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_6__.classNames)('p-inputtext p-component', {\n      'p-disabled': props.disabled,\n      'p-filled': isFilled,\n      'p-invalid': props.invalid,\n      'p-variant-filled': props.variant ? props.variant === 'filled' : context && context.inputStyle === 'filled'\n    });\n  }\n};\nvar InputTextBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'InputText',\n    __parentMetadata: null,\n    children: undefined,\n    className: null,\n    invalid: false,\n    variant: null,\n    keyfilter: null,\n    onBeforeInput: null,\n    onInput: null,\n    onKeyDown: null,\n    onPaste: null,\n    tooltip: null,\n    tooltipOptions: null,\n    validateOnly: false,\n    iconPosition: null\n  },\n  css: {\n    classes: classes\n  }\n});\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar InputText = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = InputTextBase.getProps(inProps, context);\n  var _InputTextBase$setMet = InputTextBase.setMetaData(_objectSpread(_objectSpread({\n      props: props\n    }, props.__parentMetadata), {}, {\n      context: {\n        disabled: props.disabled,\n        iconPosition: props.iconPosition\n      }\n    })),\n    ptm = _InputTextBase$setMet.ptm,\n    cx = _InputTextBase$setMet.cx,\n    isUnstyled = _InputTextBase$setMet.isUnstyled;\n  (0,primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.useHandleStyle)(InputTextBase.css.styles, isUnstyled, {\n    name: 'inputtext',\n    styled: true\n  });\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(ref);\n  var onKeyDown = function onKeyDown(event) {\n    props.onKeyDown && props.onKeyDown(event);\n    if (props.keyfilter) {\n      primereact_keyfilter__WEBPACK_IMPORTED_MODULE_4__.KeyFilter.onKeyPress(event, props.keyfilter, props.validateOnly);\n    }\n  };\n  var onBeforeInput = function onBeforeInput(event) {\n    props.onBeforeInput && props.onBeforeInput(event);\n    if (props.keyfilter) {\n      primereact_keyfilter__WEBPACK_IMPORTED_MODULE_4__.KeyFilter.onBeforeInput(event, props.keyfilter, props.validateOnly);\n    }\n  };\n  var onInput = function onInput(event) {\n    var target = event.target;\n    var validatePattern = true;\n    if (props.keyfilter && props.validateOnly) {\n      validatePattern = primereact_keyfilter__WEBPACK_IMPORTED_MODULE_4__.KeyFilter.validate(event, props.keyfilter);\n    }\n    props.onInput && props.onInput(event, validatePattern);\n\n    // for uncontrolled changes\n    primereact_utils__WEBPACK_IMPORTED_MODULE_6__.ObjectUtils.isNotEmpty(target.value) ? primereact_utils__WEBPACK_IMPORTED_MODULE_6__.DomHandler.addClass(target, 'p-filled') : primereact_utils__WEBPACK_IMPORTED_MODULE_6__.DomHandler.removeClass(target, 'p-filled');\n  };\n  var onPaste = function onPaste(event) {\n    props.onPaste && props.onPaste(event);\n    if (props.keyfilter) {\n      primereact_keyfilter__WEBPACK_IMPORTED_MODULE_4__.KeyFilter.onPaste(event, props.keyfilter, props.validateOnly);\n    }\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_6__.ObjectUtils.combinedRefs(elementRef, ref);\n  }, [elementRef, ref]);\n  var isFilled = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(function () {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_6__.ObjectUtils.isNotEmpty(props.value) || primereact_utils__WEBPACK_IMPORTED_MODULE_6__.ObjectUtils.isNotEmpty(props.defaultValue);\n  }, [props.value, props.defaultValue]);\n  var hasTooltip = primereact_utils__WEBPACK_IMPORTED_MODULE_6__.ObjectUtils.isNotEmpty(props.tooltip);\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    var _elementRef$current;\n    if (isFilled || (_elementRef$current = elementRef.current) !== null && _elementRef$current !== void 0 && _elementRef$current.value) {\n      primereact_utils__WEBPACK_IMPORTED_MODULE_6__.DomHandler.addClass(elementRef.current, 'p-filled');\n    } else {\n      primereact_utils__WEBPACK_IMPORTED_MODULE_6__.DomHandler.removeClass(elementRef.current, 'p-filled');\n    }\n  }, [props.disabled, isFilled]);\n  var rootProps = mergeProps({\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_6__.classNames)(props.className, cx('root', {\n      context: context,\n      isFilled: isFilled\n    })),\n    onBeforeInput: onBeforeInput,\n    onInput: onInput,\n    onKeyDown: onKeyDown,\n    onPaste: onPaste\n  }, InputTextBase.getOtherProps(props), ptm('root'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"input\", _extends({\n    ref: elementRef\n  }, rootProps)), hasTooltip && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_tooltip__WEBPACK_IMPORTED_MODULE_5__.Tooltip, _extends({\n    target: elementRef,\n    content: props.tooltip,\n    pt: ptm('tooltip')\n  }, props.tooltipOptions)));\n}));\nInputText.displayName = 'InputText';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/inputtext/inputtext.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/keyfilter/keyfilter.esm.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/keyfilter/keyfilter.esm.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   KeyFilter: () => (/* binding */ KeyFilter)\n/* harmony export */ });\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n'use client';\n\n\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toConsumableArray(r) {\n  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nvar KeyFilter = {\n  /* eslint-disable */\n  DEFAULT_MASKS: {\n    pint: /[\\d]/,\n    \"int\": /[\\d\\-]/,\n    pnum: /[\\d\\.]/,\n    money: /[\\d\\.\\s,]/,\n    num: /[\\d\\-\\.]/,\n    hex: /[0-9a-f]/i,\n    email: /[a-z0-9_\\.\\-@]/i,\n    alpha: /[a-z_]/i,\n    alphanum: /[a-z0-9_]/i\n  },\n  /* eslint-enable */getRegex: function getRegex(keyfilter) {\n    return KeyFilter.DEFAULT_MASKS[keyfilter] ? KeyFilter.DEFAULT_MASKS[keyfilter] : keyfilter;\n  },\n  onBeforeInput: function onBeforeInput(e, keyfilter, validateOnly) {\n    // android devices must use beforeinput https://stackoverflow.com/questions/36753548/keycode-on-android-is-always-229\n    if (validateOnly || !primereact_utils__WEBPACK_IMPORTED_MODULE_0__.DomHandler.isAndroid()) {\n      return;\n    }\n    this.validateKey(e, e.data, keyfilter);\n  },\n  onKeyPress: function onKeyPress(e, keyfilter, validateOnly) {\n    // non android devices use keydown\n    if (validateOnly || primereact_utils__WEBPACK_IMPORTED_MODULE_0__.DomHandler.isAndroid()) {\n      return;\n    }\n    if (e.ctrlKey || e.altKey || e.metaKey) {\n      return;\n    }\n    this.validateKey(e, e.key, keyfilter);\n  },\n  onPaste: function onPaste(e, keyfilter, validateOnly) {\n    if (validateOnly) {\n      return;\n    }\n    var regex = this.getRegex(keyfilter);\n    var clipboard = e.clipboardData.getData('text');\n\n    // loop over each letter pasted and if any fail prevent the paste\n    _toConsumableArray(clipboard).forEach(function (c) {\n      if (!regex.test(c)) {\n        e.preventDefault();\n        return false;\n      }\n    });\n  },\n  validateKey: function validateKey(e, key, keyfilter) {\n    if (key === null || key === undefined) {\n      return;\n    }\n\n    // some AZERTY keys come in with 2 chars like ´ç if Dead key is pressed first\n    var isPrintableKey = key.length <= 2;\n    if (!isPrintableKey) {\n      return;\n    }\n    var regex = this.getRegex(keyfilter);\n    if (!regex.test(key)) {\n      e.preventDefault();\n    }\n  },\n  validate: function validate(e, keyfilter) {\n    var value = e.target.value;\n    var validatePattern = true;\n    var regex = this.getRegex(keyfilter);\n    if (value && !regex.test(value)) {\n      validatePattern = false;\n    }\n    return validatePattern;\n  }\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/keyfilter/keyfilter.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/overlayservice/overlayservice.esm.js":
/*!********************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/overlayservice/overlayservice.esm.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   OverlayService: () => (/* binding */ OverlayService)\n/* harmony export */ });\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n'use client';\n\n\nvar OverlayService = (0,primereact_utils__WEBPACK_IMPORTED_MODULE_0__.EventBus)();\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/overlayservice/overlayservice.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/paginator/paginator.esm.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/primereact/paginator/paginator.esm.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Paginator: () => (/* binding */ Paginator)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/componentbase */ \"../react-ui/node_modules/primereact/componentbase/componentbase.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n/* harmony import */ var primereact_icons_angledoubleleft__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! primereact/icons/angledoubleleft */ \"../react-ui/node_modules/primereact/icons/angledoubleleft/index.esm.js\");\n/* harmony import */ var primereact_ripple__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! primereact/ripple */ \"../react-ui/node_modules/primereact/ripple/ripple.esm.js\");\n/* harmony import */ var primereact_inputnumber__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! primereact/inputnumber */ \"../react-ui/node_modules/primereact/inputnumber/inputnumber.esm.js\");\n/* harmony import */ var primereact_icons_angledoubleright__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! primereact/icons/angledoubleright */ \"../react-ui/node_modules/primereact/icons/angledoubleright/index.esm.js\");\n/* harmony import */ var primereact_icons_angleright__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! primereact/icons/angleright */ \"../react-ui/node_modules/primereact/icons/angleright/index.esm.js\");\n/* harmony import */ var primereact_icons_angleleft__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! primereact/icons/angleleft */ \"../react-ui/node_modules/primereact/icons/angleleft/index.esm.js\");\n/* harmony import */ var primereact_dropdown__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! primereact/dropdown */ \"../react-ui/node_modules/primereact/dropdown/dropdown.esm.js\");\n'use client';\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nvar classes = {\n  root: 'p-paginator p-component',\n  left: 'p-paginator-left-content',\n  end: 'p-paginator-right-content',\n  firstPageIcon: 'p-paginator-icon',\n  firstPageButton: function firstPageButton(_ref) {\n    var disabled = _ref.disabled;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-paginator-first p-paginator-element p-link', {\n      'p-disabled': disabled\n    });\n  },\n  prevPageIcon: 'p-paginator-icon',\n  prevPageButton: function prevPageButton(_ref2) {\n    var disabled = _ref2.disabled;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-paginator-prev p-paginator-element p-link', {\n      'p-disabled': disabled\n    });\n  },\n  nextPageIcon: 'p-paginator-icon',\n  nextPageButton: function nextPageButton(_ref3) {\n    var disabled = _ref3.disabled;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-paginator-next p-paginator-element p-link', {\n      'p-disabled': disabled\n    });\n  },\n  lastPageIcon: 'p-paginator-icon',\n  lastPageButton: function lastPageButton(_ref4) {\n    var disabled = _ref4.disabled;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-paginator-last p-paginator-element p-link', {\n      'p-disabled': disabled\n    });\n  },\n  pageButton: function pageButton(_ref5) {\n    var pageLink = _ref5.pageLink,\n      startPageInView = _ref5.startPageInView,\n      endPageInView = _ref5.endPageInView,\n      page = _ref5.page;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-paginator-page p-paginator-element p-link', {\n      'p-paginator-page-start': pageLink === startPageInView,\n      'p-paginator-page-end': pageLink === endPageInView,\n      'p-highlight': pageLink - 1 === page\n    });\n  },\n  pages: 'p-paginator-pages'\n};\nvar styles = \"\\n@layer primereact {\\n    .p-paginator {\\n        display: flex;\\n        align-items: center;\\n        justify-content: center;\\n        flex-wrap: wrap;\\n    }\\n    \\n    .p-paginator-left-content {\\n        margin-right: auto;\\n    }\\n    \\n    .p-paginator-right-content {\\n        margin-left: auto;\\n    }\\n    \\n    .p-paginator-page,\\n    .p-paginator-next,\\n    .p-paginator-last,\\n    .p-paginator-first,\\n    .p-paginator-prev,\\n    .p-paginator-current {\\n        cursor: pointer;\\n        display: inline-flex;\\n        align-items: center;\\n        justify-content: center;\\n        line-height: 1;\\n        user-select: none;\\n        overflow: hidden;\\n        position: relative;\\n    }\\n    \\n    .p-paginator-element:focus {\\n        z-index: 1;\\n        position: relative;\\n    }\\n}\\n\";\nvar PaginatorBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'Paginator',\n    __parentMetadata: null,\n    totalRecords: 0,\n    rows: 0,\n    first: 0,\n    pageLinkSize: 5,\n    rowsPerPageOptions: null,\n    alwaysShow: true,\n    style: null,\n    className: null,\n    template: 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown',\n    onPageChange: null,\n    leftContent: null,\n    rightContent: null,\n    dropdownAppendTo: null,\n    currentPageReportTemplate: '({currentPage} of {totalPages})',\n    children: undefined\n  },\n  css: {\n    classes: classes,\n    styles: styles\n  }\n});\nvar CurrentPageReportBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'CurrentPageReport',\n    pageCount: null,\n    page: null,\n    first: null,\n    rows: null,\n    totalRecords: null,\n    reportTemplate: '({currentPage} of {totalPages})',\n    template: null,\n    children: undefined\n  }\n});\nvar FirstPageLinkBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'FirstPageLink',\n    disabled: false,\n    onClick: null,\n    template: null,\n    firstPageLinkIcon: null,\n    children: undefined\n  }\n});\nvar JumpToPageInputBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'JumpToPageInput',\n    page: null,\n    rows: null,\n    pageCount: null,\n    disabled: false,\n    template: null,\n    onChange: null,\n    children: undefined,\n    metaData: null,\n    ptm: null\n  }\n});\nvar LastPageLinkBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'LastPageLink',\n    disabled: false,\n    onClick: null,\n    template: null,\n    lastPageLinkIcon: null,\n    children: undefined\n  }\n});\nvar NextPageLinkBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'NextPageLink',\n    disabled: false,\n    onClick: null,\n    template: null,\n    nextPageLinkIcon: null,\n    children: undefined\n  }\n});\nvar PageLinksBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'PageLinks',\n    value: null,\n    page: null,\n    rows: null,\n    pageCount: null,\n    links: null,\n    template: null,\n    children: undefined\n  }\n});\nvar PrevPageLinkBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'PrevPageLink',\n    disabled: false,\n    onClick: null,\n    template: null,\n    prevPageLinkIcon: null,\n    children: undefined\n  }\n});\nvar RowsPerPageDropdownBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'RowsPerPageDropdown',\n    options: null,\n    value: null,\n    page: null,\n    pageCount: null,\n    totalRecords: 0,\n    appendTo: null,\n    onChange: null,\n    template: null,\n    disabled: false,\n    children: undefined\n  }\n});\nfunction ownKeys$5(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$5(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar CurrentPageReport = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (inProps) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = CurrentPageReportBase.getProps(inProps, context);\n  var report = {\n    currentPage: props.page + 1,\n    totalPages: props.totalPages,\n    first: Math.min(props.first + 1, props.totalRecords),\n    last: Math.min(props.first + props.rows, props.totalRecords),\n    rows: props.rows,\n    totalRecords: props.totalRecords\n  };\n  var text = props.reportTemplate.replace('{currentPage}', report.currentPage).replace('{totalPages}', report.totalPages).replace('{first}', report.first).replace('{last}', report.last).replace('{rows}', report.rows).replace('{totalRecords}', report.totalRecords);\n  var currentProps = mergeProps({\n    'aria-live': 'polite',\n    className: 'p-paginator-current'\n  }, props.ptm('current', {\n    hostName: props.hostName\n  }));\n  var element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", currentProps, text);\n  if (props.template) {\n    var defaultOptions = _objectSpread$5(_objectSpread$5({}, report), {\n      ariaLive: 'polite',\n      className: 'p-paginator-current',\n      element: element,\n      props: props\n    });\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.template, defaultOptions);\n  }\n  return element;\n});\nCurrentPageReport.displayName = 'CurrentPageReport';\nfunction ownKeys$4(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$4(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar FirstPageLink = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (inProps) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = FirstPageLinkBase.getProps(inProps, context);\n  var ptm = props.ptm,\n    cx = props.cx;\n  var getPTOptions = function getPTOptions(key) {\n    return ptm(key, {\n      hostName: props.hostName,\n      context: {\n        disabled: props.disabled\n      }\n    });\n  };\n  var className = (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-paginator-first p-paginator-element p-link', {\n    'p-disabled': props.disabled\n  });\n  var iconClassName = 'p-paginator-icon';\n  var firstPageIconProps = mergeProps({\n    className: cx('firstPageIcon')\n  }, getPTOptions('firstPageIcon'));\n  var icon = props.firstPageLinkIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_angledoubleleft__WEBPACK_IMPORTED_MODULE_5__.AngleDoubleLeftIcon, firstPageIconProps);\n  var firstPageLinkIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.IconUtils.getJSXIcon(icon, _objectSpread$4({}, firstPageIconProps), {\n    props: props\n  });\n  var firstPageButtonProps = mergeProps({\n    type: 'button',\n    className: cx('firstPageButton', {\n      disabled: props.disabled\n    }),\n    onClick: props.onClick,\n    disabled: props.disabled,\n    'aria-label': (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('firstPageLabel')\n  }, getPTOptions('firstPageButton'));\n  var element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", firstPageButtonProps, firstPageLinkIcon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_6__.Ripple, null));\n  if (props.template) {\n    var defaultOptions = {\n      onClick: props.onClick,\n      className: className,\n      iconClassName: iconClassName,\n      disabled: props.disabled,\n      element: element,\n      props: props\n    };\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.template, defaultOptions);\n  }\n  return element;\n});\nFirstPageLink.displayName = 'FirstPageLink';\nfunction _defineProperties(e, r) {\n  for (var t = 0; t < r.length; t++) {\n    var o = r[t];\n    o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n  }\n}\nfunction _createClass(e, r, t) {\n  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n    writable: !1\n  }), e;\n}\nfunction _classCallCheck(a, n) {\n  if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nvar FilterMatchMode = Object.freeze({\n  STARTS_WITH: 'startsWith',\n  CONTAINS: 'contains',\n  NOT_CONTAINS: 'notContains',\n  ENDS_WITH: 'endsWith',\n  EQUALS: 'equals',\n  NOT_EQUALS: 'notEquals',\n  IN: 'in',\n  NOT_IN: 'notIn',\n  LESS_THAN: 'lt',\n  LESS_THAN_OR_EQUAL_TO: 'lte',\n  GREATER_THAN: 'gt',\n  GREATER_THAN_OR_EQUAL_TO: 'gte',\n  BETWEEN: 'between',\n  DATE_IS: 'dateIs',\n  DATE_IS_NOT: 'dateIsNot',\n  DATE_BEFORE: 'dateBefore',\n  DATE_AFTER: 'dateAfter',\n  CUSTOM: 'custom'\n});\n\n/**\n * @deprecated please use PrimeReactContext\n */\nvar PrimeReact = /*#__PURE__*/_createClass(function PrimeReact() {\n  _classCallCheck(this, PrimeReact);\n});\n_defineProperty(PrimeReact, \"ripple\", false);\n_defineProperty(PrimeReact, \"inputStyle\", 'outlined');\n_defineProperty(PrimeReact, \"locale\", 'en');\n_defineProperty(PrimeReact, \"appendTo\", null);\n_defineProperty(PrimeReact, \"cssTransition\", true);\n_defineProperty(PrimeReact, \"autoZIndex\", true);\n_defineProperty(PrimeReact, \"hideOverlaysOnDocumentScrolling\", false);\n_defineProperty(PrimeReact, \"nonce\", null);\n_defineProperty(PrimeReact, \"nullSortOrder\", 1);\n_defineProperty(PrimeReact, \"zIndex\", {\n  modal: 1100,\n  overlay: 1000,\n  menu: 1000,\n  tooltip: 1100,\n  toast: 1200\n});\n_defineProperty(PrimeReact, \"pt\", undefined);\n_defineProperty(PrimeReact, \"filterMatchModeOptions\", {\n  text: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS],\n  numeric: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO],\n  date: [FilterMatchMode.DATE_IS, FilterMatchMode.DATE_IS_NOT, FilterMatchMode.DATE_BEFORE, FilterMatchMode.DATE_AFTER]\n});\n_defineProperty(PrimeReact, \"changeTheme\", function (currentTheme, newTheme, linkElementId, callback) {\n  var _linkElement$parentNo;\n  var linkElement = document.getElementById(linkElementId);\n  if (!linkElement) {\n    throw Error(\"Element with id \".concat(linkElementId, \" not found.\"));\n  }\n  var newThemeUrl = linkElement.getAttribute('href').replace(currentTheme, newTheme);\n  var newLinkElement = document.createElement('link');\n  newLinkElement.setAttribute('rel', 'stylesheet');\n  newLinkElement.setAttribute('id', linkElementId);\n  newLinkElement.setAttribute('href', newThemeUrl);\n  newLinkElement.addEventListener('load', function () {\n    if (callback) {\n      callback();\n    }\n  });\n  (_linkElement$parentNo = linkElement.parentNode) === null || _linkElement$parentNo === void 0 || _linkElement$parentNo.replaceChild(newLinkElement, linkElement);\n});\nvar locales = {\n  en: {\n    accept: 'Yes',\n    addRule: 'Add Rule',\n    am: 'AM',\n    apply: 'Apply',\n    cancel: 'Cancel',\n    choose: 'Choose',\n    chooseDate: 'Choose Date',\n    chooseMonth: 'Choose Month',\n    chooseYear: 'Choose Year',\n    clear: 'Clear',\n    completed: 'Completed',\n    contains: 'Contains',\n    custom: 'Custom',\n    dateAfter: 'Date is after',\n    dateBefore: 'Date is before',\n    dateFormat: 'mm/dd/yy',\n    dateIs: 'Date is',\n    dateIsNot: 'Date is not',\n    dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n    dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n    emptyFilterMessage: 'No results found',\n    emptyMessage: 'No available options',\n    emptySearchMessage: 'No results found',\n    emptySelectionMessage: 'No selected item',\n    endsWith: 'Ends with',\n    equals: 'Equals',\n    fileChosenMessage: '{0} files',\n    fileSizeTypes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],\n    filter: 'Filter',\n    firstDayOfWeek: 0,\n    gt: 'Greater than',\n    gte: 'Greater than or equal to',\n    lt: 'Less than',\n    lte: 'Less than or equal to',\n    matchAll: 'Match All',\n    matchAny: 'Match Any',\n    medium: 'Medium',\n    monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    nextDecade: 'Next Decade',\n    nextHour: 'Next Hour',\n    nextMinute: 'Next Minute',\n    nextMonth: 'Next Month',\n    nextSecond: 'Next Second',\n    nextYear: 'Next Year',\n    noFileChosenMessage: 'No file chosen',\n    noFilter: 'No Filter',\n    notContains: 'Not contains',\n    notEquals: 'Not equals',\n    now: 'Now',\n    passwordPrompt: 'Enter a password',\n    pending: 'Pending',\n    pm: 'PM',\n    prevDecade: 'Previous Decade',\n    prevHour: 'Previous Hour',\n    prevMinute: 'Previous Minute',\n    prevMonth: 'Previous Month',\n    prevSecond: 'Previous Second',\n    prevYear: 'Previous Year',\n    reject: 'No',\n    removeRule: 'Remove Rule',\n    searchMessage: '{0} results are available',\n    selectionMessage: '{0} items selected',\n    showMonthAfterYear: false,\n    startsWith: 'Starts with',\n    strong: 'Strong',\n    today: 'Today',\n    upload: 'Upload',\n    weak: 'Weak',\n    weekHeader: 'Wk',\n    aria: {\n      cancelEdit: 'Cancel Edit',\n      close: 'Close',\n      collapseLabel: 'Collapse',\n      collapseRow: 'Row Collapsed',\n      editRow: 'Edit Row',\n      expandLabel: 'Expand',\n      expandRow: 'Row Expanded',\n      falseLabel: 'False',\n      filterConstraint: 'Filter Constraint',\n      filterOperator: 'Filter Operator',\n      firstPageLabel: 'First Page',\n      gridView: 'Grid View',\n      hideFilterMenu: 'Hide Filter Menu',\n      jumpToPageDropdownLabel: 'Jump to Page Dropdown',\n      jumpToPageInputLabel: 'Jump to Page Input',\n      lastPageLabel: 'Last Page',\n      listLabel: 'Option List',\n      listView: 'List View',\n      moveAllToSource: 'Move All to Source',\n      moveAllToTarget: 'Move All to Target',\n      moveBottom: 'Move Bottom',\n      moveDown: 'Move Down',\n      moveToSource: 'Move to Source',\n      moveToTarget: 'Move to Target',\n      moveTop: 'Move Top',\n      moveUp: 'Move Up',\n      navigation: 'Navigation',\n      next: 'Next',\n      nextPageLabel: 'Next Page',\n      nullLabel: 'Not Selected',\n      otpLabel: 'Please enter one time password character {0}',\n      pageLabel: 'Page {page}',\n      passwordHide: 'Hide Password',\n      passwordShow: 'Show Password',\n      previous: 'Previous',\n      prevPageLabel: 'Previous Page',\n      removeLabel: 'Remove',\n      rotateLeft: 'Rotate Left',\n      rotateRight: 'Rotate Right',\n      rowsPerPageLabel: 'Rows per page',\n      saveEdit: 'Save Edit',\n      scrollTop: 'Scroll Top',\n      selectAll: 'All items selected',\n      selectLabel: 'Select',\n      selectRow: 'Row Selected',\n      showFilterMenu: 'Show Filter Menu',\n      slide: 'Slide',\n      slideNumber: '{slideNumber}',\n      star: '1 star',\n      stars: '{star} stars',\n      trueLabel: 'True',\n      unselectAll: 'All items unselected',\n      unselectLabel: 'Unselect',\n      unselectRow: 'Row Unselected',\n      zoomImage: 'Zoom Image',\n      zoomIn: 'Zoom In',\n      zoomOut: 'Zoom Out'\n    }\n  }\n};\n\n/**\n * Find an ARIA label in the locale by key.  If options are passed it will replace all options:\n * ```ts\n * const ariaValue = \"Page {page}, User {user}, Role {role}\";\n * const options = { page: 2, user: \"John\", role: \"Admin\" };\n * const result = ariaLabel('yourLabel', { page: 2, user: \"John\", role: \"Admin\" })\n * console.log(result); // Output: Page 2, User John, Role Admin\n * ```\n * @param {string} ariaKey key of the ARIA label to look up in locale.\n * @param {any} options JSON options like { page: 2, user: \"John\", role: \"Admin\" }\n * @returns the ARIA label with replaced values\n */\nfunction ariaLabel(ariaKey, options) {\n  if (ariaKey.includes('__proto__') || ariaKey.includes('prototype')) {\n    throw new Error('Unsafe ariaKey detected');\n  }\n  var _locale = PrimeReact.locale;\n  try {\n    var _ariaLabel = localeOptions(_locale).aria[ariaKey];\n    if (_ariaLabel) {\n      for (var key in options) {\n        if (options.hasOwnProperty(key)) {\n          _ariaLabel = _ariaLabel.replace(\"{\".concat(key, \"}\"), options[key]);\n        }\n      }\n    }\n    return _ariaLabel;\n  } catch (error) {\n    throw new Error(\"The \".concat(ariaKey, \" option is not found in the current locale('\").concat(_locale, \"').\"));\n  }\n}\nfunction localeOptions(locale) {\n  var _locale = locale || PrimeReact.locale;\n  if (_locale.includes('__proto__') || _locale.includes('prototype')) {\n    throw new Error('Unsafe locale detected');\n  }\n  return locales[_locale];\n}\nvar JumpToPageInput = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (inProps) {\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = JumpToPageInputBase.getProps(inProps, context);\n  var ariaLabelValue = ariaLabel('jumpToPageInputLabel');\n  var onChange = function onChange(event) {\n    if (props.onChange) {\n      props.onChange(props.rows * (event.value - 1), props.rows);\n    }\n  };\n  var value = props.totalPages > 0 ? props.page + 1 : 0;\n  var element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_inputnumber__WEBPACK_IMPORTED_MODULE_7__.InputNumber, {\n    value: value,\n    onChange: onChange,\n    className: \"p-paginator-page-input\",\n    disabled: props.disabled,\n    pt: props.ptm('JTPInput'),\n    unstyled: props.unstyled,\n    __parentMetadata: {\n      parent: props.metaData\n    },\n    \"aria-label\": ariaLabelValue\n  });\n  if (props.template) {\n    var defaultOptions = {\n      value: value,\n      onChange: onChange,\n      disabled: props.disabled,\n      className: 'p-paginator-page-input',\n      'aria-label': ariaLabelValue,\n      element: element,\n      props: props\n    };\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.template, defaultOptions);\n  }\n  return element;\n});\nJumpToPageInput.displayName = 'JumpToPageInput';\nfunction ownKeys$3(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$3(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar LastPageLink = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (inProps) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = LastPageLinkBase.getProps(inProps, context);\n  var ptm = props.ptm,\n    cx = props.cx;\n  var getPTOptions = function getPTOptions(key) {\n    return ptm(key, {\n      hostName: props.hostName,\n      context: {\n        disabled: props.disabled\n      }\n    });\n  };\n  var className = (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-paginator-last p-paginator-element p-link', {\n    'p-disabled': props.disabled\n  });\n  var iconClassName = 'p-paginator-icon';\n  var lastPageIconProps = mergeProps({\n    className: cx('lastPageIcon')\n  }, getPTOptions('lastPageIcon'));\n  var icon = props.lastPageLinkIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_angledoubleright__WEBPACK_IMPORTED_MODULE_8__.AngleDoubleRightIcon, lastPageIconProps);\n  var lastPageLinkIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.IconUtils.getJSXIcon(icon, _objectSpread$3({}, lastPageIconProps), {\n    props: props\n  });\n  var lastPageButtonProps = mergeProps({\n    type: 'button',\n    className: cx('lastPageButton', {\n      disabled: props.disabled\n    }),\n    onClick: props.onClick,\n    disabled: props.disabled,\n    'aria-label': (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('lastPageLabel')\n  }, getPTOptions('lastPageButton'));\n  var element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", lastPageButtonProps, lastPageLinkIcon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_6__.Ripple, null));\n  if (props.template) {\n    var defaultOptions = {\n      onClick: props.onClick,\n      className: className,\n      iconClassName: iconClassName,\n      disabled: props.disabled,\n      element: element,\n      props: props\n    };\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.template, defaultOptions);\n  }\n  return element;\n});\nLastPageLink.displayName = 'LastPageLink';\nfunction ownKeys$2(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar NextPageLink = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (inProps) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = NextPageLinkBase.getProps(inProps, context);\n  var ptm = props.ptm,\n    cx = props.cx;\n  var getPTOptions = function getPTOptions(key) {\n    return ptm(key, {\n      hostName: props.hostName,\n      context: {\n        disabled: props.disabled\n      }\n    });\n  };\n  var className = (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-paginator-next p-paginator-element p-link', {\n    'p-disabled': props.disabled\n  });\n  var iconClassName = 'p-paginator-icon';\n  var nextPageIconProps = mergeProps({\n    className: cx('nextPageIcon')\n  }, getPTOptions('nextPageIcon'));\n  var icon = props.nextPageLinkIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_angleright__WEBPACK_IMPORTED_MODULE_9__.AngleRightIcon, nextPageIconProps);\n  var nextPageLinkIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.IconUtils.getJSXIcon(icon, _objectSpread$2({}, nextPageIconProps), {\n    props: props\n  });\n  var nextPageButtonProps = mergeProps({\n    type: 'button',\n    className: cx('nextPageButton', {\n      disabled: props.disabled\n    }),\n    onClick: props.onClick,\n    disabled: props.disabled,\n    'aria-label': (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('nextPageLabel')\n  }, getPTOptions('nextPageButton'));\n  var element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", nextPageButtonProps, nextPageLinkIcon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_6__.Ripple, null));\n  if (props.template) {\n    var defaultOptions = {\n      onClick: props.onClick,\n      className: className,\n      iconClassName: iconClassName,\n      disabled: props.disabled,\n      element: element,\n      nextPageLinkIcon: nextPageLinkIcon,\n      props: props\n    };\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.template, defaultOptions);\n  }\n  return element;\n});\nNextPageLink.displayName = 'NextPageLink';\nvar PageLinks = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (inProps) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = PageLinksBase.getProps(inProps, context);\n  var ptm = props.ptm,\n    cx = props.cx;\n  var getPTOptions = function getPTOptions(pageLink, key) {\n    return ptm(key, {\n      hostName: props.hostName,\n      context: {\n        active: pageLink - 1 === props.page\n      }\n    });\n  };\n  var onPageLinkClick = function onPageLinkClick(event, pageLink) {\n    if (props.onClick) {\n      props.onClick({\n        originalEvent: event,\n        value: pageLink\n      });\n    }\n    event.preventDefault();\n  };\n  var elements;\n  if (props.value) {\n    var startPageInView = props.value[0];\n    var endPageInView = props.value[props.value.length - 1];\n    elements = props.value.map(function (pageLink) {\n      var className = (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-paginator-page p-paginator-element p-link', {\n        'p-paginator-page-start': pageLink === startPageInView,\n        'p-paginator-page-end': pageLink === endPageInView,\n        'p-highlight': pageLink - 1 === props.page\n      });\n      var pageButtonProps = mergeProps({\n        type: 'button',\n        onClick: function onClick(e) {\n          return onPageLinkClick(e, pageLink);\n        },\n        className: cx('pageButton', {\n          pageLink: pageLink,\n          startPageInView: startPageInView,\n          endPageInView: endPageInView,\n          page: props.page\n        }),\n        disabled: props.disabled,\n        'aria-label': (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('pageLabel', {\n          page: pageLink\n        }),\n        'aria-current': pageLink - 1 === props.page ? 'true' : undefined\n      }, getPTOptions(pageLink, 'pageButton'));\n      var element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", pageButtonProps, pageLink, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_6__.Ripple, null));\n      if (props.template) {\n        var defaultOptions = {\n          onClick: function onClick(e) {\n            return onPageLinkClick(e, pageLink);\n          },\n          className: className,\n          view: {\n            startPage: startPageInView - 1,\n            endPage: endPageInView - 1\n          },\n          page: pageLink - 1,\n          currentPage: props.page,\n          totalPages: props.totalPages,\n          ariaLabel: (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('pageLabel', {\n            page: pageLink\n          }),\n          ariaCurrent: pageLink - 1 === props.page ? 'true' : undefined,\n          element: element,\n          props: props\n        };\n        element = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.template, defaultOptions);\n      }\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n        key: pageLink\n      }, element);\n    });\n  }\n  var pagesProps = mergeProps({\n    className: cx('pages')\n  }, ptm('pages', {\n    hostName: props.hostName\n  }));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", pagesProps, elements);\n});\nPageLinks.displayName = 'PageLinks';\nfunction ownKeys$1(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$1(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar PrevPageLink = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (inProps) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = PrevPageLinkBase.getProps(inProps, context);\n  var ptm = props.ptm,\n    cx = props.cx;\n  var getPTOptions = function getPTOptions(key) {\n    return ptm(key, {\n      hostName: props.hostName,\n      context: {\n        disabled: props.disabled\n      }\n    });\n  };\n  var className = (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-paginator-prev p-paginator-element p-link', {\n    'p-disabled': props.disabled\n  });\n  var iconClassName = 'p-paginator-icon';\n  var prevPageIconProps = mergeProps({\n    className: cx('prevPageIcon')\n  }, getPTOptions('prevPageIcon'));\n  var icon = props.prevPageLinkIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_angleleft__WEBPACK_IMPORTED_MODULE_10__.AngleLeftIcon, prevPageIconProps);\n  var prevPageLinkIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.IconUtils.getJSXIcon(icon, _objectSpread$1({}, prevPageIconProps), {\n    props: props\n  });\n  var prevPageButtonProps = mergeProps({\n    type: 'button',\n    className: cx('prevPageButton', {\n      disabled: props.disabled\n    }),\n    onClick: props.onClick,\n    disabled: props.disabled,\n    'aria-label': (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.ariaLabel)('prevPageLabel')\n  }, getPTOptions('prevPageButton'));\n  var element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"button\", prevPageButtonProps, prevPageLinkIcon, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_6__.Ripple, null));\n  if (props.template) {\n    var defaultOptions = {\n      onClick: props.onClick,\n      className: className,\n      iconClassName: iconClassName,\n      disabled: props.disabled,\n      element: element,\n      props: props\n    };\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.template, defaultOptions);\n  }\n  return element;\n});\nPrevPageLink.displayName = 'PrevPageLink';\nvar RowsPerPageDropdown = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (inProps) {\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = RowsPerPageDropdownBase.getProps(inProps, context);\n  var hasOptions = props.options && props.options.length > 0;\n  var options = hasOptions ? props.options.map(function (opt) {\n    return {\n      label: String(opt),\n      value: opt\n    };\n  }) : [];\n  var placeholderValue = (0,primereact_api__WEBPACK_IMPORTED_MODULE_1__.localeOption)('choose');\n  var ariaLabelValue = ariaLabel('jumpToPageDropdownLabel');\n  var element = hasOptions ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_dropdown__WEBPACK_IMPORTED_MODULE_11__.Dropdown, {\n    value: props.value,\n    options: options,\n    onChange: props.onChange,\n    appendTo: props.appendTo,\n    disabled: props.disabled,\n    placeholder: placeholderValue,\n    \"aria-label\": ariaLabelValue,\n    pt: props.ptm('RPPDropdown'),\n    unstyled: props.unstyled,\n    __parentMetadata: {\n      parent: props.metaData\n    }\n  })) : null;\n  if (props.template) {\n    var defaultOptions = {\n      value: props.value,\n      options: options,\n      onChange: props.onChange,\n      appendTo: props.appendTo,\n      currentPage: props.page,\n      totalPages: props.pageCount,\n      totalRecords: props.totalRecords,\n      disabled: props.disabled,\n      ariaLabel: ariaLabelValue,\n      element: element,\n      props: props\n    };\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.template, defaultOptions);\n  }\n  return element;\n});\nRowsPerPageDropdown.displayName = 'RowsPerPageDropdown';\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar Paginator = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = PaginatorBase.getProps(inProps, context);\n  var metaData = _objectSpread({\n    props: props\n  }, props.__parentMetadata);\n  var _PaginatorBase$setMet = PaginatorBase.setMetaData(metaData),\n    ptm = _PaginatorBase$setMet.ptm,\n    cx = _PaginatorBase$setMet.cx,\n    isUnstyled = _PaginatorBase$setMet.isUnstyled;\n  (0,primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.useHandleStyle)(PaginatorBase.css.styles, isUnstyled, {\n    name: 'paginator'\n  });\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var page = Math.floor(props.first / props.rows);\n  var totalPages = Math.ceil(props.totalRecords / props.rows);\n  var isFirstPage = page === 0;\n  var isLastPage = page === totalPages - 1;\n  var isEmpty = totalPages === 0;\n  var calculatePageLinkBoundaries = function calculatePageLinkBoundaries() {\n    var numberOfPages = totalPages;\n    var visiblePages = Math.min(props.pageLinkSize, numberOfPages);\n\n    //calculate range, keep current in middle if necessary\n    var start = Math.max(0, Math.ceil(page - visiblePages / 2));\n    var end = Math.min(numberOfPages - 1, start + visiblePages - 1);\n\n    //check when approaching to last page\n    var delta = props.pageLinkSize - (end - start + 1);\n    start = Math.max(0, start - delta);\n    return [start, end];\n  };\n  var updatePageLinks = function updatePageLinks() {\n    var pageLinks = [];\n    var boundaries = calculatePageLinkBoundaries();\n    var start = boundaries[0];\n    var end = boundaries[1];\n    for (var i = start; i <= end; i++) {\n      pageLinks.push(i + 1);\n    }\n    return pageLinks;\n  };\n  var changePage = function changePage(first, rows) {\n    var pc = totalPages;\n    var p = Math.floor(first / rows);\n    if (p >= 0 && p < pc) {\n      var newPageState = {\n        first: first,\n        rows: rows,\n        page: p,\n        totalPages: pc\n      };\n      if (props.onPageChange) {\n        props.onPageChange(newPageState);\n      }\n    }\n  };\n  var changePageToFirst = function changePageToFirst(event) {\n    changePage(0, props.rows);\n    event.preventDefault();\n  };\n  var changePageToPrev = function changePageToPrev(event) {\n    changePage(props.first - props.rows, props.rows);\n    event.preventDefault();\n  };\n  var onPageLinkClick = function onPageLinkClick(event) {\n    changePage((event.value - 1) * props.rows, props.rows);\n  };\n  var changePageToNext = function changePageToNext(event) {\n    changePage(props.first + props.rows, props.rows);\n    event.preventDefault();\n  };\n  var changePageToLast = function changePageToLast(event) {\n    changePage((totalPages - 1) * props.rows, props.rows);\n    event.preventDefault();\n  };\n  var onRowsChange = function onRowsChange(event) {\n    var rows = event.value;\n    changePage(0, rows);\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      getElement: function getElement() {\n        return elementRef.current;\n      }\n    };\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUpdateEffect)(function () {\n    if (page > 0 && props.first >= props.totalRecords) {\n      changePage((totalPages - 1) * props.rows, props.rows);\n    }\n  }, [props.totalRecords]);\n  var createElement = function createElement(key, template) {\n    var element;\n    switch (key) {\n      case 'FirstPageLink':\n        element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(FirstPageLink, {\n          hostName: \"Paginator\",\n          key: key,\n          page: page,\n          totalPages: totalPages,\n          totalRecords: props.totalRecords,\n          rows: props.rows,\n          onClick: changePageToFirst,\n          disabled: isFirstPage || isEmpty,\n          template: template,\n          firstPageLinkIcon: props.firstPageLinkIcon,\n          ptm: ptm,\n          cx: cx\n        });\n        break;\n      case 'PrevPageLink':\n        element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(PrevPageLink, {\n          hostName: \"Paginator\",\n          key: key,\n          page: page,\n          totalPages: totalPages,\n          totalRecords: props.totalRecords,\n          rows: props.rows,\n          onClick: changePageToPrev,\n          disabled: isFirstPage || isEmpty,\n          template: template,\n          prevPageLinkIcon: props.prevPageLinkIcon,\n          ptm: ptm,\n          cx: cx\n        });\n        break;\n      case 'NextPageLink':\n        element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(NextPageLink, {\n          hostName: \"Paginator\",\n          key: key,\n          page: page,\n          totalPages: totalPages,\n          totalRecords: props.totalRecords,\n          rows: props.rows,\n          onClick: changePageToNext,\n          disabled: isLastPage || isEmpty,\n          template: template,\n          nextPageLinkIcon: props.nextPageLinkIcon,\n          ptm: ptm,\n          cx: cx\n        });\n        break;\n      case 'LastPageLink':\n        element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(LastPageLink, {\n          hostName: \"Paginator\",\n          key: key,\n          page: page,\n          totalPages: totalPages,\n          totalRecords: props.totalRecords,\n          rows: props.rows,\n          onClick: changePageToLast,\n          disabled: isLastPage || isEmpty,\n          template: template,\n          lastPageLinkIcon: props.lastPageLinkIcon,\n          ptm: ptm,\n          cx: cx\n        });\n        break;\n      case 'PageLinks':\n        element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(PageLinks, {\n          hostName: \"Paginator\",\n          key: key,\n          page: page,\n          totalPages: totalPages,\n          totalRecords: props.totalRecords,\n          rows: props.rows,\n          value: updatePageLinks(),\n          onClick: onPageLinkClick,\n          template: template,\n          ptm: ptm,\n          cx: cx\n        });\n        break;\n      case 'RowsPerPageDropdown':\n        element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(RowsPerPageDropdown, {\n          hostName: \"Paginator\",\n          key: key,\n          value: props.rows,\n          page: page,\n          totalPages: totalPages,\n          totalRecords: props.totalRecords,\n          options: props.rowsPerPageOptions,\n          onChange: onRowsChange,\n          appendTo: props.dropdownAppendTo,\n          template: template,\n          disabled: isEmpty,\n          unstyled: props.unstyled,\n          ptm: ptm,\n          cx: cx,\n          metaData: metaData\n        });\n        break;\n      case 'CurrentPageReport':\n        element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(CurrentPageReport, {\n          hostName: \"Paginator\",\n          reportTemplate: props.currentPageReportTemplate,\n          key: key,\n          page: page,\n          totalPages: totalPages,\n          totalRecords: props.totalRecords,\n          rows: props.rows,\n          first: props.first,\n          template: template,\n          ptm: ptm\n        });\n        break;\n      case 'JumpToPageInput':\n        element = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(JumpToPageInput, {\n          hostName: \"Paginator\",\n          key: key,\n          rows: props.rows,\n          page: page,\n          totalPages: totalPages,\n          onChange: changePage,\n          disabled: isEmpty,\n          template: template,\n          ptm: ptm,\n          unstyled: props.unstyled,\n          metaData: metaData\n        });\n        break;\n      default:\n        element = null;\n        break;\n    }\n    return element;\n  };\n  var createElements = function createElements() {\n    var template = props.template;\n    if (template) {\n      if (_typeof(template) === 'object') {\n        return template.layout ? template.layout.split(' ').map(function (value) {\n          var key = value.trim();\n          return createElement(key, template[key]);\n        }) : Object.entries(template).map(function (_ref) {\n          var _ref2 = _slicedToArray(_ref, 2),\n            key = _ref2[0],\n            _template = _ref2[1];\n          return createElement(key, _template);\n        });\n      }\n      return template.split(' ').map(function (value) {\n        return createElement(value.trim());\n      });\n    }\n    return null;\n  };\n  if (!props.alwaysShow && totalPages <= 1) {\n    return null;\n  }\n  var leftContent = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.leftContent, props);\n  var rightContent = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.rightContent, props);\n  var elements = createElements();\n  var leftProps = mergeProps({\n    className: cx('left')\n  }, ptm('left'));\n  var leftElement = leftContent && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", leftProps, leftContent);\n  var endProps = mergeProps({\n    className: cx('end')\n  }, ptm('end'));\n  var rightElement = rightContent && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", endProps, rightContent);\n  var rootProps = mergeProps({\n    ref: elementRef,\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)(props.className, cx('root')),\n    style: props.style\n  }, PaginatorBase.getOtherProps(props), ptm('root'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", rootProps, leftElement, elements, rightElement);\n}));\nPaginator.displayName = 'Paginator';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/paginator/paginator.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/portal/portal.esm.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/primereact/portal/portal.esm.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Portal: () => (/* binding */ Portal)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ \"../react-ui/node_modules/react-dom/index.js\");\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n'use client';\n\n\n\n\n\n\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nvar PortalBase = {\n  defaultProps: {\n    __TYPE: 'Portal',\n    element: null,\n    appendTo: null,\n    visible: false,\n    onMounted: null,\n    onUnmounted: null,\n    children: undefined\n  },\n  getProps: function getProps(props) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getMergedProps(props, PortalBase.defaultProps);\n  },\n  getOtherProps: function getOtherProps(props) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getDiffProps(props, PortalBase.defaultProps);\n  }\n};\nvar Portal = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (inProps) {\n  var props = PortalBase.getProps(inProps);\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_2__.PrimeReactContext);\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(props.visible && primereact_utils__WEBPACK_IMPORTED_MODULE_4__.DomHandler.isClient()),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    mountedState = _React$useState2[0],\n    setMountedState = _React$useState2[1];\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMountEffect)(function () {\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_4__.DomHandler.isClient() && !mountedState) {\n      setMountedState(true);\n      props.onMounted && props.onMounted();\n    }\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUpdateEffect)(function () {\n    props.onMounted && props.onMounted();\n  }, [mountedState]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUnmountEffect)(function () {\n    props.onUnmounted && props.onUnmounted();\n  });\n  var element = props.element || props.children;\n  if (element && mountedState) {\n    var appendTo = props.appendTo || context && context.appendTo || primereact_api__WEBPACK_IMPORTED_MODULE_2__[\"default\"].appendTo;\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.isFunction(appendTo)) {\n      appendTo = appendTo();\n    }\n    if (!appendTo) {\n      appendTo = document.body;\n    }\n    return appendTo === 'self' ? element : /*#__PURE__*/react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal(element, appendTo);\n  }\n  return null;\n});\nPortal.displayName = 'Portal';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/portal/portal.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/progressbar/progressbar.esm.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/progressbar/progressbar.esm.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ProgressBar: () => (/* binding */ ProgressBar)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/componentbase */ \"../react-ui/node_modules/primereact/componentbase/componentbase.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n'use client';\n\n\n\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nvar classes = {\n  root: function root(_ref) {\n    var props = _ref.props;\n    return props.mode === 'indeterminate' ? (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-progressbar p-component p-progressbar-indeterminate') : (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-progressbar p-component p-progressbar-determinate');\n  },\n  value: 'p-progressbar-value p-progressbar-value-animate',\n  label: 'p-progressbar-label',\n  container: 'p-progressbar-indeterminate-container'\n};\nvar styles = \"\\n@layer primereact {\\n  .p-progressbar {\\n      position: relative;\\n      overflow: hidden;\\n  }\\n  \\n  .p-progressbar-determinate .p-progressbar-value {\\n      height: 100%;\\n      width: 0%;\\n      position: absolute;\\n      display: none;\\n      border: 0 none;\\n      display: flex;\\n      align-items: center;\\n      justify-content: center;\\n      overflow: hidden;\\n  }\\n  \\n  .p-progressbar-determinate .p-progressbar-label {\\n      display: inline-flex;\\n  }\\n  \\n  .p-progressbar-determinate .p-progressbar-value-animate {\\n      transition: width 1s ease-in-out;\\n  }\\n  \\n  .p-progressbar-indeterminate .p-progressbar-value::before {\\n        content: '';\\n        position: absolute;\\n        background-color: inherit;\\n        top: 0;\\n        left: 0;\\n        bottom: 0;\\n        will-change: left, right;\\n        -webkit-animation: p-progressbar-indeterminate-anim 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\\n                animation: p-progressbar-indeterminate-anim 2.1s cubic-bezier(0.65, 0.815, 0.735, 0.395) infinite;\\n  }\\n  \\n  .p-progressbar-indeterminate .p-progressbar-value::after {\\n      content: '';\\n      position: absolute;\\n      background-color: inherit;\\n      top: 0;\\n      left: 0;\\n      bottom: 0;\\n      will-change: left, right;\\n      -webkit-animation: p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\\n              animation: p-progressbar-indeterminate-anim-short 2.1s cubic-bezier(0.165, 0.84, 0.44, 1) infinite;\\n      -webkit-animation-delay: 1.15s;\\n              animation-delay: 1.15s;\\n  }\\n}\\n\\n@-webkit-keyframes p-progressbar-indeterminate-anim {\\n  0% {\\n    left: -35%;\\n    right: 100%; }\\n  60% {\\n    left: 100%;\\n    right: -90%; }\\n  100% {\\n    left: 100%;\\n    right: -90%; }\\n}\\n@keyframes p-progressbar-indeterminate-anim {\\n  0% {\\n    left: -35%;\\n    right: 100%; }\\n  60% {\\n    left: 100%;\\n    right: -90%; }\\n  100% {\\n    left: 100%;\\n    right: -90%; }\\n}\\n\\n@-webkit-keyframes p-progressbar-indeterminate-anim-short {\\n  0% {\\n    left: -200%;\\n    right: 100%; }\\n  60% {\\n    left: 107%;\\n    right: -8%; }\\n  100% {\\n    left: 107%;\\n    right: -8%; }\\n}\\n@keyframes p-progressbar-indeterminate-anim-short {\\n  0% {\\n    left: -200%;\\n    right: 100%; }\\n  60% {\\n    left: 107%;\\n    right: -8%; }\\n  100% {\\n    left: 107%;\\n    right: -8%; }\\n}\\n\";\nvar inlineStyles = {\n  value: function value(_ref2) {\n    var props = _ref2.props;\n    var valueWidth = Math.max(props.value, 2); // min 2 to display full label of 0% and 1%\n    var valueColor = props.value ? props.color : 'transparent';\n    return props.mode === 'indeterminate' ? {\n      backgroundColor: props.color\n    } : {\n      width: valueWidth + '%',\n      display: 'flex',\n      backgroundColor: valueColor\n    };\n  }\n};\nvar ProgressBarBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'ProgressBar',\n    __parentMetadata: null,\n    id: null,\n    value: null,\n    showValue: true,\n    unit: '%',\n    style: null,\n    className: null,\n    mode: 'determinate',\n    displayValueTemplate: null,\n    color: null,\n    children: undefined\n  },\n  css: {\n    classes: classes,\n    styles: styles,\n    inlineStyles: inlineStyles\n  }\n});\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar ProgressBar = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = ProgressBarBase.getProps(inProps, context);\n  var _ProgressBarBase$setM = ProgressBarBase.setMetaData(_objectSpread({\n      props: props\n    }, props.__parentMetadata)),\n    ptm = _ProgressBarBase$setM.ptm,\n    cx = _ProgressBarBase$setM.cx,\n    isUnstyled = _ProgressBarBase$setM.isUnstyled;\n  (0,primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.useHandleStyle)(ProgressBarBase.css.styles, isUnstyled, {\n    name: 'progressbar'\n  });\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var createLabel = function createLabel() {\n    if (props.showValue && props.value != null) {\n      var label = props.displayValueTemplate ? props.displayValueTemplate(props.value) : props.value + props.unit;\n      return label;\n    }\n    return null;\n  };\n  var createDeterminate = function createDeterminate() {\n    var label = createLabel();\n    var rootProps = mergeProps({\n      className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)(props.className, cx('root')),\n      style: props.style,\n      role: 'progressbar',\n      'aria-valuemin': '0',\n      'aria-valuenow': props.value,\n      'aria-valuemax': '100'\n    }, ProgressBarBase.getOtherProps(props), ptm('root'));\n    var valueProps = mergeProps({\n      className: cx('value'),\n      style: {\n        width: props.value + '%',\n        display: 'flex',\n        backgroundColor: props.color\n      }\n    }, ptm('value'));\n    var labelProps = mergeProps({\n      className: cx('label')\n    }, ptm('label'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", _extends({\n      id: props.id,\n      ref: elementRef\n    }, rootProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", valueProps, label != null && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", labelProps, label)));\n  };\n  var createIndeterminate = function createIndeterminate() {\n    var rootProps = mergeProps({\n      className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)(props.className, cx('root')),\n      style: props.style,\n      role: 'progressbar',\n      'aria-valuemin': '0',\n      'aria-valuenow': props.value,\n      'aria-valuemax': '100'\n    }, ProgressBarBase.getOtherProps(props), ptm('root'));\n    var containerProps = mergeProps({\n      className: cx('container')\n    }, ptm('container'));\n    var valueProps = mergeProps({\n      className: cx('value'),\n      style: {\n        backgroundColor: props.color\n      }\n    }, ptm('value'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", _extends({\n      id: props.id,\n      ref: elementRef\n    }, rootProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", containerProps, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", valueProps)));\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      getElement: function getElement() {\n        return elementRef.current;\n      }\n    };\n  });\n  if (props.mode === 'determinate') {\n    return createDeterminate();\n  } else if (props.mode === 'indeterminate') {\n    return createIndeterminate();\n  }\n  throw new Error(props.mode + \" is not a valid mode for the ProgressBar. Valid values are 'determinate' and 'indeterminate'\");\n}));\nProgressBar.displayName = 'ProgressBar';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/progressbar/progressbar.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/resources/themes/lara-light-teal/fonts/InterVariable-Italic.woff2":
/*!*************************************************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/resources/themes/lara-light-teal/fonts/InterVariable-Italic.woff2 ***!
  \*************************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{module.exports = __webpack_require__.p + \"e295f70fe3e2df296c7b.woff2\";\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/resources/themes/lara-light-teal/fonts/InterVariable-Italic.woff2?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/resources/themes/lara-light-teal/fonts/InterVariable.woff2":
/*!******************************************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/resources/themes/lara-light-teal/fonts/InterVariable.woff2 ***!
  \******************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{module.exports = __webpack_require__.p + \"a0e477f2f1f9d2376fde.woff2\";\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/resources/themes/lara-light-teal/fonts/InterVariable.woff2?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/resources/themes/lara-light-teal/theme.css":
/*!**************************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/resources/themes/lara-light-teal/theme.css ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../../assets/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../../assets/node_modules/style-loader/dist/runtime/styleDomAPI.js */ \"./node_modules/style-loader/dist/runtime/styleDomAPI.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../../assets/node_modules/style-loader/dist/runtime/insertBySelector.js */ \"./node_modules/style-loader/dist/runtime/insertBySelector.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../../assets/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ \"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../../assets/node_modules/style-loader/dist/runtime/insertStyleElement.js */ \"./node_modules/style-loader/dist/runtime/insertStyleElement.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../../assets/node_modules/style-loader/dist/runtime/styleTagTransform.js */ \"./node_modules/style-loader/dist/runtime/styleTagTransform.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_theme_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../../assets/node_modules/css-loader/dist/cjs.js!../../../../../../assets/node_modules/sass-loader/dist/cjs.js!./theme.css */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/primereact/resources/themes/lara-light-teal/theme.css\");\n\n      \n      \n      \n      \n      \n      \n      \n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = (_assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\noptions.insert = _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, \"head\");\noptions.domAPI = (_assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_theme_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"], options);\n\n\n\n\n       /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_theme_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"] && _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_theme_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals ? _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_theme_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals : undefined);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/resources/themes/lara-light-teal/theme.css?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/ripple/ripple.esm.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/primereact/ripple/ripple.esm.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Ripple: () => (/* binding */ Ripple)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n/* harmony import */ var primereact_componentbase__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/componentbase */ \"../react-ui/node_modules/primereact/componentbase/componentbase.esm.js\");\n'use client';\n\n\n\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nvar styles = \"\\n@layer primereact {\\n    .p-ripple {\\n        overflow: hidden;\\n        position: relative;\\n    }\\n    \\n    .p-ink {\\n        display: block;\\n        position: absolute;\\n        background: rgba(255, 255, 255, 0.5);\\n        border-radius: 100%;\\n        transform: scale(0);\\n    }\\n    \\n    .p-ink-active {\\n        animation: ripple 0.4s linear;\\n    }\\n    \\n    .p-ripple-disabled .p-ink {\\n        display: none;\\n    }\\n}\\n\\n@keyframes ripple {\\n    100% {\\n        opacity: 0;\\n        transform: scale(2.5);\\n    }\\n}\\n\\n\";\nvar classes = {\n  root: 'p-ink'\n};\nvar RippleBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_4__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'Ripple',\n    children: undefined\n  },\n  css: {\n    styles: styles,\n    classes: classes\n  },\n  getProps: function getProps(props) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getMergedProps(props, RippleBase.defaultProps);\n  },\n  getOtherProps: function getOtherProps(props) {\n    return primereact_utils__WEBPACK_IMPORTED_MODULE_3__.ObjectUtils.getDiffProps(props, RippleBase.defaultProps);\n  }\n});\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar Ripple = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    isMounted = _React$useState2[0],\n    setMounted = _React$useState2[1];\n  var inkRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var targetRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = RippleBase.getProps(inProps, context);\n  var isRippleActive = context && context.ripple || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].ripple;\n  var metaData = {\n    props: props\n  };\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useStyle)(RippleBase.css.styles, {\n    name: 'ripple',\n    manual: !isRippleActive\n  });\n  var _RippleBase$setMetaDa = RippleBase.setMetaData(_objectSpread({}, metaData)),\n    ptm = _RippleBase$setMetaDa.ptm,\n    cx = _RippleBase$setMetaDa.cx;\n  var getTarget = function getTarget() {\n    return inkRef.current && inkRef.current.parentElement;\n  };\n  var bindEvents = function bindEvents() {\n    if (targetRef.current) {\n      targetRef.current.addEventListener('pointerdown', onPointerDown);\n    }\n  };\n  var unbindEvents = function unbindEvents() {\n    if (targetRef.current) {\n      targetRef.current.removeEventListener('pointerdown', onPointerDown);\n    }\n  };\n  var onPointerDown = function onPointerDown(event) {\n    var offset = primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOffset(targetRef.current);\n    var offsetX = event.pageX - offset.left + document.body.scrollTop - primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getWidth(inkRef.current) / 2;\n    var offsetY = event.pageY - offset.top + document.body.scrollLeft - primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getHeight(inkRef.current) / 2;\n    activateRipple(offsetX, offsetY);\n  };\n  var activateRipple = function activateRipple(offsetX, offsetY) {\n    if (!inkRef.current || getComputedStyle(inkRef.current, null).display === 'none') {\n      return;\n    }\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.removeClass(inkRef.current, 'p-ink-active');\n    setDimensions();\n    inkRef.current.style.top = offsetY + 'px';\n    inkRef.current.style.left = offsetX + 'px';\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.addClass(inkRef.current, 'p-ink-active');\n  };\n  var onAnimationEnd = function onAnimationEnd(event) {\n    primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.removeClass(event.currentTarget, 'p-ink-active');\n  };\n  var setDimensions = function setDimensions() {\n    if (inkRef.current && !primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getHeight(inkRef.current) && !primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getWidth(inkRef.current)) {\n      var d = Math.max(primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterWidth(targetRef.current), primereact_utils__WEBPACK_IMPORTED_MODULE_3__.DomHandler.getOuterHeight(targetRef.current));\n      inkRef.current.style.height = d + 'px';\n      inkRef.current.style.width = d + 'px';\n    }\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      getInk: function getInk() {\n        return inkRef.current;\n      },\n      getTarget: function getTarget() {\n        return targetRef.current;\n      }\n    };\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useMountEffect)(function () {\n    // for App Router in Next.js ^14\n    setMounted(true);\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useUpdateEffect)(function () {\n    if (isMounted && inkRef.current) {\n      targetRef.current = getTarget();\n      setDimensions();\n      bindEvents();\n    }\n  }, [isMounted]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useUpdateEffect)(function () {\n    if (inkRef.current && !targetRef.current) {\n      targetRef.current = getTarget();\n      setDimensions();\n      bindEvents();\n    }\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useUnmountEffect)(function () {\n    if (inkRef.current) {\n      targetRef.current = null;\n      unbindEvents();\n    }\n  });\n  if (!isRippleActive) {\n    return null;\n  }\n  var rootProps = mergeProps({\n    'aria-hidden': true,\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_3__.classNames)(cx('root'))\n  }, RippleBase.getOtherProps(props), ptm('root'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", _extends({\n    role: \"presentation\",\n    ref: inkRef\n  }, rootProps, {\n    onAnimationEnd: onAnimationEnd\n  }));\n}));\nRipple.displayName = 'Ripple';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/ripple/ripple.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/selectbutton/selectbutton.esm.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/selectbutton/selectbutton.esm.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   SelectButton: () => (/* binding */ SelectButton)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/componentbase */ \"../react-ui/node_modules/primereact/componentbase/componentbase.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_tooltip__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/tooltip */ \"../react-ui/node_modules/primereact/tooltip/tooltip.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n/* harmony import */ var primereact_ripple__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! primereact/ripple */ \"../react-ui/node_modules/primereact/ripple/ripple.esm.js\");\n'use client';\n\n\n\n\n\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toConsumableArray(r) {\n  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nvar classes = {\n  root: function root(_ref) {\n    var props = _ref.props;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.classNames)('p-selectbutton p-button-group p-component', {\n      'p-invalid': props.invalid\n    });\n  },\n  button: function button(_ref2) {\n    var props = _ref2.itemProps,\n      focusedState = _ref2.focusedState;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.classNames)('p-button p-component', {\n      'p-highlight': props.selected,\n      'p-disabled': props.disabled,\n      'p-focus': focusedState\n    });\n  },\n  label: 'p-button-label p-c'\n};\nvar SelectButtonBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'SelectButton',\n    id: null,\n    value: null,\n    options: null,\n    optionLabel: null,\n    optionValue: null,\n    optionDisabled: null,\n    tabIndex: null,\n    multiple: false,\n    invalid: false,\n    unselectable: true,\n    allowEmpty: true,\n    disabled: false,\n    style: null,\n    className: null,\n    dataKey: null,\n    tooltip: null,\n    tooltipOptions: null,\n    itemTemplate: null,\n    onChange: null,\n    children: undefined\n  },\n  css: {\n    classes: classes\n  }\n});\nvar SelectButtonItem = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(function (props) {\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    focusedState = _React$useState2[0],\n    setFocusedState = _React$useState2[1];\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var ptm = props.ptm,\n    cx = props.cx;\n  var getPTOptions = function getPTOptions(key) {\n    return ptm(key, {\n      hostName: props.hostName,\n      context: {\n        selected: props.selected,\n        disabled: props.disabled,\n        option: props.option\n      }\n    });\n  };\n  var _onClick = function onClick(event, index) {\n    props.setFocusedIndex(index);\n    if (props.onClick) {\n      props.onClick({\n        originalEvent: event,\n        option: props.option\n      });\n    }\n  };\n  var onFocus = function onFocus() {\n    setFocusedState(true);\n  };\n  var onBlur = function onBlur() {\n    setFocusedState(false);\n  };\n  var _onKeyDown = function onKeyDown(event, index) {\n    switch (event.code) {\n      case 'Space':\n        {\n          _onClick(event, index);\n          event.preventDefault();\n          break;\n        }\n      case 'ArrowDown':\n      case 'ArrowRight':\n        {\n          changeTabIndexes(event, 'next');\n          event.preventDefault();\n          break;\n        }\n      case 'ArrowUp':\n      case 'ArrowLeft':\n        {\n          changeTabIndexes(event, 'prev');\n          event.preventDefault();\n          break;\n        }\n    }\n  };\n  var changeTabIndexes = function changeTabIndexes(event, direction) {\n    var firstTabableChild;\n    var index;\n    for (var i = 0; i <= props.elementRef.current.children.length - 1; i++) {\n      if (props.elementRef.current.children[i].getAttribute('tabindex') === '0') {\n        firstTabableChild = {\n          elem: props.elementRef.current.children[i],\n          index: i\n        };\n      }\n    }\n    if (direction === 'prev') {\n      if (firstTabableChild.index === 0) {\n        index = props.elementRef.current.children.length - 1;\n      } else {\n        index = firstTabableChild.index - 1;\n      }\n    } else if (firstTabableChild.index === props.elementRef.current.children.length - 1) {\n      index = 0;\n    } else {\n      index = firstTabableChild.index + 1;\n    }\n    props.setFocusedIndex(index);\n    props.elementRef.current.children[index].focus();\n  };\n  var createContent = function createContent() {\n    var labelProps = mergeProps({\n      className: cx('label')\n    }, getPTOptions('label'));\n    return props.template ? primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.getJSXElement(props.template, props.option) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", labelProps, props.label);\n  };\n  var content = createContent();\n  var buttonProps = mergeProps({\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.classNames)(props.className, cx('button', {\n      itemProps: props,\n      focusedState: focusedState\n    })),\n    role: 'button',\n    'aria-label': props.label,\n    'aria-pressed': props.selected,\n    onClick: function onClick(event) {\n      return _onClick(event, props.index);\n    },\n    onKeyDown: function onKeyDown(event) {\n      return _onKeyDown(event, props.index);\n    },\n    tabIndex: props.tabIndex,\n    'aria-disabled': props.disabled,\n    onFocus: onFocus,\n    onBlur: onBlur\n  }, getPTOptions('button'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", buttonProps, content, !props.disabled && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_ripple__WEBPACK_IMPORTED_MODULE_6__.Ripple, null));\n});\nSelectButtonItem.displayName = 'SelectButtonItem';\nvar SelectButton = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = SelectButtonBase.getProps(inProps, context);\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(0),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    focusedIndex = _React$useState2[0],\n    setFocusedIndex = _React$useState2[1];\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _SelectButtonBase$set = SelectButtonBase.setMetaData({\n      props: props\n    }),\n    ptm = _SelectButtonBase$set.ptm,\n    cx = _SelectButtonBase$set.cx,\n    isUnstyled = _SelectButtonBase$set.isUnstyled;\n  (0,primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.useHandleStyle)(SelectButtonBase.css.styles, isUnstyled, {\n    name: 'selectbutton',\n    styled: true\n  });\n  var onOptionClick = function onOptionClick(event) {\n    if (props.disabled || isOptionDisabled(event.option)) {\n      return;\n    }\n    var selected = isSelected(event.option);\n    if (selected && !(props.unselectable && props.allowEmpty)) {\n      return;\n    }\n    var optionValue = getOptionValue(event.option);\n    var newValue;\n    if (props.multiple) {\n      var currentValue = props.value ? _toConsumableArray(props.value) : [];\n      newValue = selected ? currentValue.filter(function (val) {\n        return !primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.equals(val, optionValue, props.dataKey);\n      }) : [].concat(_toConsumableArray(currentValue), [optionValue]);\n    } else {\n      newValue = selected ? null : optionValue;\n    }\n    if (props.onChange) {\n      props.onChange({\n        originalEvent: event.originalEvent,\n        value: newValue,\n        stopPropagation: function stopPropagation() {\n          event.originalEvent.stopPropagation();\n        },\n        preventDefault: function preventDefault() {\n          event.originalEvent.preventDefault();\n        },\n        target: {\n          name: props.name,\n          id: props.id,\n          value: newValue\n        }\n      });\n    }\n  };\n  var getOptionLabel = function getOptionLabel(option) {\n    return props.optionLabel ? primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.resolveFieldData(option, props.optionLabel) : option && option.label !== undefined ? option.label : option;\n  };\n  var getOptionValue = function getOptionValue(option) {\n    return props.optionValue ? primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.resolveFieldData(option, props.optionValue) : option && option.value !== undefined ? option.value : option;\n  };\n  var isOptionDisabled = function isOptionDisabled(option) {\n    if (props.optionDisabled) {\n      return primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.isFunction(props.optionDisabled) ? props.optionDisabled(option) : primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.resolveFieldData(option, props.optionDisabled);\n    }\n    return option && option.disabled !== undefined ? option.disabled : false;\n  };\n  var isSelected = function isSelected(option) {\n    var optionValue = getOptionValue(option);\n    if (props.multiple) {\n      if (props.value && props.value.length) {\n        return props.value.some(function (val) {\n          return primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.equals(val, optionValue, props.dataKey);\n        });\n      }\n    } else {\n      return primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.equals(props.value, optionValue, props.dataKey);\n    }\n    return false;\n  };\n  var createItems = function createItems() {\n    if (props.options && props.options.length) {\n      return props.options.map(function (option, index) {\n        var isDisabled = props.disabled || isOptionDisabled(option);\n        var optionLabel = getOptionLabel(option);\n        var tabIndex = props.disabled || index !== focusedIndex ? '-1' : '0';\n        var selected = isSelected(option);\n        var key = optionLabel + '_' + index;\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(SelectButtonItem, {\n          hostName: \"SelectButton\",\n          key: key,\n          label: optionLabel,\n          className: option.className,\n          option: option,\n          setFocusedIndex: setFocusedIndex,\n          onClick: onOptionClick,\n          template: props.itemTemplate,\n          selected: selected,\n          tabIndex: tabIndex,\n          index: index,\n          disabled: isDisabled,\n          ptm: ptm,\n          cx: cx,\n          elementRef: elementRef\n        });\n      });\n    }\n    return null;\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      focus: function focus() {\n        return primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.focusFirstElement(elementRef.current);\n      },\n      getElement: function getElement() {\n        return elementRef.current;\n      }\n    };\n  });\n  var hasTooltip = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.isNotEmpty(props.tooltip);\n  var items = createItems();\n  var rootProps = mergeProps({\n    ref: elementRef,\n    id: props.id,\n    className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.classNames)(props.className, cx('root')),\n    style: props.style,\n    role: 'group'\n  }, SelectButtonBase.getOtherProps(props), ptm('root'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", rootProps, items, props.children), hasTooltip && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_tooltip__WEBPACK_IMPORTED_MODULE_4__.Tooltip, _extends({\n    target: elementRef,\n    content: props.tooltip,\n    pt: ptm('tooltip')\n  }, props.tooltipOptions)));\n}));\nSelectButton.displayName = 'SelectButton';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/selectbutton/selectbutton.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/tooltip/tooltip.esm.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/primereact/tooltip/tooltip.esm.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Tooltip: () => (/* binding */ Tooltip)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/componentbase */ \"../react-ui/node_modules/primereact/componentbase/componentbase.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_portal__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/portal */ \"../react-ui/node_modules/primereact/portal/portal.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n'use client';\n\n\n\n\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toConsumableArray(r) {\n  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nvar classes = {\n  root: function root(_ref) {\n    var positionState = _ref.positionState,\n      classNameState = _ref.classNameState;\n    return (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.classNames)('p-tooltip p-component', _defineProperty({}, \"p-tooltip-\".concat(positionState), true), classNameState);\n  },\n  arrow: 'p-tooltip-arrow',\n  text: 'p-tooltip-text'\n};\nvar inlineStyles = {\n  arrow: function arrow(_ref2) {\n    var context = _ref2.context;\n    return {\n      top: context.bottom ? '0' : context.right || context.left || !context.right && !context.left && !context.top && !context.bottom ? '50%' : null,\n      bottom: context.top ? '0' : null,\n      left: context.right || !context.right && !context.left && !context.top && !context.bottom ? '0' : context.top || context.bottom ? '50%' : null,\n      right: context.left ? '0' : null\n    };\n  }\n};\nvar styles = \"\\n@layer primereact {\\n    .p-tooltip {\\n        position: absolute;\\n        padding: .25em .5rem;\\n        /* #3687: Tooltip prevent scrollbar flickering */\\n        top: -9999px;\\n        left: -9999px;\\n    }\\n    \\n    .p-tooltip.p-tooltip-right,\\n    .p-tooltip.p-tooltip-left {\\n        padding: 0 .25rem;\\n    }\\n    \\n    .p-tooltip.p-tooltip-top,\\n    .p-tooltip.p-tooltip-bottom {\\n        padding:.25em 0;\\n    }\\n    \\n    .p-tooltip .p-tooltip-text {\\n       white-space: pre-line;\\n       word-break: break-word;\\n    }\\n    \\n    .p-tooltip-arrow {\\n        position: absolute;\\n        width: 0;\\n        height: 0;\\n        border-color: transparent;\\n        border-style: solid;\\n    }\\n    \\n    .p-tooltip-right .p-tooltip-arrow {\\n        top: 50%;\\n        left: 0;\\n        margin-top: -.25rem;\\n        border-width: .25em .25em .25em 0;\\n    }\\n    \\n    .p-tooltip-left .p-tooltip-arrow {\\n        top: 50%;\\n        right: 0;\\n        margin-top: -.25rem;\\n        border-width: .25em 0 .25em .25rem;\\n    }\\n    \\n    .p-tooltip.p-tooltip-top {\\n        padding: .25em 0;\\n    }\\n    \\n    .p-tooltip-top .p-tooltip-arrow {\\n        bottom: 0;\\n        left: 50%;\\n        margin-left: -.25rem;\\n        border-width: .25em .25em 0;\\n    }\\n    \\n    .p-tooltip-bottom .p-tooltip-arrow {\\n        top: 0;\\n        left: 50%;\\n        margin-left: -.25rem;\\n        border-width: 0 .25em .25rem;\\n    }\\n\\n    .p-tooltip-target-wrapper {\\n        display: inline-flex;\\n    }\\n}\\n\";\nvar TooltipBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'Tooltip',\n    appendTo: null,\n    at: null,\n    autoHide: true,\n    autoZIndex: true,\n    baseZIndex: 0,\n    className: null,\n    closeOnEscape: false,\n    content: null,\n    disabled: false,\n    event: null,\n    hideDelay: 0,\n    hideEvent: 'mouseleave',\n    id: null,\n    mouseTrack: false,\n    mouseTrackLeft: 5,\n    mouseTrackTop: 5,\n    my: null,\n    onBeforeHide: null,\n    onBeforeShow: null,\n    onHide: null,\n    onShow: null,\n    position: 'right',\n    showDelay: 0,\n    showEvent: 'mouseenter',\n    showOnDisabled: false,\n    style: null,\n    target: null,\n    updateDelay: 0,\n    children: undefined\n  },\n  css: {\n    classes: classes,\n    styles: styles,\n    inlineStyles: inlineStyles\n  }\n});\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar Tooltip = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = TooltipBase.getProps(inProps, context);\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    visibleState = _React$useState2[0],\n    setVisibleState = _React$useState2[1];\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__.useState(props.position || 'right'),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    positionState = _React$useState4[0],\n    setPositionState = _React$useState4[1];\n  var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_0__.useState(''),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    classNameState = _React$useState6[0],\n    setClassNameState = _React$useState6[1];\n  var _React$useState7 = react__WEBPACK_IMPORTED_MODULE_0__.useState(false),\n    _React$useState8 = _slicedToArray(_React$useState7, 2),\n    multipleFocusEvents = _React$useState8[0],\n    setMultipleFocusEvents = _React$useState8[1];\n  var isCloseOnEscape = visibleState && props.closeOnEscape;\n  var overlayDisplayOrder = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useDisplayOrder)('tooltip', isCloseOnEscape);\n  var metaData = {\n    props: props,\n    state: {\n      visible: visibleState,\n      position: positionState,\n      className: classNameState\n    },\n    context: {\n      right: positionState === 'right',\n      left: positionState === 'left',\n      top: positionState === 'top',\n      bottom: positionState === 'bottom'\n    }\n  };\n  var _TooltipBase$setMetaD = TooltipBase.setMetaData(metaData),\n    ptm = _TooltipBase$setMetaD.ptm,\n    cx = _TooltipBase$setMetaD.cx,\n    sx = _TooltipBase$setMetaD.sx,\n    isUnstyled = _TooltipBase$setMetaD.isUnstyled;\n  (0,primereact_componentbase__WEBPACK_IMPORTED_MODULE_2__.useHandleStyle)(TooltipBase.css.styles, isUnstyled, {\n    name: 'tooltip'\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useGlobalOnEscapeKey)({\n    callback: function callback() {\n      hide();\n    },\n    when: isCloseOnEscape,\n    priority: [primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.ESC_KEY_HANDLING_PRIORITIES.TOOLTIP, overlayDisplayOrder]\n  });\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var textRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var currentTargetRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var containerSize = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var allowHide = react__WEBPACK_IMPORTED_MODULE_0__.useRef(true);\n  var timeouts = react__WEBPACK_IMPORTED_MODULE_0__.useRef({});\n  var currentMouseEvent = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _useResizeListener = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useResizeListener)({\n      listener: function listener(event) {\n        !primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.isTouchDevice() && hide(event);\n      }\n    }),\n    _useResizeListener2 = _slicedToArray(_useResizeListener, 2),\n    bindWindowResizeListener = _useResizeListener2[0],\n    unbindWindowResizeListener = _useResizeListener2[1];\n  var _useOverlayScrollList = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useOverlayScrollListener)({\n      target: currentTargetRef.current,\n      listener: function listener(event) {\n        hide(event);\n      },\n      when: visibleState\n    }),\n    _useOverlayScrollList2 = _slicedToArray(_useOverlayScrollList, 2),\n    bindOverlayScrollListener = _useOverlayScrollList2[0],\n    unbindOverlayScrollListener = _useOverlayScrollList2[1];\n  var isTargetContentEmpty = function isTargetContentEmpty(target) {\n    return !(props.content || getTargetOption(target, 'tooltip'));\n  };\n  var isContentEmpty = function isContentEmpty(target) {\n    return !(props.content || getTargetOption(target, 'tooltip') || props.children);\n  };\n  var isMouseTrack = function isMouseTrack(target) {\n    return getTargetOption(target, 'mousetrack') || props.mouseTrack;\n  };\n  var isDisabled = function isDisabled(target) {\n    return getTargetOption(target, 'disabled') === 'true' || hasTargetOption(target, 'disabled') || props.disabled;\n  };\n  var isShowOnDisabled = function isShowOnDisabled(target) {\n    return getTargetOption(target, 'showondisabled') || props.showOnDisabled;\n  };\n  var isAutoHide = function isAutoHide() {\n    return getTargetOption(currentTargetRef.current, 'autohide') || props.autoHide;\n  };\n  var getTargetOption = function getTargetOption(target, option) {\n    return hasTargetOption(target, \"data-pr-\".concat(option)) ? target.getAttribute(\"data-pr-\".concat(option)) : null;\n  };\n  var hasTargetOption = function hasTargetOption(target, option) {\n    return target && target.hasAttribute(option);\n  };\n  var getEvents = function getEvents(target) {\n    var showEvents = [getTargetOption(target, 'showevent') || props.showEvent];\n    var hideEvents = [getTargetOption(target, 'hideevent') || props.hideEvent];\n    if (isMouseTrack(target)) {\n      showEvents = ['mousemove'];\n      hideEvents = ['mouseleave'];\n    } else {\n      var event = getTargetOption(target, 'event') || props.event;\n      if (event === 'focus') {\n        showEvents = ['focus'];\n        hideEvents = ['blur'];\n      }\n      if (event === 'both') {\n        showEvents = ['focus', 'mouseenter'];\n        hideEvents = multipleFocusEvents ? ['blur'] : ['mouseleave', 'blur'];\n      }\n    }\n    return {\n      showEvents: showEvents,\n      hideEvents: hideEvents\n    };\n  };\n  var getPosition = function getPosition(target) {\n    return getTargetOption(target, 'position') || positionState;\n  };\n  var getMouseTrackPosition = function getMouseTrackPosition(target) {\n    var top = getTargetOption(target, 'mousetracktop') || props.mouseTrackTop;\n    var left = getTargetOption(target, 'mousetrackleft') || props.mouseTrackLeft;\n    return {\n      top: top,\n      left: left\n    };\n  };\n  var updateText = function updateText(target, callback) {\n    if (textRef.current) {\n      var content = getTargetOption(target, 'tooltip') || props.content;\n      if (content) {\n        textRef.current.innerHTML = ''; // remove children\n        textRef.current.appendChild(document.createTextNode(content));\n        callback();\n      } else if (props.children) {\n        callback();\n      }\n    }\n  };\n  var updateTooltipState = function updateTooltipState(position) {\n    updateText(currentTargetRef.current, function () {\n      var _currentMouseEvent$cu = currentMouseEvent.current,\n        x = _currentMouseEvent$cu.pageX,\n        y = _currentMouseEvent$cu.pageY;\n      if (props.autoZIndex && !primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ZIndexUtils.get(elementRef.current)) {\n        primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ZIndexUtils.set('tooltip', elementRef.current, context && context.autoZIndex || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].autoZIndex, props.baseZIndex || context && context.zIndex.tooltip || primereact_api__WEBPACK_IMPORTED_MODULE_1__[\"default\"].zIndex.tooltip);\n      }\n      elementRef.current.style.left = '';\n      elementRef.current.style.top = '';\n\n      // GitHub #2695 disable pointer events when autohiding\n      if (isAutoHide()) {\n        elementRef.current.style.pointerEvents = 'none';\n      }\n      var mouseTrackCheck = isMouseTrack(currentTargetRef.current) || position === 'mouse';\n      if (mouseTrackCheck && !containerSize.current || mouseTrackCheck) {\n        containerSize.current = {\n          width: primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getOuterWidth(elementRef.current),\n          height: primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getOuterHeight(elementRef.current)\n        };\n      }\n      align(currentTargetRef.current, {\n        x: x,\n        y: y\n      }, position);\n    });\n  };\n  var show = function show(e) {\n    if (e.type && e.type === 'focus') setMultipleFocusEvents(true);\n    currentTargetRef.current = e.currentTarget;\n    var disabled = isDisabled(currentTargetRef.current);\n    var empty = isContentEmpty(isShowOnDisabled(currentTargetRef.current) && disabled ? currentTargetRef.current.firstChild : currentTargetRef.current);\n    if (empty || disabled) {\n      return;\n    }\n    currentMouseEvent.current = e;\n    if (visibleState) {\n      applyDelay('updateDelay', updateTooltipState);\n    } else {\n      // #2653 give the callback a chance to return false and not continue with display\n      var success = sendCallback(props.onBeforeShow, {\n        originalEvent: e,\n        target: currentTargetRef.current\n      });\n      if (success) {\n        applyDelay('showDelay', function () {\n          setVisibleState(true);\n          sendCallback(props.onShow, {\n            originalEvent: e,\n            target: currentTargetRef.current\n          });\n        });\n      }\n    }\n  };\n  var hide = function hide(e) {\n    if (e && e.type === 'blur') setMultipleFocusEvents(false);\n    clearTimeouts();\n    if (visibleState) {\n      var success = sendCallback(props.onBeforeHide, {\n        originalEvent: e,\n        target: currentTargetRef.current\n      });\n      if (success) {\n        applyDelay('hideDelay', function () {\n          if (!isAutoHide() && allowHide.current === false) {\n            return;\n          }\n          primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ZIndexUtils.clear(elementRef.current);\n          primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.removeClass(elementRef.current, 'p-tooltip-active');\n          setVisibleState(false);\n          sendCallback(props.onHide, {\n            originalEvent: e,\n            target: currentTargetRef.current\n          });\n        });\n      }\n    } else if (!props.onBeforeHide && !getDelay('hideDelay')) {\n      // handles the case when visibleState change from mouseenter was queued and mouseleave handler was called earlier than queued re-render\n      setVisibleState(false);\n    }\n  };\n  var align = function align(target, coordinate, position) {\n    var left = 0;\n    var top = 0;\n    var currentPosition = position || positionState;\n    if ((isMouseTrack(target) || currentPosition == 'mouse') && coordinate) {\n      var _containerSize = {\n        width: primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getOuterWidth(elementRef.current),\n        height: primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.getOuterHeight(elementRef.current)\n      };\n      left = coordinate.x;\n      top = coordinate.y;\n      var _getMouseTrackPositio = getMouseTrackPosition(target),\n        mouseTrackTop = _getMouseTrackPositio.top,\n        mouseTrackLeft = _getMouseTrackPositio.left;\n      switch (currentPosition) {\n        case 'left':\n          left = left - (_containerSize.width + mouseTrackLeft);\n          top = top - (_containerSize.height / 2 - mouseTrackTop);\n          break;\n        case 'right':\n        case 'mouse':\n          left = left + mouseTrackLeft;\n          top = top - (_containerSize.height / 2 - mouseTrackTop);\n          break;\n        case 'top':\n          left = left - (_containerSize.width / 2 - mouseTrackLeft);\n          top = top - (_containerSize.height + mouseTrackTop);\n          break;\n        case 'bottom':\n          left = left - (_containerSize.width / 2 - mouseTrackLeft);\n          top = top + mouseTrackTop;\n          break;\n      }\n      if (left <= 0 || containerSize.current.width > _containerSize.width) {\n        elementRef.current.style.left = '0px';\n        elementRef.current.style.right = window.innerWidth - _containerSize.width - left + 'px';\n      } else {\n        elementRef.current.style.right = '';\n        elementRef.current.style.left = left + 'px';\n      }\n      elementRef.current.style.top = top + 'px';\n      primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.addClass(elementRef.current, 'p-tooltip-active');\n    } else {\n      var pos = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.findCollisionPosition(currentPosition);\n      var my = getTargetOption(target, 'my') || props.my || pos.my;\n      var at = getTargetOption(target, 'at') || props.at || pos.at;\n      elementRef.current.style.padding = '0px';\n      primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.flipfitCollision(elementRef.current, target, my, at, function (calculatedPosition) {\n        var _calculatedPosition$a = calculatedPosition.at,\n          atX = _calculatedPosition$a.x,\n          atY = _calculatedPosition$a.y;\n        var myX = calculatedPosition.my.x;\n        var newPosition = props.at ? atX !== 'center' && atX !== myX ? atX : atY : calculatedPosition.at[\"\".concat(pos.axis)];\n        elementRef.current.style.padding = '';\n        setPositionState(newPosition);\n        updateContainerPosition(newPosition);\n        primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.addClass(elementRef.current, 'p-tooltip-active');\n      });\n    }\n  };\n  var updateContainerPosition = function updateContainerPosition(position) {\n    if (elementRef.current) {\n      var style = getComputedStyle(elementRef.current);\n      if (position === 'left') {\n        elementRef.current.style.left = parseFloat(style.left) - parseFloat(style.paddingLeft) * 2 + 'px';\n      } else if (position === 'top') {\n        elementRef.current.style.top = parseFloat(style.top) - parseFloat(style.paddingTop) * 2 + 'px';\n      }\n    }\n  };\n  var _onMouseEnter = function onMouseEnter() {\n    if (!isAutoHide()) {\n      allowHide.current = false;\n    }\n  };\n  var _onMouseLeave = function onMouseLeave(e) {\n    if (!isAutoHide()) {\n      allowHide.current = true;\n      hide(e);\n    }\n  };\n  var bindTargetEvent = function bindTargetEvent(target) {\n    if (target) {\n      var _getEvents = getEvents(target),\n        showEvents = _getEvents.showEvents,\n        hideEvents = _getEvents.hideEvents;\n      var currentTarget = getTarget(target);\n      showEvents.forEach(function (event) {\n        return currentTarget === null || currentTarget === void 0 ? void 0 : currentTarget.addEventListener(event, show);\n      });\n      hideEvents.forEach(function (event) {\n        return currentTarget === null || currentTarget === void 0 ? void 0 : currentTarget.addEventListener(event, hide);\n      });\n    }\n  };\n  var unbindTargetEvent = function unbindTargetEvent(target) {\n    if (target) {\n      var _getEvents2 = getEvents(target),\n        showEvents = _getEvents2.showEvents,\n        hideEvents = _getEvents2.hideEvents;\n      var currentTarget = getTarget(target);\n      showEvents.forEach(function (event) {\n        return currentTarget === null || currentTarget === void 0 ? void 0 : currentTarget.removeEventListener(event, show);\n      });\n      hideEvents.forEach(function (event) {\n        return currentTarget === null || currentTarget === void 0 ? void 0 : currentTarget.removeEventListener(event, hide);\n      });\n    }\n  };\n  var getDelay = function getDelay(delayProp) {\n    return getTargetOption(currentTargetRef.current, delayProp.toLowerCase()) || props[delayProp];\n  };\n  var applyDelay = function applyDelay(delayProp, callback) {\n    clearTimeouts();\n    var delay = getDelay(delayProp);\n    delay ? timeouts.current[\"\".concat(delayProp)] = setTimeout(function () {\n      return callback();\n    }, delay) : callback();\n  };\n  var sendCallback = function sendCallback(callback) {\n    if (callback) {\n      for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        params[_key - 1] = arguments[_key];\n      }\n      var result = callback.apply(void 0, params);\n      if (result === undefined) {\n        result = true;\n      }\n      return result;\n    }\n    return true;\n  };\n  var clearTimeouts = function clearTimeouts() {\n    Object.values(timeouts.current).forEach(function (t) {\n      return clearTimeout(t);\n    });\n  };\n  var getTarget = function getTarget(target) {\n    if (target) {\n      if (isShowOnDisabled(target)) {\n        if (!target.hasWrapper) {\n          var wrapper = document.createElement('div');\n          var isInputElement = target.nodeName === 'INPUT';\n          if (isInputElement) {\n            primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.addMultipleClasses(wrapper, 'p-tooltip-target-wrapper p-inputwrapper');\n          } else {\n            primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.addClass(wrapper, 'p-tooltip-target-wrapper');\n          }\n          target.parentNode.insertBefore(wrapper, target);\n          wrapper.appendChild(target);\n          target.hasWrapper = true;\n          return wrapper;\n        }\n        return target.parentElement;\n      } else if (target.hasWrapper) {\n        var _target$parentElement;\n        (_target$parentElement = target.parentElement).replaceWith.apply(_target$parentElement, _toConsumableArray(target.parentElement.childNodes));\n        delete target.hasWrapper;\n      }\n      return target;\n    }\n    return null;\n  };\n  var updateTargetEvents = function updateTargetEvents(target) {\n    unloadTargetEvents(target);\n    loadTargetEvents(target);\n  };\n  var loadTargetEvents = function loadTargetEvents(target) {\n    setTargetEventOperations(target || props.target, bindTargetEvent);\n  };\n  var unloadTargetEvents = function unloadTargetEvents(target) {\n    setTargetEventOperations(target || props.target, unbindTargetEvent);\n  };\n  var setTargetEventOperations = function setTargetEventOperations(target, operation) {\n    target = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ObjectUtils.getRefElement(target);\n    if (target) {\n      if (primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.isElement(target)) {\n        operation(target);\n      } else {\n        var setEvent = function setEvent(target) {\n          var element = primereact_utils__WEBPACK_IMPORTED_MODULE_5__.DomHandler.find(document, target);\n          element.forEach(function (el) {\n            operation(el);\n          });\n        };\n        if (target instanceof Array) {\n          target.forEach(function (t) {\n            setEvent(t);\n          });\n        } else {\n          setEvent(target);\n        }\n      }\n    }\n  };\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useMountEffect)(function () {\n    if (visibleState && currentTargetRef.current && isDisabled(currentTargetRef.current)) {\n      hide();\n    }\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUpdateEffect)(function () {\n    loadTargetEvents();\n    return function () {\n      unloadTargetEvents();\n    };\n  }, [show, hide, props.target]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUpdateEffect)(function () {\n    if (visibleState) {\n      var position = getPosition(currentTargetRef.current);\n      var classname = getTargetOption(currentTargetRef.current, 'classname');\n      setPositionState(position);\n      setClassNameState(classname);\n      updateTooltipState(position);\n      bindWindowResizeListener();\n      bindOverlayScrollListener();\n    } else {\n      setPositionState(props.position || 'right');\n      setClassNameState('');\n      currentTargetRef.current = null;\n      containerSize.current = null;\n      allowHide.current = true;\n    }\n    return function () {\n      unbindWindowResizeListener();\n      unbindOverlayScrollListener();\n    };\n  }, [visibleState]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUpdateEffect)(function () {\n    var position = getPosition(currentTargetRef.current);\n    if (visibleState && position !== 'mouse') {\n      applyDelay('updateDelay', function () {\n        updateText(currentTargetRef.current, function () {\n          align(currentTargetRef.current);\n        });\n      });\n    }\n  }, [props.content]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_3__.useUnmountEffect)(function () {\n    hide();\n    primereact_utils__WEBPACK_IMPORTED_MODULE_5__.ZIndexUtils.clear(elementRef.current);\n  });\n  react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      updateTargetEvents: updateTargetEvents,\n      loadTargetEvents: loadTargetEvents,\n      unloadTargetEvents: unloadTargetEvents,\n      show: show,\n      hide: hide,\n      getElement: function getElement() {\n        return elementRef.current;\n      },\n      getTarget: function getTarget() {\n        return currentTargetRef.current;\n      }\n    };\n  });\n  var createElement = function createElement() {\n    var empty = isTargetContentEmpty(currentTargetRef.current);\n    var rootProps = mergeProps({\n      id: props.id,\n      className: (0,primereact_utils__WEBPACK_IMPORTED_MODULE_5__.classNames)(props.className, cx('root', {\n        positionState: positionState,\n        classNameState: classNameState\n      })),\n      style: props.style,\n      role: 'tooltip',\n      'aria-hidden': visibleState,\n      onMouseEnter: function onMouseEnter(e) {\n        return _onMouseEnter();\n      },\n      onMouseLeave: function onMouseLeave(e) {\n        return _onMouseLeave(e);\n      }\n    }, TooltipBase.getOtherProps(props), ptm('root'));\n    var arrowProps = mergeProps({\n      className: cx('arrow'),\n      style: sx('arrow', _objectSpread({}, metaData))\n    }, ptm('arrow'));\n    var textProps = mergeProps({\n      className: cx('text')\n    }, ptm('text'));\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", _extends({\n      ref: elementRef\n    }, rootProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", arrowProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", _extends({\n      ref: textRef\n    }, textProps), empty && props.children));\n  };\n  if (visibleState) {\n    var element = createElement();\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_portal__WEBPACK_IMPORTED_MODULE_4__.Portal, {\n      element: element,\n      appendTo: props.appendTo,\n      visible: true\n    });\n  }\n  return null;\n}));\nTooltip.displayName = 'Tooltip';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/tooltip/tooltip.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/utils/utils.esm.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/primereact/utils/utils.esm.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DomHandler: () => (/* binding */ DomHandler),\n/* harmony export */   EventBus: () => (/* binding */ EventBus),\n/* harmony export */   IconUtils: () => (/* binding */ IconUtils),\n/* harmony export */   ObjectUtils: () => (/* binding */ ObjectUtils),\n/* harmony export */   UniqueComponentId: () => (/* binding */ UniqueComponentId),\n/* harmony export */   ZIndexUtils: () => (/* binding */ ZIndexUtils),\n/* harmony export */   classNames: () => (/* binding */ classNames),\n/* harmony export */   mask: () => (/* binding */ mask),\n/* harmony export */   mergeProps: () => (/* binding */ mergeProps)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n'use client';\n\n\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nfunction _arrayLikeToArray$2(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _unsupportedIterableToArray$2(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray$2(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$2(r, a) : void 0;\n  }\n}\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray$2(r, e) || _nonIterableRest();\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction classNames() {\n  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n    args[_key] = arguments[_key];\n  }\n  if (args) {\n    var classes = [];\n    for (var i = 0; i < args.length; i++) {\n      var className = args[i];\n      if (!className) {\n        continue;\n      }\n      var type = _typeof(className);\n      if (type === 'string' || type === 'number') {\n        classes.push(className);\n      } else if (type === 'object') {\n        var _classes = Array.isArray(className) ? className : Object.entries(className).map(function (_ref) {\n          var _ref2 = _slicedToArray(_ref, 2),\n            key = _ref2[0],\n            value = _ref2[1];\n          return value ? key : null;\n        });\n        classes = _classes.length ? classes.concat(_classes.filter(function (c) {\n          return !!c;\n        })) : classes;\n      }\n    }\n    return classes.join(' ').trim();\n  }\n  return undefined;\n}\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return _arrayLikeToArray$2(r);\n}\nfunction _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _toConsumableArray(r) {\n  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray$2(r) || _nonIterableSpread();\n}\nfunction _classCallCheck(a, n) {\n  if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperties(e, r) {\n  for (var t = 0; t < r.length; t++) {\n    var o = r[t];\n    o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n  }\n}\nfunction _createClass(e, r, t) {\n  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n    writable: !1\n  }), e;\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nfunction _createForOfIteratorHelper$1(r, e) {\n  var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (!t) {\n    if (Array.isArray(r) || (t = _unsupportedIterableToArray$1(r)) || e && r && \"number\" == typeof r.length) {\n      t && (r = t);\n      var _n = 0,\n        F = function F() {};\n      return {\n        s: F,\n        n: function n() {\n          return _n >= r.length ? {\n            done: !0\n          } : {\n            done: !1,\n            value: r[_n++]\n          };\n        },\n        e: function e(r) {\n          throw r;\n        },\n        f: F\n      };\n    }\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n  var o,\n    a = !0,\n    u = !1;\n  return {\n    s: function s() {\n      t = t.call(r);\n    },\n    n: function n() {\n      var r = t.next();\n      return a = r.done, r;\n    },\n    e: function e(r) {\n      u = !0, o = r;\n    },\n    f: function f() {\n      try {\n        a || null == t[\"return\"] || t[\"return\"]();\n      } finally {\n        if (u) throw o;\n      }\n    }\n  };\n}\nfunction _unsupportedIterableToArray$1(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray$1(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0;\n  }\n}\nfunction _arrayLikeToArray$1(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nvar DomHandler = /*#__PURE__*/function () {\n  function DomHandler() {\n    _classCallCheck(this, DomHandler);\n  }\n  return _createClass(DomHandler, null, [{\n    key: \"innerWidth\",\n    value: function innerWidth(el) {\n      if (el) {\n        var width = el.offsetWidth;\n        var style = getComputedStyle(el);\n        width = width + (parseFloat(style.paddingLeft) + parseFloat(style.paddingRight));\n        return width;\n      }\n      return 0;\n    }\n  }, {\n    key: \"width\",\n    value: function width(el) {\n      if (el) {\n        var _width = el.offsetWidth;\n        var style = getComputedStyle(el);\n        _width = _width - (parseFloat(style.paddingLeft) + parseFloat(style.paddingRight));\n        return _width;\n      }\n      return 0;\n    }\n  }, {\n    key: \"getBrowserLanguage\",\n    value: function getBrowserLanguage() {\n      return navigator.userLanguage || navigator.languages && navigator.languages.length && navigator.languages[0] || navigator.language || navigator.browserLanguage || navigator.systemLanguage || 'en';\n    }\n  }, {\n    key: \"getWindowScrollTop\",\n    value: function getWindowScrollTop() {\n      var doc = document.documentElement;\n      return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n    }\n  }, {\n    key: \"getWindowScrollLeft\",\n    value: function getWindowScrollLeft() {\n      var doc = document.documentElement;\n      return (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n    }\n  }, {\n    key: \"getOuterWidth\",\n    value: function getOuterWidth(el, margin) {\n      if (el) {\n        var width = el.getBoundingClientRect().width || el.offsetWidth;\n        if (margin) {\n          var style = getComputedStyle(el);\n          width = width + (parseFloat(style.marginLeft) + parseFloat(style.marginRight));\n        }\n        return width;\n      }\n      return 0;\n    }\n  }, {\n    key: \"getOuterHeight\",\n    value: function getOuterHeight(el, margin) {\n      if (el) {\n        var height = el.getBoundingClientRect().height || el.offsetHeight;\n        if (margin) {\n          var style = getComputedStyle(el);\n          height = height + (parseFloat(style.marginTop) + parseFloat(style.marginBottom));\n        }\n        return height;\n      }\n      return 0;\n    }\n  }, {\n    key: \"getClientHeight\",\n    value: function getClientHeight(el, margin) {\n      if (el) {\n        var height = el.clientHeight;\n        if (margin) {\n          var style = getComputedStyle(el);\n          height = height + (parseFloat(style.marginTop) + parseFloat(style.marginBottom));\n        }\n        return height;\n      }\n      return 0;\n    }\n  }, {\n    key: \"getClientWidth\",\n    value: function getClientWidth(el, margin) {\n      if (el) {\n        var width = el.clientWidth;\n        if (margin) {\n          var style = getComputedStyle(el);\n          width = width + (parseFloat(style.marginLeft) + parseFloat(style.marginRight));\n        }\n        return width;\n      }\n      return 0;\n    }\n  }, {\n    key: \"getViewport\",\n    value: function getViewport() {\n      var win = window;\n      var d = document;\n      var e = d.documentElement;\n      var g = d.getElementsByTagName('body')[0];\n      var w = win.innerWidth || e.clientWidth || g.clientWidth;\n      var h = win.innerHeight || e.clientHeight || g.clientHeight;\n      return {\n        width: w,\n        height: h\n      };\n    }\n  }, {\n    key: \"getOffset\",\n    value: function getOffset(el) {\n      if (el) {\n        var rect = el.getBoundingClientRect();\n        return {\n          top: rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0),\n          left: rect.left + (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0)\n        };\n      }\n      return {\n        top: 'auto',\n        left: 'auto'\n      };\n    }\n  }, {\n    key: \"index\",\n    value: function index(element) {\n      if (element) {\n        var children = element.parentNode.childNodes;\n        var num = 0;\n        for (var i = 0; i < children.length; i++) {\n          if (children[i] === element) {\n            return num;\n          }\n          if (children[i].nodeType === 1) {\n            num++;\n          }\n        }\n      }\n      return -1;\n    }\n  }, {\n    key: \"addMultipleClasses\",\n    value: function addMultipleClasses(element, className) {\n      if (element && className) {\n        if (element.classList) {\n          var styles = className.split(' ');\n          for (var i = 0; i < styles.length; i++) {\n            element.classList.add(styles[i]);\n          }\n        } else {\n          var _styles = className.split(' ');\n          for (var _i = 0; _i < _styles.length; _i++) {\n            element.className = element.className + (' ' + _styles[_i]);\n          }\n        }\n      }\n    }\n  }, {\n    key: \"removeMultipleClasses\",\n    value: function removeMultipleClasses(element, className) {\n      if (element && className) {\n        if (element.classList) {\n          var styles = className.split(' ');\n          for (var i = 0; i < styles.length; i++) {\n            element.classList.remove(styles[i]);\n          }\n        } else {\n          var _styles2 = className.split(' ');\n          for (var _i2 = 0; _i2 < _styles2.length; _i2++) {\n            element.className = element.className.replace(new RegExp('(^|\\\\b)' + _styles2[_i2].split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n          }\n        }\n      }\n    }\n  }, {\n    key: \"addClass\",\n    value: function addClass(element, className) {\n      if (element && className) {\n        if (element.classList) {\n          element.classList.add(className);\n        } else {\n          element.className = element.className + (' ' + className);\n        }\n      }\n    }\n  }, {\n    key: \"removeClass\",\n    value: function removeClass(element, className) {\n      if (element && className) {\n        if (element.classList) {\n          element.classList.remove(className);\n        } else {\n          element.className = element.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n        }\n      }\n    }\n  }, {\n    key: \"hasClass\",\n    value: function hasClass(element, className) {\n      if (element) {\n        if (element.classList) {\n          return element.classList.contains(className);\n        }\n        return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\n      }\n      return false;\n    }\n  }, {\n    key: \"addStyles\",\n    value: function addStyles(element) {\n      var styles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      if (element) {\n        Object.entries(styles).forEach(function (_ref) {\n          var _ref2 = _slicedToArray(_ref, 2),\n            key = _ref2[0],\n            value = _ref2[1];\n          return element.style[key] = value;\n        });\n      }\n    }\n  }, {\n    key: \"find\",\n    value: function find(element, selector) {\n      return element ? Array.from(element.querySelectorAll(selector)) : [];\n    }\n  }, {\n    key: \"findSingle\",\n    value: function findSingle(element, selector) {\n      if (element) {\n        return element.querySelector(selector);\n      }\n      return null;\n    }\n  }, {\n    key: \"setAttributes\",\n    value: function setAttributes(element) {\n      var _this = this;\n      var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      if (element) {\n        var _computedStyles = function computedStyles(rule, value) {\n          var _element$$attrs, _element$$attrs2;\n          var styles = element !== null && element !== void 0 && (_element$$attrs = element.$attrs) !== null && _element$$attrs !== void 0 && _element$$attrs[rule] ? [element === null || element === void 0 || (_element$$attrs2 = element.$attrs) === null || _element$$attrs2 === void 0 ? void 0 : _element$$attrs2[rule]] : [];\n          return [value].flat().reduce(function (cv, v) {\n            if (v !== null && v !== undefined) {\n              var type = _typeof(v);\n              if (type === 'string' || type === 'number') {\n                cv.push(v);\n              } else if (type === 'object') {\n                var _cv = Array.isArray(v) ? _computedStyles(rule, v) : Object.entries(v).map(function (_ref3) {\n                  var _ref4 = _slicedToArray(_ref3, 2),\n                    _k = _ref4[0],\n                    _v = _ref4[1];\n                  return rule === 'style' && (!!_v || _v === 0) ? \"\".concat(_k.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase(), \":\").concat(_v) : _v ? _k : undefined;\n                });\n                cv = _cv.length ? cv.concat(_cv.filter(function (c) {\n                  return !!c;\n                })) : cv;\n              }\n            }\n            return cv;\n          }, styles);\n        };\n        Object.entries(attributes).forEach(function (_ref5) {\n          var _ref6 = _slicedToArray(_ref5, 2),\n            key = _ref6[0],\n            value = _ref6[1];\n          if (value !== undefined && value !== null) {\n            var matchedEvent = key.match(/^on(.+)/);\n            if (matchedEvent) {\n              element.addEventListener(matchedEvent[1].toLowerCase(), value);\n            } else if (key === 'p-bind') {\n              _this.setAttributes(element, value);\n            } else {\n              value = key === 'class' ? _toConsumableArray(new Set(_computedStyles('class', value))).join(' ').trim() : key === 'style' ? _computedStyles('style', value).join(';').trim() : value;\n              (element.$attrs = element.$attrs || {}) && (element.$attrs[key] = value);\n              element.setAttribute(key, value);\n            }\n          }\n        });\n      }\n    }\n  }, {\n    key: \"getAttribute\",\n    value: function getAttribute(element, name) {\n      if (element) {\n        var value = element.getAttribute(name);\n        if (!isNaN(value)) {\n          return +value;\n        }\n        if (value === 'true' || value === 'false') {\n          return value === 'true';\n        }\n        return value;\n      }\n      return undefined;\n    }\n  }, {\n    key: \"isAttributeEquals\",\n    value: function isAttributeEquals(element, name, value) {\n      return element ? this.getAttribute(element, name) === value : false;\n    }\n  }, {\n    key: \"isAttributeNotEquals\",\n    value: function isAttributeNotEquals(element, name, value) {\n      return !this.isAttributeEquals(element, name, value);\n    }\n  }, {\n    key: \"getHeight\",\n    value: function getHeight(el) {\n      if (el) {\n        var height = el.offsetHeight;\n        var style = getComputedStyle(el);\n        height = height - (parseFloat(style.paddingTop) + parseFloat(style.paddingBottom) + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth));\n        return height;\n      }\n      return 0;\n    }\n  }, {\n    key: \"getWidth\",\n    value: function getWidth(el) {\n      if (el) {\n        var width = el.offsetWidth;\n        var style = getComputedStyle(el);\n        width = width - (parseFloat(style.paddingLeft) + parseFloat(style.paddingRight) + parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth));\n        return width;\n      }\n      return 0;\n    }\n  }, {\n    key: \"alignOverlay\",\n    value: function alignOverlay(overlay, target, appendTo) {\n      var calculateMinWidth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n      if (overlay && target) {\n        if (appendTo === 'self') {\n          this.relativePosition(overlay, target);\n        } else {\n          calculateMinWidth && (overlay.style.minWidth = DomHandler.getOuterWidth(target) + 'px');\n          this.absolutePosition(overlay, target);\n        }\n      }\n    }\n  }, {\n    key: \"absolutePosition\",\n    value: function absolutePosition(element, target) {\n      var align = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'left';\n      if (element && target) {\n        var elementDimensions = element.offsetParent ? {\n          width: element.offsetWidth,\n          height: element.offsetHeight\n        } : this.getHiddenElementDimensions(element);\n        var elementOuterHeight = elementDimensions.height;\n        var elementOuterWidth = elementDimensions.width;\n        var targetOuterHeight = target.offsetHeight;\n        var targetOuterWidth = target.offsetWidth;\n        var targetOffset = target.getBoundingClientRect();\n        var windowScrollTop = this.getWindowScrollTop();\n        var windowScrollLeft = this.getWindowScrollLeft();\n        var viewport = this.getViewport();\n        var top;\n        var left;\n        if (targetOffset.top + targetOuterHeight + elementOuterHeight > viewport.height) {\n          top = targetOffset.top + windowScrollTop - elementOuterHeight;\n          if (top < 0) {\n            top = windowScrollTop;\n          }\n          element.style.transformOrigin = 'bottom';\n        } else {\n          top = targetOuterHeight + targetOffset.top + windowScrollTop;\n          element.style.transformOrigin = 'top';\n        }\n        var targetOffsetPx = targetOffset.left;\n        if (align === 'left') {\n          if (targetOffsetPx + elementOuterWidth > viewport.width) {\n            left = Math.max(0, targetOffsetPx + windowScrollLeft + targetOuterWidth - elementOuterWidth);\n          } else {\n            left = targetOffsetPx + windowScrollLeft;\n          }\n        } else {\n          if (targetOffsetPx + targetOuterWidth - elementOuterWidth < 0) {\n            left = windowScrollLeft;\n          } else {\n            left = targetOffsetPx + targetOuterWidth - elementOuterWidth + windowScrollLeft;\n          }\n        }\n        element.style.top = top + 'px';\n        element.style.left = left + 'px';\n      }\n    }\n  }, {\n    key: \"relativePosition\",\n    value: function relativePosition(element, target) {\n      if (element && target) {\n        var elementDimensions = element.offsetParent ? {\n          width: element.offsetWidth,\n          height: element.offsetHeight\n        } : this.getHiddenElementDimensions(element);\n        var targetHeight = target.offsetHeight;\n        var targetOffset = target.getBoundingClientRect();\n        var viewport = this.getViewport();\n        var top;\n        var left;\n        if (targetOffset.top + targetHeight + elementDimensions.height > viewport.height) {\n          top = -1 * elementDimensions.height;\n          if (targetOffset.top + top < 0) {\n            top = -1 * targetOffset.top;\n          }\n          element.style.transformOrigin = 'bottom';\n        } else {\n          top = targetHeight;\n          element.style.transformOrigin = 'top';\n        }\n        if (elementDimensions.width > viewport.width) {\n          // element wider then viewport and cannot fit on screen (align at left side of viewport)\n          left = targetOffset.left * -1;\n        } else if (targetOffset.left + elementDimensions.width > viewport.width) {\n          // element wider then viewport but can be fit on screen (align at right side of viewport)\n          left = (targetOffset.left + elementDimensions.width - viewport.width) * -1;\n        } else {\n          // element fits on screen (align with target)\n          left = 0;\n        }\n        element.style.top = top + 'px';\n        element.style.left = left + 'px';\n      }\n    }\n  }, {\n    key: \"flipfitCollision\",\n    value: function flipfitCollision(element, target) {\n      var _this2 = this;\n      var my = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'left top';\n      var at = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'left bottom';\n      var callback = arguments.length > 4 ? arguments[4] : undefined;\n      if (element && target) {\n        var targetOffset = target.getBoundingClientRect();\n        var viewport = this.getViewport();\n        var myArr = my.split(' ');\n        var atArr = at.split(' ');\n        var getPositionValue = function getPositionValue(arr, isOffset) {\n          return isOffset ? +arr.substring(arr.search(/(\\+|-)/g)) || 0 : arr.substring(0, arr.search(/(\\+|-)/g)) || arr;\n        };\n        var position = {\n          my: {\n            x: getPositionValue(myArr[0]),\n            y: getPositionValue(myArr[1] || myArr[0]),\n            offsetX: getPositionValue(myArr[0], true),\n            offsetY: getPositionValue(myArr[1] || myArr[0], true)\n          },\n          at: {\n            x: getPositionValue(atArr[0]),\n            y: getPositionValue(atArr[1] || atArr[0]),\n            offsetX: getPositionValue(atArr[0], true),\n            offsetY: getPositionValue(atArr[1] || atArr[0], true)\n          }\n        };\n        var myOffset = {\n          left: function left() {\n            var totalOffset = position.my.offsetX + position.at.offsetX;\n            return totalOffset + targetOffset.left + (position.my.x === 'left' ? 0 : -1 * (position.my.x === 'center' ? _this2.getOuterWidth(element) / 2 : _this2.getOuterWidth(element)));\n          },\n          top: function top() {\n            var totalOffset = position.my.offsetY + position.at.offsetY;\n            return totalOffset + targetOffset.top + (position.my.y === 'top' ? 0 : -1 * (position.my.y === 'center' ? _this2.getOuterHeight(element) / 2 : _this2.getOuterHeight(element)));\n          }\n        };\n        var alignWithAt = {\n          count: {\n            x: 0,\n            y: 0\n          },\n          left: function left() {\n            var left = myOffset.left();\n            var scrollLeft = DomHandler.getWindowScrollLeft();\n            element.style.left = left + scrollLeft + 'px';\n            if (this.count.x === 2) {\n              element.style.left = scrollLeft + 'px';\n              this.count.x = 0;\n            } else if (left < 0) {\n              this.count.x++;\n              position.my.x = 'left';\n              position.at.x = 'right';\n              position.my.offsetX *= -1;\n              position.at.offsetX *= -1;\n              this.right();\n            }\n          },\n          right: function right() {\n            var left = myOffset.left() + DomHandler.getOuterWidth(target);\n            var scrollLeft = DomHandler.getWindowScrollLeft();\n            element.style.left = left + scrollLeft + 'px';\n            if (this.count.x === 2) {\n              element.style.left = viewport.width - DomHandler.getOuterWidth(element) + scrollLeft + 'px';\n              this.count.x = 0;\n            } else if (left + DomHandler.getOuterWidth(element) > viewport.width) {\n              this.count.x++;\n              position.my.x = 'right';\n              position.at.x = 'left';\n              position.my.offsetX *= -1;\n              position.at.offsetX *= -1;\n              this.left();\n            }\n          },\n          top: function top() {\n            var top = myOffset.top();\n            var scrollTop = DomHandler.getWindowScrollTop();\n            element.style.top = top + scrollTop + 'px';\n            if (this.count.y === 2) {\n              element.style.left = scrollTop + 'px';\n              this.count.y = 0;\n            } else if (top < 0) {\n              this.count.y++;\n              position.my.y = 'top';\n              position.at.y = 'bottom';\n              position.my.offsetY *= -1;\n              position.at.offsetY *= -1;\n              this.bottom();\n            }\n          },\n          bottom: function bottom() {\n            var top = myOffset.top() + DomHandler.getOuterHeight(target);\n            var scrollTop = DomHandler.getWindowScrollTop();\n            element.style.top = top + scrollTop + 'px';\n            if (this.count.y === 2) {\n              element.style.left = viewport.height - DomHandler.getOuterHeight(element) + scrollTop + 'px';\n              this.count.y = 0;\n            } else if (top + DomHandler.getOuterHeight(target) > viewport.height) {\n              this.count.y++;\n              position.my.y = 'bottom';\n              position.at.y = 'top';\n              position.my.offsetY *= -1;\n              position.at.offsetY *= -1;\n              this.top();\n            }\n          },\n          center: function center(axis) {\n            if (axis === 'y') {\n              var top = myOffset.top() + DomHandler.getOuterHeight(target) / 2;\n              element.style.top = top + DomHandler.getWindowScrollTop() + 'px';\n              if (top < 0) {\n                this.bottom();\n              } else if (top + DomHandler.getOuterHeight(target) > viewport.height) {\n                this.top();\n              }\n            } else {\n              var left = myOffset.left() + DomHandler.getOuterWidth(target) / 2;\n              element.style.left = left + DomHandler.getWindowScrollLeft() + 'px';\n              if (left < 0) {\n                this.left();\n              } else if (left + DomHandler.getOuterWidth(element) > viewport.width) {\n                this.right();\n              }\n            }\n          }\n        };\n        alignWithAt[position.at.x]('x');\n        alignWithAt[position.at.y]('y');\n        if (this.isFunction(callback)) {\n          callback(position);\n        }\n      }\n    }\n  }, {\n    key: \"findCollisionPosition\",\n    value: function findCollisionPosition(position) {\n      if (position) {\n        var isAxisY = position === 'top' || position === 'bottom';\n        var myXPosition = position === 'left' ? 'right' : 'left';\n        var myYPosition = position === 'top' ? 'bottom' : 'top';\n        if (isAxisY) {\n          return {\n            axis: 'y',\n            my: \"center \".concat(myYPosition),\n            at: \"center \".concat(position)\n          };\n        }\n        return {\n          axis: 'x',\n          my: \"\".concat(myXPosition, \" center\"),\n          at: \"\".concat(position, \" center\")\n        };\n      }\n    }\n  }, {\n    key: \"getParents\",\n    value: function getParents(element) {\n      var parents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n      return element.parentNode === null ? parents : this.getParents(element.parentNode, parents.concat([element.parentNode]));\n    }\n\n    /**\n     * Gets all scrollable parent elements of a given element\n     * @param {HTMLElement} element - The element to find scrollable parents for\n     * @returns {Array} Array of scrollable parent elements\n     */\n  }, {\n    key: \"getScrollableParents\",\n    value: function getScrollableParents(element) {\n      var _this3 = this;\n      var scrollableParents = [];\n      if (element) {\n        // Get all parent elements\n        var parents = this.getParents(element);\n        // Regex to match auto or scroll overflow values\n        var overflowRegex = /(auto|scroll)/;\n\n        /**\n         * Checks if an element has overflow scroll/auto in any direction\n         * @param {HTMLElement} node - Element to check\n         * @returns {boolean} True if element has overflow scroll/auto\n         */\n        var overflowCheck = function overflowCheck(node) {\n          var styleDeclaration = node ? getComputedStyle(node) : null;\n          return styleDeclaration && (overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflow-x')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflow-y')));\n        };\n\n        /**\n         * Adds a scrollable parent element to the collection\n         * @param {HTMLElement} node - Element to add\n         */\n        var addScrollableParent = function addScrollableParent(node) {\n          // For document/body/html elements, add window instead\n          scrollableParents.push(node.nodeName === 'BODY' || node.nodeName === 'HTML' || _this3.isDocument(node) ? window : node);\n        };\n\n        // Iterate through all parent elements\n        var _iterator = _createForOfIteratorHelper$1(parents),\n          _step;\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var _parent$dataset;\n            var parent = _step.value;\n            // Check for custom scroll selectors in data attribute\n            var scrollSelectors = parent.nodeType === 1 && ((_parent$dataset = parent.dataset) === null || _parent$dataset === void 0 ? void 0 : _parent$dataset.scrollselectors);\n            if (scrollSelectors) {\n              var selectors = scrollSelectors.split(',');\n\n              // Check each selector\n              var _iterator2 = _createForOfIteratorHelper$1(selectors),\n                _step2;\n              try {\n                for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n                  var selector = _step2.value;\n                  var el = this.findSingle(parent, selector);\n                  if (el && overflowCheck(el)) {\n                    addScrollableParent(el);\n                  }\n                }\n              } catch (err) {\n                _iterator2.e(err);\n              } finally {\n                _iterator2.f();\n              }\n            }\n\n            // Check if the parent itself is scrollable\n            if (parent.nodeType === 1 && overflowCheck(parent)) {\n              addScrollableParent(parent);\n            }\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      }\n      return scrollableParents;\n    }\n  }, {\n    key: \"getHiddenElementOuterHeight\",\n    value: function getHiddenElementOuterHeight(element) {\n      if (element) {\n        element.style.visibility = 'hidden';\n        element.style.display = 'block';\n        var elementHeight = element.offsetHeight;\n        element.style.display = 'none';\n        element.style.visibility = 'visible';\n        return elementHeight;\n      }\n      return 0;\n    }\n  }, {\n    key: \"getHiddenElementOuterWidth\",\n    value: function getHiddenElementOuterWidth(element) {\n      if (element) {\n        element.style.visibility = 'hidden';\n        element.style.display = 'block';\n        var elementWidth = element.offsetWidth;\n        element.style.display = 'none';\n        element.style.visibility = 'visible';\n        return elementWidth;\n      }\n      return 0;\n    }\n  }, {\n    key: \"getHiddenElementDimensions\",\n    value: function getHiddenElementDimensions(element) {\n      var dimensions = {};\n      if (element) {\n        element.style.visibility = 'hidden';\n        element.style.display = 'block';\n        dimensions.width = element.offsetWidth;\n        dimensions.height = element.offsetHeight;\n        element.style.display = 'none';\n        element.style.visibility = 'visible';\n      }\n      return dimensions;\n    }\n  }, {\n    key: \"fadeIn\",\n    value: function fadeIn(element, duration) {\n      if (element) {\n        element.style.opacity = 0;\n        var last = +new Date();\n        var opacity = 0;\n        var _tick = function tick() {\n          opacity = +element.style.opacity + (new Date().getTime() - last) / duration;\n          element.style.opacity = opacity;\n          last = +new Date();\n          if (+opacity < 1) {\n            window.requestAnimationFrame && requestAnimationFrame(_tick) || setTimeout(_tick, 16);\n          }\n        };\n        _tick();\n      }\n    }\n  }, {\n    key: \"fadeOut\",\n    value: function fadeOut(element, duration) {\n      if (element) {\n        var opacity = 1;\n        var interval = 50;\n        var gap = interval / duration;\n        var fading = setInterval(function () {\n          opacity = opacity - gap;\n          if (opacity <= 0) {\n            opacity = 0;\n            clearInterval(fading);\n          }\n          element.style.opacity = opacity;\n        }, interval);\n      }\n    }\n  }, {\n    key: \"getUserAgent\",\n    value: function getUserAgent() {\n      return navigator.userAgent;\n    }\n  }, {\n    key: \"isIOS\",\n    value: function isIOS() {\n      return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n    }\n  }, {\n    key: \"isAndroid\",\n    value: function isAndroid() {\n      return /(android)/i.test(navigator.userAgent);\n    }\n  }, {\n    key: \"isChrome\",\n    value: function isChrome() {\n      return /(chrome)/i.test(navigator.userAgent);\n    }\n  }, {\n    key: \"isClient\",\n    value: function isClient() {\n      return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n    }\n  }, {\n    key: \"isTouchDevice\",\n    value: function isTouchDevice() {\n      return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\n    }\n  }, {\n    key: \"isFunction\",\n    value: function isFunction(obj) {\n      return !!(obj && obj.constructor && obj.call && obj.apply);\n    }\n  }, {\n    key: \"appendChild\",\n    value: function appendChild(element, target) {\n      if (this.isElement(target)) {\n        target.appendChild(element);\n      } else if (target.el && target.el.nativeElement) {\n        target.el.nativeElement.appendChild(element);\n      } else {\n        throw new Error('Cannot append ' + target + ' to ' + element);\n      }\n    }\n  }, {\n    key: \"removeChild\",\n    value: function removeChild(element, target) {\n      if (this.isElement(target)) {\n        target.removeChild(element);\n      } else if (target.el && target.el.nativeElement) {\n        target.el.nativeElement.removeChild(element);\n      } else {\n        throw new Error('Cannot remove ' + element + ' from ' + target);\n      }\n    }\n  }, {\n    key: \"isElement\",\n    value: function isElement(obj) {\n      return (typeof HTMLElement === \"undefined\" ? \"undefined\" : _typeof(HTMLElement)) === 'object' ? obj instanceof HTMLElement : obj && _typeof(obj) === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string';\n    }\n  }, {\n    key: \"isDocument\",\n    value: function isDocument(obj) {\n      return (typeof Document === \"undefined\" ? \"undefined\" : _typeof(Document)) === 'object' ? obj instanceof Document : obj && _typeof(obj) === 'object' && obj !== null && obj.nodeType === 9;\n    }\n  }, {\n    key: \"scrollInView\",\n    value: function scrollInView(container, item) {\n      var borderTopValue = getComputedStyle(container).getPropertyValue('border-top-width');\n      var borderTop = borderTopValue ? parseFloat(borderTopValue) : 0;\n      var paddingTopValue = getComputedStyle(container).getPropertyValue('padding-top');\n      var paddingTop = paddingTopValue ? parseFloat(paddingTopValue) : 0;\n      var containerRect = container.getBoundingClientRect();\n      var itemRect = item.getBoundingClientRect();\n      var offset = itemRect.top + document.body.scrollTop - (containerRect.top + document.body.scrollTop) - borderTop - paddingTop;\n      var scroll = container.scrollTop;\n      var elementHeight = container.clientHeight;\n      var itemHeight = this.getOuterHeight(item);\n      if (offset < 0) {\n        container.scrollTop = scroll + offset;\n      } else if (offset + itemHeight > elementHeight) {\n        container.scrollTop = scroll + offset - elementHeight + itemHeight;\n      }\n    }\n  }, {\n    key: \"clearSelection\",\n    value: function clearSelection() {\n      if (window.getSelection) {\n        if (window.getSelection().empty) {\n          window.getSelection().empty();\n        } else if (window.getSelection().removeAllRanges && window.getSelection().rangeCount > 0 && window.getSelection().getRangeAt(0).getClientRects().length > 0) {\n          window.getSelection().removeAllRanges();\n        }\n      } else if (document.selection && document.selection.empty) {\n        try {\n          document.selection.empty();\n        } catch (error) {\n          //ignore IE bug\n        }\n      }\n    }\n  }, {\n    key: \"calculateScrollbarWidth\",\n    value: function calculateScrollbarWidth(el) {\n      if (el) {\n        var style = getComputedStyle(el);\n        return el.offsetWidth - el.clientWidth - parseFloat(style.borderLeftWidth) - parseFloat(style.borderRightWidth);\n      }\n      if (this.calculatedScrollbarWidth != null) {\n        return this.calculatedScrollbarWidth;\n      }\n      var scrollDiv = document.createElement('div');\n      scrollDiv.className = 'p-scrollbar-measure';\n      document.body.appendChild(scrollDiv);\n      var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n      document.body.removeChild(scrollDiv);\n      this.calculatedScrollbarWidth = scrollbarWidth;\n      return scrollbarWidth;\n    }\n  }, {\n    key: \"calculateBodyScrollbarWidth\",\n    value: function calculateBodyScrollbarWidth() {\n      return window.innerWidth - document.documentElement.offsetWidth;\n    }\n  }, {\n    key: \"getBrowser\",\n    value: function getBrowser() {\n      if (!this.browser) {\n        var matched = this.resolveUserAgent();\n        this.browser = {};\n        if (matched.browser) {\n          this.browser[matched.browser] = true;\n          this.browser.version = matched.version;\n        }\n        if (this.browser.chrome) {\n          this.browser.webkit = true;\n        } else if (this.browser.webkit) {\n          this.browser.safari = true;\n        }\n      }\n      return this.browser;\n    }\n  }, {\n    key: \"resolveUserAgent\",\n    value: function resolveUserAgent() {\n      var ua = navigator.userAgent.toLowerCase();\n      var match = /(chrome)[ ]([\\w.]+)/.exec(ua) || /(webkit)[ ]([\\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ ]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || ua.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua) || [];\n      return {\n        browser: match[1] || '',\n        version: match[2] || '0'\n      };\n    }\n  }, {\n    key: \"blockBodyScroll\",\n    value: function blockBodyScroll() {\n      var className = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'p-overflow-hidden';\n      /* PR Ref: https://github.com/primefaces/primereact/pull/4976\n       * @todo This method is called several times after this PR. Refactors will be made to prevent this in future releases.\n       */\n      var hasScrollbarWidth = !!document.body.style.getPropertyValue('--scrollbar-width');\n      !hasScrollbarWidth && document.body.style.setProperty('--scrollbar-width', this.calculateBodyScrollbarWidth() + 'px');\n      this.addClass(document.body, className);\n    }\n  }, {\n    key: \"unblockBodyScroll\",\n    value: function unblockBodyScroll() {\n      var className = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'p-overflow-hidden';\n      document.body.style.removeProperty('--scrollbar-width');\n      this.removeClass(document.body, className);\n    }\n  }, {\n    key: \"isVisible\",\n    value: function isVisible(element) {\n      // https://stackoverflow.com/a/59096915/502366 (in future use IntersectionObserver)\n      return element && (element.clientHeight !== 0 || element.getClientRects().length !== 0 || getComputedStyle(element).display !== 'none');\n    }\n  }, {\n    key: \"isExist\",\n    value: function isExist(element) {\n      return !!(element !== null && typeof element !== 'undefined' && element.nodeName && element.parentNode);\n    }\n  }, {\n    key: \"getFocusableElements\",\n    value: function getFocusableElements(element) {\n      var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n      var focusableElements = DomHandler.find(element, \"button:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\".concat(selector, \",\\n                [href][clientHeight][clientWidth]:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n                input:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n                select:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n                textarea:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n                [tabIndex]:not([tabIndex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n                [contenteditable]:not([tabIndex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector));\n      var visibleFocusableElements = [];\n      var _iterator3 = _createForOfIteratorHelper$1(focusableElements),\n        _step3;\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var focusableElement = _step3.value;\n          if (getComputedStyle(focusableElement).display !== 'none' && getComputedStyle(focusableElement).visibility !== 'hidden') {\n            visibleFocusableElements.push(focusableElement);\n          }\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n      return visibleFocusableElements;\n    }\n  }, {\n    key: \"getFirstFocusableElement\",\n    value: function getFirstFocusableElement(element, selector) {\n      var focusableElements = DomHandler.getFocusableElements(element, selector);\n      return focusableElements.length > 0 ? focusableElements[0] : null;\n    }\n  }, {\n    key: \"getLastFocusableElement\",\n    value: function getLastFocusableElement(element, selector) {\n      var focusableElements = DomHandler.getFocusableElements(element, selector);\n      return focusableElements.length > 0 ? focusableElements[focusableElements.length - 1] : null;\n    }\n\n    /**\n     * Focus an input element if it does not already have focus.\n     *\n     * @param {HTMLElement} el a HTML element\n     * @param {boolean} scrollTo flag to control whether to scroll to the element, false by default\n     */\n  }, {\n    key: \"focus\",\n    value: function focus(el, scrollTo) {\n      var preventScroll = scrollTo === undefined ? true : !scrollTo;\n      el && document.activeElement !== el && el.focus({\n        preventScroll: preventScroll\n      });\n    }\n\n    /**\n     * Focus the first focusable element if it does not already have focus.\n     *\n     * @param {HTMLElement} el a HTML element\n     * @param {boolean} scrollTo flag to control whether to scroll to the element, false by default\n     * @return {HTMLElement | undefined} the first focusable HTML element found\n     */\n  }, {\n    key: \"focusFirstElement\",\n    value: function focusFirstElement(el, scrollTo) {\n      if (!el) {\n        return;\n      }\n      var firstFocusableElement = DomHandler.getFirstFocusableElement(el);\n      firstFocusableElement && DomHandler.focus(firstFocusableElement, scrollTo);\n      return firstFocusableElement;\n    }\n  }, {\n    key: \"getCursorOffset\",\n    value: function getCursorOffset(el, prevText, nextText, currentText) {\n      if (el) {\n        var style = getComputedStyle(el);\n        var ghostDiv = document.createElement('div');\n        ghostDiv.style.position = 'absolute';\n        ghostDiv.style.top = '0px';\n        ghostDiv.style.left = '0px';\n        ghostDiv.style.visibility = 'hidden';\n        ghostDiv.style.pointerEvents = 'none';\n        ghostDiv.style.overflow = style.overflow;\n        ghostDiv.style.width = style.width;\n        ghostDiv.style.height = style.height;\n        ghostDiv.style.padding = style.padding;\n        ghostDiv.style.border = style.border;\n        ghostDiv.style.overflowWrap = style.overflowWrap;\n        ghostDiv.style.whiteSpace = style.whiteSpace;\n        ghostDiv.style.lineHeight = style.lineHeight;\n        ghostDiv.innerHTML = prevText.replace(/\\r\\n|\\r|\\n/g, '<br />');\n        var ghostSpan = document.createElement('span');\n        ghostSpan.textContent = currentText;\n        ghostDiv.appendChild(ghostSpan);\n        var text = document.createTextNode(nextText);\n        ghostDiv.appendChild(text);\n        document.body.appendChild(ghostDiv);\n        var offsetLeft = ghostSpan.offsetLeft,\n          offsetTop = ghostSpan.offsetTop,\n          clientHeight = ghostSpan.clientHeight;\n        document.body.removeChild(ghostDiv);\n        return {\n          left: Math.abs(offsetLeft - el.scrollLeft),\n          top: Math.abs(offsetTop - el.scrollTop) + clientHeight\n        };\n      }\n      return {\n        top: 'auto',\n        left: 'auto'\n      };\n    }\n  }, {\n    key: \"invokeElementMethod\",\n    value: function invokeElementMethod(element, methodName, args) {\n      element[methodName].apply(element, args);\n    }\n  }, {\n    key: \"isClickable\",\n    value: function isClickable(element) {\n      var targetNode = element.nodeName;\n      var parentNode = element.parentElement && element.parentElement.nodeName;\n      return targetNode === 'INPUT' || targetNode === 'TEXTAREA' || targetNode === 'BUTTON' || targetNode === 'A' || parentNode === 'INPUT' || parentNode === 'TEXTAREA' || parentNode === 'BUTTON' || parentNode === 'A' || this.hasClass(element, 'p-button') || this.hasClass(element.parentElement, 'p-button') || this.hasClass(element.parentElement, 'p-checkbox') || this.hasClass(element.parentElement, 'p-radiobutton');\n    }\n  }, {\n    key: \"applyStyle\",\n    value: function applyStyle(element, style) {\n      if (typeof style === 'string') {\n        element.style.cssText = style;\n      } else {\n        for (var prop in style) {\n          element.style[prop] = style[prop];\n        }\n      }\n    }\n  }, {\n    key: \"exportCSV\",\n    value: function exportCSV(csv, filename) {\n      var blob = new Blob([csv], {\n        type: 'application/csv;charset=utf-8;'\n      });\n      if (window.navigator.msSaveOrOpenBlob) {\n        navigator.msSaveOrOpenBlob(blob, filename + '.csv');\n      } else {\n        var isDownloaded = DomHandler.saveAs({\n          name: filename + '.csv',\n          src: URL.createObjectURL(blob)\n        });\n        if (!isDownloaded) {\n          csv = 'data:text/csv;charset=utf-8,' + csv;\n          window.open(encodeURI(csv));\n        }\n      }\n    }\n  }, {\n    key: \"saveAs\",\n    value: function saveAs(file) {\n      if (file) {\n        var link = document.createElement('a');\n        if (link.download !== undefined) {\n          var name = file.name,\n            src = file.src;\n          link.setAttribute('href', src);\n          link.setAttribute('download', name);\n          link.style.display = 'none';\n          document.body.appendChild(link);\n          link.click();\n          document.body.removeChild(link);\n          return true;\n        }\n      }\n      return false;\n    }\n  }, {\n    key: \"createInlineStyle\",\n    value: function createInlineStyle(nonce, styleContainer) {\n      var styleElement = document.createElement('style');\n      DomHandler.addNonce(styleElement, nonce);\n      if (!styleContainer) {\n        styleContainer = document.head;\n      }\n      styleContainer.appendChild(styleElement);\n      return styleElement;\n    }\n  }, {\n    key: \"removeInlineStyle\",\n    value: function removeInlineStyle(styleElement) {\n      if (this.isExist(styleElement)) {\n        try {\n          styleElement.parentNode.removeChild(styleElement);\n        } catch (error) {\n          // style element may have already been removed in a fast refresh\n        }\n        styleElement = null;\n      }\n      return styleElement;\n    }\n  }, {\n    key: \"addNonce\",\n    value: function addNonce(styleElement, nonce) {\n      try {\n        if (!nonce) {\n          nonce = process.env.REACT_APP_CSS_NONCE;\n        }\n      } catch (error) {\n        // NOOP\n      }\n      nonce && styleElement.setAttribute('nonce', nonce);\n    }\n  }, {\n    key: \"getTargetElement\",\n    value: function getTargetElement(target) {\n      if (!target) {\n        return null;\n      }\n      if (target === 'document') {\n        return document;\n      } else if (target === 'window') {\n        return window;\n      } else if (_typeof(target) === 'object' && target.hasOwnProperty('current')) {\n        return this.isExist(target.current) ? target.current : null;\n      }\n      var isFunction = function isFunction(obj) {\n        return !!(obj && obj.constructor && obj.call && obj.apply);\n      };\n      var element = isFunction(target) ? target() : target;\n      return this.isDocument(element) || this.isExist(element) ? element : null;\n    }\n\n    /**\n     * Get the attribute names for an element and sorts them alpha for comparison\n     */\n  }, {\n    key: \"getAttributeNames\",\n    value: function getAttributeNames(node) {\n      var index;\n      var rv;\n      var attrs;\n      rv = [];\n      attrs = node.attributes;\n      for (index = 0; index < attrs.length; ++index) {\n        rv.push(attrs[index].nodeName);\n      }\n      rv.sort();\n      return rv;\n    }\n\n    /**\n     * Compare two elements for equality.  Even will compare if the style element\n     * is out of order for example:\n     *\n     * elem1 = style=\"color: red; font-size: 28px\"\n     * elem2 = style=\"font-size: 28px; color: red\"\n     */\n  }, {\n    key: \"isEqualElement\",\n    value: function isEqualElement(elm1, elm2) {\n      var attrs1;\n      var attrs2;\n      var name;\n      var node1;\n      var node2;\n\n      // Compare attributes without order sensitivity\n      attrs1 = DomHandler.getAttributeNames(elm1);\n      attrs2 = DomHandler.getAttributeNames(elm2);\n      if (attrs1.join(',') !== attrs2.join(',')) {\n        // console.log(\"Found nodes with different sets of attributes; not equiv\");\n        return false;\n      }\n\n      // ...and values\n      // unless you want to compare DOM0 event handlers\n      // (onclick=\"...\")\n      for (var index = 0; index < attrs1.length; ++index) {\n        name = attrs1[index];\n        if (name === 'style') {\n          var astyle = elm1.style;\n          var bstyle = elm2.style;\n          var rexDigitsOnly = /^\\d+$/;\n          for (var _i3 = 0, _Object$keys = Object.keys(astyle); _i3 < _Object$keys.length; _i3++) {\n            var key = _Object$keys[_i3];\n            if (!rexDigitsOnly.test(key) && astyle[key] !== bstyle[key]) {\n              // Not equivalent, stop\n              //console.log(\"Found nodes with mis-matched values for attribute '\" + name + \"'; not equiv\");\n              return false;\n            }\n          }\n        } else if (elm1.getAttribute(name) !== elm2.getAttribute(name)) {\n          // console.log(\"Found nodes with mis-matched values for attribute '\" + name + \"'; not equiv\");\n          return false;\n        }\n      }\n\n      // Walk the children\n      for (node1 = elm1.firstChild, node2 = elm2.firstChild; node1 && node2; node1 = node1.nextSibling, node2 = node2.nextSibling) {\n        if (node1.nodeType !== node2.nodeType) {\n          // display(\"Found nodes of different types; not equiv\");\n          return false;\n        }\n        if (node1.nodeType === 1) {\n          // Element\n          if (!DomHandler.isEqualElement(node1, node2)) {\n            return false;\n          }\n        } else if (node1.nodeValue !== node2.nodeValue) {\n          // console.log(\"Found nodes with mis-matched nodeValues; not equiv\");\n          return false;\n        }\n      }\n      if (node1 || node2) {\n        // One of the elements had more nodes than the other\n        // console.log(\"Found more children of one element than the other; not equivalent\");\n        return false;\n      }\n\n      // Seem the same\n      return true;\n    }\n  }, {\n    key: \"hasCSSAnimation\",\n    value: function hasCSSAnimation(element) {\n      if (element) {\n        var style = getComputedStyle(element);\n        var animationDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n        return animationDuration > 0;\n      }\n      return false;\n    }\n  }, {\n    key: \"hasCSSTransition\",\n    value: function hasCSSTransition(element) {\n      if (element) {\n        var style = getComputedStyle(element);\n        var transitionDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n        return transitionDuration > 0;\n      }\n      return false;\n    }\n  }]);\n}();\n/**\n * All data- properties like data-test-id\n */\n_defineProperty(DomHandler, \"DATA_PROPS\", ['data-']);\n/**\n * All ARIA properties like aria-label and focus-target for https://www.npmjs.com/package/@q42/floating-focus-a11y\n */\n_defineProperty(DomHandler, \"ARIA_PROPS\", ['aria', 'focus-target']);\nfunction EventBus() {\n  var allHandlers = new Map();\n  return {\n    on: function on(type, handler) {\n      var handlers = allHandlers.get(type);\n      if (!handlers) {\n        handlers = [handler];\n      } else {\n        handlers.push(handler);\n      }\n      allHandlers.set(type, handlers);\n    },\n    off: function off(type, handler) {\n      var handlers = allHandlers.get(type);\n      handlers && handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n    },\n    emit: function emit(type, evt) {\n      var handlers = allHandlers.get(type);\n      handlers && handlers.slice().forEach(function (handler) {\n        return handler(evt);\n      });\n    }\n  };\n}\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nfunction _createForOfIteratorHelper(r, e) {\n  var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (!t) {\n    if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n      t && (r = t);\n      var _n = 0,\n        F = function F() {};\n      return {\n        s: F,\n        n: function n() {\n          return _n >= r.length ? {\n            done: !0\n          } : {\n            done: !1,\n            value: r[_n++]\n          };\n        },\n        e: function e(r) {\n          throw r;\n        },\n        f: F\n      };\n    }\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n  var o,\n    a = !0,\n    u = !1;\n  return {\n    s: function s() {\n      t = t.call(r);\n    },\n    n: function n() {\n      var r = t.next();\n      return a = r.done, r;\n    },\n    e: function e(r) {\n      u = !0, o = r;\n    },\n    f: function f() {\n      try {\n        a || null == t[\"return\"] || t[\"return\"]();\n      } finally {\n        if (u) throw o;\n      }\n    }\n  };\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nvar ObjectUtils = /*#__PURE__*/function () {\n  function ObjectUtils() {\n    _classCallCheck(this, ObjectUtils);\n  }\n  return _createClass(ObjectUtils, null, [{\n    key: \"equals\",\n    value: function equals(obj1, obj2, field) {\n      if (field && obj1 && _typeof(obj1) === 'object' && obj2 && _typeof(obj2) === 'object') {\n        return this.deepEquals(this.resolveFieldData(obj1, field), this.resolveFieldData(obj2, field));\n      }\n      return this.deepEquals(obj1, obj2);\n    }\n\n    /**\n     * Compares two JSON objects for deep equality recursively comparing both objects.\n     * @param {*} a the first JSON object\n     * @param {*} b the second JSON object\n     * @returns true if equals, false it not\n     */\n  }, {\n    key: \"deepEquals\",\n    value: function deepEquals(a, b) {\n      if (a === b) {\n        return true;\n      }\n      if (a && b && _typeof(a) === 'object' && _typeof(b) === 'object') {\n        var arrA = Array.isArray(a);\n        var arrB = Array.isArray(b);\n        var i;\n        var length;\n        var key;\n        if (arrA && arrB) {\n          length = a.length;\n          if (length !== b.length) {\n            return false;\n          }\n          for (i = length; i-- !== 0;) {\n            if (!this.deepEquals(a[i], b[i])) {\n              return false;\n            }\n          }\n          return true;\n        }\n        if (arrA !== arrB) {\n          return false;\n        }\n        var dateA = a instanceof Date;\n        var dateB = b instanceof Date;\n        if (dateA !== dateB) {\n          return false;\n        }\n        if (dateA && dateB) {\n          return a.getTime() === b.getTime();\n        }\n        var regexpA = a instanceof RegExp;\n        var regexpB = b instanceof RegExp;\n        if (regexpA !== regexpB) {\n          return false;\n        }\n        if (regexpA && regexpB) {\n          return a.toString() === b.toString();\n        }\n        var keys = Object.keys(a);\n        length = keys.length;\n        if (length !== Object.keys(b).length) {\n          return false;\n        }\n        for (i = length; i-- !== 0;) {\n          if (!Object.prototype.hasOwnProperty.call(b, keys[i])) {\n            return false;\n          }\n        }\n        for (i = length; i-- !== 0;) {\n          key = keys[i];\n          if (!this.deepEquals(a[key], b[key])) {\n            return false;\n          }\n        }\n        return true;\n      }\n\n      /*eslint no-self-compare: \"off\"*/\n      return a !== a && b !== b;\n    }\n  }, {\n    key: \"resolveFieldData\",\n    value: function resolveFieldData(data, field) {\n      if (!data || !field) {\n        // short circuit if there is nothing to resolve\n        return null;\n      }\n      try {\n        var value = data[field];\n        if (this.isNotEmpty(value)) {\n          return value;\n        }\n      } catch (_unused) {\n        // Performance optimization: https://github.com/primefaces/primereact/issues/4797\n        // do nothing and continue to other methods to resolve field data\n      }\n      if (Object.keys(data).length) {\n        if (this.isFunction(field)) {\n          return field(data);\n        } else if (this.isNotEmpty(data[field])) {\n          return data[field];\n        } else if (field.indexOf('.') === -1) {\n          return data[field];\n        }\n        var fields = field.split('.');\n        var _value = data;\n        for (var i = 0, len = fields.length; i < len; ++i) {\n          if (_value == null) {\n            return null;\n          }\n          _value = _value[fields[i]];\n        }\n        return _value;\n      }\n      return null;\n    }\n  }, {\n    key: \"findDiffKeys\",\n    value: function findDiffKeys(obj1, obj2) {\n      if (!obj1 || !obj2) {\n        return {};\n      }\n      return Object.keys(obj1).filter(function (key) {\n        return !obj2.hasOwnProperty(key);\n      }).reduce(function (result, current) {\n        result[current] = obj1[current];\n        return result;\n      }, {});\n    }\n\n    /**\n     * Removes keys from a JSON object that start with a string such as \"data\" to get all \"data-id\" type properties.\n     *\n     * @param {any} obj the JSON object to reduce\n     * @param {string[]} startsWiths the string(s) to check if the property starts with this key\n     * @returns the JSON object containing only the key/values that match the startsWith string\n     */\n  }, {\n    key: \"reduceKeys\",\n    value: function reduceKeys(obj, startsWiths) {\n      var result = {};\n      if (!obj || !startsWiths || startsWiths.length === 0) {\n        return result;\n      }\n      Object.keys(obj).filter(function (key) {\n        return startsWiths.some(function (value) {\n          return key.startsWith(value);\n        });\n      }).forEach(function (key) {\n        result[key] = obj[key];\n        delete obj[key];\n      });\n      return result;\n    }\n  }, {\n    key: \"reorderArray\",\n    value: function reorderArray(value, from, to) {\n      if (value && from !== to) {\n        if (to >= value.length) {\n          to = to % value.length;\n          from = from % value.length;\n        }\n        value.splice(to, 0, value.splice(from, 1)[0]);\n      }\n    }\n  }, {\n    key: \"findIndexInList\",\n    value: function findIndexInList(value, list, dataKey) {\n      var _this = this;\n      if (list) {\n        return dataKey ? list.findIndex(function (item) {\n          return _this.equals(item, value, dataKey);\n        }) : list.findIndex(function (item) {\n          return item === value;\n        });\n      }\n      return -1;\n    }\n  }, {\n    key: \"getJSXElement\",\n    value: function getJSXElement(obj) {\n      for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        params[_key - 1] = arguments[_key];\n      }\n      return this.isFunction(obj) ? obj.apply(void 0, params) : obj;\n    }\n  }, {\n    key: \"getItemValue\",\n    value: function getItemValue(obj) {\n      for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        params[_key2 - 1] = arguments[_key2];\n      }\n      return this.isFunction(obj) ? obj.apply(void 0, params) : obj;\n    }\n  }, {\n    key: \"getProp\",\n    value: function getProp(props) {\n      var prop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n      var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var value = props ? props[prop] : undefined;\n      return value === undefined ? defaultProps[prop] : value;\n    }\n  }, {\n    key: \"getPropCaseInsensitive\",\n    value: function getPropCaseInsensitive(props, prop) {\n      var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var fkey = this.toFlatCase(prop);\n      for (var key in props) {\n        if (props.hasOwnProperty(key) && this.toFlatCase(key) === fkey) {\n          return props[key];\n        }\n      }\n      for (var _key3 in defaultProps) {\n        if (defaultProps.hasOwnProperty(_key3) && this.toFlatCase(_key3) === fkey) {\n          return defaultProps[_key3];\n        }\n      }\n      return undefined; // Property not found\n    }\n  }, {\n    key: \"getMergedProps\",\n    value: function getMergedProps(props, defaultProps) {\n      return Object.assign({}, defaultProps, props);\n    }\n  }, {\n    key: \"getDiffProps\",\n    value: function getDiffProps(props, defaultProps) {\n      return this.findDiffKeys(props, defaultProps);\n    }\n\n    /**\n     * Gets the value of a property which can be a function or a direct value.\n     * If the property is a function, it will be invoked with the provided parameters.\n     * @param {*} obj - The object to get the value from\n     * @param {...*} params - Parameters to pass to the function if obj is a function\n     * @returns {*} The resolved value\n     */\n  }, {\n    key: \"getPropValue\",\n    value: function getPropValue(obj) {\n      // If obj is not a function, return it directly\n      if (!this.isFunction(obj)) {\n        return obj;\n      }\n\n      // Handle function invocation\n      for (var _len3 = arguments.length, params = new Array(_len3 > 1 ? _len3 - 1 : 0), _key4 = 1; _key4 < _len3; _key4++) {\n        params[_key4 - 1] = arguments[_key4];\n      }\n      if (params.length === 1) {\n        // For single parameter case, unwrap array if needed to avoid extra nesting\n        var param = params[0];\n        return obj(Array.isArray(param) ? param[0] : param);\n      }\n\n      // Pass all parameters to function\n      return obj.apply(void 0, params);\n    }\n  }, {\n    key: \"getComponentProp\",\n    value: function getComponentProp(component) {\n      var prop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n      var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      return this.isNotEmpty(component) ? this.getProp(component.props, prop, defaultProps) : undefined;\n    }\n  }, {\n    key: \"getComponentProps\",\n    value: function getComponentProps(component, defaultProps) {\n      return this.isNotEmpty(component) ? this.getMergedProps(component.props, defaultProps) : undefined;\n    }\n  }, {\n    key: \"getComponentDiffProps\",\n    value: function getComponentDiffProps(component, defaultProps) {\n      return this.isNotEmpty(component) ? this.getDiffProps(component.props, defaultProps) : undefined;\n    }\n  }, {\n    key: \"isValidChild\",\n    value: function isValidChild(child, type, validTypes) {\n      /* eslint-disable */\n      if (child) {\n        var _child$type;\n        var childType = this.getComponentProp(child, '__TYPE') || (child.type ? child.type.displayName : undefined);\n\n        // for App Router in Next.js ^14,\n        if (!childType && child !== null && child !== void 0 && (_child$type = child.type) !== null && _child$type !== void 0 && (_child$type = _child$type._payload) !== null && _child$type !== void 0 && _child$type.value) {\n          childType = child.type._payload.value.find(function (v) {\n            return v === type;\n          });\n        }\n        var isValid = childType === type;\n        try {\n          var messageTypes;\n          if (false) // removed by dead control flow\n{}\n        } catch (error) {\n          // NOOP\n        }\n        return isValid;\n      }\n      return false;\n      /* eslint-enable */\n    }\n  }, {\n    key: \"getRefElement\",\n    value: function getRefElement(ref) {\n      if (ref) {\n        return _typeof(ref) === 'object' && ref.hasOwnProperty('current') ? ref.current : ref;\n      }\n      return null;\n    }\n  }, {\n    key: \"combinedRefs\",\n    value: function combinedRefs(innerRef, forwardRef) {\n      if (innerRef && forwardRef) {\n        if (typeof forwardRef === 'function') {\n          forwardRef(innerRef.current);\n        } else {\n          forwardRef.current = innerRef.current;\n        }\n      }\n    }\n  }, {\n    key: \"removeAccents\",\n    value: function removeAccents(str) {\n      if (str && str.search(/[\\xC0-\\xFF]/g) > -1) {\n        str = str.replace(/[\\xC0-\\xC5]/g, 'A').replace(/[\\xC6]/g, 'AE').replace(/[\\xC7]/g, 'C').replace(/[\\xC8-\\xCB]/g, 'E').replace(/[\\xCC-\\xCF]/g, 'I').replace(/[\\xD0]/g, 'D').replace(/[\\xD1]/g, 'N').replace(/[\\xD2-\\xD6\\xD8]/g, 'O').replace(/[\\xD9-\\xDC]/g, 'U').replace(/[\\xDD]/g, 'Y').replace(/[\\xDE]/g, 'P').replace(/[\\xE0-\\xE5]/g, 'a').replace(/[\\xE6]/g, 'ae').replace(/[\\xE7]/g, 'c').replace(/[\\xE8-\\xEB]/g, 'e').replace(/[\\xEC-\\xEF]/g, 'i').replace(/[\\xF1]/g, 'n').replace(/[\\xF2-\\xF6\\xF8]/g, 'o').replace(/[\\xF9-\\xFC]/g, 'u').replace(/[\\xFE]/g, 'p').replace(/[\\xFD\\xFF]/g, 'y');\n      }\n      return str;\n    }\n  }, {\n    key: \"toFlatCase\",\n    value: function toFlatCase(str) {\n      // convert snake, kebab, camel and pascal cases to flat case\n      return this.isNotEmpty(str) && this.isString(str) ? str.replace(/(-|_)/g, '').toLowerCase() : str;\n    }\n  }, {\n    key: \"toCapitalCase\",\n    value: function toCapitalCase(str) {\n      return this.isNotEmpty(str) && this.isString(str) ? str[0].toUpperCase() + str.slice(1) : str;\n    }\n  }, {\n    key: \"trim\",\n    value: function trim(value) {\n      // trim only if the value is actually a string\n      return this.isNotEmpty(value) && this.isString(value) ? value.trim() : value;\n    }\n  }, {\n    key: \"isEmpty\",\n    value: function isEmpty(value) {\n      return value === null || value === undefined || value === '' || Array.isArray(value) && value.length === 0 || !(value instanceof Date) && _typeof(value) === 'object' && Object.keys(value).length === 0;\n    }\n  }, {\n    key: \"isNotEmpty\",\n    value: function isNotEmpty(value) {\n      return !this.isEmpty(value);\n    }\n  }, {\n    key: \"isFunction\",\n    value: function isFunction(value) {\n      return !!(value && value.constructor && value.call && value.apply);\n    }\n  }, {\n    key: \"isObject\",\n    value: function isObject(value) {\n      return value !== null && value instanceof Object && value.constructor === Object;\n    }\n  }, {\n    key: \"isDate\",\n    value: function isDate(value) {\n      return value !== null && value instanceof Date && value.constructor === Date;\n    }\n  }, {\n    key: \"isArray\",\n    value: function isArray(value) {\n      return value !== null && Array.isArray(value);\n    }\n  }, {\n    key: \"isString\",\n    value: function isString(value) {\n      return value !== null && typeof value === 'string';\n    }\n  }, {\n    key: \"isPrintableCharacter\",\n    value: function isPrintableCharacter() {\n      var _char = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n      return this.isNotEmpty(_char) && _char.length === 1 && _char.match(/\\S| /);\n    }\n  }, {\n    key: \"isLetter\",\n    value: function isLetter(_char2) {\n      return /^[a-zA-Z\\u00C0-\\u017F]$/.test(_char2);\n    }\n  }, {\n    key: \"isScalar\",\n    value: function isScalar(value) {\n      return value != null && (typeof value === 'string' || typeof value === 'number' || typeof value === 'bigint' || typeof value === 'boolean');\n    }\n\n    /**\n     * Firefox-v103 does not currently support the \"findLast\" method. It is stated that this method will be supported with Firefox-v104.\n     * https://caniuse.com/mdn-javascript_builtins_array_findlast\n     */\n  }, {\n    key: \"findLast\",\n    value: function findLast(arr, callback) {\n      var item;\n      if (this.isNotEmpty(arr)) {\n        try {\n          item = arr.findLast(callback);\n        } catch (_unused2) {\n          item = _toConsumableArray(arr).reverse().find(callback);\n        }\n      }\n      return item;\n    }\n\n    /**\n     * Firefox-v103 does not currently support the \"findLastIndex\" method. It is stated that this method will be supported with Firefox-v104.\n     * https://caniuse.com/mdn-javascript_builtins_array_findlastindex\n     */\n  }, {\n    key: \"findLastIndex\",\n    value: function findLastIndex(arr, callback) {\n      var index = -1;\n      if (this.isNotEmpty(arr)) {\n        try {\n          index = arr.findLastIndex(callback);\n        } catch (_unused3) {\n          index = arr.lastIndexOf(_toConsumableArray(arr).reverse().find(callback));\n        }\n      }\n      return index;\n    }\n  }, {\n    key: \"sort\",\n    value: function sort(value1, value2) {\n      var order = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n      var comparator = arguments.length > 3 ? arguments[3] : undefined;\n      var nullSortOrder = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n      var result = this.compare(value1, value2, comparator, order);\n      var finalSortOrder = order;\n\n      // nullSortOrder == 1 means Excel like sort nulls at bottom\n      if (this.isEmpty(value1) || this.isEmpty(value2)) {\n        finalSortOrder = nullSortOrder === 1 ? order : nullSortOrder;\n      }\n      return finalSortOrder * result;\n    }\n  }, {\n    key: \"compare\",\n    value: function compare(value1, value2, comparator) {\n      var order = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n      var result = -1;\n      var emptyValue1 = this.isEmpty(value1);\n      var emptyValue2 = this.isEmpty(value2);\n      if (emptyValue1 && emptyValue2) {\n        result = 0;\n      } else if (emptyValue1) {\n        result = order;\n      } else if (emptyValue2) {\n        result = -order;\n      } else if (typeof value1 === 'string' && typeof value2 === 'string') {\n        result = comparator(value1, value2);\n      } else {\n        result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n      }\n      return result;\n    }\n  }, {\n    key: \"localeComparator\",\n    value: function localeComparator(locale) {\n      //performance gain using Int.Collator. It is not recommended to use localeCompare against large arrays.\n      return new Intl.Collator(locale, {\n        numeric: true\n      }).compare;\n    }\n  }, {\n    key: \"findChildrenByKey\",\n    value: function findChildrenByKey(data, key) {\n      var _iterator = _createForOfIteratorHelper(data),\n        _step;\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var item = _step.value;\n          if (item.key === key) {\n            return item.children || [];\n          } else if (item.children) {\n            var result = this.findChildrenByKey(item.children, key);\n            if (result.length > 0) {\n              return result;\n            }\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n      return [];\n    }\n\n    /**\n     * This function takes mutates and object with a new value given\n     * a specific field. This will handle deeply nested fields that\n     * need to be modified or created.\n     *\n     * e.g:\n     * data = {\n     *  nested: {\n     *      foo: \"bar\"\n     *  }\n     * }\n     *\n     * field = \"nested.foo\"\n     * value = \"baz\"\n     *\n     * The function will mutate data to be\n     * e.g:\n     * data = {\n     *  nested: {\n     *      foo: \"baz\"\n     *  }\n     * }\n     *\n     * @param {object} data the object to be modified\n     * @param {string} field the field in the object to replace\n     * @param {any} value the value to have replaced in the field\n     */\n  }, {\n    key: \"mutateFieldData\",\n    value: function mutateFieldData(data, field, value) {\n      if (_typeof(data) !== 'object' || typeof field !== 'string') {\n        // short circuit if there is nothing to resolve\n        return;\n      }\n      var fields = field.split('.');\n      var obj = data;\n      for (var i = 0, len = fields.length; i < len; ++i) {\n        // Check if we are on the last field\n        if (i + 1 - len === 0) {\n          obj[fields[i]] = value;\n          break;\n        }\n        if (!obj[fields[i]]) {\n          obj[fields[i]] = {};\n        }\n        obj = obj[fields[i]];\n      }\n    }\n\n    /**\n     * This helper function takes an object and a dot-separated key path. It traverses the object based on the path,\n     * returning the value at the specified depth. If any part of the path is missing or undefined, it returns undefined.\n     *\n     * Example:\n     * const obj = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };\n     * const path = 'address.city';\n     * const result = ObjectUtils.getNestedValue(obj, path);\n     * console.log(result); // Output: \"Wonderland\"\n     *\n     * @param {object} obj - The object to traverse.\n     * @param {string} path - The dot-separated key path.\n     * @returns {*} The value at the specified depth, or undefined if any part of the path is missing or undefined.\n     */\n  }, {\n    key: \"getNestedValue\",\n    value: function getNestedValue(obj, path) {\n      return path.split('.').reduce(function (acc, part) {\n        return acc && acc[part] !== undefined ? acc[part] : undefined;\n      }, obj);\n    }\n\n    /**\n     * This function takes an object and a dot-separated key path. It traverses the object based on the path,\n     * returning the value at the specified depth. If any part of the path is missing or undefined, it returns undefined.\n     *\n     * Example:\n     * const objA = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };\n     * const objB = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };\n     * const result = ObjectUtils.absoluteCompare(objA, objB);\n     * console.log(result); // Output: true\n     *\n     * const objC = { name: 'Alice', address: { city: 'Wonderland', zip: 12346 } };\n     * const result2 = ObjectUtils.absoluteCompare(objA, objC);\n     * console.log(result2); // Output: false\n     *\n     * @param {object} objA - The first object to compare.\n     * @param {object} objB - The second object to compare.\n     * @param {number} [maxDepth=1] - The maximum depth to compare.\n     * @param {number} [currentDepth=0] - The current depth (used internally for recursion).\n     * @returns {boolean} True if the objects are equal within the specified depth, false otherwise.\n     *\n     */\n  }, {\n    key: \"absoluteCompare\",\n    value: function absoluteCompare(objA, objB) {\n      var maxDepth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n      var currentDepth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n      if (!objA || !objB) return true;\n      if (currentDepth > maxDepth) return true;\n      if (_typeof(objA) !== _typeof(objB)) return false;\n      var aKeys = Object.keys(objA);\n      var bKeys = Object.keys(objB);\n      if (aKeys.length !== bKeys.length) return false;\n      for (var _i = 0, _aKeys = aKeys; _i < _aKeys.length; _i++) {\n        var key = _aKeys[_i];\n        var aValue = objA[key];\n        var bValue = objB[key];\n\n        // Skip comparison if values are objects\n        var isObject = ObjectUtils.isObject(aValue) && ObjectUtils.isObject(bValue);\n        var isFunction = ObjectUtils.isFunction(aValue) && ObjectUtils.isFunction(bValue);\n        if ((isObject || isFunction) && !this.absoluteCompare(aValue, bValue, maxDepth, currentDepth + 1)) return false;\n        if (!isObject && aValue !== bValue) return false;\n      }\n      return true;\n    }\n\n    /**\n     * This helper function takes two objects and a list of keys to compare. It compares the values of the specified keys\n     * in both objects. If any comparison fails, it returns false. If all specified properties are equal, it returns true.\n     * It performs a shallow comparison using absoluteCompare if no keys are provided.\n     *\n     * Example:\n     * const objA = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };\n     * const objB = { name: 'Alice', address: { city: 'Wonderland', zip: 12345 } };\n     * const keysToCompare = ['name', 'address.city', 'address.zip'];\n     * const result = ObjectUtils.selectiveCompare(objA, objB, keysToCompare);\n     * console.log(result); // Output: true\n     *\n     * const objC = { name: 'Alice', address: { city: 'Wonderland', zip: 12346 } };\n     * const result2 = ObjectUtils.selectiveCompare(objA, objC, keysToCompare);\n     * console.log(result2); // Output: false\n     *\n     * @param {object} a - The first object to compare.\n     * @param {object} b - The second object to compare.\n     * @param {string[]} [keysToCompare] - The keys to compare. If not provided, performs a shallow comparison using absoluteCompare.\n     * @param {number} [maxDepth=1] - The maximum depth to compare if the variables are objects.\n     * @returns {boolean} True if all specified properties are equal, false otherwise.\n     */\n  }, {\n    key: \"selectiveCompare\",\n    value: function selectiveCompare(a, b, keysToCompare) {\n      var maxDepth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n      if (a === b) return true;\n      if (!a || !b || _typeof(a) !== 'object' || _typeof(b) !== 'object') return false;\n      if (!keysToCompare) return this.absoluteCompare(a, b, 1); // If no keys are provided, the comparison is limited to one depth level.\n      var _iterator2 = _createForOfIteratorHelper(keysToCompare),\n        _step2;\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var key = _step2.value;\n          var aValue = this.getNestedValue(a, key);\n          var bValue = this.getNestedValue(b, key);\n          var isObject = _typeof(aValue) === 'object' && aValue !== null && _typeof(bValue) === 'object' && bValue !== null;\n\n          // If the current key is an object, they are compared in one further level only.\n          if (isObject && !this.absoluteCompare(aValue, bValue, maxDepth)) return false;\n          if (!isObject && aValue !== bValue) return false;\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n      return true;\n    }\n  }]);\n}();\nvar lastId = 0;\nfunction UniqueComponentId() {\n  var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'pr_id_';\n  lastId++;\n  return \"\".concat(prefix).concat(lastId);\n}\nfunction ownKeys$2(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar IconUtils = /*#__PURE__*/function () {\n  function IconUtils() {\n    _classCallCheck(this, IconUtils);\n  }\n  return _createClass(IconUtils, null, [{\n    key: \"getJSXIcon\",\n    value: function getJSXIcon(icon) {\n      var iconProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var content = null;\n      if (icon !== null) {\n        var iconType = _typeof(icon);\n        var className = classNames(iconProps.className, iconType === 'string' && icon);\n        content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"span\", _extends({}, iconProps, {\n          className: className,\n          key: UniqueComponentId('icon')\n        }));\n        if (iconType !== 'string') {\n          var defaultContentOptions = _objectSpread$2({\n            iconProps: iconProps,\n            element: content\n          }, options);\n          return ObjectUtils.getJSXElement(icon, defaultContentOptions);\n        }\n      }\n      return content;\n    }\n  }]);\n}();\nfunction ownKeys$1(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$1(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nfunction mask(el, options) {\n  var defaultOptions = {\n    mask: null,\n    slotChar: '_',\n    autoClear: true,\n    unmask: false,\n    readOnly: false,\n    onComplete: null,\n    onChange: null,\n    onFocus: null,\n    onBlur: null\n  };\n  options = _objectSpread$1(_objectSpread$1({}, defaultOptions), options);\n  var tests;\n  var partialPosition;\n  var len;\n  var firstNonMaskPos;\n  var defs;\n  var androidChrome;\n  var lastRequiredNonMaskPos;\n  var oldVal;\n  var focusText;\n  var caretTimeoutId;\n  var buffer;\n  var defaultBuffer;\n  var caret = function caret(first, last) {\n    var range;\n    var begin;\n    var end;\n    if (!el.offsetParent || el !== document.activeElement) {\n      return;\n    }\n    if (typeof first === 'number') {\n      begin = first;\n      end = typeof last === 'number' ? last : begin;\n      if (el.setSelectionRange) {\n        el.setSelectionRange(begin, end);\n      } else if (el.createTextRange) {\n        range = el.createTextRange();\n        range.collapse(true);\n        range.moveEnd('character', end);\n        range.moveStart('character', begin);\n        range.select();\n      }\n    } else {\n      if (el.setSelectionRange) {\n        begin = el.selectionStart;\n        end = el.selectionEnd;\n      } else if (document.selection && document.selection.createRange) {\n        range = document.selection.createRange();\n        begin = 0 - range.duplicate().moveStart('character', -100000);\n        end = begin + range.text.length;\n      }\n      return {\n        begin: begin,\n        end: end\n      };\n    }\n  };\n  var isCompleted = function isCompleted() {\n    for (var i = firstNonMaskPos; i <= lastRequiredNonMaskPos; i++) {\n      if (tests[i] && buffer[i] === getPlaceholder(i)) {\n        return false;\n      }\n    }\n    return true;\n  };\n  var getPlaceholder = function getPlaceholder(i) {\n    if (i < options.slotChar.length) {\n      return options.slotChar.charAt(i);\n    }\n    return options.slotChar.charAt(0);\n  };\n  var getValue = function getValue() {\n    return options.unmask ? getUnmaskedValue() : el && el.value;\n  };\n  var seekNext = function seekNext(pos) {\n    while (++pos < len && !tests[pos]) {}\n    return pos;\n  };\n  var seekPrev = function seekPrev(pos) {\n    while (--pos >= 0 && !tests[pos]) {}\n    return pos;\n  };\n  var shiftL = function shiftL(begin, end) {\n    var i;\n    var j;\n    if (begin < 0) {\n      return;\n    }\n    for (i = begin, j = seekNext(end); i < len; i++) {\n      if (tests[i]) {\n        if (j < len && tests[i].test(buffer[j])) {\n          buffer[i] = buffer[j];\n          buffer[j] = getPlaceholder(j);\n        } else {\n          break;\n        }\n        j = seekNext(j);\n      }\n    }\n    writeBuffer();\n    caret(Math.max(firstNonMaskPos, begin));\n  };\n  var shiftR = function shiftR(pos) {\n    var i;\n    var c;\n    var j;\n    var t;\n    for (i = pos, c = getPlaceholder(pos); i < len; i++) {\n      if (tests[i]) {\n        j = seekNext(i);\n        t = buffer[i];\n        buffer[i] = c;\n        if (j < len && tests[j].test(t)) {\n          c = t;\n        } else {\n          break;\n        }\n      }\n    }\n  };\n  var handleAndroidInput = function handleAndroidInput(e) {\n    var curVal = el.value;\n    var pos = caret();\n    if (oldVal && oldVal.length && oldVal.length > curVal.length) {\n      // a deletion or backspace happened\n      checkVal(true);\n      while (pos.begin > 0 && !tests[pos.begin - 1]) {\n        pos.begin--;\n      }\n      if (pos.begin === 0) {\n        while (pos.begin < firstNonMaskPos && !tests[pos.begin]) {\n          pos.begin++;\n        }\n      }\n      caret(pos.begin, pos.begin);\n    } else {\n      checkVal(true);\n      while (pos.begin < len && !tests[pos.begin]) {\n        pos.begin++;\n      }\n      caret(pos.begin, pos.begin);\n    }\n    if (options.onComplete && isCompleted()) {\n      options.onComplete({\n        originalEvent: e,\n        value: getValue()\n      });\n    }\n  };\n  var onBlur = function onBlur(e) {\n    checkVal();\n    options.onBlur && options.onBlur(e);\n    updateModel(e);\n    if (el.value !== focusText) {\n      var event = document.createEvent('HTMLEvents');\n      event.initEvent('change', true, false);\n      el.dispatchEvent(event);\n    }\n  };\n  var onKeyDown = function onKeyDown(e) {\n    if (options.readOnly) {\n      return;\n    }\n    var k = e.which || e.keyCode;\n    var pos;\n    var begin;\n    var end;\n    oldVal = el.value;\n\n    //backspace, delete, and escape get special treatment\n    if (k === 8 || k === 46 || DomHandler.isIOS() && k === 127) {\n      pos = caret();\n      begin = pos.begin;\n      end = pos.end;\n      if (end - begin === 0) {\n        begin = k !== 46 ? seekPrev(begin) : end = seekNext(begin - 1);\n        end = k === 46 ? seekNext(end) : end;\n      }\n      clearBuffer(begin, end);\n      shiftL(begin, end - 1);\n      updateModel(e);\n      e.preventDefault();\n    } else if (k === 13) {\n      // enter\n      onBlur(e);\n      updateModel(e);\n    } else if (k === 27) {\n      // escape\n      el.value = focusText;\n      caret(0, checkVal());\n      updateModel(e);\n      e.preventDefault();\n    }\n  };\n  var onKeyPress = function onKeyPress(e) {\n    if (options.readOnly) {\n      return;\n    }\n    var k = e.which || e.keyCode;\n    var pos = caret();\n    var p;\n    var c;\n    var next;\n    var completed;\n    if (e.ctrlKey || e.altKey || e.metaKey || k < 32) {\n      //Ignore\n      return;\n    } else if (k && k !== 13) {\n      if (pos.end - pos.begin !== 0) {\n        clearBuffer(pos.begin, pos.end);\n        shiftL(pos.begin, pos.end - 1);\n      }\n      p = seekNext(pos.begin - 1);\n      if (p < len) {\n        c = String.fromCharCode(k);\n        if (tests[p].test(c)) {\n          shiftR(p);\n          buffer[p] = c;\n          writeBuffer();\n          next = seekNext(p);\n          if (DomHandler.isAndroid()) {\n            //Path for CSP Violation on FireFox OS 1.1\n            var proxy = function proxy() {\n              caret(next);\n            };\n            setTimeout(proxy, 0);\n          } else {\n            caret(next);\n          }\n          if (pos.begin <= lastRequiredNonMaskPos) {\n            completed = isCompleted();\n          }\n        }\n      }\n      e.preventDefault();\n    }\n    updateModel(e);\n    if (options.onComplete && completed) {\n      options.onComplete({\n        originalEvent: e,\n        value: getValue()\n      });\n    }\n  };\n  var clearBuffer = function clearBuffer(start, end) {\n    var i;\n    for (i = start; i < end && i < len; i++) {\n      if (tests[i]) {\n        buffer[i] = getPlaceholder(i);\n      }\n    }\n  };\n  var writeBuffer = function writeBuffer() {\n    el.value = buffer.join('');\n  };\n  var checkVal = function checkVal(allow) {\n    //try to place characters where they belong\n    var test = el.value;\n    var lastMatch = -1;\n    var i;\n    var c;\n    var pos;\n    for (i = 0, pos = 0; i < len; i++) {\n      if (tests[i]) {\n        buffer[i] = getPlaceholder(i);\n        while (pos++ < test.length) {\n          c = test.charAt(pos - 1);\n          if (tests[i].test(c)) {\n            buffer[i] = c;\n            lastMatch = i;\n            break;\n          }\n        }\n        if (pos > test.length) {\n          clearBuffer(i + 1, len);\n          break;\n        }\n      } else {\n        if (buffer[i] === test.charAt(pos)) {\n          pos++;\n        }\n        if (i < partialPosition) {\n          lastMatch = i;\n        }\n      }\n    }\n    if (allow) {\n      writeBuffer();\n    } else if (lastMatch + 1 < partialPosition) {\n      if (options.autoClear || buffer.join('') === defaultBuffer) {\n        // Invalid value. Remove it and replace it with the\n        // mask, which is the default behavior.\n        if (el.value) {\n          el.value = '';\n        }\n        clearBuffer(0, len);\n      } else {\n        // Invalid value, but we opt to show the value to the\n        // user and allow them to correct their mistake.\n        writeBuffer();\n      }\n    } else {\n      writeBuffer();\n      el.value = el.value.substring(0, lastMatch + 1);\n    }\n    return partialPosition ? i : firstNonMaskPos;\n  };\n  var onFocus = function onFocus(e) {\n    if (options.readOnly) {\n      return;\n    }\n    clearTimeout(caretTimeoutId);\n    var pos;\n    focusText = el.value;\n    pos = checkVal();\n    caretTimeoutId = setTimeout(function () {\n      if (el !== document.activeElement) {\n        return;\n      }\n      writeBuffer();\n      if (pos === options.mask.replace('?', '').length) {\n        caret(0, pos);\n      } else {\n        caret(pos);\n      }\n    }, 100);\n    if (options.onFocus) {\n      options.onFocus(e);\n    }\n  };\n  var onInput = function onInput(event) {\n    if (androidChrome) {\n      handleAndroidInput(event);\n    } else {\n      handleInputChange(event);\n    }\n  };\n  var handleInputChange = function handleInputChange(e) {\n    if (options.readOnly) {\n      return;\n    }\n    var pos = checkVal(true);\n    caret(pos);\n    updateModel(e);\n    if (options.onComplete && isCompleted()) {\n      options.onComplete({\n        originalEvent: e,\n        value: getValue()\n      });\n    }\n  };\n  var getUnmaskedValue = function getUnmaskedValue() {\n    var unmaskedBuffer = [];\n    for (var i = 0; i < buffer.length; i++) {\n      var c = buffer[i];\n      if (tests[i] && c !== getPlaceholder(i)) {\n        unmaskedBuffer.push(c);\n      }\n    }\n    return unmaskedBuffer.join('');\n  };\n  var updateModel = function updateModel(e) {\n    if (options.onChange) {\n      var val = getValue();\n      options.onChange({\n        originalEvent: e,\n        value: defaultBuffer !== val ? val : '',\n        stopPropagation: function stopPropagation() {\n          e.stopPropagation();\n        },\n        preventDefault: function preventDefault() {\n          e.preventDefault();\n        },\n        target: {\n          value: defaultBuffer !== val ? val : ''\n        }\n      });\n    }\n  };\n  var bindEvents = function bindEvents() {\n    el.addEventListener('focus', onFocus);\n    el.addEventListener('blur', onBlur);\n    el.addEventListener('keydown', onKeyDown);\n    el.addEventListener('keypress', onKeyPress);\n    el.addEventListener('input', onInput);\n    el.addEventListener('paste', handleInputChange);\n  };\n  var unbindEvents = function unbindEvents() {\n    el.removeEventListener('focus', onFocus);\n    el.removeEventListener('blur', onBlur);\n    el.removeEventListener('keydown', onKeyDown);\n    el.removeEventListener('keypress', onKeyPress);\n    el.removeEventListener('input', onInput);\n    el.removeEventListener('paste', handleInputChange);\n  };\n  var init = function init() {\n    tests = [];\n    partialPosition = options.mask.length;\n    len = options.mask.length;\n    firstNonMaskPos = null;\n    defs = {\n      9: '[0-9]',\n      a: '[A-Za-z]',\n      '*': '[A-Za-z0-9]'\n    };\n    androidChrome = DomHandler.isChrome() && DomHandler.isAndroid();\n    var maskTokens = options.mask.split('');\n    for (var i = 0; i < maskTokens.length; i++) {\n      var c = maskTokens[i];\n      if (c === '?') {\n        len--;\n        partialPosition = i;\n      } else if (defs[c]) {\n        tests.push(new RegExp(defs[c]));\n        if (firstNonMaskPos === null) {\n          firstNonMaskPos = tests.length - 1;\n        }\n        if (i < partialPosition) {\n          lastRequiredNonMaskPos = tests.length - 1;\n        }\n      } else {\n        tests.push(null);\n      }\n    }\n    buffer = [];\n    for (var _i = 0; _i < maskTokens.length; _i++) {\n      var _c = maskTokens[_i];\n      if (_c !== '?') {\n        if (defs[_c]) {\n          buffer.push(getPlaceholder(_i));\n        } else {\n          buffer.push(_c);\n        }\n      }\n    }\n    defaultBuffer = buffer.join('');\n  };\n  if (el && options.mask) {\n    init();\n    bindEvents();\n  }\n  return {\n    init: init,\n    bindEvents: bindEvents,\n    unbindEvents: unbindEvents,\n    updateModel: updateModel,\n    getValue: getValue\n  };\n}\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\n/**\n * Merges properties together taking an Array of props and merging into one single set of\n * properties. The options can contain a \"classNameMergeFunction\" which can be something\n * like Tailwind Merge for properly merging Tailwind classes.\n *\n * @param {object[]} props the array of object properties to merge\n * @param {*} options either empty or could contain a custom merge function like TailwindMerge\n * @returns the single properties value after merging\n */\nfunction mergeProps(props) {\n  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  if (!props) {\n    return undefined;\n  }\n  var isFunction = function isFunction(obj) {\n    return typeof obj === 'function';\n  };\n  var classNameMergeFunction = options.classNameMergeFunction;\n  var hasMergeFunction = isFunction(classNameMergeFunction);\n  return props.reduce(function (merged, ps) {\n    if (!ps) {\n      return merged;\n    }\n    var _loop = function _loop() {\n      var value = ps[key];\n      if (key === 'style') {\n        merged.style = _objectSpread(_objectSpread({}, merged.style), ps.style);\n      } else if (key === 'className') {\n        var newClassName = '';\n        if (hasMergeFunction) {\n          newClassName = classNameMergeFunction(merged.className, ps.className);\n        } else {\n          newClassName = [merged.className, ps.className].join(' ').trim();\n        }\n        merged.className = newClassName || undefined;\n      } else if (isFunction(value)) {\n        var existingFn = merged[key];\n        merged[key] = existingFn ? function () {\n          existingFn.apply(void 0, arguments);\n          value.apply(void 0, arguments);\n        } : value;\n      } else {\n        merged[key] = value;\n      }\n    };\n    for (var key in ps) {\n      _loop();\n    }\n    return merged;\n  }, {});\n}\nfunction handler() {\n  var zIndexes = [];\n  var generateZIndex = function generateZIndex(key, autoZIndex) {\n    var baseZIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 999;\n    var lastZIndex = getLastZIndex(key, autoZIndex, baseZIndex);\n    var newZIndex = lastZIndex.value + (lastZIndex.key === key ? 0 : baseZIndex) + 1;\n    zIndexes.push({\n      key: key,\n      value: newZIndex\n    });\n    return newZIndex;\n  };\n  var revertZIndex = function revertZIndex(zIndex) {\n    zIndexes = zIndexes.filter(function (obj) {\n      return obj.value !== zIndex;\n    });\n  };\n  var getCurrentZIndex = function getCurrentZIndex(key, autoZIndex) {\n    return getLastZIndex(key, autoZIndex).value;\n  };\n  var getLastZIndex = function getLastZIndex(key, autoZIndex) {\n    var baseZIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n    return _toConsumableArray(zIndexes).reverse().find(function (obj) {\n      return autoZIndex ? true : obj.key === key;\n    }) || {\n      key: key,\n      value: baseZIndex\n    };\n  };\n  var getZIndex = function getZIndex(el) {\n    return el ? parseInt(el.style.zIndex, 10) || 0 : 0;\n  };\n  return {\n    get: getZIndex,\n    set: function set(key, el, autoZIndex, baseZIndex) {\n      if (el) {\n        el.style.zIndex = String(generateZIndex(key, autoZIndex, baseZIndex));\n      }\n    },\n    clear: function clear(el) {\n      if (el) {\n        revertZIndex(ZIndexUtils.get(el));\n        el.style.zIndex = '';\n      }\n    },\n    getCurrent: function getCurrent(key, autoZIndex) {\n      return getCurrentZIndex(key, autoZIndex);\n    }\n  };\n}\nvar ZIndexUtils = handler();\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/utils/utils.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/primereact/virtualscroller/virtualscroller.esm.js":
/*!**********************************************************************************!*\
  !*** ../react-ui/node_modules/primereact/virtualscroller/virtualscroller.esm.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   VirtualScroller: () => (/* binding */ VirtualScroller)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var primereact_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! primereact/api */ \"../react-ui/node_modules/primereact/api/api.esm.js\");\n/* harmony import */ var primereact_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! primereact/hooks */ \"../react-ui/node_modules/primereact/hooks/hooks.esm.js\");\n/* harmony import */ var primereact_icons_spinner__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! primereact/icons/spinner */ \"../react-ui/node_modules/primereact/icons/spinner/index.esm.js\");\n/* harmony import */ var primereact_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! primereact/utils */ \"../react-ui/node_modules/primereact/utils/utils.esm.js\");\n/* harmony import */ var primereact_componentbase__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! primereact/componentbase */ \"../react-ui/node_modules/primereact/componentbase/componentbase.esm.js\");\n'use client';\n\n\n\n\n\n\n\nfunction _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nfunction _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _slicedToArray(r, e) {\n  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nvar styles = \"\\n.p-virtualscroller {\\n    position: relative;\\n    overflow: auto;\\n    contain: strict;\\n    transform: translateZ(0);\\n    will-change: scroll-position;\\n    outline: 0 none;\\n}\\n\\n.p-virtualscroller-content {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    /*contain: content;*/\\n    min-height: 100%;\\n    min-width: 100%;\\n    will-change: transform;\\n}\\n\\n.p-virtualscroller-spacer {\\n    position: absolute;\\n    top: 0;\\n    left: 0;\\n    height: 1px;\\n    width: 1px;\\n    transform-origin: 0 0;\\n    pointer-events: none;\\n}\\n\\n.p-virtualscroller-loader {\\n    position: sticky;\\n    top: 0;\\n    left: 0;\\n    width: 100%;\\n    height: 100%;\\n}\\n\\n.p-virtualscroller-loader.p-component-overlay {\\n    display: flex;\\n    align-items: center;\\n    justify-content: center;\\n}\\n\\n.p-virtualscroller-loading-icon {\\n    font-size: 2rem;\\n}\\n\\n.p-virtualscroller-horizontal > .p-virtualscroller-content {\\n    display: flex;\\n}\\n\\n/* Inline */\\n.p-virtualscroller-inline .p-virtualscroller-content {\\n    position: static;\\n}\\n\";\nvar VirtualScrollerBase = primereact_componentbase__WEBPACK_IMPORTED_MODULE_5__.ComponentBase.extend({\n  defaultProps: {\n    __TYPE: 'VirtualScroller',\n    __parentMetadata: null,\n    id: null,\n    style: null,\n    className: null,\n    tabIndex: 0,\n    items: null,\n    itemSize: 0,\n    scrollHeight: null,\n    scrollWidth: null,\n    orientation: 'vertical',\n    step: 0,\n    numToleratedItems: null,\n    delay: 0,\n    resizeDelay: 10,\n    appendOnly: false,\n    inline: false,\n    lazy: false,\n    disabled: false,\n    loaderDisabled: false,\n    loadingIcon: null,\n    columns: null,\n    loading: undefined,\n    autoSize: false,\n    showSpacer: true,\n    showLoader: false,\n    loadingTemplate: null,\n    loaderIconTemplate: null,\n    itemTemplate: null,\n    contentTemplate: null,\n    onScroll: null,\n    onScrollIndexChange: null,\n    onLazyLoad: null,\n    children: undefined\n  },\n  css: {\n    styles: styles\n  }\n});\nfunction ownKeys(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nvar VirtualScroller = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.memo(/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.forwardRef(function (inProps, ref) {\n  var mergeProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useMergeProps)();\n  var context = react__WEBPACK_IMPORTED_MODULE_0__.useContext(primereact_api__WEBPACK_IMPORTED_MODULE_1__.PrimeReactContext);\n  var props = VirtualScrollerBase.getProps(inProps, context);\n  var prevProps = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.usePrevious)(inProps) || {};\n  var vertical = props.orientation === 'vertical';\n  var horizontal = props.orientation === 'horizontal';\n  var both = props.orientation === 'both';\n  var _React$useState = react__WEBPACK_IMPORTED_MODULE_0__.useState(both ? {\n      rows: 0,\n      cols: 0\n    } : 0),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    firstState = _React$useState2[0],\n    setFirstState = _React$useState2[1];\n  var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__.useState(both ? {\n      rows: 0,\n      cols: 0\n    } : 0),\n    _React$useState4 = _slicedToArray(_React$useState3, 2),\n    lastState = _React$useState4[0],\n    setLastState = _React$useState4[1];\n  var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_0__.useState(0),\n    _React$useState6 = _slicedToArray(_React$useState5, 2),\n    pageState = _React$useState6[0],\n    setPageState = _React$useState6[1];\n  var _React$useState7 = react__WEBPACK_IMPORTED_MODULE_0__.useState(both ? {\n      rows: 0,\n      cols: 0\n    } : 0),\n    _React$useState8 = _slicedToArray(_React$useState7, 2),\n    numItemsInViewportState = _React$useState8[0],\n    setNumItemsInViewportState = _React$useState8[1];\n  var _React$useState9 = react__WEBPACK_IMPORTED_MODULE_0__.useState(props.numToleratedItems),\n    _React$useState10 = _slicedToArray(_React$useState9, 2),\n    numToleratedItemsState = _React$useState10[0],\n    setNumToleratedItemsState = _React$useState10[1];\n  var _React$useState11 = react__WEBPACK_IMPORTED_MODULE_0__.useState(props.loading || false),\n    _React$useState12 = _slicedToArray(_React$useState11, 2),\n    loadingState = _React$useState12[0],\n    setLoadingState = _React$useState12[1];\n  var _React$useState13 = react__WEBPACK_IMPORTED_MODULE_0__.useState([]),\n    _React$useState14 = _slicedToArray(_React$useState13, 2),\n    loaderArrState = _React$useState14[0],\n    setLoaderArrState = _React$useState14[1];\n  var _VirtualScrollerBase$ = VirtualScrollerBase.setMetaData({\n      props: props,\n      state: {\n        first: firstState,\n        last: lastState,\n        page: pageState,\n        numItemsInViewport: numItemsInViewportState,\n        numToleratedItems: numToleratedItemsState,\n        loading: loadingState,\n        loaderArr: loaderArrState\n      }\n    }),\n    ptm = _VirtualScrollerBase$.ptm;\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useStyle)(VirtualScrollerBase.css.styles, {\n    name: 'virtualscroller'\n  });\n  var elementRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _contentRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _spacerRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var _stickyRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var lastScrollPos = react__WEBPACK_IMPORTED_MODULE_0__.useRef(both ? {\n    top: 0,\n    left: 0\n  } : 0);\n  var scrollTimeout = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var resizeTimeout = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var contentStyle = react__WEBPACK_IMPORTED_MODULE_0__.useRef({});\n  var spacerStyle = react__WEBPACK_IMPORTED_MODULE_0__.useRef({});\n  var defaultWidth = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var defaultHeight = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var defaultContentWidth = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var defaultContentHeight = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var isItemRangeChanged = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var lazyLoadState = react__WEBPACK_IMPORTED_MODULE_0__.useRef(null);\n  var viewInitialized = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false);\n  var _useResizeListener = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useResizeListener)({\n      listener: function listener(event) {\n        return onResize();\n      },\n      when: !props.disabled\n    }),\n    _useResizeListener2 = _slicedToArray(_useResizeListener, 1),\n    bindWindowResizeListener = _useResizeListener2[0];\n  var _useEventListener = (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useEventListener)({\n      target: 'window',\n      type: 'orientationchange',\n      listener: function listener(event) {\n        return onResize();\n      },\n      when: !props.disabled\n    }),\n    _useEventListener2 = _slicedToArray(_useEventListener, 1),\n    bindOrientationChangeListener = _useEventListener2[0];\n  var getElementRef = function getElementRef() {\n    return elementRef;\n  };\n  var getPageByFirst = function getPageByFirst(first) {\n    return Math.floor((first + numToleratedItemsState * 4) / (props.step || 1));\n  };\n  var setContentElement = function setContentElement(element) {\n    _contentRef.current = element || _contentRef.current || primereact_utils__WEBPACK_IMPORTED_MODULE_4__.DomHandler.findSingle(elementRef.current, '.p-virtualscroller-content');\n  };\n  var isPageChanged = function isPageChanged(first) {\n    return props.step ? pageState !== getPageByFirst(first) : true;\n  };\n  var scrollTo = function scrollTo(options) {\n    lastScrollPos.current = both ? {\n      top: 0,\n      left: 0\n    } : 0;\n    elementRef.current && elementRef.current.scrollTo(options);\n  };\n  var scrollToIndex = function scrollToIndex(index) {\n    var behavior = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';\n    var _calculateNumItems = calculateNumItems(),\n      numToleratedItems = _calculateNumItems.numToleratedItems;\n    var contentPos = getContentPosition();\n    var calculateFirst = function calculateFirst() {\n      var _index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n      var _numT = arguments.length > 1 ? arguments[1] : undefined;\n      return _index <= _numT ? 0 : _index;\n    };\n    var calculateCoord = function calculateCoord(_first, _size, _cpos) {\n      return _first * _size + _cpos;\n    };\n    var scrollToItem = function scrollToItem() {\n      var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n      var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n      return scrollTo({\n        left: left,\n        top: top,\n        behavior: behavior\n      });\n    };\n    var newFirst = both ? {\n      rows: 0,\n      cols: 0\n    } : 0;\n    var isRangeChanged = false;\n    if (both) {\n      newFirst = {\n        rows: calculateFirst(index[0], numToleratedItems[0]),\n        cols: calculateFirst(index[1], numToleratedItems[1])\n      };\n      scrollToItem(calculateCoord(newFirst.cols, props.itemSize[1], contentPos.left), calculateCoord(newFirst.rows, props.itemSize[0], contentPos.top));\n      isRangeChanged = firstState.rows !== newFirst.rows || firstState.cols !== newFirst.cols;\n    } else {\n      newFirst = calculateFirst(index, numToleratedItems);\n      horizontal ? scrollToItem(calculateCoord(newFirst, props.itemSize, contentPos.left), 0) : scrollToItem(0, calculateCoord(newFirst, props.itemSize, contentPos.top));\n      isRangeChanged = firstState !== newFirst;\n    }\n    isItemRangeChanged.current = isRangeChanged;\n    setFirstState(newFirst);\n  };\n  var scrollInView = function scrollInView(index, to) {\n    var behavior = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'auto';\n    if (to) {\n      var _getRenderedRange = getRenderedRange(),\n        first = _getRenderedRange.first,\n        viewport = _getRenderedRange.viewport;\n      var scrollToItem = function scrollToItem() {\n        var left = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n        var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n        return scrollTo({\n          left: left,\n          top: top,\n          behavior: behavior\n        });\n      };\n      var isToStart = to === 'to-start';\n      var isToEnd = to === 'to-end';\n      if (isToStart) {\n        if (both) {\n          if (viewport.first.rows - first.rows > index[0]) {\n            scrollToItem(viewport.first.cols * props.itemSize[1], (viewport.first.rows - 1) * props.itemSize[0]);\n          } else if (viewport.first.cols - first.cols > index[1]) {\n            scrollToItem((viewport.first.cols - 1) * props.itemSize[1], viewport.first.rows * props.itemSize[0]);\n          }\n        } else if (viewport.first - first > index) {\n          var pos = (viewport.first - 1) * props.itemSize;\n          horizontal ? scrollToItem(pos, 0) : scrollToItem(0, pos);\n        }\n      } else if (isToEnd) {\n        if (both) {\n          if (viewport.last.rows - first.rows <= index[0] + 1) {\n            scrollToItem(viewport.first.cols * props.itemSize[1], (viewport.first.rows + 1) * props.itemSize[0]);\n          } else if (viewport.last.cols - first.cols <= index[1] + 1) {\n            scrollToItem((viewport.first.cols + 1) * props.itemSize[1], viewport.first.rows * props.itemSize[0]);\n          }\n        } else if (viewport.last - first <= index + 1) {\n          var _pos2 = (viewport.first + 1) * props.itemSize;\n          horizontal ? scrollToItem(_pos2, 0) : scrollToItem(0, _pos2);\n        }\n      }\n    } else {\n      scrollToIndex(index, behavior);\n    }\n  };\n  var getRows = function getRows() {\n    return loadingState ? props.loaderDisabled ? loaderArrState : [] : loadedItems();\n  };\n  var getColumns = function getColumns() {\n    if (props.columns && both || horizontal) {\n      return loadingState && props.loaderDisabled ? both ? loaderArrState[0] : loaderArrState : props.columns.slice(both ? firstState.cols : firstState, both ? lastState.cols : lastState);\n    }\n    return props.columns;\n  };\n  var getRenderedRange = function getRenderedRange() {\n    var calculateFirstInViewport = function calculateFirstInViewport(_pos, _size) {\n      return Math.floor(_pos / (_size || _pos));\n    };\n    var firstInViewport = firstState;\n    var lastInViewport = 0;\n    if (elementRef.current) {\n      var _elementRef$current = elementRef.current,\n        scrollTop = _elementRef$current.scrollTop,\n        scrollLeft = _elementRef$current.scrollLeft;\n      if (both) {\n        firstInViewport = {\n          rows: calculateFirstInViewport(scrollTop, props.itemSize[0]),\n          cols: calculateFirstInViewport(scrollLeft, props.itemSize[1])\n        };\n        lastInViewport = {\n          rows: firstInViewport.rows + numItemsInViewportState.rows,\n          cols: firstInViewport.cols + numItemsInViewportState.cols\n        };\n      } else {\n        var scrollPos = horizontal ? scrollLeft : scrollTop;\n        firstInViewport = calculateFirstInViewport(scrollPos, props.itemSize);\n        lastInViewport = firstInViewport + numItemsInViewportState;\n      }\n    }\n    return {\n      first: firstState,\n      last: lastState,\n      viewport: {\n        first: firstInViewport,\n        last: lastInViewport\n      }\n    };\n  };\n  var calculateNumItems = function calculateNumItems() {\n    var contentPos = getContentPosition();\n    var contentWidth = elementRef.current ? elementRef.current.offsetWidth - contentPos.left : 0;\n    var contentHeight = elementRef.current ? elementRef.current.offsetHeight - contentPos.top : 0;\n    var calculateNumItemsInViewport = function calculateNumItemsInViewport(_contentSize, _itemSize) {\n      return Math.ceil(_contentSize / (_itemSize || _contentSize));\n    };\n    var calculateNumToleratedItems = function calculateNumToleratedItems(_numItems) {\n      return Math.ceil(_numItems / 2);\n    };\n    var numItemsInViewport = both ? {\n      rows: calculateNumItemsInViewport(contentHeight, props.itemSize[0]),\n      cols: calculateNumItemsInViewport(contentWidth, props.itemSize[1])\n    } : calculateNumItemsInViewport(horizontal ? contentWidth : contentHeight, props.itemSize);\n    var numToleratedItems = numToleratedItemsState || (both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));\n    return {\n      numItemsInViewport: numItemsInViewport,\n      numToleratedItems: numToleratedItems\n    };\n  };\n  var calculateOptions = function calculateOptions() {\n    var _calculateNumItems2 = calculateNumItems(),\n      numItemsInViewport = _calculateNumItems2.numItemsInViewport,\n      numToleratedItems = _calculateNumItems2.numToleratedItems;\n    var calculateLast = function calculateLast(_first, _num, _numT) {\n      var _isCols = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n      return getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);\n    };\n    var last = both ? {\n      rows: calculateLast(firstState.rows, numItemsInViewport.rows, numToleratedItems[0]),\n      cols: calculateLast(firstState.cols, numItemsInViewport.cols, numToleratedItems[1], true)\n    } : calculateLast(firstState, numItemsInViewport, numToleratedItems);\n    setNumItemsInViewportState(numItemsInViewport);\n    setNumToleratedItemsState(numToleratedItems);\n    setLastState(last);\n    if (props.showLoader) {\n      setLoaderArrState(both ? Array.from({\n        length: numItemsInViewport.rows\n      }).map(function () {\n        return Array.from({\n          length: numItemsInViewport.cols\n        });\n      }) : Array.from({\n        length: numItemsInViewport\n      }));\n    }\n    if (props.lazy) {\n      Promise.resolve().then(function () {\n        lazyLoadState.current = {\n          first: props.step ? both ? {\n            rows: 0,\n            cols: firstState.cols\n          } : 0 : firstState,\n          last: Math.min(props.step ? props.step : last, (props.items || []).length)\n        };\n        props.onLazyLoad && props.onLazyLoad(lazyLoadState.current);\n      });\n    }\n  };\n  var calculateAutoSize = function calculateAutoSize(loading) {\n    if (props.autoSize && !loading) {\n      Promise.resolve().then(function () {\n        if (_contentRef.current) {\n          _contentRef.current.style.minHeight = _contentRef.current.style.minWidth = 'auto';\n          _contentRef.current.style.position = 'relative';\n          elementRef.current.style.contain = 'none';\n\n          /*const [contentWidth, contentHeight] = [DomHandler.getWidth(contentRef.current), DomHandler.getHeight(contentRef.current)];\n           contentWidth !== defaultContentWidth.current && (elementRef.current.style.width = '');\n          contentHeight !== defaultContentHeight.current && (elementRef.current.style.height = '');*/\n\n          var _ref = [primereact_utils__WEBPACK_IMPORTED_MODULE_4__.DomHandler.getWidth(elementRef.current), primereact_utils__WEBPACK_IMPORTED_MODULE_4__.DomHandler.getHeight(elementRef.current)],\n            width = _ref[0],\n            height = _ref[1];\n          (both || horizontal) && (elementRef.current.style.width = (width < defaultWidth.current ? width : props.scrollWidth || defaultWidth.current) + 'px');\n          (both || vertical) && (elementRef.current.style.height = (height < defaultHeight.current ? height : props.scrollHeight || defaultHeight.current) + 'px');\n          _contentRef.current.style.minHeight = _contentRef.current.style.minWidth = '';\n          _contentRef.current.style.position = '';\n          elementRef.current.style.contain = '';\n        }\n      });\n    }\n  };\n  var getLast = function getLast() {\n    var _ref2;\n    var last = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    var isCols = arguments.length > 1 ? arguments[1] : undefined;\n    return props.items ? Math.min(isCols ? ((_ref2 = props.columns || props.items[0]) === null || _ref2 === void 0 ? void 0 : _ref2.length) || 0 : (props.items || []).length, last) : 0;\n  };\n  var getContentPosition = function getContentPosition() {\n    if (_contentRef.current) {\n      var style = getComputedStyle(_contentRef.current);\n      var left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);\n      var right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);\n      var top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);\n      var bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);\n      return {\n        left: left,\n        right: right,\n        top: top,\n        bottom: bottom,\n        x: left + right,\n        y: top + bottom\n      };\n    }\n    return {\n      left: 0,\n      right: 0,\n      top: 0,\n      bottom: 0,\n      x: 0,\n      y: 0\n    };\n  };\n  var setSize = function setSize() {\n    if (elementRef.current) {\n      var parentElement = elementRef.current.parentElement;\n      var width = props.scrollWidth || \"\".concat(elementRef.current.offsetWidth || parentElement.offsetWidth, \"px\");\n      var height = props.scrollHeight || \"\".concat(elementRef.current.offsetHeight || parentElement.offsetHeight, \"px\");\n      var setProp = function setProp(_name, _value) {\n        return elementRef.current.style[_name] = _value;\n      };\n      if (both || horizontal) {\n        setProp('height', height);\n        setProp('width', width);\n      } else {\n        setProp('height', height);\n      }\n    }\n  };\n  var setSpacerSize = function setSpacerSize() {\n    var items = props.items;\n    if (items) {\n      var contentPos = getContentPosition();\n      var setProp = function setProp(_name, _value, _size) {\n        var _cpos = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n        return spacerStyle.current = _objectSpread(_objectSpread({}, spacerStyle.current), _defineProperty({}, \"\".concat(_name), (_value || []).length * _size + _cpos + 'px'));\n      };\n      if (both) {\n        setProp('height', items, props.itemSize[0], contentPos.y);\n        setProp('width', props.columns || items[1], props.itemSize[1], contentPos.x);\n      } else {\n        horizontal ? setProp('width', props.columns || items, props.itemSize, contentPos.x) : setProp('height', items, props.itemSize, contentPos.y);\n      }\n    }\n  };\n  var setContentPosition = function setContentPosition(pos) {\n    if (_contentRef.current && !props.appendOnly) {\n      var first = pos ? pos.first : firstState;\n      var calculateTranslateVal = function calculateTranslateVal(_first, _size) {\n        return _first * _size;\n      };\n      var setTransform = function setTransform() {\n        var _x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n        var _y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n        _stickyRef.current && (_stickyRef.current.style.top = \"-\".concat(_y, \"px\"));\n        contentStyle.current = _objectSpread(_objectSpread({}, contentStyle.current), {\n          transform: \"translate3d(\".concat(_x, \"px, \").concat(_y, \"px, 0)\")\n        });\n      };\n      if (both) {\n        setTransform(calculateTranslateVal(first.cols, props.itemSize[1]), calculateTranslateVal(first.rows, props.itemSize[0]));\n      } else {\n        var translateVal = calculateTranslateVal(first, props.itemSize);\n        horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);\n      }\n    }\n  };\n  var onScrollPositionChange = function onScrollPositionChange(event) {\n    var target = event.target;\n    var contentPos = getContentPosition();\n    var calculateScrollPos = function calculateScrollPos(_pos, _cpos) {\n      return _pos ? _pos > _cpos ? _pos - _cpos : _pos : 0;\n    };\n    var calculateCurrentIndex = function calculateCurrentIndex(_pos, _size) {\n      return Math.floor(_pos / (_size || _pos));\n    };\n    var calculateTriggerIndex = function calculateTriggerIndex(_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) {\n      return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;\n    };\n    var calculateFirst = function calculateFirst(_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) {\n      if (_currentIndex <= _numT) {\n        return 0;\n      }\n      return Math.max(0, _isScrollDownOrRight ? _currentIndex < _triggerIndex ? _first : _currentIndex - _numT : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);\n    };\n    var calculateLast = function calculateLast(_currentIndex, _first, _last, _num, _numT, _isCols) {\n      var lastValue = _first + _num + 2 * _numT;\n      if (_currentIndex >= _numT) {\n        lastValue = lastValue + (_numT + 1);\n      }\n      return getLast(lastValue, _isCols);\n    };\n    var scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);\n    var scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);\n    var newFirst = both ? {\n      rows: 0,\n      cols: 0\n    } : 0;\n    var newLast = lastState;\n    var isRangeChanged = false;\n    var newScrollPos = lastScrollPos.current;\n    if (both) {\n      var isScrollDown = lastScrollPos.current.top <= scrollTop;\n      var isScrollRight = lastScrollPos.current.left <= scrollLeft;\n      if (!props.appendOnly || props.appendOnly && (isScrollDown || isScrollRight)) {\n        var currentIndex = {\n          rows: calculateCurrentIndex(scrollTop, props.itemSize[0]),\n          cols: calculateCurrentIndex(scrollLeft, props.itemSize[1])\n        };\n        var triggerIndex = {\n          rows: calculateTriggerIndex(currentIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),\n          cols: calculateTriggerIndex(currentIndex.cols, firstState.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], isScrollRight)\n        };\n        newFirst = {\n          rows: calculateFirst(currentIndex.rows, triggerIndex.rows, firstState.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0], isScrollDown),\n          cols: calculateFirst(currentIndex.cols, triggerIndex.cols, firstState.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], isScrollRight)\n        };\n        newLast = {\n          rows: calculateLast(currentIndex.rows, newFirst.rows, lastState.rows, numItemsInViewportState.rows, numToleratedItemsState[0]),\n          cols: calculateLast(currentIndex.cols, newFirst.cols, lastState.cols, numItemsInViewportState.cols, numToleratedItemsState[1], true)\n        };\n        isRangeChanged = newFirst.rows !== firstState.rows || newLast.rows !== lastState.rows || newFirst.cols !== firstState.cols || newLast.cols !== lastState.cols || isItemRangeChanged.current;\n        newScrollPos = {\n          top: scrollTop,\n          left: scrollLeft\n        };\n      }\n    } else {\n      var scrollPos = horizontal ? scrollLeft : scrollTop;\n      var isScrollDownOrRight = lastScrollPos.current <= scrollPos;\n      if (!props.appendOnly || props.appendOnly && isScrollDownOrRight) {\n        var _currentIndex2 = calculateCurrentIndex(scrollPos, props.itemSize);\n        var _triggerIndex2 = calculateTriggerIndex(_currentIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);\n        newFirst = calculateFirst(_currentIndex2, _triggerIndex2, firstState, lastState, numItemsInViewportState, numToleratedItemsState, isScrollDownOrRight);\n        newLast = calculateLast(_currentIndex2, newFirst, lastState, numItemsInViewportState, numToleratedItemsState);\n        isRangeChanged = newFirst !== firstState || newLast !== lastState || isItemRangeChanged.current;\n        newScrollPos = scrollPos;\n      }\n    }\n    return {\n      first: newFirst,\n      last: newLast,\n      isRangeChanged: isRangeChanged,\n      scrollPos: newScrollPos\n    };\n  };\n  var onScrollChange = function onScrollChange(event) {\n    var _onScrollPositionChan = onScrollPositionChange(event),\n      first = _onScrollPositionChan.first,\n      last = _onScrollPositionChan.last,\n      isRangeChanged = _onScrollPositionChan.isRangeChanged,\n      scrollPos = _onScrollPositionChan.scrollPos;\n    if (isRangeChanged) {\n      var newState = {\n        first: first,\n        last: last\n      };\n      setContentPosition(newState);\n      setFirstState(first);\n      setLastState(last);\n      lastScrollPos.current = scrollPos;\n      props.onScrollIndexChange && props.onScrollIndexChange(newState);\n      if (props.lazy && isPageChanged(first)) {\n        var newLazyLoadState = {\n          first: props.step ? Math.min(getPageByFirst(first) * props.step, (props.items || []).length - props.step) : first,\n          last: Math.min(props.step ? (getPageByFirst(first) + 1) * props.step : last, (props.items || []).length)\n        };\n        var isLazyStateChanged = !lazyLoadState.current || lazyLoadState.current.first !== newLazyLoadState.first || lazyLoadState.current.last !== newLazyLoadState.last;\n        isLazyStateChanged && props.onLazyLoad && props.onLazyLoad(newLazyLoadState);\n        lazyLoadState.current = newLazyLoadState;\n      }\n    }\n  };\n  var _onScroll = function onScroll(event) {\n    props.onScroll && props.onScroll(event);\n    if (props.delay) {\n      if (scrollTimeout.current) {\n        clearTimeout(scrollTimeout.current);\n      }\n      if (isPageChanged(firstState)) {\n        if (!loadingState && props.showLoader) {\n          var _onScrollPositionChan2 = onScrollPositionChange(event),\n            isRangeChanged = _onScrollPositionChan2.isRangeChanged;\n          var changed = isRangeChanged || (props.step ? isPageChanged(firstState) : false);\n          changed && setLoadingState(true);\n        }\n        scrollTimeout.current = setTimeout(function () {\n          onScrollChange(event);\n          if (loadingState && props.showLoader && (!props.lazy || props.loading === undefined)) {\n            setLoadingState(false);\n            setPageState(getPageByFirst(firstState));\n          }\n        }, props.delay);\n      }\n    } else {\n      onScrollChange(event);\n    }\n  };\n  var onResize = function onResize() {\n    if (resizeTimeout.current) {\n      clearTimeout(resizeTimeout.current);\n    }\n    resizeTimeout.current = setTimeout(function () {\n      if (elementRef.current) {\n        var _ref3 = [primereact_utils__WEBPACK_IMPORTED_MODULE_4__.DomHandler.getWidth(elementRef.current), primereact_utils__WEBPACK_IMPORTED_MODULE_4__.DomHandler.getHeight(elementRef.current)],\n          width = _ref3[0],\n          height = _ref3[1];\n        var isDiffWidth = width !== defaultWidth.current,\n          isDiffHeight = height !== defaultHeight.current;\n        var reinit = both ? isDiffWidth || isDiffHeight : horizontal ? isDiffWidth : vertical ? isDiffHeight : false;\n        if (reinit) {\n          setNumToleratedItemsState(props.numToleratedItems);\n          defaultWidth.current = width;\n          defaultHeight.current = height;\n          defaultContentWidth.current = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.DomHandler.getWidth(_contentRef.current);\n          defaultContentHeight.current = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.DomHandler.getHeight(_contentRef.current);\n        }\n      }\n    }, props.resizeDelay);\n  };\n  var getOptions = function getOptions(renderedIndex) {\n    var count = (props.items || []).length;\n    var index = both ? firstState.rows + renderedIndex : firstState + renderedIndex;\n    return {\n      index: index,\n      count: count,\n      first: index === 0,\n      last: index === count - 1,\n      even: index % 2 === 0,\n      odd: index % 2 !== 0,\n      props: props\n    };\n  };\n  var loaderOptions = function loaderOptions(index, extOptions) {\n    var count = loaderArrState.length || 0;\n    return _objectSpread({\n      index: index,\n      count: count,\n      first: index === 0,\n      last: index === count - 1,\n      even: index % 2 === 0,\n      odd: index % 2 !== 0,\n      props: props\n    }, extOptions);\n  };\n  var loadedItems = function loadedItems() {\n    var items = props.items;\n    if (items && !loadingState) {\n      if (both) {\n        return items.slice(props.appendOnly ? 0 : firstState.rows, lastState.rows).map(function (item) {\n          return props.columns ? item : item.slice(props.appendOnly ? 0 : firstState.cols, lastState.cols);\n        });\n      } else if (horizontal && props.columns) {\n        return items;\n      }\n      return items.slice(props.appendOnly ? 0 : firstState, lastState);\n    }\n    return [];\n  };\n  var viewInit = function viewInit() {\n    if (elementRef.current && isVisible()) {\n      setContentElement(_contentRef.current);\n      init();\n      bindWindowResizeListener();\n      bindOrientationChangeListener();\n      defaultWidth.current = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.DomHandler.getWidth(elementRef.current);\n      defaultHeight.current = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.DomHandler.getHeight(elementRef.current);\n      defaultContentWidth.current = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.DomHandler.getWidth(_contentRef.current);\n      defaultContentHeight.current = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.DomHandler.getHeight(_contentRef.current);\n    }\n  };\n  var init = function init() {\n    if (!props.disabled && isVisible()) {\n      setSize();\n      calculateOptions();\n      setSpacerSize();\n    }\n  };\n  var isVisible = function isVisible() {\n    if (primereact_utils__WEBPACK_IMPORTED_MODULE_4__.DomHandler.isVisible(elementRef.current)) {\n      var rect = elementRef.current.getBoundingClientRect();\n      return rect.width > 0 && rect.height > 0;\n    }\n    return false;\n  };\n  react__WEBPACK_IMPORTED_MODULE_0__.useEffect(function () {\n    if (!viewInitialized.current && isVisible()) {\n      viewInit();\n      viewInitialized.current = true;\n    }\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useUpdateEffect)(function () {\n    init();\n  }, [props.itemSize, props.scrollHeight, props.scrollWidth]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useUpdateEffect)(function () {\n    if (props.numToleratedItems !== numToleratedItemsState) {\n      setNumToleratedItemsState(props.numToleratedItems);\n    }\n  }, [props.numToleratedItems]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useUpdateEffect)(function () {\n    if (props.numToleratedItems === numToleratedItemsState) {\n      init(); // reinit after resizing\n    }\n  }, [numToleratedItemsState]);\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useUpdateEffect)(function () {\n    // Check if the previous/current rows array exists\n    var prevRowsExist = prevProps.items !== undefined && prevProps.items !== null;\n    var currentRowsExist = props.items !== undefined && props.items !== null;\n\n    // Get the length of the previous/current rows array, or 0 if it doesn't exist\n    var prevRowsLength = prevRowsExist ? prevProps.items.length : 0;\n    var currentRowsLength = currentRowsExist ? props.items.length : 0;\n\n    // Check if the length of the rows arrays has changed\n    var valuesChanged = prevRowsLength !== currentRowsLength;\n\n    // If both is true, we also need to check the lengths of the first element (assuming it's a matrix)\n    if (both && !valuesChanged) {\n      // Get the length of the columns or 0\n      var prevColumnsLength = prevRowsExist && prevProps.items.length > 0 ? prevProps.items[0].length : 0;\n      var currentColumnsLength = currentRowsExist && props.items.length > 0 ? props.items[0].length : 0;\n\n      // Check if the length of the columns has changed\n      valuesChanged = prevColumnsLength !== currentColumnsLength;\n    }\n\n    // If the previous items array doesn't exist or if any values have changed, call the init function\n    if (!prevRowsExist || valuesChanged) {\n      init();\n    }\n    var loading = loadingState;\n    if (props.lazy && prevProps.loading !== props.loading && props.loading !== loadingState) {\n      setLoadingState(props.loading);\n      loading = props.loading;\n    }\n    calculateAutoSize(loading);\n  });\n  (0,primereact_hooks__WEBPACK_IMPORTED_MODULE_2__.useUpdateEffect)(function () {\n    lastScrollPos.current = both ? {\n      top: 0,\n      left: 0\n    } : 0;\n  }, [props.orientation]);\n  react__WEBPACK_IMPORTED_MODULE_0__.useImperativeHandle(ref, function () {\n    return {\n      props: props,\n      getElementRef: getElementRef,\n      scrollTo: scrollTo,\n      scrollToIndex: scrollToIndex,\n      scrollInView: scrollInView,\n      getRenderedRange: getRenderedRange\n    };\n  });\n  var createLoaderItem = function createLoaderItem(index) {\n    var extOptions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var options = loaderOptions(index, extOptions);\n    var content = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.loadingTemplate, options);\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n      key: index\n    }, content);\n  };\n  var createLoader = function createLoader() {\n    var iconClassName = 'p-virtualscroller-loading-icon';\n    var loadingIconProps = mergeProps({\n      className: iconClassName\n    }, ptm('loadingIcon'));\n    var icon = props.loadingIcon || /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(primereact_icons_spinner__WEBPACK_IMPORTED_MODULE_3__.SpinnerIcon, _extends({}, loadingIconProps, {\n      spin: true\n    }));\n    var loadingIcon = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.IconUtils.getJSXIcon(icon, _objectSpread({}, loadingIconProps), {\n      props: props\n    });\n    if (!props.loaderDisabled && props.showLoader && loadingState) {\n      var _className = (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-virtualscroller-loader', {\n        'p-component-overlay': !props.loadingTemplate\n      });\n      var _content = loadingIcon;\n      if (props.loadingTemplate) {\n        _content = loaderArrState.map(function (_, index) {\n          return createLoaderItem(index, both && {\n            numCols: numItemsInViewportState.cols\n          });\n        });\n      } else if (props.loaderIconTemplate) {\n        var defaultContentOptions = {\n          iconClassName: iconClassName,\n          element: _content,\n          props: props\n        };\n        _content = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.loaderIconTemplate, defaultContentOptions);\n      }\n      var loaderProps = mergeProps({\n        className: _className\n      }, ptm('loader'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", loaderProps, _content);\n    }\n    return null;\n  };\n  var createSpacer = function createSpacer() {\n    if (props.showSpacer) {\n      var spacerProps = mergeProps({\n        ref: _spacerRef,\n        style: spacerStyle.current,\n        className: 'p-virtualscroller-spacer'\n      }, ptm('spacer'));\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", spacerProps);\n    }\n    return null;\n  };\n  var createItem = function createItem(item, index) {\n    var options = getOptions(index);\n    var content = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.itemTemplate, item, options);\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n      key: options.index\n    }, content);\n  };\n  var createItems = function createItems() {\n    var items = loadedItems();\n    return items.map(createItem);\n  };\n  var createContent = function createContent() {\n    var items = createItems();\n    var className = (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-virtualscroller-content', {\n      'p-virtualscroller-loading': loadingState\n    });\n    var contentProps = mergeProps({\n      ref: _contentRef,\n      style: contentStyle.current,\n      className: className\n    }, ptm('content'));\n    var content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", contentProps, items);\n    if (props.contentTemplate) {\n      var defaultOptions = {\n        style: contentStyle.current,\n        className: className,\n        spacerStyle: spacerStyle.current,\n        contentRef: function contentRef(el) {\n          return _contentRef.current = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getRefElement(el);\n        },\n        spacerRef: function spacerRef(el) {\n          return _spacerRef.current = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getRefElement(el);\n        },\n        stickyRef: function stickyRef(el) {\n          return _stickyRef.current = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getRefElement(el);\n        },\n        items: loadedItems(),\n        getItemOptions: function getItemOptions(index) {\n          return getOptions(index);\n        },\n        children: items,\n        element: content,\n        props: props,\n        loading: loadingState,\n        getLoaderOptions: function getLoaderOptions(index, ext) {\n          return loaderOptions(index, ext);\n        },\n        loadingTemplate: props.loadingTemplate,\n        itemSize: props.itemSize,\n        rows: getRows(),\n        columns: getColumns(),\n        vertical: vertical,\n        horizontal: horizontal,\n        both: both\n      };\n      return primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.contentTemplate, defaultOptions);\n    }\n    return content;\n  };\n  if (props.disabled) {\n    var _content2 = primereact_utils__WEBPACK_IMPORTED_MODULE_4__.ObjectUtils.getJSXElement(props.contentTemplate, {\n      items: props.items,\n      rows: props.items,\n      columns: props.columns\n    });\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, props.children, _content2);\n  }\n  var className = (0,primereact_utils__WEBPACK_IMPORTED_MODULE_4__.classNames)('p-virtualscroller', {\n    'p-virtualscroller-inline': props.inline,\n    'p-virtualscroller-both p-both-scroll': both,\n    'p-virtualscroller-horizontal p-horizontal-scroll': horizontal\n  }, props.className);\n  var loader = createLoader();\n  var content = createContent();\n  var spacer = createSpacer();\n  var rootProps = mergeProps({\n    ref: elementRef,\n    className: className,\n    tabIndex: props.tabIndex,\n    style: props.style,\n    onScroll: function onScroll(e) {\n      return _onScroll(e);\n    }\n  }, VirtualScrollerBase.getOtherProps(props), ptm('root'));\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", rootProps, content, spacer, loader);\n}));\nVirtualScroller.displayName = 'VirtualScroller';\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/virtualscroller/virtualscroller.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/prismjs/components/prism-core.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/prismjs/components/prism-core.js ***!
  \*****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("{/// <reference lib=\"WebWorker\"/>\n\nvar _self = typeof window !== 'undefined' ? window // if in browser\n: typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope ? self // if in worker\n: {} // if in node js\n;\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = function (_self) {\n  // Private helper vars\n  var lang = /(?:^|\\s)lang(?:uage)?-([\\w-]+)(?=\\s|$)/i;\n  var uniqueId = 0;\n\n  // The grammar object for plaintext\n  var plainTextGrammar = {};\n  var _ = {\n    /**\n     * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n     * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n     * additional languages or plugins yourself.\n     *\n     * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n     *\n     * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n     * empty Prism object into the global scope before loading the Prism script like this:\n     *\n     * ```js\n     * window.Prism = window.Prism || {};\n     * Prism.manual = true;\n     * // add a new <script> to load Prism's script\n     * ```\n     *\n     * @default false\n     * @type {boolean}\n     * @memberof Prism\n     * @public\n     */\n    manual: _self.Prism && _self.Prism.manual,\n    /**\n     * By default, if Prism is in a web worker, it assumes that it is in a worker it created itself, so it uses\n     * `addEventListener` to communicate with its parent instance. However, if you're using Prism manually in your\n     * own worker, you don't want it to do this.\n     *\n     * By setting this value to `true`, Prism will not add its own listeners to the worker.\n     *\n     * You obviously have to change this value before Prism executes. To do this, you can add an\n     * empty Prism object into the global scope before loading the Prism script like this:\n     *\n     * ```js\n     * window.Prism = window.Prism || {};\n     * Prism.disableWorkerMessageHandler = true;\n     * // Load Prism's script\n     * ```\n     *\n     * @default false\n     * @type {boolean}\n     * @memberof Prism\n     * @public\n     */\n    disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n    /**\n     * A namespace for utility methods.\n     *\n     * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n     * change or disappear at any time.\n     *\n     * @namespace\n     * @memberof Prism\n     */\n    util: {\n      encode: function encode(tokens) {\n        if (tokens instanceof Token) {\n          return new Token(tokens.type, encode(tokens.content), tokens.alias);\n        } else if (Array.isArray(tokens)) {\n          return tokens.map(encode);\n        } else {\n          return tokens.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/\\u00a0/g, ' ');\n        }\n      },\n      /**\n       * Returns the name of the type of the given value.\n       *\n       * @param {any} o\n       * @returns {string}\n       * @example\n       * type(null)      === 'Null'\n       * type(undefined) === 'Undefined'\n       * type(123)       === 'Number'\n       * type('foo')     === 'String'\n       * type(true)      === 'Boolean'\n       * type([1, 2])    === 'Array'\n       * type({})        === 'Object'\n       * type(String)    === 'Function'\n       * type(/abc+/)    === 'RegExp'\n       */\n      type: function (o) {\n        return Object.prototype.toString.call(o).slice(8, -1);\n      },\n      /**\n       * Returns a unique number for the given object. Later calls will still return the same number.\n       *\n       * @param {Object} obj\n       * @returns {number}\n       */\n      objId: function (obj) {\n        if (!obj['__id']) {\n          Object.defineProperty(obj, '__id', {\n            value: ++uniqueId\n          });\n        }\n        return obj['__id'];\n      },\n      /**\n       * Creates a deep clone of the given object.\n       *\n       * The main intended use of this function is to clone language definitions.\n       *\n       * @param {T} o\n       * @param {Record<number, any>} [visited]\n       * @returns {T}\n       * @template T\n       */\n      clone: function deepClone(o, visited) {\n        visited = visited || {};\n        var clone;\n        var id;\n        switch (_.util.type(o)) {\n          case 'Object':\n            id = _.util.objId(o);\n            if (visited[id]) {\n              return visited[id];\n            }\n            clone = /** @type {Record<string, any>} */{};\n            visited[id] = clone;\n            for (var key in o) {\n              if (o.hasOwnProperty(key)) {\n                clone[key] = deepClone(o[key], visited);\n              }\n            }\n            return /** @type {any} */clone;\n          case 'Array':\n            id = _.util.objId(o);\n            if (visited[id]) {\n              return visited[id];\n            }\n            clone = [];\n            visited[id] = clone;\n            (/** @type {Array} */ /** @type {any} */o).forEach(function (v, i) {\n              clone[i] = deepClone(v, visited);\n            });\n            return /** @type {any} */clone;\n          default:\n            return o;\n        }\n      },\n      /**\n       * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n       *\n       * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n       *\n       * @param {Element} element\n       * @returns {string}\n       */\n      getLanguage: function (element) {\n        while (element) {\n          var m = lang.exec(element.className);\n          if (m) {\n            return m[1].toLowerCase();\n          }\n          element = element.parentElement;\n        }\n        return 'none';\n      },\n      /**\n       * Sets the Prism `language-xxxx` class of the given element.\n       *\n       * @param {Element} element\n       * @param {string} language\n       * @returns {void}\n       */\n      setLanguage: function (element, language) {\n        // remove all `language-xxxx` classes\n        // (this might leave behind a leading space)\n        element.className = element.className.replace(RegExp(lang, 'gi'), '');\n\n        // add the new `language-xxxx` class\n        // (using `classList` will automatically clean up spaces for us)\n        element.classList.add('language-' + language);\n      },\n      /**\n       * Returns the script element that is currently executing.\n       *\n       * This does __not__ work for line script element.\n       *\n       * @returns {HTMLScriptElement | null}\n       */\n      currentScript: function () {\n        if (typeof document === 'undefined') {\n          return null;\n        }\n        if (document.currentScript && document.currentScript.tagName === 'SCRIPT' && 1 < 2 /* hack to trip TS' flow analysis */) {\n          return /** @type {any} */document.currentScript;\n        }\n\n        // IE11 workaround\n        // we'll get the src of the current script by parsing IE11's error stack trace\n        // this will not work for inline scripts\n\n        try {\n          throw new Error();\n        } catch (err) {\n          // Get file src url from stack. Specifically works with the format of stack traces in IE.\n          // A stack will look like this:\n          //\n          // Error\n          //    at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n          //    at Global code (http://localhost/components/prism-core.js:606:1)\n\n          var src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n          if (src) {\n            var scripts = document.getElementsByTagName('script');\n            for (var i in scripts) {\n              if (scripts[i].src == src) {\n                return scripts[i];\n              }\n            }\n          }\n          return null;\n        }\n      },\n      /**\n       * Returns whether a given class is active for `element`.\n       *\n       * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n       * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n       * given class is just the given class with a `no-` prefix.\n       *\n       * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n       * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n       * ancestors have the given class or the negated version of it, then the default activation will be returned.\n       *\n       * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n       * version of it, the class is considered active.\n       *\n       * @param {Element} element\n       * @param {string} className\n       * @param {boolean} [defaultActivation=false]\n       * @returns {boolean}\n       */\n      isActive: function (element, className, defaultActivation) {\n        var no = 'no-' + className;\n        while (element) {\n          var classList = element.classList;\n          if (classList.contains(className)) {\n            return true;\n          }\n          if (classList.contains(no)) {\n            return false;\n          }\n          element = element.parentElement;\n        }\n        return !!defaultActivation;\n      }\n    },\n    /**\n     * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n     *\n     * @namespace\n     * @memberof Prism\n     * @public\n     */\n    languages: {\n      /**\n       * The grammar for plain, unformatted text.\n       */\n      plain: plainTextGrammar,\n      plaintext: plainTextGrammar,\n      text: plainTextGrammar,\n      txt: plainTextGrammar,\n      /**\n       * Creates a deep copy of the language with the given id and appends the given tokens.\n       *\n       * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n       * will be overwritten at its original position.\n       *\n       * ## Best practices\n       *\n       * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n       * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n       * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n       *\n       * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n       * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n       *\n       * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n       * @param {Grammar} redef The new tokens to append.\n       * @returns {Grammar} The new language created.\n       * @public\n       * @example\n       * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n       *     // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n       *     // at its original position\n       *     'comment': { ... },\n       *     // CSS doesn't have a 'color' token, so this token will be appended\n       *     'color': /\\b(?:red|green|blue)\\b/\n       * });\n       */\n      extend: function (id, redef) {\n        var lang = _.util.clone(_.languages[id]);\n        for (var key in redef) {\n          lang[key] = redef[key];\n        }\n        return lang;\n      },\n      /**\n       * Inserts tokens _before_ another token in a language definition or any other grammar.\n       *\n       * ## Usage\n       *\n       * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n       * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n       * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n       * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n       * this:\n       *\n       * ```js\n       * Prism.languages.markup.style = {\n       *     // token\n       * };\n       * ```\n       *\n       * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n       * before existing tokens. For the CSS example above, you would use it like this:\n       *\n       * ```js\n       * Prism.languages.insertBefore('markup', 'cdata', {\n       *     'style': {\n       *         // token\n       *     }\n       * });\n       * ```\n       *\n       * ## Special cases\n       *\n       * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n       * will be ignored.\n       *\n       * This behavior can be used to insert tokens after `before`:\n       *\n       * ```js\n       * Prism.languages.insertBefore('markup', 'comment', {\n       *     'comment': Prism.languages.markup.comment,\n       *     // tokens after 'comment'\n       * });\n       * ```\n       *\n       * ## Limitations\n       *\n       * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n       * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n       * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n       * deleting properties which is necessary to insert at arbitrary positions.\n       *\n       * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n       * Instead, it will create a new object and replace all references to the target object with the new one. This\n       * can be done without temporarily deleting properties, so the iteration order is well-defined.\n       *\n       * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n       * you hold the target object in a variable, then the value of the variable will not change.\n       *\n       * ```js\n       * var oldMarkup = Prism.languages.markup;\n       * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n       *\n       * assert(oldMarkup !== Prism.languages.markup);\n       * assert(newMarkup === Prism.languages.markup);\n       * ```\n       *\n       * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n       * object to be modified.\n       * @param {string} before The key to insert before.\n       * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n       * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n       * object to be modified.\n       *\n       * Defaults to `Prism.languages`.\n       * @returns {Grammar} The new grammar object.\n       * @public\n       */\n      insertBefore: function (inside, before, insert, root) {\n        root = root || (/** @type {any} */_.languages);\n        var grammar = root[inside];\n        /** @type {Grammar} */\n        var ret = {};\n        for (var token in grammar) {\n          if (grammar.hasOwnProperty(token)) {\n            if (token == before) {\n              for (var newToken in insert) {\n                if (insert.hasOwnProperty(newToken)) {\n                  ret[newToken] = insert[newToken];\n                }\n              }\n            }\n\n            // Do not insert token which also occur in insert. See #1525\n            if (!insert.hasOwnProperty(token)) {\n              ret[token] = grammar[token];\n            }\n          }\n        }\n        var old = root[inside];\n        root[inside] = ret;\n\n        // Update references in other language definitions\n        _.languages.DFS(_.languages, function (key, value) {\n          if (value === old && key != inside) {\n            this[key] = ret;\n          }\n        });\n        return ret;\n      },\n      // Traverse a language definition with Depth First Search\n      DFS: function DFS(o, callback, type, visited) {\n        visited = visited || {};\n        var objId = _.util.objId;\n        for (var i in o) {\n          if (o.hasOwnProperty(i)) {\n            callback.call(o, i, o[i], type || i);\n            var property = o[i];\n            var propertyType = _.util.type(property);\n            if (propertyType === 'Object' && !visited[objId(property)]) {\n              visited[objId(property)] = true;\n              DFS(property, callback, null, visited);\n            } else if (propertyType === 'Array' && !visited[objId(property)]) {\n              visited[objId(property)] = true;\n              DFS(property, callback, i, visited);\n            }\n          }\n        }\n      }\n    },\n    plugins: {},\n    /**\n     * This is the most high-level function in Prism’s API.\n     * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n     * each one of them.\n     *\n     * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n     *\n     * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n     * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n     * @memberof Prism\n     * @public\n     */\n    highlightAll: function (async, callback) {\n      _.highlightAllUnder(document, async, callback);\n    },\n    /**\n     * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n     * {@link Prism.highlightElement} on each one of them.\n     *\n     * The following hooks will be run:\n     * 1. `before-highlightall`\n     * 2. `before-all-elements-highlight`\n     * 3. All hooks of {@link Prism.highlightElement} for each element.\n     *\n     * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n     * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n     * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n     * @memberof Prism\n     * @public\n     */\n    highlightAllUnder: function (container, async, callback) {\n      var env = {\n        callback: callback,\n        container: container,\n        selector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n      };\n      _.hooks.run('before-highlightall', env);\n      env.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n      _.hooks.run('before-all-elements-highlight', env);\n      for (var i = 0, element; element = env.elements[i++];) {\n        _.highlightElement(element, async === true, env.callback);\n      }\n    },\n    /**\n     * Highlights the code inside a single element.\n     *\n     * The following hooks will be run:\n     * 1. `before-sanity-check`\n     * 2. `before-highlight`\n     * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n     * 4. `before-insert`\n     * 5. `after-highlight`\n     * 6. `complete`\n     *\n     * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n     * the element's language.\n     *\n     * @param {Element} element The element containing the code.\n     * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n     * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n     * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n     * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n     *\n     * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n     * asynchronous highlighting to work. You can build your own bundle on the\n     * [Download page](https://prismjs.com/download.html).\n     * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n     * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n     * @memberof Prism\n     * @public\n     */\n    highlightElement: function (element, async, callback) {\n      // Find language\n      var language = _.util.getLanguage(element);\n      var grammar = _.languages[language];\n\n      // Set language on the element, if not present\n      _.util.setLanguage(element, language);\n\n      // Set language on the parent, for styling\n      var parent = element.parentElement;\n      if (parent && parent.nodeName.toLowerCase() === 'pre') {\n        _.util.setLanguage(parent, language);\n      }\n      var code = element.textContent;\n      var env = {\n        element: element,\n        language: language,\n        grammar: grammar,\n        code: code\n      };\n      function insertHighlightedCode(highlightedCode) {\n        env.highlightedCode = highlightedCode;\n        _.hooks.run('before-insert', env);\n        env.element.innerHTML = env.highlightedCode;\n        _.hooks.run('after-highlight', env);\n        _.hooks.run('complete', env);\n        callback && callback.call(env.element);\n      }\n      _.hooks.run('before-sanity-check', env);\n\n      // plugins may change/add the parent/element\n      parent = env.element.parentElement;\n      if (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n        parent.setAttribute('tabindex', '0');\n      }\n      if (!env.code) {\n        _.hooks.run('complete', env);\n        callback && callback.call(env.element);\n        return;\n      }\n      _.hooks.run('before-highlight', env);\n      if (!env.grammar) {\n        insertHighlightedCode(_.util.encode(env.code));\n        return;\n      }\n      if (async && _self.Worker) {\n        var worker = new Worker(_.filename);\n        worker.onmessage = function (evt) {\n          insertHighlightedCode(evt.data);\n        };\n        worker.postMessage(JSON.stringify({\n          language: env.language,\n          code: env.code,\n          immediateClose: true\n        }));\n      } else {\n        insertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n      }\n    },\n    /**\n     * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n     * and the language definitions to use, and returns a string with the HTML produced.\n     *\n     * The following hooks will be run:\n     * 1. `before-tokenize`\n     * 2. `after-tokenize`\n     * 3. `wrap`: On each {@link Token}.\n     *\n     * @param {string} text A string with the code to be highlighted.\n     * @param {Grammar} grammar An object containing the tokens to use.\n     *\n     * Usually a language definition like `Prism.languages.markup`.\n     * @param {string} language The name of the language definition passed to `grammar`.\n     * @returns {string} The highlighted HTML.\n     * @memberof Prism\n     * @public\n     * @example\n     * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n     */\n    highlight: function (text, grammar, language) {\n      var env = {\n        code: text,\n        grammar: grammar,\n        language: language\n      };\n      _.hooks.run('before-tokenize', env);\n      if (!env.grammar) {\n        throw new Error('The language \"' + env.language + '\" has no grammar.');\n      }\n      env.tokens = _.tokenize(env.code, env.grammar);\n      _.hooks.run('after-tokenize', env);\n      return Token.stringify(_.util.encode(env.tokens), env.language);\n    },\n    /**\n     * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n     * and the language definitions to use, and returns an array with the tokenized code.\n     *\n     * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n     *\n     * This method could be useful in other contexts as well, as a very crude parser.\n     *\n     * @param {string} text A string with the code to be highlighted.\n     * @param {Grammar} grammar An object containing the tokens to use.\n     *\n     * Usually a language definition like `Prism.languages.markup`.\n     * @returns {TokenStream} An array of strings and tokens, a token stream.\n     * @memberof Prism\n     * @public\n     * @example\n     * let code = `var foo = 0;`;\n     * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n     * tokens.forEach(token => {\n     *     if (token instanceof Prism.Token && token.type === 'number') {\n     *         console.log(`Found numeric literal: ${token.content}`);\n     *     }\n     * });\n     */\n    tokenize: function (text, grammar) {\n      var rest = grammar.rest;\n      if (rest) {\n        for (var token in rest) {\n          grammar[token] = rest[token];\n        }\n        delete grammar.rest;\n      }\n      var tokenList = new LinkedList();\n      addAfter(tokenList, tokenList.head, text);\n      matchGrammar(text, tokenList, grammar, tokenList.head, 0);\n      return toArray(tokenList);\n    },\n    /**\n     * @namespace\n     * @memberof Prism\n     * @public\n     */\n    hooks: {\n      all: {},\n      /**\n       * Adds the given callback to the list of callbacks for the given hook.\n       *\n       * The callback will be invoked when the hook it is registered for is run.\n       * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n       *\n       * One callback function can be registered to multiple hooks and the same hook multiple times.\n       *\n       * @param {string} name The name of the hook.\n       * @param {HookCallback} callback The callback function which is given environment variables.\n       * @public\n       */\n      add: function (name, callback) {\n        var hooks = _.hooks.all;\n        hooks[name] = hooks[name] || [];\n        hooks[name].push(callback);\n      },\n      /**\n       * Runs a hook invoking all registered callbacks with the given environment variables.\n       *\n       * Callbacks will be invoked synchronously and in the order in which they were registered.\n       *\n       * @param {string} name The name of the hook.\n       * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n       * @public\n       */\n      run: function (name, env) {\n        var callbacks = _.hooks.all[name];\n        if (!callbacks || !callbacks.length) {\n          return;\n        }\n        for (var i = 0, callback; callback = callbacks[i++];) {\n          callback(env);\n        }\n      }\n    },\n    Token: Token\n  };\n  _self.Prism = _;\n\n  // Typescript note:\n  // The following can be used to import the Token type in JSDoc:\n  //\n  //   @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n  /**\n   * Creates a new token.\n   *\n   * @param {string} type See {@link Token#type type}\n   * @param {string | TokenStream} content See {@link Token#content content}\n   * @param {string|string[]} [alias] The alias(es) of the token.\n   * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n   * @class\n   * @global\n   * @public\n   */\n  function Token(type, content, alias, matchedStr) {\n    /**\n     * The type of the token.\n     *\n     * This is usually the key of a pattern in a {@link Grammar}.\n     *\n     * @type {string}\n     * @see GrammarToken\n     * @public\n     */\n    this.type = type;\n    /**\n     * The strings or tokens contained by this token.\n     *\n     * This will be a token stream if the pattern matched also defined an `inside` grammar.\n     *\n     * @type {string | TokenStream}\n     * @public\n     */\n    this.content = content;\n    /**\n     * The alias(es) of the token.\n     *\n     * @type {string|string[]}\n     * @see GrammarToken\n     * @public\n     */\n    this.alias = alias;\n    // Copy of the full string this token was created from\n    this.length = (matchedStr || '').length | 0;\n  }\n\n  /**\n   * A token stream is an array of strings and {@link Token Token} objects.\n   *\n   * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n   * them.\n   *\n   * 1. No adjacent strings.\n   * 2. No empty strings.\n   *\n   *    The only exception here is the token stream that only contains the empty string and nothing else.\n   *\n   * @typedef {Array<string | Token>} TokenStream\n   * @global\n   * @public\n   */\n\n  /**\n   * Converts the given token or token stream to an HTML representation.\n   *\n   * The following hooks will be run:\n   * 1. `wrap`: On each {@link Token}.\n   *\n   * @param {string | Token | TokenStream} o The token or token stream to be converted.\n   * @param {string} language The name of current language.\n   * @returns {string} The HTML representation of the token or token stream.\n   * @memberof Token\n   * @static\n   */\n  Token.stringify = function stringify(o, language) {\n    if (typeof o == 'string') {\n      return o;\n    }\n    if (Array.isArray(o)) {\n      var s = '';\n      o.forEach(function (e) {\n        s += stringify(e, language);\n      });\n      return s;\n    }\n    var env = {\n      type: o.type,\n      content: stringify(o.content, language),\n      tag: 'span',\n      classes: ['token', o.type],\n      attributes: {},\n      language: language\n    };\n    var aliases = o.alias;\n    if (aliases) {\n      if (Array.isArray(aliases)) {\n        Array.prototype.push.apply(env.classes, aliases);\n      } else {\n        env.classes.push(aliases);\n      }\n    }\n    _.hooks.run('wrap', env);\n    var attributes = '';\n    for (var name in env.attributes) {\n      attributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '&quot;') + '\"';\n    }\n    return '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n  };\n\n  /**\n   * @param {RegExp} pattern\n   * @param {number} pos\n   * @param {string} text\n   * @param {boolean} lookbehind\n   * @returns {RegExpExecArray | null}\n   */\n  function matchPattern(pattern, pos, text, lookbehind) {\n    pattern.lastIndex = pos;\n    var match = pattern.exec(text);\n    if (match && lookbehind && match[1]) {\n      // change the match to remove the text matched by the Prism lookbehind group\n      var lookbehindLength = match[1].length;\n      match.index += lookbehindLength;\n      match[0] = match[0].slice(lookbehindLength);\n    }\n    return match;\n  }\n\n  /**\n   * @param {string} text\n   * @param {LinkedList<string | Token>} tokenList\n   * @param {any} grammar\n   * @param {LinkedListNode<string | Token>} startNode\n   * @param {number} startPos\n   * @param {RematchOptions} [rematch]\n   * @returns {void}\n   * @private\n   *\n   * @typedef RematchOptions\n   * @property {string} cause\n   * @property {number} reach\n   */\n  function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n    for (var token in grammar) {\n      if (!grammar.hasOwnProperty(token) || !grammar[token]) {\n        continue;\n      }\n      var patterns = grammar[token];\n      patterns = Array.isArray(patterns) ? patterns : [patterns];\n      for (var j = 0; j < patterns.length; ++j) {\n        if (rematch && rematch.cause == token + ',' + j) {\n          return;\n        }\n        var patternObj = patterns[j];\n        var inside = patternObj.inside;\n        var lookbehind = !!patternObj.lookbehind;\n        var greedy = !!patternObj.greedy;\n        var alias = patternObj.alias;\n        if (greedy && !patternObj.pattern.global) {\n          // Without the global flag, lastIndex won't work\n          var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n          patternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n        }\n\n        /** @type {RegExp} */\n        var pattern = patternObj.pattern || patternObj;\n        for (\n        // iterate the token list and keep track of the current token/string position\n        var currentNode = startNode.next, pos = startPos; currentNode !== tokenList.tail; pos += currentNode.value.length, currentNode = currentNode.next) {\n          if (rematch && pos >= rematch.reach) {\n            break;\n          }\n          var str = currentNode.value;\n          if (tokenList.length > text.length) {\n            // Something went terribly wrong, ABORT, ABORT!\n            return;\n          }\n          if (str instanceof Token) {\n            continue;\n          }\n          var removeCount = 1; // this is the to parameter of removeBetween\n          var match;\n          if (greedy) {\n            match = matchPattern(pattern, pos, text, lookbehind);\n            if (!match || match.index >= text.length) {\n              break;\n            }\n            var from = match.index;\n            var to = match.index + match[0].length;\n            var p = pos;\n\n            // find the node that contains the match\n            p += currentNode.value.length;\n            while (from >= p) {\n              currentNode = currentNode.next;\n              p += currentNode.value.length;\n            }\n            // adjust pos (and p)\n            p -= currentNode.value.length;\n            pos = p;\n\n            // the current node is a Token, then the match starts inside another Token, which is invalid\n            if (currentNode.value instanceof Token) {\n              continue;\n            }\n\n            // find the last node which is affected by this match\n            for (var k = currentNode; k !== tokenList.tail && (p < to || typeof k.value === 'string'); k = k.next) {\n              removeCount++;\n              p += k.value.length;\n            }\n            removeCount--;\n\n            // replace with the new match\n            str = text.slice(pos, p);\n            match.index -= pos;\n          } else {\n            match = matchPattern(pattern, 0, str, lookbehind);\n            if (!match) {\n              continue;\n            }\n          }\n\n          // eslint-disable-next-line no-redeclare\n          var from = match.index;\n          var matchStr = match[0];\n          var before = str.slice(0, from);\n          var after = str.slice(from + matchStr.length);\n          var reach = pos + str.length;\n          if (rematch && reach > rematch.reach) {\n            rematch.reach = reach;\n          }\n          var removeFrom = currentNode.prev;\n          if (before) {\n            removeFrom = addAfter(tokenList, removeFrom, before);\n            pos += before.length;\n          }\n          removeRange(tokenList, removeFrom, removeCount);\n          var wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n          currentNode = addAfter(tokenList, removeFrom, wrapped);\n          if (after) {\n            addAfter(tokenList, currentNode, after);\n          }\n          if (removeCount > 1) {\n            // at least one Token object was removed, so we have to do some rematching\n            // this can only happen if the current pattern is greedy\n\n            /** @type {RematchOptions} */\n            var nestedRematch = {\n              cause: token + ',' + j,\n              reach: reach\n            };\n            matchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n\n            // the reach might have been extended because of the rematching\n            if (rematch && nestedRematch.reach > rematch.reach) {\n              rematch.reach = nestedRematch.reach;\n            }\n          }\n        }\n      }\n    }\n  }\n\n  /**\n   * @typedef LinkedListNode\n   * @property {T} value\n   * @property {LinkedListNode<T> | null} prev The previous node.\n   * @property {LinkedListNode<T> | null} next The next node.\n   * @template T\n   * @private\n   */\n\n  /**\n   * @template T\n   * @private\n   */\n  function LinkedList() {\n    /** @type {LinkedListNode<T>} */\n    var head = {\n      value: null,\n      prev: null,\n      next: null\n    };\n    /** @type {LinkedListNode<T>} */\n    var tail = {\n      value: null,\n      prev: head,\n      next: null\n    };\n    head.next = tail;\n\n    /** @type {LinkedListNode<T>} */\n    this.head = head;\n    /** @type {LinkedListNode<T>} */\n    this.tail = tail;\n    this.length = 0;\n  }\n\n  /**\n   * Adds a new node with the given value to the list.\n   *\n   * @param {LinkedList<T>} list\n   * @param {LinkedListNode<T>} node\n   * @param {T} value\n   * @returns {LinkedListNode<T>} The added node.\n   * @template T\n   */\n  function addAfter(list, node, value) {\n    // assumes that node != list.tail && values.length >= 0\n    var next = node.next;\n    var newNode = {\n      value: value,\n      prev: node,\n      next: next\n    };\n    node.next = newNode;\n    next.prev = newNode;\n    list.length++;\n    return newNode;\n  }\n  /**\n   * Removes `count` nodes after the given node. The given node will not be removed.\n   *\n   * @param {LinkedList<T>} list\n   * @param {LinkedListNode<T>} node\n   * @param {number} count\n   * @template T\n   */\n  function removeRange(list, node, count) {\n    var next = node.next;\n    for (var i = 0; i < count && next !== list.tail; i++) {\n      next = next.next;\n    }\n    node.next = next;\n    next.prev = node;\n    list.length -= i;\n  }\n  /**\n   * @param {LinkedList<T>} list\n   * @returns {T[]}\n   * @template T\n   */\n  function toArray(list) {\n    var array = [];\n    var node = list.head.next;\n    while (node !== list.tail) {\n      array.push(node.value);\n      node = node.next;\n    }\n    return array;\n  }\n  if (!_self.document) {\n    if (!_self.addEventListener) {\n      // in Node.js\n      return _;\n    }\n    if (!_.disableWorkerMessageHandler) {\n      // In worker\n      _self.addEventListener('message', function (evt) {\n        var message = JSON.parse(evt.data);\n        var lang = message.language;\n        var code = message.code;\n        var immediateClose = message.immediateClose;\n        _self.postMessage(_.highlight(code, _.languages[lang], lang));\n        if (immediateClose) {\n          _self.close();\n        }\n      }, false);\n    }\n    return _;\n  }\n\n  // Get current script and highlight\n  var script = _.util.currentScript();\n  if (script) {\n    _.filename = script.src;\n    if (script.hasAttribute('data-manual')) {\n      _.manual = true;\n    }\n  }\n  function highlightAutomaticallyCallback() {\n    if (!_.manual) {\n      _.highlightAll();\n    }\n  }\n  if (!_.manual) {\n    // If the document state is \"loading\", then we'll use DOMContentLoaded.\n    // If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n    // DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n    // might take longer one animation frame to execute which can create a race condition where only some plugins have\n    // been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n    // See https://github.com/PrismJS/prism/issues/2102\n    var readyState = document.readyState;\n    if (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n      document.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n    } else {\n      if (window.requestAnimationFrame) {\n        window.requestAnimationFrame(highlightAutomaticallyCallback);\n      } else {\n        window.setTimeout(highlightAutomaticallyCallback, 16);\n      }\n    }\n  }\n  return _;\n}(_self);\nif ( true && module.exports) {\n  module.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof __webpack_require__.g !== 'undefined') {\n  __webpack_require__.g.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n\n//# sourceURL=webpack:///../react-ui/node_modules/prismjs/components/prism-core.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/prismjs/components/prism-markup.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/prismjs/components/prism-markup.js ***!
  \*******************************************************************/
/***/ (() => {

eval("{Prism.languages.markup = {\n  'comment': {\n    pattern: /<!--(?:(?!<!--)[\\s\\S])*?-->/,\n    greedy: true\n  },\n  'prolog': {\n    pattern: /<\\?[\\s\\S]+?\\?>/,\n    greedy: true\n  },\n  'doctype': {\n    // https://www.w3.org/TR/xml/#NT-doctypedecl\n    pattern: /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\\]\\s*)?>/i,\n    greedy: true,\n    inside: {\n      'internal-subset': {\n        pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n        lookbehind: true,\n        greedy: true,\n        inside: null // see below\n      },\n      'string': {\n        pattern: /\"[^\"]*\"|'[^']*'/,\n        greedy: true\n      },\n      'punctuation': /^<!|>$|[[\\]]/,\n      'doctype-tag': /^DOCTYPE/i,\n      'name': /[^\\s<>'\"]+/\n    }\n  },\n  'cdata': {\n    pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n    greedy: true\n  },\n  'tag': {\n    pattern: /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n    greedy: true,\n    inside: {\n      'tag': {\n        pattern: /^<\\/?[^\\s>\\/]+/,\n        inside: {\n          'punctuation': /^<\\/?/,\n          'namespace': /^[^\\s>\\/:]+:/\n        }\n      },\n      'special-attr': [],\n      'attr-value': {\n        pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n        inside: {\n          'punctuation': [{\n            pattern: /^=/,\n            alias: 'attr-equals'\n          }, {\n            pattern: /^(\\s*)[\"']|[\"']$/,\n            lookbehind: true\n          }]\n        }\n      },\n      'punctuation': /\\/?>/,\n      'attr-name': {\n        pattern: /[^\\s>\\/]+/,\n        inside: {\n          'namespace': /^[^\\s>\\/:]+:/\n        }\n      }\n    }\n  },\n  'entity': [{\n    pattern: /&[\\da-z]{1,8};/i,\n    alias: 'named-entity'\n  }, /&#x?[\\da-f]{1,8};/i]\n};\nPrism.languages.markup['tag'].inside['attr-value'].inside['entity'] = Prism.languages.markup['entity'];\nPrism.languages.markup['doctype'].inside['internal-subset'].inside = Prism.languages.markup;\n\n// Plugin to make entity title show the real entity, idea by Roman Komarov\nPrism.hooks.add('wrap', function (env) {\n  if (env.type === 'entity') {\n    env.attributes['title'] = env.content.replace(/&amp;/, '&');\n  }\n});\nObject.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n  /**\n   * Adds an inlined language to markup.\n   *\n   * An example of an inlined language is CSS with `<style>` tags.\n   *\n   * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n   * case insensitive.\n   * @param {string} lang The language key.\n   * @example\n   * addInlined('style', 'css');\n   */\n  value: function addInlined(tagName, lang) {\n    var includedCdataInside = {};\n    includedCdataInside['language-' + lang] = {\n      pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n      lookbehind: true,\n      inside: Prism.languages[lang]\n    };\n    includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i;\n    var inside = {\n      'included-cdata': {\n        pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n        inside: includedCdataInside\n      }\n    };\n    inside['language-' + lang] = {\n      pattern: /[\\s\\S]+/,\n      inside: Prism.languages[lang]\n    };\n    var def = {};\n    def[tagName] = {\n      pattern: RegExp(/(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(/__/g, function () {\n        return tagName;\n      }), 'i'),\n      lookbehind: true,\n      greedy: true,\n      inside: inside\n    };\n    Prism.languages.insertBefore('markup', 'cdata', def);\n  }\n});\nObject.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n  /**\n   * Adds an pattern to highlight languages embedded in HTML attributes.\n   *\n   * An example of an inlined language is CSS with `style` attributes.\n   *\n   * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n   * case insensitive.\n   * @param {string} lang The language key.\n   * @example\n   * addAttribute('style', 'css');\n   */\n  value: function (attrName, lang) {\n    Prism.languages.markup.tag.inside['special-attr'].push({\n      pattern: RegExp(/(^|[\"'\\s])/.source + '(?:' + attrName + ')' + /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source, 'i'),\n      lookbehind: true,\n      inside: {\n        'attr-name': /^[^\\s=]+/,\n        'attr-value': {\n          pattern: /=[\\s\\S]+/,\n          inside: {\n            'value': {\n              pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n              lookbehind: true,\n              alias: [lang, 'language-' + lang],\n              inside: Prism.languages[lang]\n            },\n            'punctuation': [{\n              pattern: /^=/,\n              alias: 'attr-equals'\n            }, /\"|'/]\n          }\n        }\n      }\n    });\n  }\n});\nPrism.languages.html = Prism.languages.markup;\nPrism.languages.mathml = Prism.languages.markup;\nPrism.languages.svg = Prism.languages.markup;\nPrism.languages.xml = Prism.languages.extend('markup', {});\nPrism.languages.ssml = Prism.languages.xml;\nPrism.languages.atom = Prism.languages.xml;\nPrism.languages.rss = Prism.languages.xml;\n\n//# sourceURL=webpack:///../react-ui/node_modules/prismjs/components/prism-markup.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/prismjs/themes/prism.css":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/prismjs/themes/prism.css ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../assets/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../assets/node_modules/style-loader/dist/runtime/styleDomAPI.js */ \"./node_modules/style-loader/dist/runtime/styleDomAPI.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../assets/node_modules/style-loader/dist/runtime/insertBySelector.js */ \"./node_modules/style-loader/dist/runtime/insertBySelector.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../assets/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ \"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../assets/node_modules/style-loader/dist/runtime/insertStyleElement.js */ \"./node_modules/style-loader/dist/runtime/insertStyleElement.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../assets/node_modules/style-loader/dist/runtime/styleTagTransform.js */ \"./node_modules/style-loader/dist/runtime/styleTagTransform.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_prism_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../assets/node_modules/css-loader/dist/cjs.js!../../../../assets/node_modules/sass-loader/dist/cjs.js!./prism.css */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/prismjs/themes/prism.css\");\n\n      \n      \n      \n      \n      \n      \n      \n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = (_assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\noptions.insert = _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, \"head\");\noptions.domAPI = (_assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_prism_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"], options);\n\n\n\n\n       /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_prism_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"] && _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_prism_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals ? _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_prism_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals : undefined);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/prismjs/themes/prism.css?\n}");

/***/ }),

/***/ "../react-ui/node_modules/prop-types/checkPropTypes.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/prop-types/checkPropTypes.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar printWarning = function () {};\nif (true) {\n  var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"../react-ui/node_modules/prop-types/lib/ReactPropTypesSecret.js\");\n  var loggedTypeFailures = {};\n  var has = __webpack_require__(/*! ./lib/has */ \"../react-ui/node_modules/prop-types/lib/has.js\");\n  printWarning = function (text) {\n    var message = 'Warning: ' + text;\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {/**/}\n  };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n  if (true) {\n    for (var typeSpecName in typeSpecs) {\n      if (has(typeSpecs, typeSpecName)) {\n        var error;\n        // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n        } catch (ex) {\n          error = ex;\n        }\n        if (error && !(error instanceof Error)) {\n          printWarning((componentName || 'React class') + ': type specification of ' + location + ' `' + typeSpecName + '` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).');\n        }\n        if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error.message] = true;\n          var stack = getStack ? getStack() : '';\n          printWarning('Failed ' + location + ' type: ' + error.message + (stack != null ? stack : ''));\n        }\n      }\n    }\n  }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function () {\n  if (true) {\n    loggedTypeFailures = {};\n  }\n};\nmodule.exports = checkPropTypes;\n\n//# sourceURL=webpack:///../react-ui/node_modules/prop-types/checkPropTypes.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/prop-types/factoryWithTypeCheckers.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/prop-types/factoryWithTypeCheckers.js ***!
  \**********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactIs = __webpack_require__(/*! react-is */ \"../react-ui/node_modules/react-is/index.js\");\nvar assign = __webpack_require__(/*! object-assign */ \"../react-ui/node_modules/object-assign/index.js\");\nvar ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ \"../react-ui/node_modules/prop-types/lib/ReactPropTypesSecret.js\");\nvar has = __webpack_require__(/*! ./lib/has */ \"../react-ui/node_modules/prop-types/lib/has.js\");\nvar checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ \"../react-ui/node_modules/prop-types/checkPropTypes.js\");\nvar printWarning = function () {};\nif (true) {\n  printWarning = function (text) {\n    var message = 'Warning: ' + text;\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {}\n  };\n}\nfunction emptyFunctionThatReturnsNull() {\n  return null;\n}\nmodule.exports = function (isValidElement, throwOnDirectAccess) {\n  /* global Symbol */\n  var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n  var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n  /**\n   * Returns the iterator method function contained on the iterable object.\n   *\n   * Be sure to invoke the function with the iterable as context:\n   *\n   *     var iteratorFn = getIteratorFn(myIterable);\n   *     if (iteratorFn) {\n   *       var iterator = iteratorFn.call(myIterable);\n   *       ...\n   *     }\n   *\n   * @param {?object} maybeIterable\n   * @return {?function}\n   */\n  function getIteratorFn(maybeIterable) {\n    var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n    if (typeof iteratorFn === 'function') {\n      return iteratorFn;\n    }\n  }\n\n  /**\n   * Collection of methods that allow declaration and validation of props that are\n   * supplied to React components. Example usage:\n   *\n   *   var Props = require('ReactPropTypes');\n   *   var MyArticle = React.createClass({\n   *     propTypes: {\n   *       // An optional string prop named \"description\".\n   *       description: Props.string,\n   *\n   *       // A required enum prop named \"category\".\n   *       category: Props.oneOf(['News','Photos']).isRequired,\n   *\n   *       // A prop named \"dialog\" that requires an instance of Dialog.\n   *       dialog: Props.instanceOf(Dialog).isRequired\n   *     },\n   *     render: function() { ... }\n   *   });\n   *\n   * A more formal specification of how these methods are used:\n   *\n   *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n   *   decl := ReactPropTypes.{type}(.isRequired)?\n   *\n   * Each and every declaration produces a function with the same signature. This\n   * allows the creation of custom validation functions. For example:\n   *\n   *  var MyLink = React.createClass({\n   *    propTypes: {\n   *      // An optional string or URI prop named \"href\".\n   *      href: function(props, propName, componentName) {\n   *        var propValue = props[propName];\n   *        if (propValue != null && typeof propValue !== 'string' &&\n   *            !(propValue instanceof URI)) {\n   *          return new Error(\n   *            'Expected a string or an URI for ' + propName + ' in ' +\n   *            componentName\n   *          );\n   *        }\n   *      }\n   *    },\n   *    render: function() {...}\n   *  });\n   *\n   * @internal\n   */\n\n  var ANONYMOUS = '<<anonymous>>';\n\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n  var ReactPropTypes = {\n    array: createPrimitiveTypeChecker('array'),\n    bigint: createPrimitiveTypeChecker('bigint'),\n    bool: createPrimitiveTypeChecker('boolean'),\n    func: createPrimitiveTypeChecker('function'),\n    number: createPrimitiveTypeChecker('number'),\n    object: createPrimitiveTypeChecker('object'),\n    string: createPrimitiveTypeChecker('string'),\n    symbol: createPrimitiveTypeChecker('symbol'),\n    any: createAnyTypeChecker(),\n    arrayOf: createArrayOfTypeChecker,\n    element: createElementTypeChecker(),\n    elementType: createElementTypeTypeChecker(),\n    instanceOf: createInstanceTypeChecker,\n    node: createNodeChecker(),\n    objectOf: createObjectOfTypeChecker,\n    oneOf: createEnumTypeChecker,\n    oneOfType: createUnionTypeChecker,\n    shape: createShapeTypeChecker,\n    exact: createStrictShapeTypeChecker\n  };\n\n  /**\n   * inlined Object.is polyfill to avoid requiring consumers ship their own\n   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n   */\n  /*eslint-disable no-self-compare*/\n  function is(x, y) {\n    // SameValue algorithm\n    if (x === y) {\n      // Steps 1-5, 7-10\n      // Steps 6.b-6.e: +0 != -0\n      return x !== 0 || 1 / x === 1 / y;\n    } else {\n      // Step 6.a: NaN == NaN\n      return x !== x && y !== y;\n    }\n  }\n  /*eslint-enable no-self-compare*/\n\n  /**\n   * We use an Error-like object for backward compatibility as people may call\n   * PropTypes directly and inspect their output. However, we don't use real\n   * Errors anymore. We don't inspect their stack anyway, and creating them\n   * is prohibitively expensive if they are created too often, such as what\n   * happens in oneOfType() for any type before the one that matched.\n   */\n  function PropTypeError(message, data) {\n    this.message = message;\n    this.data = data && typeof data === 'object' ? data : {};\n    this.stack = '';\n  }\n  // Make `instanceof Error` still work for returned errors.\n  PropTypeError.prototype = Error.prototype;\n  function createChainableTypeChecker(validate) {\n    if (true) {\n      var manualPropTypeCallCache = {};\n      var manualPropTypeWarningCount = 0;\n    }\n    function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n      componentName = componentName || ANONYMOUS;\n      propFullName = propFullName || propName;\n      if (secret !== ReactPropTypesSecret) {\n        if (throwOnDirectAccess) {\n          // New behavior only for users of `prop-types` package\n          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');\n          err.name = 'Invariant Violation';\n          throw err;\n        } else if ( true && typeof console !== 'undefined') {\n          // Old behavior for people using React.PropTypes\n          var cacheKey = componentName + ':' + propName;\n          if (!manualPropTypeCallCache[cacheKey] &&\n          // Avoid spamming the console because they are often not actionable except for lib authors\n          manualPropTypeWarningCount < 3) {\n            printWarning('You are manually calling a React.PropTypes validation ' + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + 'and will throw in the standalone `prop-types` package. ' + 'You may be seeing this warning due to a third-party PropTypes ' + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.');\n            manualPropTypeCallCache[cacheKey] = true;\n            manualPropTypeWarningCount++;\n          }\n        }\n      }\n      if (props[propName] == null) {\n        if (isRequired) {\n          if (props[propName] === null) {\n            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n          }\n          return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n        }\n        return null;\n      } else {\n        return validate(props, propName, componentName, location, propFullName);\n      }\n    }\n    var chainedCheckType = checkType.bind(null, false);\n    chainedCheckType.isRequired = checkType.bind(null, true);\n    return chainedCheckType;\n  }\n  function createPrimitiveTypeChecker(expectedType) {\n    function validate(props, propName, componentName, location, propFullName, secret) {\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== expectedType) {\n        // `propValue` being instance of, say, date/regexp, pass the 'object'\n        // check, but we can offer a more precise error message here rather than\n        // 'of type `object`'.\n        var preciseType = getPreciseType(propValue);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'), {\n          expectedType: expectedType\n        });\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n  function createAnyTypeChecker() {\n    return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n  }\n  function createArrayOfTypeChecker(typeChecker) {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (typeof typeChecker !== 'function') {\n        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n      }\n      var propValue = props[propName];\n      if (!Array.isArray(propValue)) {\n        var propType = getPropType(propValue);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n      }\n      for (var i = 0; i < propValue.length; i++) {\n        var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n        if (error instanceof Error) {\n          return error;\n        }\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n  function createElementTypeChecker() {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      if (!isValidElement(propValue)) {\n        var propType = getPropType(propValue);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n  function createElementTypeTypeChecker() {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      if (!ReactIs.isValidElementType(propValue)) {\n        var propType = getPropType(propValue);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n  function createInstanceTypeChecker(expectedClass) {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (!(props[propName] instanceof expectedClass)) {\n        var expectedClassName = expectedClass.name || ANONYMOUS;\n        var actualClassName = getClassName(props[propName]);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n  function createEnumTypeChecker(expectedValues) {\n    if (!Array.isArray(expectedValues)) {\n      if (true) {\n        if (arguments.length > 1) {\n          printWarning('Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).');\n        } else {\n          printWarning('Invalid argument supplied to oneOf, expected an array.');\n        }\n      }\n      return emptyFunctionThatReturnsNull;\n    }\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      for (var i = 0; i < expectedValues.length; i++) {\n        if (is(propValue, expectedValues[i])) {\n          return null;\n        }\n      }\n      var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n        var type = getPreciseType(value);\n        if (type === 'symbol') {\n          return String(value);\n        }\n        return value;\n      });\n      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n    }\n    return createChainableTypeChecker(validate);\n  }\n  function createObjectOfTypeChecker(typeChecker) {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (typeof typeChecker !== 'function') {\n        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n      }\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== 'object') {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n      }\n      for (var key in propValue) {\n        if (has(propValue, key)) {\n          var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n          if (error instanceof Error) {\n            return error;\n          }\n        }\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n  function createUnionTypeChecker(arrayOfTypeCheckers) {\n    if (!Array.isArray(arrayOfTypeCheckers)) {\n       true ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : 0;\n      return emptyFunctionThatReturnsNull;\n    }\n    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n      var checker = arrayOfTypeCheckers[i];\n      if (typeof checker !== 'function') {\n        printWarning('Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.');\n        return emptyFunctionThatReturnsNull;\n      }\n    }\n    function validate(props, propName, componentName, location, propFullName) {\n      var expectedTypes = [];\n      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n        var checker = arrayOfTypeCheckers[i];\n        var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n        if (checkerResult == null) {\n          return null;\n        }\n        if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n          expectedTypes.push(checkerResult.data.expectedType);\n        }\n      }\n      var expectedTypesMessage = expectedTypes.length > 0 ? ', expected one of type [' + expectedTypes.join(', ') + ']' : '';\n      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n    }\n    return createChainableTypeChecker(validate);\n  }\n  function createNodeChecker() {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (!isNode(props[propName])) {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n  function invalidValidatorError(componentName, location, propFullName, key, type) {\n    return new PropTypeError((componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.');\n  }\n  function createShapeTypeChecker(shapeTypes) {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== 'object') {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n      }\n      for (var key in shapeTypes) {\n        var checker = shapeTypes[key];\n        if (typeof checker !== 'function') {\n          return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n        }\n        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n        if (error) {\n          return error;\n        }\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n  function createStrictShapeTypeChecker(shapeTypes) {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== 'object') {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n      }\n      // We need to check all keys in case some are required but missing from props.\n      var allKeys = assign({}, props[propName], shapeTypes);\n      for (var key in allKeys) {\n        var checker = shapeTypes[key];\n        if (has(shapeTypes, key) && typeof checker !== 'function') {\n          return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n        }\n        if (!checker) {\n          return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + '\\nBad object: ' + JSON.stringify(props[propName], null, '  ') + '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, '  '));\n        }\n        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n        if (error) {\n          return error;\n        }\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n  function isNode(propValue) {\n    switch (typeof propValue) {\n      case 'number':\n      case 'string':\n      case 'undefined':\n        return true;\n      case 'boolean':\n        return !propValue;\n      case 'object':\n        if (Array.isArray(propValue)) {\n          return propValue.every(isNode);\n        }\n        if (propValue === null || isValidElement(propValue)) {\n          return true;\n        }\n        var iteratorFn = getIteratorFn(propValue);\n        if (iteratorFn) {\n          var iterator = iteratorFn.call(propValue);\n          var step;\n          if (iteratorFn !== propValue.entries) {\n            while (!(step = iterator.next()).done) {\n              if (!isNode(step.value)) {\n                return false;\n              }\n            }\n          } else {\n            // Iterator will provide entry [k,v] tuples rather than values.\n            while (!(step = iterator.next()).done) {\n              var entry = step.value;\n              if (entry) {\n                if (!isNode(entry[1])) {\n                  return false;\n                }\n              }\n            }\n          }\n        } else {\n          return false;\n        }\n        return true;\n      default:\n        return false;\n    }\n  }\n  function isSymbol(propType, propValue) {\n    // Native Symbol.\n    if (propType === 'symbol') {\n      return true;\n    }\n\n    // falsy value can't be a Symbol\n    if (!propValue) {\n      return false;\n    }\n\n    // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n    if (propValue['@@toStringTag'] === 'Symbol') {\n      return true;\n    }\n\n    // Fallback for non-spec compliant Symbols which are polyfilled.\n    if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n      return true;\n    }\n    return false;\n  }\n\n  // Equivalent of `typeof` but with special handling for array and regexp.\n  function getPropType(propValue) {\n    var propType = typeof propValue;\n    if (Array.isArray(propValue)) {\n      return 'array';\n    }\n    if (propValue instanceof RegExp) {\n      // Old webkits (at least until Android 4.0) return 'function' rather than\n      // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n      // passes PropTypes.object.\n      return 'object';\n    }\n    if (isSymbol(propType, propValue)) {\n      return 'symbol';\n    }\n    return propType;\n  }\n\n  // This handles more types than `getPropType`. Only used for error messages.\n  // See `createPrimitiveTypeChecker`.\n  function getPreciseType(propValue) {\n    if (typeof propValue === 'undefined' || propValue === null) {\n      return '' + propValue;\n    }\n    var propType = getPropType(propValue);\n    if (propType === 'object') {\n      if (propValue instanceof Date) {\n        return 'date';\n      } else if (propValue instanceof RegExp) {\n        return 'regexp';\n      }\n    }\n    return propType;\n  }\n\n  // Returns a string that is postfixed to a warning about an invalid type.\n  // For example, \"undefined\" or \"of type array\"\n  function getPostfixForTypeWarning(value) {\n    var type = getPreciseType(value);\n    switch (type) {\n      case 'array':\n      case 'object':\n        return 'an ' + type;\n      case 'boolean':\n      case 'date':\n      case 'regexp':\n        return 'a ' + type;\n      default:\n        return type;\n    }\n  }\n\n  // Returns class name of the object, if any.\n  function getClassName(propValue) {\n    if (!propValue.constructor || !propValue.constructor.name) {\n      return ANONYMOUS;\n    }\n    return propValue.constructor.name;\n  }\n  ReactPropTypes.checkPropTypes = checkPropTypes;\n  ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n  ReactPropTypes.PropTypes = ReactPropTypes;\n  return ReactPropTypes;\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/prop-types/factoryWithTypeCheckers.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/prop-types/index.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/prop-types/index.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("{/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (true) {\n  var ReactIs = __webpack_require__(/*! react-is */ \"../react-ui/node_modules/react-is/index.js\");\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = __webpack_require__(/*! ./factoryWithTypeCheckers */ \"../react-ui/node_modules/prop-types/factoryWithTypeCheckers.js\")(ReactIs.isElement, throwOnDirectAccess);\n} else // removed by dead control flow\n{}\n\n//# sourceURL=webpack:///../react-ui/node_modules/prop-types/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/prop-types/lib/ReactPropTypesSecret.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
  \***********************************************************************/
/***/ ((module) => {

"use strict";
eval("{/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nmodule.exports = ReactPropTypesSecret;\n\n//# sourceURL=webpack:///../react-ui/node_modules/prop-types/lib/ReactPropTypesSecret.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/prop-types/lib/has.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/prop-types/lib/has.js ***!
  \******************************************************/
/***/ ((module) => {

eval("{module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n\n//# sourceURL=webpack:///../react-ui/node_modules/prop-types/lib/has.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill-delta/dist/AttributeMap.js":
/*!*****************************************************************!*\
  !*** ../react-ui/node_modules/quill-delta/dist/AttributeMap.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nconst cloneDeep = __webpack_require__(/*! lodash.clonedeep */ \"../react-ui/node_modules/lodash.clonedeep/index.js\");\nconst isEqual = __webpack_require__(/*! lodash.isequal */ \"../react-ui/node_modules/lodash.isequal/index.js\");\nvar AttributeMap;\n(function (AttributeMap) {\n  function compose(a = {}, b = {}, keepNull = false) {\n    if (typeof a !== 'object') {\n      a = {};\n    }\n    if (typeof b !== 'object') {\n      b = {};\n    }\n    let attributes = cloneDeep(b);\n    if (!keepNull) {\n      attributes = Object.keys(attributes).reduce((copy, key) => {\n        if (attributes[key] != null) {\n          copy[key] = attributes[key];\n        }\n        return copy;\n      }, {});\n    }\n    for (const key in a) {\n      if (a[key] !== undefined && b[key] === undefined) {\n        attributes[key] = a[key];\n      }\n    }\n    return Object.keys(attributes).length > 0 ? attributes : undefined;\n  }\n  AttributeMap.compose = compose;\n  function diff(a = {}, b = {}) {\n    if (typeof a !== 'object') {\n      a = {};\n    }\n    if (typeof b !== 'object') {\n      b = {};\n    }\n    const attributes = Object.keys(a).concat(Object.keys(b)).reduce((attrs, key) => {\n      if (!isEqual(a[key], b[key])) {\n        attrs[key] = b[key] === undefined ? null : b[key];\n      }\n      return attrs;\n    }, {});\n    return Object.keys(attributes).length > 0 ? attributes : undefined;\n  }\n  AttributeMap.diff = diff;\n  function invert(attr = {}, base = {}) {\n    attr = attr || {};\n    const baseInverted = Object.keys(base).reduce((memo, key) => {\n      if (base[key] !== attr[key] && attr[key] !== undefined) {\n        memo[key] = base[key];\n      }\n      return memo;\n    }, {});\n    return Object.keys(attr).reduce((memo, key) => {\n      if (attr[key] !== base[key] && base[key] === undefined) {\n        memo[key] = null;\n      }\n      return memo;\n    }, baseInverted);\n  }\n  AttributeMap.invert = invert;\n  function transform(a, b, priority = false) {\n    if (typeof a !== 'object') {\n      return b;\n    }\n    if (typeof b !== 'object') {\n      return undefined;\n    }\n    if (!priority) {\n      return b; // b simply overwrites us without priority\n    }\n    const attributes = Object.keys(b).reduce((attrs, key) => {\n      if (a[key] === undefined) {\n        attrs[key] = b[key]; // null is a valid value\n      }\n      return attrs;\n    }, {});\n    return Object.keys(attributes).length > 0 ? attributes : undefined;\n  }\n  AttributeMap.transform = transform;\n})(AttributeMap || (AttributeMap = {}));\nexports[\"default\"] = AttributeMap;\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill-delta/dist/AttributeMap.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill-delta/dist/Delta.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/quill-delta/dist/Delta.js ***!
  \**********************************************************/
/***/ ((module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.AttributeMap = exports.OpIterator = exports.Op = void 0;\nconst diff = __webpack_require__(/*! fast-diff */ \"../react-ui/node_modules/fast-diff/diff.js\");\nconst cloneDeep = __webpack_require__(/*! lodash.clonedeep */ \"../react-ui/node_modules/lodash.clonedeep/index.js\");\nconst isEqual = __webpack_require__(/*! lodash.isequal */ \"../react-ui/node_modules/lodash.isequal/index.js\");\nconst AttributeMap_1 = __webpack_require__(/*! ./AttributeMap */ \"../react-ui/node_modules/quill-delta/dist/AttributeMap.js\");\nexports.AttributeMap = AttributeMap_1.default;\nconst Op_1 = __webpack_require__(/*! ./Op */ \"../react-ui/node_modules/quill-delta/dist/Op.js\");\nexports.Op = Op_1.default;\nconst OpIterator_1 = __webpack_require__(/*! ./OpIterator */ \"../react-ui/node_modules/quill-delta/dist/OpIterator.js\");\nexports.OpIterator = OpIterator_1.default;\nconst NULL_CHARACTER = String.fromCharCode(0); // Placeholder char for embed in diff()\nconst getEmbedTypeAndData = (a, b) => {\n  if (typeof a !== 'object' || a === null) {\n    throw new Error(`cannot retain a ${typeof a}`);\n  }\n  if (typeof b !== 'object' || b === null) {\n    throw new Error(`cannot retain a ${typeof b}`);\n  }\n  const embedType = Object.keys(a)[0];\n  if (!embedType || embedType !== Object.keys(b)[0]) {\n    throw new Error(`embed types not matched: ${embedType} != ${Object.keys(b)[0]}`);\n  }\n  return [embedType, a[embedType], b[embedType]];\n};\nclass Delta {\n  constructor(ops) {\n    // Assume we are given a well formed ops\n    if (Array.isArray(ops)) {\n      this.ops = ops;\n    } else if (ops != null && Array.isArray(ops.ops)) {\n      this.ops = ops.ops;\n    } else {\n      this.ops = [];\n    }\n  }\n  static registerEmbed(embedType, handler) {\n    this.handlers[embedType] = handler;\n  }\n  static unregisterEmbed(embedType) {\n    delete this.handlers[embedType];\n  }\n  static getHandler(embedType) {\n    const handler = this.handlers[embedType];\n    if (!handler) {\n      throw new Error(`no handlers for embed type \"${embedType}\"`);\n    }\n    return handler;\n  }\n  insert(arg, attributes) {\n    const newOp = {};\n    if (typeof arg === 'string' && arg.length === 0) {\n      return this;\n    }\n    newOp.insert = arg;\n    if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n      newOp.attributes = attributes;\n    }\n    return this.push(newOp);\n  }\n  delete(length) {\n    if (length <= 0) {\n      return this;\n    }\n    return this.push({\n      delete: length\n    });\n  }\n  retain(length, attributes) {\n    if (typeof length === 'number' && length <= 0) {\n      return this;\n    }\n    const newOp = {\n      retain: length\n    };\n    if (attributes != null && typeof attributes === 'object' && Object.keys(attributes).length > 0) {\n      newOp.attributes = attributes;\n    }\n    return this.push(newOp);\n  }\n  push(newOp) {\n    let index = this.ops.length;\n    let lastOp = this.ops[index - 1];\n    newOp = cloneDeep(newOp);\n    if (typeof lastOp === 'object') {\n      if (typeof newOp.delete === 'number' && typeof lastOp.delete === 'number') {\n        this.ops[index - 1] = {\n          delete: lastOp.delete + newOp.delete\n        };\n        return this;\n      }\n      // Since it does not matter if we insert before or after deleting at the same index,\n      // always prefer to insert first\n      if (typeof lastOp.delete === 'number' && newOp.insert != null) {\n        index -= 1;\n        lastOp = this.ops[index - 1];\n        if (typeof lastOp !== 'object') {\n          this.ops.unshift(newOp);\n          return this;\n        }\n      }\n      if (isEqual(newOp.attributes, lastOp.attributes)) {\n        if (typeof newOp.insert === 'string' && typeof lastOp.insert === 'string') {\n          this.ops[index - 1] = {\n            insert: lastOp.insert + newOp.insert\n          };\n          if (typeof newOp.attributes === 'object') {\n            this.ops[index - 1].attributes = newOp.attributes;\n          }\n          return this;\n        } else if (typeof newOp.retain === 'number' && typeof lastOp.retain === 'number') {\n          this.ops[index - 1] = {\n            retain: lastOp.retain + newOp.retain\n          };\n          if (typeof newOp.attributes === 'object') {\n            this.ops[index - 1].attributes = newOp.attributes;\n          }\n          return this;\n        }\n      }\n    }\n    if (index === this.ops.length) {\n      this.ops.push(newOp);\n    } else {\n      this.ops.splice(index, 0, newOp);\n    }\n    return this;\n  }\n  chop() {\n    const lastOp = this.ops[this.ops.length - 1];\n    if (lastOp && typeof lastOp.retain === 'number' && !lastOp.attributes) {\n      this.ops.pop();\n    }\n    return this;\n  }\n  filter(predicate) {\n    return this.ops.filter(predicate);\n  }\n  forEach(predicate) {\n    this.ops.forEach(predicate);\n  }\n  map(predicate) {\n    return this.ops.map(predicate);\n  }\n  partition(predicate) {\n    const passed = [];\n    const failed = [];\n    this.forEach(op => {\n      const target = predicate(op) ? passed : failed;\n      target.push(op);\n    });\n    return [passed, failed];\n  }\n  reduce(predicate, initialValue) {\n    return this.ops.reduce(predicate, initialValue);\n  }\n  changeLength() {\n    return this.reduce((length, elem) => {\n      if (elem.insert) {\n        return length + Op_1.default.length(elem);\n      } else if (elem.delete) {\n        return length - elem.delete;\n      }\n      return length;\n    }, 0);\n  }\n  length() {\n    return this.reduce((length, elem) => {\n      return length + Op_1.default.length(elem);\n    }, 0);\n  }\n  slice(start = 0, end = Infinity) {\n    const ops = [];\n    const iter = new OpIterator_1.default(this.ops);\n    let index = 0;\n    while (index < end && iter.hasNext()) {\n      let nextOp;\n      if (index < start) {\n        nextOp = iter.next(start - index);\n      } else {\n        nextOp = iter.next(end - index);\n        ops.push(nextOp);\n      }\n      index += Op_1.default.length(nextOp);\n    }\n    return new Delta(ops);\n  }\n  compose(other) {\n    const thisIter = new OpIterator_1.default(this.ops);\n    const otherIter = new OpIterator_1.default(other.ops);\n    const ops = [];\n    const firstOther = otherIter.peek();\n    if (firstOther != null && typeof firstOther.retain === 'number' && firstOther.attributes == null) {\n      let firstLeft = firstOther.retain;\n      while (thisIter.peekType() === 'insert' && thisIter.peekLength() <= firstLeft) {\n        firstLeft -= thisIter.peekLength();\n        ops.push(thisIter.next());\n      }\n      if (firstOther.retain - firstLeft > 0) {\n        otherIter.next(firstOther.retain - firstLeft);\n      }\n    }\n    const delta = new Delta(ops);\n    while (thisIter.hasNext() || otherIter.hasNext()) {\n      if (otherIter.peekType() === 'insert') {\n        delta.push(otherIter.next());\n      } else if (thisIter.peekType() === 'delete') {\n        delta.push(thisIter.next());\n      } else {\n        const length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n        const thisOp = thisIter.next(length);\n        const otherOp = otherIter.next(length);\n        if (otherOp.retain) {\n          const newOp = {};\n          if (typeof thisOp.retain === 'number') {\n            newOp.retain = typeof otherOp.retain === 'number' ? length : otherOp.retain;\n          } else {\n            if (typeof otherOp.retain === 'number') {\n              if (thisOp.retain == null) {\n                newOp.insert = thisOp.insert;\n              } else {\n                newOp.retain = thisOp.retain;\n              }\n            } else {\n              const action = thisOp.retain == null ? 'insert' : 'retain';\n              const [embedType, thisData, otherData] = getEmbedTypeAndData(thisOp[action], otherOp.retain);\n              const handler = Delta.getHandler(embedType);\n              newOp[action] = {\n                [embedType]: handler.compose(thisData, otherData, action === 'retain')\n              };\n            }\n          }\n          // Preserve null when composing with a retain, otherwise remove it for inserts\n          const attributes = AttributeMap_1.default.compose(thisOp.attributes, otherOp.attributes, typeof thisOp.retain === 'number');\n          if (attributes) {\n            newOp.attributes = attributes;\n          }\n          delta.push(newOp);\n          // Optimization if rest of other is just retain\n          if (!otherIter.hasNext() && isEqual(delta.ops[delta.ops.length - 1], newOp)) {\n            const rest = new Delta(thisIter.rest());\n            return delta.concat(rest).chop();\n          }\n          // Other op should be delete, we could be an insert or retain\n          // Insert + delete cancels out\n        } else if (typeof otherOp.delete === 'number' && (typeof thisOp.retain === 'number' || typeof thisOp.retain === 'object' && thisOp.retain !== null)) {\n          delta.push(otherOp);\n        }\n      }\n    }\n    return delta.chop();\n  }\n  concat(other) {\n    const delta = new Delta(this.ops.slice());\n    if (other.ops.length > 0) {\n      delta.push(other.ops[0]);\n      delta.ops = delta.ops.concat(other.ops.slice(1));\n    }\n    return delta;\n  }\n  diff(other, cursor) {\n    if (this.ops === other.ops) {\n      return new Delta();\n    }\n    const strings = [this, other].map(delta => {\n      return delta.map(op => {\n        if (op.insert != null) {\n          return typeof op.insert === 'string' ? op.insert : NULL_CHARACTER;\n        }\n        const prep = delta === other ? 'on' : 'with';\n        throw new Error('diff() called ' + prep + ' non-document');\n      }).join('');\n    });\n    const retDelta = new Delta();\n    const diffResult = diff(strings[0], strings[1], cursor, true);\n    const thisIter = new OpIterator_1.default(this.ops);\n    const otherIter = new OpIterator_1.default(other.ops);\n    diffResult.forEach(component => {\n      let length = component[1].length;\n      while (length > 0) {\n        let opLength = 0;\n        switch (component[0]) {\n          case diff.INSERT:\n            opLength = Math.min(otherIter.peekLength(), length);\n            retDelta.push(otherIter.next(opLength));\n            break;\n          case diff.DELETE:\n            opLength = Math.min(length, thisIter.peekLength());\n            thisIter.next(opLength);\n            retDelta.delete(opLength);\n            break;\n          case diff.EQUAL:\n            opLength = Math.min(thisIter.peekLength(), otherIter.peekLength(), length);\n            const thisOp = thisIter.next(opLength);\n            const otherOp = otherIter.next(opLength);\n            if (isEqual(thisOp.insert, otherOp.insert)) {\n              retDelta.retain(opLength, AttributeMap_1.default.diff(thisOp.attributes, otherOp.attributes));\n            } else {\n              retDelta.push(otherOp).delete(opLength);\n            }\n            break;\n        }\n        length -= opLength;\n      }\n    });\n    return retDelta.chop();\n  }\n  eachLine(predicate, newline = '\\n') {\n    const iter = new OpIterator_1.default(this.ops);\n    let line = new Delta();\n    let i = 0;\n    while (iter.hasNext()) {\n      if (iter.peekType() !== 'insert') {\n        return;\n      }\n      const thisOp = iter.peek();\n      const start = Op_1.default.length(thisOp) - iter.peekLength();\n      const index = typeof thisOp.insert === 'string' ? thisOp.insert.indexOf(newline, start) - start : -1;\n      if (index < 0) {\n        line.push(iter.next());\n      } else if (index > 0) {\n        line.push(iter.next(index));\n      } else {\n        if (predicate(line, iter.next(1).attributes || {}, i) === false) {\n          return;\n        }\n        i += 1;\n        line = new Delta();\n      }\n    }\n    if (line.length() > 0) {\n      predicate(line, {}, i);\n    }\n  }\n  invert(base) {\n    const inverted = new Delta();\n    this.reduce((baseIndex, op) => {\n      if (op.insert) {\n        inverted.delete(Op_1.default.length(op));\n      } else if (typeof op.retain === 'number' && op.attributes == null) {\n        inverted.retain(op.retain);\n        return baseIndex + op.retain;\n      } else if (op.delete || typeof op.retain === 'number') {\n        const length = op.delete || op.retain;\n        const slice = base.slice(baseIndex, baseIndex + length);\n        slice.forEach(baseOp => {\n          if (op.delete) {\n            inverted.push(baseOp);\n          } else if (op.retain && op.attributes) {\n            inverted.retain(Op_1.default.length(baseOp), AttributeMap_1.default.invert(op.attributes, baseOp.attributes));\n          }\n        });\n        return baseIndex + length;\n      } else if (typeof op.retain === 'object' && op.retain !== null) {\n        const slice = base.slice(baseIndex, baseIndex + 1);\n        const baseOp = new OpIterator_1.default(slice.ops).next();\n        const [embedType, opData, baseOpData] = getEmbedTypeAndData(op.retain, baseOp.insert);\n        const handler = Delta.getHandler(embedType);\n        inverted.retain({\n          [embedType]: handler.invert(opData, baseOpData)\n        }, AttributeMap_1.default.invert(op.attributes, baseOp.attributes));\n        return baseIndex + 1;\n      }\n      return baseIndex;\n    }, 0);\n    return inverted.chop();\n  }\n  transform(arg, priority = false) {\n    priority = !!priority;\n    if (typeof arg === 'number') {\n      return this.transformPosition(arg, priority);\n    }\n    const other = arg;\n    const thisIter = new OpIterator_1.default(this.ops);\n    const otherIter = new OpIterator_1.default(other.ops);\n    const delta = new Delta();\n    while (thisIter.hasNext() || otherIter.hasNext()) {\n      if (thisIter.peekType() === 'insert' && (priority || otherIter.peekType() !== 'insert')) {\n        delta.retain(Op_1.default.length(thisIter.next()));\n      } else if (otherIter.peekType() === 'insert') {\n        delta.push(otherIter.next());\n      } else {\n        const length = Math.min(thisIter.peekLength(), otherIter.peekLength());\n        const thisOp = thisIter.next(length);\n        const otherOp = otherIter.next(length);\n        if (thisOp.delete) {\n          // Our delete either makes their delete redundant or removes their retain\n          continue;\n        } else if (otherOp.delete) {\n          delta.push(otherOp);\n        } else {\n          const thisData = thisOp.retain;\n          const otherData = otherOp.retain;\n          let transformedData = typeof otherData === 'object' && otherData !== null ? otherData : length;\n          if (typeof thisData === 'object' && thisData !== null && typeof otherData === 'object' && otherData !== null) {\n            const embedType = Object.keys(thisData)[0];\n            if (embedType === Object.keys(otherData)[0]) {\n              const handler = Delta.getHandler(embedType);\n              if (handler) {\n                transformedData = {\n                  [embedType]: handler.transform(thisData[embedType], otherData[embedType], priority)\n                };\n              }\n            }\n          }\n          // We retain either their retain or insert\n          delta.retain(transformedData, AttributeMap_1.default.transform(thisOp.attributes, otherOp.attributes, priority));\n        }\n      }\n    }\n    return delta.chop();\n  }\n  transformPosition(index, priority = false) {\n    priority = !!priority;\n    const thisIter = new OpIterator_1.default(this.ops);\n    let offset = 0;\n    while (thisIter.hasNext() && offset <= index) {\n      const length = thisIter.peekLength();\n      const nextType = thisIter.peekType();\n      thisIter.next();\n      if (nextType === 'delete') {\n        index -= Math.min(length, index - offset);\n        continue;\n      } else if (nextType === 'insert' && (offset < index || !priority)) {\n        index += length;\n      }\n      offset += length;\n    }\n    return index;\n  }\n}\nDelta.Op = Op_1.default;\nDelta.OpIterator = OpIterator_1.default;\nDelta.AttributeMap = AttributeMap_1.default;\nDelta.handlers = {};\nexports[\"default\"] = Delta;\nif (true) {\n  module.exports = Delta;\n  module.exports[\"default\"] = Delta;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill-delta/dist/Delta.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill-delta/dist/Op.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/quill-delta/dist/Op.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar Op;\n(function (Op) {\n  function length(op) {\n    if (typeof op.delete === 'number') {\n      return op.delete;\n    } else if (typeof op.retain === 'number') {\n      return op.retain;\n    } else if (typeof op.retain === 'object' && op.retain !== null) {\n      return 1;\n    } else {\n      return typeof op.insert === 'string' ? op.insert.length : 1;\n    }\n  }\n  Op.length = length;\n})(Op || (Op = {}));\nexports[\"default\"] = Op;\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill-delta/dist/Op.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill-delta/dist/OpIterator.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/quill-delta/dist/OpIterator.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nconst Op_1 = __webpack_require__(/*! ./Op */ \"../react-ui/node_modules/quill-delta/dist/Op.js\");\nclass Iterator {\n  constructor(ops) {\n    this.ops = ops;\n    this.index = 0;\n    this.offset = 0;\n  }\n  hasNext() {\n    return this.peekLength() < Infinity;\n  }\n  next(length) {\n    if (!length) {\n      length = Infinity;\n    }\n    const nextOp = this.ops[this.index];\n    if (nextOp) {\n      const offset = this.offset;\n      const opLength = Op_1.default.length(nextOp);\n      if (length >= opLength - offset) {\n        length = opLength - offset;\n        this.index += 1;\n        this.offset = 0;\n      } else {\n        this.offset += length;\n      }\n      if (typeof nextOp.delete === 'number') {\n        return {\n          delete: length\n        };\n      } else {\n        const retOp = {};\n        if (nextOp.attributes) {\n          retOp.attributes = nextOp.attributes;\n        }\n        if (typeof nextOp.retain === 'number') {\n          retOp.retain = length;\n        } else if (typeof nextOp.retain === 'object' && nextOp.retain !== null) {\n          // offset should === 0, length should === 1\n          retOp.retain = nextOp.retain;\n        } else if (typeof nextOp.insert === 'string') {\n          retOp.insert = nextOp.insert.substr(offset, length);\n        } else {\n          // offset should === 0, length should === 1\n          retOp.insert = nextOp.insert;\n        }\n        return retOp;\n      }\n    } else {\n      return {\n        retain: Infinity\n      };\n    }\n  }\n  peek() {\n    return this.ops[this.index];\n  }\n  peekLength() {\n    if (this.ops[this.index]) {\n      // Should never return 0 if our index is being managed correctly\n      return Op_1.default.length(this.ops[this.index]) - this.offset;\n    } else {\n      return Infinity;\n    }\n  }\n  peekType() {\n    const op = this.ops[this.index];\n    if (op) {\n      if (typeof op.delete === 'number') {\n        return 'delete';\n      } else if (typeof op.retain === 'number' || typeof op.retain === 'object' && op.retain !== null) {\n        return 'retain';\n      } else {\n        return 'insert';\n      }\n    }\n    return 'retain';\n  }\n  rest() {\n    if (!this.hasNext()) {\n      return [];\n    } else if (this.offset === 0) {\n      return this.ops.slice(this.index);\n    } else {\n      const offset = this.offset;\n      const index = this.index;\n      const next = this.next();\n      const rest = this.ops.slice(this.index);\n      this.offset = offset;\n      this.index = index;\n      return [next].concat(rest);\n    }\n  }\n}\nexports[\"default\"] = Iterator;\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill-delta/dist/OpIterator.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/blots/block.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/quill/blots/block.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   BlockEmbed: () => (/* binding */ BlockEmbed),\n/* harmony export */   blockDelta: () => (/* binding */ blockDelta),\n/* harmony export */   bubbleFormats: () => (/* binding */ bubbleFormats),\n/* harmony export */   \"default\": () => (/* binding */ Block)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! quill-delta */ \"../react-ui/node_modules/quill-delta/dist/Delta.js\");\n/* harmony import */ var _break_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./break.js */ \"../react-ui/node_modules/quill/blots/break.js\");\n/* harmony import */ var _inline_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./inline.js */ \"../react-ui/node_modules/quill/blots/inline.js\");\n/* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./text.js */ \"../react-ui/node_modules/quill/blots/text.js\");\n\n\n\n\n\nconst NEWLINE_LENGTH = 1;\nclass Block extends parchment__WEBPACK_IMPORTED_MODULE_0__.BlockBlot {\n  cache = {};\n  delta() {\n    if (this.cache.delta == null) {\n      this.cache.delta = blockDelta(this);\n    }\n    return this.cache.delta;\n  }\n  deleteAt(index, length) {\n    super.deleteAt(index, length);\n    this.cache = {};\n  }\n  formatAt(index, length, name, value) {\n    if (length <= 0) return;\n    if (this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK)) {\n      if (index + length === this.length()) {\n        this.format(name, value);\n      }\n    } else {\n      super.formatAt(index, Math.min(length, this.length() - index - 1), name, value);\n    }\n    this.cache = {};\n  }\n  insertAt(index, value, def) {\n    if (def != null) {\n      super.insertAt(index, value, def);\n      this.cache = {};\n      return;\n    }\n    if (value.length === 0) return;\n    const lines = value.split('\\n');\n    const text = lines.shift();\n    if (text.length > 0) {\n      if (index < this.length() - 1 || this.children.tail == null) {\n        super.insertAt(Math.min(index, this.length() - 1), text);\n      } else {\n        this.children.tail.insertAt(this.children.tail.length(), text);\n      }\n      this.cache = {};\n    }\n    // TODO: Fix this next time the file is edited.\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\n    let block = this;\n    lines.reduce((lineIndex, line) => {\n      // @ts-expect-error Fix me later\n      block = block.split(lineIndex, true);\n      block.insertAt(0, line);\n      return line.length;\n    }, index + text.length);\n  }\n  insertBefore(blot, ref) {\n    const {\n      head\n    } = this.children;\n    super.insertBefore(blot, ref);\n    if (head instanceof _break_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]) {\n      head.remove();\n    }\n    this.cache = {};\n  }\n  length() {\n    if (this.cache.length == null) {\n      this.cache.length = super.length() + NEWLINE_LENGTH;\n    }\n    return this.cache.length;\n  }\n  moveChildren(target, ref) {\n    super.moveChildren(target, ref);\n    this.cache = {};\n  }\n  optimize(context) {\n    super.optimize(context);\n    this.cache = {};\n  }\n  path(index) {\n    return super.path(index, true);\n  }\n  removeChild(child) {\n    super.removeChild(child);\n    this.cache = {};\n  }\n  split(index) {\n    let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n      const clone = this.clone();\n      if (index === 0) {\n        this.parent.insertBefore(clone, this);\n        return this;\n      }\n      this.parent.insertBefore(clone, this.next);\n      return clone;\n    }\n    const next = super.split(index, force);\n    this.cache = {};\n    return next;\n  }\n}\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = _break_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nBlock.allowedChildren = [_break_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"], _inline_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], parchment__WEBPACK_IMPORTED_MODULE_0__.EmbedBlot, _text_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]];\nclass BlockEmbed extends parchment__WEBPACK_IMPORTED_MODULE_0__.EmbedBlot {\n  attach() {\n    super.attach();\n    this.attributes = new parchment__WEBPACK_IMPORTED_MODULE_0__.AttributorStore(this.domNode);\n  }\n  delta() {\n    return new quill_delta__WEBPACK_IMPORTED_MODULE_1__().insert(this.value(), {\n      ...this.formats(),\n      ...this.attributes.values()\n    });\n  }\n  format(name, value) {\n    const attribute = this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK_ATTRIBUTE);\n    if (attribute != null) {\n      // @ts-expect-error TODO: Scroll#query() should return Attributor when scope is attribute\n      this.attributes.attribute(attribute, value);\n    }\n  }\n  formatAt(index, length, name, value) {\n    this.format(name, value);\n  }\n  insertAt(index, value, def) {\n    if (def != null) {\n      super.insertAt(index, value, def);\n      return;\n    }\n    const lines = value.split('\\n');\n    const text = lines.pop();\n    const blocks = lines.map(line => {\n      const block = this.scroll.create(Block.blotName);\n      block.insertAt(0, line);\n      return block;\n    });\n    const ref = this.split(index);\n    blocks.forEach(block => {\n      this.parent.insertBefore(block, ref);\n    });\n    if (text) {\n      this.parent.insertBefore(this.scroll.create('text', text), ref);\n    }\n  }\n}\nBlockEmbed.scope = parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\nfunction blockDelta(blot) {\n  let filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n  return blot.descendants(parchment__WEBPACK_IMPORTED_MODULE_0__.LeafBlot).reduce((delta, leaf) => {\n    if (leaf.length() === 0) {\n      return delta;\n    }\n    return delta.insert(leaf.value(), bubbleFormats(leaf, {}, filter));\n  }, new quill_delta__WEBPACK_IMPORTED_MODULE_1__()).insert('\\n', bubbleFormats(blot));\n}\nfunction bubbleFormats(blot) {\n  let formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  let filter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n  if (blot == null) return formats;\n  if ('formats' in blot && typeof blot.formats === 'function') {\n    formats = {\n      ...formats,\n      ...blot.formats()\n    };\n    if (filter) {\n      // exclude syntax highlighting from deltas and getFormat()\n      delete formats['code-token'];\n    }\n  }\n  if (blot.parent == null || blot.parent.statics.blotName === 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n    return formats;\n  }\n  return bubbleFormats(blot.parent, formats, filter);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/blots/block.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/blots/break.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/quill/blots/break.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n\nclass Break extends parchment__WEBPACK_IMPORTED_MODULE_0__.EmbedBlot {\n  static value() {\n    return undefined;\n  }\n  optimize() {\n    if (this.prev || this.next) {\n      this.remove();\n    }\n  }\n  length() {\n    return 0;\n  }\n  value() {\n    return '';\n  }\n}\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Break);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/blots/break.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/blots/container.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/quill/blots/container.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n\nclass Container extends parchment__WEBPACK_IMPORTED_MODULE_0__.ContainerBlot {}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Container);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/blots/container.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/blots/cursor.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/quill/blots/cursor.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./text.js */ \"../react-ui/node_modules/quill/blots/text.js\");\n\n\nclass Cursor extends parchment__WEBPACK_IMPORTED_MODULE_0__.EmbedBlot {\n  static blotName = 'cursor';\n  static className = 'ql-cursor';\n  static tagName = 'span';\n  static CONTENTS = '\\uFEFF'; // Zero width no break space\n\n  static value() {\n    return undefined;\n  }\n  constructor(scroll, domNode, selection) {\n    super(scroll, domNode);\n    this.selection = selection;\n    this.textNode = document.createTextNode(Cursor.CONTENTS);\n    this.domNode.appendChild(this.textNode);\n    this.savedLength = 0;\n  }\n  detach() {\n    // super.detach() will also clear domNode.__blot\n    if (this.parent != null) this.parent.removeChild(this);\n  }\n  format(name, value) {\n    if (this.savedLength !== 0) {\n      super.format(name, value);\n      return;\n    }\n    // TODO: Fix this next time the file is edited.\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\n    let target = this;\n    let index = 0;\n    while (target != null && target.statics.scope !== parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK_BLOT) {\n      index += target.offset(target.parent);\n      target = target.parent;\n    }\n    if (target != null) {\n      this.savedLength = Cursor.CONTENTS.length;\n      // @ts-expect-error TODO: allow empty context in Parchment\n      target.optimize();\n      target.formatAt(index, Cursor.CONTENTS.length, name, value);\n      this.savedLength = 0;\n    }\n  }\n  index(node, offset) {\n    if (node === this.textNode) return 0;\n    return super.index(node, offset);\n  }\n  length() {\n    return this.savedLength;\n  }\n  position() {\n    return [this.textNode, this.textNode.data.length];\n  }\n  remove() {\n    super.remove();\n    // @ts-expect-error Fix me later\n    this.parent = null;\n  }\n  restore() {\n    if (this.selection.composing || this.parent == null) return null;\n    const range = this.selection.getNativeRange();\n    // Browser may push down styles/nodes inside the cursor blot.\n    // https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#push-down-values\n    while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n      // @ts-expect-error Fix me later\n      this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n    }\n    const prevTextBlot = this.prev instanceof _text_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] ? this.prev : null;\n    const prevTextLength = prevTextBlot ? prevTextBlot.length() : 0;\n    const nextTextBlot = this.next instanceof _text_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] ? this.next : null;\n    // @ts-expect-error TODO: make TextBlot.text public\n    const nextText = nextTextBlot ? nextTextBlot.text : '';\n    const {\n      textNode\n    } = this;\n    // take text from inside this blot and reset it\n    const newText = textNode.data.split(Cursor.CONTENTS).join('');\n    textNode.data = Cursor.CONTENTS;\n\n    // proactively merge TextBlots around cursor so that optimization\n    // doesn't lose the cursor.  the reason we are here in cursor.restore\n    // could be that the user clicked in prevTextBlot or nextTextBlot, or\n    // the user typed something.\n    let mergedTextBlot;\n    if (prevTextBlot) {\n      mergedTextBlot = prevTextBlot;\n      if (newText || nextTextBlot) {\n        prevTextBlot.insertAt(prevTextBlot.length(), newText + nextText);\n        if (nextTextBlot) {\n          nextTextBlot.remove();\n        }\n      }\n    } else if (nextTextBlot) {\n      mergedTextBlot = nextTextBlot;\n      nextTextBlot.insertAt(0, newText);\n    } else {\n      const newTextNode = document.createTextNode(newText);\n      mergedTextBlot = this.scroll.create(newTextNode);\n      this.parent.insertBefore(mergedTextBlot, this);\n    }\n    this.remove();\n    if (range) {\n      // calculate selection to restore\n      const remapOffset = (node, offset) => {\n        if (prevTextBlot && node === prevTextBlot.domNode) {\n          return offset;\n        }\n        if (node === textNode) {\n          return prevTextLength + offset - 1;\n        }\n        if (nextTextBlot && node === nextTextBlot.domNode) {\n          return prevTextLength + newText.length + offset;\n        }\n        return null;\n      };\n      const start = remapOffset(range.start.node, range.start.offset);\n      const end = remapOffset(range.end.node, range.end.offset);\n      if (start !== null && end !== null) {\n        return {\n          startNode: mergedTextBlot.domNode,\n          startOffset: start,\n          endNode: mergedTextBlot.domNode,\n          endOffset: end\n        };\n      }\n    }\n    return null;\n  }\n  update(mutations, context) {\n    if (mutations.some(mutation => {\n      return mutation.type === 'characterData' && mutation.target === this.textNode;\n    })) {\n      const range = this.restore();\n      if (range) context.range = range;\n    }\n  }\n\n  // Avoid .ql-cursor being a descendant of `<a/>`.\n  // The reason is Safari pushes down `<a/>` on text insertion.\n  // That will cause DOM nodes not sync with the model.\n  //\n  // For example ({I} is the caret), given the markup:\n  //    <a><span class=\"ql-cursor\">\\uFEFF{I}</span></a>\n  // When typing a char \"x\", `<a/>` will be pushed down inside the `<span>` first:\n  //    <span class=\"ql-cursor\"><a>\\uFEFF{I}</a></span>\n  // And then \"x\" will be inserted after `<a/>`:\n  //    <span class=\"ql-cursor\"><a>\\uFEFF</a>d{I}</span>\n  optimize(context) {\n    // @ts-expect-error Fix me later\n    super.optimize(context);\n    let {\n      parent\n    } = this;\n    while (parent) {\n      if (parent.domNode.tagName === 'A') {\n        this.savedLength = Cursor.CONTENTS.length;\n        // @ts-expect-error TODO: make isolate generic\n        parent.isolate(this.offset(parent), this.length()).unwrap();\n        this.savedLength = 0;\n        break;\n      }\n      parent = parent.parent;\n    }\n  }\n  value() {\n    return '';\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Cursor);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/blots/cursor.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/blots/embed.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/quill/blots/embed.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./text.js */ \"../react-ui/node_modules/quill/blots/text.js\");\n\n\nconst GUARD_TEXT = '\\uFEFF';\nclass Embed extends parchment__WEBPACK_IMPORTED_MODULE_0__.EmbedBlot {\n  constructor(scroll, node) {\n    super(scroll, node);\n    this.contentNode = document.createElement('span');\n    this.contentNode.setAttribute('contenteditable', 'false');\n    Array.from(this.domNode.childNodes).forEach(childNode => {\n      this.contentNode.appendChild(childNode);\n    });\n    this.leftGuard = document.createTextNode(GUARD_TEXT);\n    this.rightGuard = document.createTextNode(GUARD_TEXT);\n    this.domNode.appendChild(this.leftGuard);\n    this.domNode.appendChild(this.contentNode);\n    this.domNode.appendChild(this.rightGuard);\n  }\n  index(node, offset) {\n    if (node === this.leftGuard) return 0;\n    if (node === this.rightGuard) return 1;\n    return super.index(node, offset);\n  }\n  restore(node) {\n    let range = null;\n    let textNode;\n    const text = node.data.split(GUARD_TEXT).join('');\n    if (node === this.leftGuard) {\n      if (this.prev instanceof _text_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]) {\n        const prevLength = this.prev.length();\n        this.prev.insertAt(prevLength, text);\n        range = {\n          startNode: this.prev.domNode,\n          startOffset: prevLength + text.length\n        };\n      } else {\n        textNode = document.createTextNode(text);\n        this.parent.insertBefore(this.scroll.create(textNode), this);\n        range = {\n          startNode: textNode,\n          startOffset: text.length\n        };\n      }\n    } else if (node === this.rightGuard) {\n      if (this.next instanceof _text_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"]) {\n        this.next.insertAt(0, text);\n        range = {\n          startNode: this.next.domNode,\n          startOffset: text.length\n        };\n      } else {\n        textNode = document.createTextNode(text);\n        this.parent.insertBefore(this.scroll.create(textNode), this.next);\n        range = {\n          startNode: textNode,\n          startOffset: text.length\n        };\n      }\n    }\n    node.data = GUARD_TEXT;\n    return range;\n  }\n  update(mutations, context) {\n    mutations.forEach(mutation => {\n      if (mutation.type === 'characterData' && (mutation.target === this.leftGuard || mutation.target === this.rightGuard)) {\n        const range = this.restore(mutation.target);\n        if (range) context.range = range;\n      }\n    });\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Embed);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/blots/embed.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/blots/inline.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/quill/blots/inline.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var _break_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./break.js */ \"../react-ui/node_modules/quill/blots/break.js\");\n/* harmony import */ var _text_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./text.js */ \"../react-ui/node_modules/quill/blots/text.js\");\n\n\n\nclass Inline extends parchment__WEBPACK_IMPORTED_MODULE_0__.InlineBlot {\n  static allowedChildren = [Inline, _break_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], parchment__WEBPACK_IMPORTED_MODULE_0__.EmbedBlot, _text_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]];\n  // Lower index means deeper in the DOM tree, since not found (-1) is for embeds\n  static order = ['cursor', 'inline',\n  // Must be lower\n  'link',\n  // Chrome wants <a> to be lower\n  'underline', 'strike', 'italic', 'bold', 'script', 'code' // Must be higher\n  ];\n  static compare(self, other) {\n    const selfIndex = Inline.order.indexOf(self);\n    const otherIndex = Inline.order.indexOf(other);\n    if (selfIndex >= 0 || otherIndex >= 0) {\n      return selfIndex - otherIndex;\n    }\n    if (self === other) {\n      return 0;\n    }\n    if (self < other) {\n      return -1;\n    }\n    return 1;\n  }\n  formatAt(index, length, name, value) {\n    if (Inline.compare(this.statics.blotName, name) < 0 && this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOT)) {\n      const blot = this.isolate(index, length);\n      if (value) {\n        blot.wrap(name, value);\n      }\n    } else {\n      super.formatAt(index, length, name, value);\n    }\n  }\n  optimize(context) {\n    super.optimize(context);\n    if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n      const parent = this.parent.isolate(this.offset(), this.length());\n      // @ts-expect-error TODO: make isolate generic\n      this.moveChildren(parent);\n      parent.wrap(this);\n    }\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Inline);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/blots/inline.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/blots/scroll.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/quill/blots/scroll.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! quill-delta */ \"../react-ui/node_modules/quill-delta/dist/Delta.js\");\n/* harmony import */ var _core_emitter_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/emitter.js */ \"../react-ui/node_modules/quill/core/emitter.js\");\n/* harmony import */ var _block_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./block.js */ \"../react-ui/node_modules/quill/blots/block.js\");\n/* harmony import */ var _break_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./break.js */ \"../react-ui/node_modules/quill/blots/break.js\");\n/* harmony import */ var _container_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./container.js */ \"../react-ui/node_modules/quill/blots/container.js\");\n\n\n\n\n\n\nfunction isLine(blot) {\n  return blot instanceof _block_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"] || blot instanceof _block_js__WEBPACK_IMPORTED_MODULE_3__.BlockEmbed;\n}\nfunction isUpdatable(blot) {\n  return typeof blot.updateContent === 'function';\n}\nclass Scroll extends parchment__WEBPACK_IMPORTED_MODULE_0__.ScrollBlot {\n  static blotName = 'scroll';\n  static className = 'ql-editor';\n  static tagName = 'DIV';\n  static defaultChild = _block_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n  static allowedChildren = [_block_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], _block_js__WEBPACK_IMPORTED_MODULE_3__.BlockEmbed, _container_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]];\n  constructor(registry, domNode, _ref) {\n    let {\n      emitter\n    } = _ref;\n    super(registry, domNode);\n    this.emitter = emitter;\n    this.batch = false;\n    this.optimize();\n    this.enable();\n    this.domNode.addEventListener('dragstart', e => this.handleDragStart(e));\n  }\n  batchStart() {\n    if (!Array.isArray(this.batch)) {\n      this.batch = [];\n    }\n  }\n  batchEnd() {\n    if (!this.batch) return;\n    const mutations = this.batch;\n    this.batch = false;\n    this.update(mutations);\n  }\n  emitMount(blot) {\n    this.emitter.emit(_core_emitter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].events.SCROLL_BLOT_MOUNT, blot);\n  }\n  emitUnmount(blot) {\n    this.emitter.emit(_core_emitter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].events.SCROLL_BLOT_UNMOUNT, blot);\n  }\n  emitEmbedUpdate(blot, change) {\n    this.emitter.emit(_core_emitter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].events.SCROLL_EMBED_UPDATE, blot, change);\n  }\n  deleteAt(index, length) {\n    const [first, offset] = this.line(index);\n    const [last] = this.line(index + length);\n    super.deleteAt(index, length);\n    if (last != null && first !== last && offset > 0) {\n      if (first instanceof _block_js__WEBPACK_IMPORTED_MODULE_3__.BlockEmbed || last instanceof _block_js__WEBPACK_IMPORTED_MODULE_3__.BlockEmbed) {\n        this.optimize();\n        return;\n      }\n      const ref = last.children.head instanceof _break_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"] ? null : last.children.head;\n      // @ts-expect-error\n      first.moveChildren(last, ref);\n      // @ts-expect-error\n      first.remove();\n    }\n    this.optimize();\n  }\n  enable() {\n    let enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    this.domNode.setAttribute('contenteditable', enabled ? 'true' : 'false');\n  }\n  formatAt(index, length, format, value) {\n    super.formatAt(index, length, format, value);\n    this.optimize();\n  }\n  insertAt(index, value, def) {\n    if (index >= this.length()) {\n      if (def == null || this.scroll.query(value, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK) == null) {\n        const blot = this.scroll.create(this.statics.defaultChild.blotName);\n        this.appendChild(blot);\n        if (def == null && value.endsWith('\\n')) {\n          blot.insertAt(0, value.slice(0, -1), def);\n        } else {\n          blot.insertAt(0, value, def);\n        }\n      } else {\n        const embed = this.scroll.create(value, def);\n        this.appendChild(embed);\n      }\n    } else {\n      super.insertAt(index, value, def);\n    }\n    this.optimize();\n  }\n  insertBefore(blot, ref) {\n    if (blot.statics.scope === parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE_BLOT) {\n      const wrapper = this.scroll.create(this.statics.defaultChild.blotName);\n      wrapper.appendChild(blot);\n      super.insertBefore(wrapper, ref);\n    } else {\n      super.insertBefore(blot, ref);\n    }\n  }\n  insertContents(index, delta) {\n    const renderBlocks = this.deltaToRenderBlocks(delta.concat(new quill_delta__WEBPACK_IMPORTED_MODULE_1__().insert('\\n')));\n    const last = renderBlocks.pop();\n    if (last == null) return;\n    this.batchStart();\n    const first = renderBlocks.shift();\n    if (first) {\n      const shouldInsertNewlineChar = first.type === 'block' && (first.delta.length() === 0 || !this.descendant(_block_js__WEBPACK_IMPORTED_MODULE_3__.BlockEmbed, index)[0] && index < this.length());\n      const delta = first.type === 'block' ? first.delta : new quill_delta__WEBPACK_IMPORTED_MODULE_1__().insert({\n        [first.key]: first.value\n      });\n      insertInlineContents(this, index, delta);\n      const newlineCharLength = first.type === 'block' ? 1 : 0;\n      const lineEndIndex = index + delta.length() + newlineCharLength;\n      if (shouldInsertNewlineChar) {\n        this.insertAt(lineEndIndex - 1, '\\n');\n      }\n      const formats = (0,_block_js__WEBPACK_IMPORTED_MODULE_3__.bubbleFormats)(this.line(index)[0]);\n      const attributes = quill_delta__WEBPACK_IMPORTED_MODULE_1__.AttributeMap.diff(formats, first.attributes) || {};\n      Object.keys(attributes).forEach(name => {\n        this.formatAt(lineEndIndex - 1, 1, name, attributes[name]);\n      });\n      index = lineEndIndex;\n    }\n    let [refBlot, refBlotOffset] = this.children.find(index);\n    if (renderBlocks.length) {\n      if (refBlot) {\n        refBlot = refBlot.split(refBlotOffset);\n        refBlotOffset = 0;\n      }\n      renderBlocks.forEach(renderBlock => {\n        if (renderBlock.type === 'block') {\n          const block = this.createBlock(renderBlock.attributes, refBlot || undefined);\n          insertInlineContents(block, 0, renderBlock.delta);\n        } else {\n          const blockEmbed = this.create(renderBlock.key, renderBlock.value);\n          this.insertBefore(blockEmbed, refBlot || undefined);\n          Object.keys(renderBlock.attributes).forEach(name => {\n            blockEmbed.format(name, renderBlock.attributes[name]);\n          });\n        }\n      });\n    }\n    if (last.type === 'block' && last.delta.length()) {\n      const offset = refBlot ? refBlot.offset(refBlot.scroll) + refBlotOffset : this.length();\n      insertInlineContents(this, offset, last.delta);\n    }\n    this.batchEnd();\n    this.optimize();\n  }\n  isEnabled() {\n    return this.domNode.getAttribute('contenteditable') === 'true';\n  }\n  leaf(index) {\n    const last = this.path(index).pop();\n    if (!last) {\n      return [null, -1];\n    }\n    const [blot, offset] = last;\n    return blot instanceof parchment__WEBPACK_IMPORTED_MODULE_0__.LeafBlot ? [blot, offset] : [null, -1];\n  }\n  line(index) {\n    if (index === this.length()) {\n      return this.line(index - 1);\n    }\n    // @ts-expect-error TODO: make descendant() generic\n    return this.descendant(isLine, index);\n  }\n  lines() {\n    let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n    const getLines = (blot, blotIndex, blotLength) => {\n      let lines = [];\n      let lengthLeft = blotLength;\n      blot.children.forEachAt(blotIndex, blotLength, (child, childIndex, childLength) => {\n        if (isLine(child)) {\n          lines.push(child);\n        } else if (child instanceof parchment__WEBPACK_IMPORTED_MODULE_0__.ContainerBlot) {\n          lines = lines.concat(getLines(child, childIndex, lengthLeft));\n        }\n        lengthLeft -= childLength;\n      });\n      return lines;\n    };\n    return getLines(this, index, length);\n  }\n  optimize() {\n    let mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n    let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    if (this.batch) return;\n    super.optimize(mutations, context);\n    if (mutations.length > 0) {\n      this.emitter.emit(_core_emitter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].events.SCROLL_OPTIMIZE, mutations, context);\n    }\n  }\n  path(index) {\n    return super.path(index).slice(1); // Exclude self\n  }\n  remove() {\n    // Never remove self\n  }\n  update(mutations) {\n    if (this.batch) {\n      if (Array.isArray(mutations)) {\n        this.batch = this.batch.concat(mutations);\n      }\n      return;\n    }\n    let source = _core_emitter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER;\n    if (typeof mutations === 'string') {\n      source = mutations;\n    }\n    if (!Array.isArray(mutations)) {\n      mutations = this.observer.takeRecords();\n    }\n    mutations = mutations.filter(_ref2 => {\n      let {\n        target\n      } = _ref2;\n      const blot = this.find(target, true);\n      return blot && !isUpdatable(blot);\n    });\n    if (mutations.length > 0) {\n      this.emitter.emit(_core_emitter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].events.SCROLL_BEFORE_UPDATE, source, mutations);\n    }\n    super.update(mutations.concat([])); // pass copy\n    if (mutations.length > 0) {\n      this.emitter.emit(_core_emitter_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].events.SCROLL_UPDATE, source, mutations);\n    }\n  }\n  updateEmbedAt(index, key, change) {\n    // Currently it only supports top-level embeds (BlockEmbed).\n    // We can update `ParentBlot` in parchment to support inline embeds.\n    const [blot] = this.descendant(b => b instanceof _block_js__WEBPACK_IMPORTED_MODULE_3__.BlockEmbed, index);\n    if (blot && blot.statics.blotName === key && isUpdatable(blot)) {\n      blot.updateContent(change);\n    }\n  }\n  handleDragStart(event) {\n    event.preventDefault();\n  }\n  deltaToRenderBlocks(delta) {\n    const renderBlocks = [];\n    let currentBlockDelta = new quill_delta__WEBPACK_IMPORTED_MODULE_1__();\n    delta.forEach(op => {\n      const insert = op?.insert;\n      if (!insert) return;\n      if (typeof insert === 'string') {\n        const splitted = insert.split('\\n');\n        splitted.slice(0, -1).forEach(text => {\n          currentBlockDelta.insert(text, op.attributes);\n          renderBlocks.push({\n            type: 'block',\n            delta: currentBlockDelta,\n            attributes: op.attributes ?? {}\n          });\n          currentBlockDelta = new quill_delta__WEBPACK_IMPORTED_MODULE_1__();\n        });\n        const last = splitted[splitted.length - 1];\n        if (last) {\n          currentBlockDelta.insert(last, op.attributes);\n        }\n      } else {\n        const key = Object.keys(insert)[0];\n        if (!key) return;\n        if (this.query(key, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE)) {\n          currentBlockDelta.push(op);\n        } else {\n          if (currentBlockDelta.length()) {\n            renderBlocks.push({\n              type: 'block',\n              delta: currentBlockDelta,\n              attributes: {}\n            });\n          }\n          currentBlockDelta = new quill_delta__WEBPACK_IMPORTED_MODULE_1__();\n          renderBlocks.push({\n            type: 'blockEmbed',\n            key,\n            value: insert[key],\n            attributes: op.attributes ?? {}\n          });\n        }\n      }\n    });\n    if (currentBlockDelta.length()) {\n      renderBlocks.push({\n        type: 'block',\n        delta: currentBlockDelta,\n        attributes: {}\n      });\n    }\n    return renderBlocks;\n  }\n  createBlock(attributes, refBlot) {\n    let blotName;\n    const formats = {};\n    Object.entries(attributes).forEach(_ref3 => {\n      let [key, value] = _ref3;\n      const isBlockBlot = this.query(key, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK & parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOT) != null;\n      if (isBlockBlot) {\n        blotName = key;\n      } else {\n        formats[key] = value;\n      }\n    });\n    const block = this.create(blotName || this.statics.defaultChild.blotName, blotName ? attributes[blotName] : undefined);\n    this.insertBefore(block, refBlot || undefined);\n    const length = block.length();\n    Object.entries(formats).forEach(_ref4 => {\n      let [key, value] = _ref4;\n      block.formatAt(0, length, key, value);\n    });\n    return block;\n  }\n}\nfunction insertInlineContents(parent, index, inlineContents) {\n  inlineContents.reduce((index, op) => {\n    const length = quill_delta__WEBPACK_IMPORTED_MODULE_1__.Op.length(op);\n    let attributes = op.attributes || {};\n    if (op.insert != null) {\n      if (typeof op.insert === 'string') {\n        const text = op.insert;\n        parent.insertAt(index, text);\n        const [leaf] = parent.descendant(parchment__WEBPACK_IMPORTED_MODULE_0__.LeafBlot, index);\n        const formats = (0,_block_js__WEBPACK_IMPORTED_MODULE_3__.bubbleFormats)(leaf);\n        attributes = quill_delta__WEBPACK_IMPORTED_MODULE_1__.AttributeMap.diff(formats, attributes) || {};\n      } else if (typeof op.insert === 'object') {\n        const key = Object.keys(op.insert)[0]; // There should only be one key\n        if (key == null) return index;\n        parent.insertAt(index, key, op.insert[key]);\n        const isInlineEmbed = parent.scroll.query(key, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE) != null;\n        if (isInlineEmbed) {\n          const [leaf] = parent.descendant(parchment__WEBPACK_IMPORTED_MODULE_0__.LeafBlot, index);\n          const formats = (0,_block_js__WEBPACK_IMPORTED_MODULE_3__.bubbleFormats)(leaf);\n          attributes = quill_delta__WEBPACK_IMPORTED_MODULE_1__.AttributeMap.diff(formats, attributes) || {};\n        }\n      }\n    }\n    Object.keys(attributes).forEach(key => {\n      parent.formatAt(index, length, key, attributes[key]);\n    });\n    return index + length;\n  }, index);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Scroll);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/blots/scroll.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/blots/text.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/quill/blots/text.js ***!
  \****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Text),\n/* harmony export */   escapeText: () => (/* binding */ escapeText)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n\nclass Text extends parchment__WEBPACK_IMPORTED_MODULE_0__.TextBlot {}\n\n// https://lodash.com/docs#escape\nconst entityMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  \"'\": '&#39;'\n};\nfunction escapeText(text) {\n  return text.replace(/[&<>\"']/g, s => entityMap[s]);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/blots/text.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/core.js":
/*!**********************************************!*\
  !*** ../react-ui/node_modules/quill/core.js ***!
  \**********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   AttributeMap: () => (/* reexport safe */ quill_delta__WEBPACK_IMPORTED_MODULE_13__.AttributeMap),\n/* harmony export */   Delta: () => (/* reexport default export from named module */ quill_delta__WEBPACK_IMPORTED_MODULE_13__),\n/* harmony export */   Module: () => (/* reexport safe */ _core_module_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"]),\n/* harmony export */   Op: () => (/* reexport safe */ quill_delta__WEBPACK_IMPORTED_MODULE_13__.Op),\n/* harmony export */   OpIterator: () => (/* reexport safe */ quill_delta__WEBPACK_IMPORTED_MODULE_13__.OpIterator),\n/* harmony export */   Parchment: () => (/* reexport safe */ _core_quill_js__WEBPACK_IMPORTED_MODULE_0__.Parchment),\n/* harmony export */   Range: () => (/* reexport safe */ _core_quill_js__WEBPACK_IMPORTED_MODULE_0__.Range),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _core_quill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/quill.js */ \"../react-ui/node_modules/quill/core/quill.js\");\n/* harmony import */ var _blots_block_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./blots/block.js */ \"../react-ui/node_modules/quill/blots/block.js\");\n/* harmony import */ var _blots_break_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./blots/break.js */ \"../react-ui/node_modules/quill/blots/break.js\");\n/* harmony import */ var _blots_container_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./blots/container.js */ \"../react-ui/node_modules/quill/blots/container.js\");\n/* harmony import */ var _blots_cursor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./blots/cursor.js */ \"../react-ui/node_modules/quill/blots/cursor.js\");\n/* harmony import */ var _blots_embed_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./blots/embed.js */ \"../react-ui/node_modules/quill/blots/embed.js\");\n/* harmony import */ var _blots_inline_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./blots/inline.js */ \"../react-ui/node_modules/quill/blots/inline.js\");\n/* harmony import */ var _blots_scroll_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./blots/scroll.js */ \"../react-ui/node_modules/quill/blots/scroll.js\");\n/* harmony import */ var _blots_text_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./blots/text.js */ \"../react-ui/node_modules/quill/blots/text.js\");\n/* harmony import */ var _modules_clipboard_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/clipboard.js */ \"../react-ui/node_modules/quill/modules/clipboard.js\");\n/* harmony import */ var _modules_history_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./modules/history.js */ \"../react-ui/node_modules/quill/modules/history.js\");\n/* harmony import */ var _modules_keyboard_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./modules/keyboard.js */ \"../react-ui/node_modules/quill/modules/keyboard.js\");\n/* harmony import */ var _modules_uploader_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modules/uploader.js */ \"../react-ui/node_modules/quill/modules/uploader.js\");\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! quill-delta */ \"../react-ui/node_modules/quill-delta/dist/Delta.js\");\n/* harmony import */ var _modules_input_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./modules/input.js */ \"../react-ui/node_modules/quill/modules/input.js\");\n/* harmony import */ var _modules_uiNode_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./modules/uiNode.js */ \"../react-ui/node_modules/quill/modules/uiNode.js\");\n/* harmony import */ var _core_module_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./core/module.js */ \"../react-ui/node_modules/quill/core/module.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n_core_quill_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].register({\n  'blots/block': _blots_block_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n  'blots/block/embed': _blots_block_js__WEBPACK_IMPORTED_MODULE_1__.BlockEmbed,\n  'blots/break': _blots_break_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"],\n  'blots/container': _blots_container_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n  'blots/cursor': _blots_cursor_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n  'blots/embed': _blots_embed_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n  'blots/inline': _blots_inline_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n  'blots/scroll': _blots_scroll_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n  'blots/text': _blots_text_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"],\n  'modules/clipboard': _modules_clipboard_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"],\n  'modules/history': _modules_history_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"],\n  'modules/keyboard': _modules_keyboard_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n  'modules/uploader': _modules_uploader_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n  'modules/input': _modules_input_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n  'modules/uiNode': _modules_uiNode_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"]\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_core_quill_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/core.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/core/composition.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/quill/core/composition.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _blots_embed_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/embed.js */ \"../react-ui/node_modules/quill/blots/embed.js\");\n/* harmony import */ var _emitter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./emitter.js */ \"../react-ui/node_modules/quill/core/emitter.js\");\n\n\nclass Composition {\n  isComposing = false;\n  constructor(scroll, emitter) {\n    this.scroll = scroll;\n    this.emitter = emitter;\n    this.setupListeners();\n  }\n  setupListeners() {\n    this.scroll.domNode.addEventListener('compositionstart', event => {\n      if (!this.isComposing) {\n        this.handleCompositionStart(event);\n      }\n    });\n    this.scroll.domNode.addEventListener('compositionend', event => {\n      if (this.isComposing) {\n        // Webkit makes DOM changes after compositionend, so we use microtask to\n        // ensure the order.\n        // https://bugs.webkit.org/show_bug.cgi?id=31902\n        queueMicrotask(() => {\n          this.handleCompositionEnd(event);\n        });\n      }\n    });\n  }\n  handleCompositionStart(event) {\n    const blot = event.target instanceof Node ? this.scroll.find(event.target, true) : null;\n    if (blot && !(blot instanceof _blots_embed_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])) {\n      this.emitter.emit(_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.COMPOSITION_BEFORE_START, event);\n      this.scroll.batchStart();\n      this.emitter.emit(_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.COMPOSITION_START, event);\n      this.isComposing = true;\n    }\n  }\n  handleCompositionEnd(event) {\n    this.emitter.emit(_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.COMPOSITION_BEFORE_END, event);\n    this.scroll.batchEnd();\n    this.emitter.emit(_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.COMPOSITION_END, event);\n    this.isComposing = false;\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Composition);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/core/composition.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/core/editor.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/quill/core/editor.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lodash_es__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash-es */ \"../react-ui/node_modules/lodash-es/cloneDeep.js\");\n/* harmony import */ var lodash_es__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash-es */ \"../react-ui/node_modules/lodash-es/isEqual.js\");\n/* harmony import */ var lodash_es__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash-es */ \"../react-ui/node_modules/lodash-es/merge.js\");\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! quill-delta */ \"../react-ui/node_modules/quill-delta/dist/Delta.js\");\n/* harmony import */ var _blots_block_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../blots/block.js */ \"../react-ui/node_modules/quill/blots/block.js\");\n/* harmony import */ var _blots_break_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../blots/break.js */ \"../react-ui/node_modules/quill/blots/break.js\");\n/* harmony import */ var _blots_cursor_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../blots/cursor.js */ \"../react-ui/node_modules/quill/blots/cursor.js\");\n/* harmony import */ var _blots_text_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../blots/text.js */ \"../react-ui/node_modules/quill/blots/text.js\");\n/* harmony import */ var _selection_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./selection.js */ \"../react-ui/node_modules/quill/core/selection.js\");\n\n\n\n\n\n\n\n\nconst ASCII = /^[ -~]*$/;\nclass Editor {\n  constructor(scroll) {\n    this.scroll = scroll;\n    this.delta = this.getDelta();\n  }\n  applyDelta(delta) {\n    this.scroll.update();\n    let scrollLength = this.scroll.length();\n    this.scroll.batchStart();\n    const normalizedDelta = normalizeDelta(delta);\n    const deleteDelta = new quill_delta__WEBPACK_IMPORTED_MODULE_4__();\n    const normalizedOps = splitOpLines(normalizedDelta.ops.slice());\n    normalizedOps.reduce((index, op) => {\n      const length = quill_delta__WEBPACK_IMPORTED_MODULE_4__.Op.length(op);\n      let attributes = op.attributes || {};\n      let isImplicitNewlinePrepended = false;\n      let isImplicitNewlineAppended = false;\n      if (op.insert != null) {\n        deleteDelta.retain(length);\n        if (typeof op.insert === 'string') {\n          const text = op.insert;\n          isImplicitNewlineAppended = !text.endsWith('\\n') && (scrollLength <= index || !!this.scroll.descendant(_blots_block_js__WEBPACK_IMPORTED_MODULE_5__.BlockEmbed, index)[0]);\n          this.scroll.insertAt(index, text);\n          const [line, offset] = this.scroll.line(index);\n          let formats = (0,lodash_es__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, (0,_blots_block_js__WEBPACK_IMPORTED_MODULE_5__.bubbleFormats)(line));\n          if (line instanceof _blots_block_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]) {\n            const [leaf] = line.descendant(parchment__WEBPACK_IMPORTED_MODULE_3__.LeafBlot, offset);\n            if (leaf) {\n              formats = (0,lodash_es__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(formats, (0,_blots_block_js__WEBPACK_IMPORTED_MODULE_5__.bubbleFormats)(leaf));\n            }\n          }\n          attributes = quill_delta__WEBPACK_IMPORTED_MODULE_4__.AttributeMap.diff(formats, attributes) || {};\n        } else if (typeof op.insert === 'object') {\n          const key = Object.keys(op.insert)[0]; // There should only be one key\n          if (key == null) return index;\n          const isInlineEmbed = this.scroll.query(key, parchment__WEBPACK_IMPORTED_MODULE_3__.Scope.INLINE) != null;\n          if (isInlineEmbed) {\n            if (scrollLength <= index || !!this.scroll.descendant(_blots_block_js__WEBPACK_IMPORTED_MODULE_5__.BlockEmbed, index)[0]) {\n              isImplicitNewlineAppended = true;\n            }\n          } else if (index > 0) {\n            const [leaf, offset] = this.scroll.descendant(parchment__WEBPACK_IMPORTED_MODULE_3__.LeafBlot, index - 1);\n            if (leaf instanceof _blots_text_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]) {\n              const text = leaf.value();\n              if (text[offset] !== '\\n') {\n                isImplicitNewlinePrepended = true;\n              }\n            } else if (leaf instanceof parchment__WEBPACK_IMPORTED_MODULE_3__.EmbedBlot && leaf.statics.scope === parchment__WEBPACK_IMPORTED_MODULE_3__.Scope.INLINE_BLOT) {\n              isImplicitNewlinePrepended = true;\n            }\n          }\n          this.scroll.insertAt(index, key, op.insert[key]);\n          if (isInlineEmbed) {\n            const [leaf] = this.scroll.descendant(parchment__WEBPACK_IMPORTED_MODULE_3__.LeafBlot, index);\n            if (leaf) {\n              const formats = (0,lodash_es__WEBPACK_IMPORTED_MODULE_2__[\"default\"])({}, (0,_blots_block_js__WEBPACK_IMPORTED_MODULE_5__.bubbleFormats)(leaf));\n              attributes = quill_delta__WEBPACK_IMPORTED_MODULE_4__.AttributeMap.diff(formats, attributes) || {};\n            }\n          }\n        }\n        scrollLength += length;\n      } else {\n        deleteDelta.push(op);\n        if (op.retain !== null && typeof op.retain === 'object') {\n          const key = Object.keys(op.retain)[0];\n          if (key == null) return index;\n          this.scroll.updateEmbedAt(index, key, op.retain[key]);\n        }\n      }\n      Object.keys(attributes).forEach(name => {\n        this.scroll.formatAt(index, length, name, attributes[name]);\n      });\n      const prependedLength = isImplicitNewlinePrepended ? 1 : 0;\n      const addedLength = isImplicitNewlineAppended ? 1 : 0;\n      scrollLength += prependedLength + addedLength;\n      deleteDelta.retain(prependedLength);\n      deleteDelta.delete(addedLength);\n      return index + length + prependedLength + addedLength;\n    }, 0);\n    deleteDelta.reduce((index, op) => {\n      if (typeof op.delete === 'number') {\n        this.scroll.deleteAt(index, op.delete);\n        return index;\n      }\n      return index + quill_delta__WEBPACK_IMPORTED_MODULE_4__.Op.length(op);\n    }, 0);\n    this.scroll.batchEnd();\n    this.scroll.optimize();\n    return this.update(normalizedDelta);\n  }\n  deleteText(index, length) {\n    this.scroll.deleteAt(index, length);\n    return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_4__().retain(index).delete(length));\n  }\n  formatLine(index, length) {\n    let formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    this.scroll.update();\n    Object.keys(formats).forEach(format => {\n      this.scroll.lines(index, Math.max(length, 1)).forEach(line => {\n        line.format(format, formats[format]);\n      });\n    });\n    this.scroll.optimize();\n    const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_4__().retain(index).retain(length, (0,lodash_es__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(formats));\n    return this.update(delta);\n  }\n  formatText(index, length) {\n    let formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    Object.keys(formats).forEach(format => {\n      this.scroll.formatAt(index, length, format, formats[format]);\n    });\n    const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_4__().retain(index).retain(length, (0,lodash_es__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(formats));\n    return this.update(delta);\n  }\n  getContents(index, length) {\n    return this.delta.slice(index, index + length);\n  }\n  getDelta() {\n    return this.scroll.lines().reduce((delta, line) => {\n      return delta.concat(line.delta());\n    }, new quill_delta__WEBPACK_IMPORTED_MODULE_4__());\n  }\n  getFormat(index) {\n    let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    let lines = [];\n    let leaves = [];\n    if (length === 0) {\n      this.scroll.path(index).forEach(path => {\n        const [blot] = path;\n        if (blot instanceof _blots_block_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]) {\n          lines.push(blot);\n        } else if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_3__.LeafBlot) {\n          leaves.push(blot);\n        }\n      });\n    } else {\n      lines = this.scroll.lines(index, length);\n      leaves = this.scroll.descendants(parchment__WEBPACK_IMPORTED_MODULE_3__.LeafBlot, index, length);\n    }\n    const [lineFormats, leafFormats] = [lines, leaves].map(blots => {\n      const blot = blots.shift();\n      if (blot == null) return {};\n      let formats = (0,_blots_block_js__WEBPACK_IMPORTED_MODULE_5__.bubbleFormats)(blot);\n      while (Object.keys(formats).length > 0) {\n        const blot = blots.shift();\n        if (blot == null) return formats;\n        formats = combineFormats((0,_blots_block_js__WEBPACK_IMPORTED_MODULE_5__.bubbleFormats)(blot), formats);\n      }\n      return formats;\n    });\n    return {\n      ...lineFormats,\n      ...leafFormats\n    };\n  }\n  getHTML(index, length) {\n    const [line, lineOffset] = this.scroll.line(index);\n    if (line) {\n      const lineLength = line.length();\n      const isWithinLine = line.length() >= lineOffset + length;\n      if (isWithinLine && !(lineOffset === 0 && length === lineLength)) {\n        return convertHTML(line, lineOffset, length, true);\n      }\n      return convertHTML(this.scroll, index, length, true);\n    }\n    return '';\n  }\n  getText(index, length) {\n    return this.getContents(index, length).filter(op => typeof op.insert === 'string').map(op => op.insert).join('');\n  }\n  insertContents(index, contents) {\n    const normalizedDelta = normalizeDelta(contents);\n    const change = new quill_delta__WEBPACK_IMPORTED_MODULE_4__().retain(index).concat(normalizedDelta);\n    this.scroll.insertContents(index, normalizedDelta);\n    return this.update(change);\n  }\n  insertEmbed(index, embed, value) {\n    this.scroll.insertAt(index, embed, value);\n    return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_4__().retain(index).insert({\n      [embed]: value\n    }));\n  }\n  insertText(index, text) {\n    let formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n    this.scroll.insertAt(index, text);\n    Object.keys(formats).forEach(format => {\n      this.scroll.formatAt(index, text.length, format, formats[format]);\n    });\n    return this.update(new quill_delta__WEBPACK_IMPORTED_MODULE_4__().retain(index).insert(text, (0,lodash_es__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(formats)));\n  }\n  isBlank() {\n    if (this.scroll.children.length === 0) return true;\n    if (this.scroll.children.length > 1) return false;\n    const blot = this.scroll.children.head;\n    if (blot?.statics.blotName !== _blots_block_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].blotName) return false;\n    const block = blot;\n    if (block.children.length > 1) return false;\n    return block.children.head instanceof _blots_break_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"];\n  }\n  removeFormat(index, length) {\n    const text = this.getText(index, length);\n    const [line, offset] = this.scroll.line(index + length);\n    let suffixLength = 0;\n    let suffix = new quill_delta__WEBPACK_IMPORTED_MODULE_4__();\n    if (line != null) {\n      suffixLength = line.length() - offset;\n      suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n    }\n    const contents = this.getContents(index, length + suffixLength);\n    const diff = contents.diff(new quill_delta__WEBPACK_IMPORTED_MODULE_4__().insert(text).concat(suffix));\n    const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_4__().retain(index).concat(diff);\n    return this.applyDelta(delta);\n  }\n  update(change) {\n    let mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n    let selectionInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n    const oldDelta = this.delta;\n    if (mutations.length === 1 && mutations[0].type === 'characterData' &&\n    // @ts-expect-error Fix me later\n    mutations[0].target.data.match(ASCII) && this.scroll.find(mutations[0].target)) {\n      // Optimization for character changes\n      const textBlot = this.scroll.find(mutations[0].target);\n      const formats = (0,_blots_block_js__WEBPACK_IMPORTED_MODULE_5__.bubbleFormats)(textBlot);\n      const index = textBlot.offset(this.scroll);\n      // @ts-expect-error Fix me later\n      const oldValue = mutations[0].oldValue.replace(_blots_cursor_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"].CONTENTS, '');\n      const oldText = new quill_delta__WEBPACK_IMPORTED_MODULE_4__().insert(oldValue);\n      // @ts-expect-error\n      const newText = new quill_delta__WEBPACK_IMPORTED_MODULE_4__().insert(textBlot.value());\n      const relativeSelectionInfo = selectionInfo && {\n        oldRange: shiftRange(selectionInfo.oldRange, -index),\n        newRange: shiftRange(selectionInfo.newRange, -index)\n      };\n      const diffDelta = new quill_delta__WEBPACK_IMPORTED_MODULE_4__().retain(index).concat(oldText.diff(newText, relativeSelectionInfo));\n      change = diffDelta.reduce((delta, op) => {\n        if (op.insert) {\n          return delta.insert(op.insert, formats);\n        }\n        return delta.push(op);\n      }, new quill_delta__WEBPACK_IMPORTED_MODULE_4__());\n      this.delta = oldDelta.compose(change);\n    } else {\n      this.delta = this.getDelta();\n      if (!change || !(0,lodash_es__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(oldDelta.compose(change), this.delta)) {\n        change = oldDelta.diff(this.delta, selectionInfo);\n      }\n    }\n    return change;\n  }\n}\nfunction convertListHTML(items, lastIndent, types) {\n  if (items.length === 0) {\n    const [endTag] = getListType(types.pop());\n    if (lastIndent <= 0) {\n      return `</li></${endTag}>`;\n    }\n    return `</li></${endTag}>${convertListHTML([], lastIndent - 1, types)}`;\n  }\n  const [{\n    child,\n    offset,\n    length,\n    indent,\n    type\n  }, ...rest] = items;\n  const [tag, attribute] = getListType(type);\n  if (indent > lastIndent) {\n    types.push(type);\n    if (indent === lastIndent + 1) {\n      return `<${tag}><li${attribute}>${convertHTML(child, offset, length)}${convertListHTML(rest, indent, types)}`;\n    }\n    return `<${tag}><li>${convertListHTML(items, lastIndent + 1, types)}`;\n  }\n  const previousType = types[types.length - 1];\n  if (indent === lastIndent && type === previousType) {\n    return `</li><li${attribute}>${convertHTML(child, offset, length)}${convertListHTML(rest, indent, types)}`;\n  }\n  const [endTag] = getListType(types.pop());\n  return `</li></${endTag}>${convertListHTML(items, lastIndent - 1, types)}`;\n}\nfunction convertHTML(blot, index, length) {\n  let isRoot = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n  if ('html' in blot && typeof blot.html === 'function') {\n    return blot.html(index, length);\n  }\n  if (blot instanceof _blots_text_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"]) {\n    const escapedText = (0,_blots_text_js__WEBPACK_IMPORTED_MODULE_8__.escapeText)(blot.value().slice(index, index + length));\n    return escapedText.replaceAll(' ', '&nbsp;');\n  }\n  if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_3__.ParentBlot) {\n    // TODO fix API\n    if (blot.statics.blotName === 'list-container') {\n      const items = [];\n      blot.children.forEachAt(index, length, (child, offset, childLength) => {\n        const formats = 'formats' in child && typeof child.formats === 'function' ? child.formats() : {};\n        items.push({\n          child,\n          offset,\n          length: childLength,\n          indent: formats.indent || 0,\n          type: formats.list\n        });\n      });\n      return convertListHTML(items, -1, []);\n    }\n    const parts = [];\n    blot.children.forEachAt(index, length, (child, offset, childLength) => {\n      parts.push(convertHTML(child, offset, childLength));\n    });\n    if (isRoot || blot.statics.blotName === 'list') {\n      return parts.join('');\n    }\n    const {\n      outerHTML,\n      innerHTML\n    } = blot.domNode;\n    const [start, end] = outerHTML.split(`>${innerHTML}<`);\n    // TODO cleanup\n    if (start === '<table') {\n      return `<table style=\"border: 1px solid #000;\">${parts.join('')}<${end}`;\n    }\n    return `${start}>${parts.join('')}<${end}`;\n  }\n  return blot.domNode instanceof Element ? blot.domNode.outerHTML : '';\n}\nfunction combineFormats(formats, combined) {\n  return Object.keys(combined).reduce((merged, name) => {\n    if (formats[name] == null) return merged;\n    const combinedValue = combined[name];\n    if (combinedValue === formats[name]) {\n      merged[name] = combinedValue;\n    } else if (Array.isArray(combinedValue)) {\n      if (combinedValue.indexOf(formats[name]) < 0) {\n        merged[name] = combinedValue.concat([formats[name]]);\n      } else {\n        // If style already exists, don't add to an array, but don't lose other styles\n        merged[name] = combinedValue;\n      }\n    } else {\n      merged[name] = [combinedValue, formats[name]];\n    }\n    return merged;\n  }, {});\n}\nfunction getListType(type) {\n  const tag = type === 'ordered' ? 'ol' : 'ul';\n  switch (type) {\n    case 'checked':\n      return [tag, ' data-list=\"checked\"'];\n    case 'unchecked':\n      return [tag, ' data-list=\"unchecked\"'];\n    default:\n      return [tag, ''];\n  }\n}\nfunction normalizeDelta(delta) {\n  return delta.reduce((normalizedDelta, op) => {\n    if (typeof op.insert === 'string') {\n      const text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n      return normalizedDelta.insert(text, op.attributes);\n    }\n    return normalizedDelta.push(op);\n  }, new quill_delta__WEBPACK_IMPORTED_MODULE_4__());\n}\nfunction shiftRange(_ref, amount) {\n  let {\n    index,\n    length\n  } = _ref;\n  return new _selection_js__WEBPACK_IMPORTED_MODULE_9__.Range(index + amount, length);\n}\nfunction splitOpLines(ops) {\n  const split = [];\n  ops.forEach(op => {\n    if (typeof op.insert === 'string') {\n      const lines = op.insert.split('\\n');\n      lines.forEach((line, index) => {\n        if (index) split.push({\n          insert: '\\n',\n          attributes: op.attributes\n        });\n        if (line) split.push({\n          insert: line,\n          attributes: op.attributes\n        });\n      });\n    } else {\n      split.push(op);\n    }\n  });\n  return split;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Editor);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/core/editor.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/core/emitter.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/quill/core/emitter.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! eventemitter3 */ \"../react-ui/node_modules/eventemitter3/index.mjs\");\n/* harmony import */ var _instances_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instances.js */ \"../react-ui/node_modules/quill/core/instances.js\");\n/* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./logger.js */ \"../react-ui/node_modules/quill/core/logger.js\");\n\n\n\nconst debug = (0,_logger_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('quill:events');\nconst EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\nEVENTS.forEach(eventName => {\n  document.addEventListener(eventName, function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    Array.from(document.querySelectorAll('.ql-container')).forEach(node => {\n      const quill = _instances_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].get(node);\n      if (quill && quill.emitter) {\n        quill.emitter.handleDOM(...args);\n      }\n    });\n  });\n});\nclass Emitter extends eventemitter3__WEBPACK_IMPORTED_MODULE_0__.EventEmitter {\n  static events = {\n    EDITOR_CHANGE: 'editor-change',\n    SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n    SCROLL_BLOT_MOUNT: 'scroll-blot-mount',\n    SCROLL_BLOT_UNMOUNT: 'scroll-blot-unmount',\n    SCROLL_OPTIMIZE: 'scroll-optimize',\n    SCROLL_UPDATE: 'scroll-update',\n    SCROLL_EMBED_UPDATE: 'scroll-embed-update',\n    SELECTION_CHANGE: 'selection-change',\n    TEXT_CHANGE: 'text-change',\n    COMPOSITION_BEFORE_START: 'composition-before-start',\n    COMPOSITION_START: 'composition-start',\n    COMPOSITION_BEFORE_END: 'composition-before-end',\n    COMPOSITION_END: 'composition-end'\n  };\n  static sources = {\n    API: 'api',\n    SILENT: 'silent',\n    USER: 'user'\n  };\n  constructor() {\n    super();\n    this.domListeners = {};\n    this.on('error', debug.error);\n  }\n  emit() {\n    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      args[_key2] = arguments[_key2];\n    }\n    debug.log.call(debug, ...args);\n    // @ts-expect-error\n    return super.emit(...args);\n  }\n  handleDOM(event) {\n    for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n      args[_key3 - 1] = arguments[_key3];\n    }\n    (this.domListeners[event.type] || []).forEach(_ref => {\n      let {\n        node,\n        handler\n      } = _ref;\n      if (event.target === node || node.contains(event.target)) {\n        handler(event, ...args);\n      }\n    });\n  }\n  listenDOM(eventName, node, handler) {\n    if (!this.domListeners[eventName]) {\n      this.domListeners[eventName] = [];\n    }\n    this.domListeners[eventName].push({\n      node,\n      handler\n    });\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Emitter);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/core/emitter.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/core/instances.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/quill/core/instances.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (new WeakMap());\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/core/instances.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/core/logger.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/quill/core/logger.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst levels = ['error', 'warn', 'log', 'info'];\nlet level = 'warn';\nfunction debug(method) {\n  if (level) {\n    if (levels.indexOf(method) <= levels.indexOf(level)) {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n      console[method](...args); // eslint-disable-line no-console\n    }\n  }\n}\nfunction namespace(ns) {\n  return levels.reduce((logger, method) => {\n    logger[method] = debug.bind(console, method, ns);\n    return logger;\n  }, {});\n}\nnamespace.level = newLevel => {\n  level = newLevel;\n};\ndebug.level = namespace.level;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (namespace);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/core/logger.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/core/module.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/quill/core/module.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nclass Module {\n  static DEFAULTS = {};\n  constructor(quill) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    this.quill = quill;\n    this.options = options;\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Module);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/core/module.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/core/quill.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/quill/core/quill.js ***!
  \****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Parchment: () => (/* reexport module object */ parchment__WEBPACK_IMPORTED_MODULE_1__),\n/* harmony export */   Range: () => (/* reexport safe */ _selection_js__WEBPACK_IMPORTED_MODULE_8__.Range),\n/* harmony export */   \"default\": () => (/* binding */ Quill),\n/* harmony export */   expandConfig: () => (/* binding */ expandConfig),\n/* harmony export */   globalRegistry: () => (/* binding */ globalRegistry),\n/* harmony export */   overload: () => (/* binding */ overload)\n/* harmony export */ });\n/* harmony import */ var lodash_es__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash-es */ \"../react-ui/node_modules/lodash-es/merge.js\");\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! quill-delta */ \"../react-ui/node_modules/quill-delta/dist/Delta.js\");\n/* harmony import */ var _editor_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./editor.js */ \"../react-ui/node_modules/quill/core/editor.js\");\n/* harmony import */ var _emitter_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./emitter.js */ \"../react-ui/node_modules/quill/core/emitter.js\");\n/* harmony import */ var _instances_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./instances.js */ \"../react-ui/node_modules/quill/core/instances.js\");\n/* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./logger.js */ \"../react-ui/node_modules/quill/core/logger.js\");\n/* harmony import */ var _module_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./module.js */ \"../react-ui/node_modules/quill/core/module.js\");\n/* harmony import */ var _selection_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./selection.js */ \"../react-ui/node_modules/quill/core/selection.js\");\n/* harmony import */ var _composition_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./composition.js */ \"../react-ui/node_modules/quill/core/composition.js\");\n/* harmony import */ var _theme_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./theme.js */ \"../react-ui/node_modules/quill/core/theme.js\");\n/* harmony import */ var _utils_scrollRectIntoView_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utils/scrollRectIntoView.js */ \"../react-ui/node_modules/quill/core/utils/scrollRectIntoView.js\");\n/* harmony import */ var _utils_createRegistryWithFormats_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./utils/createRegistryWithFormats.js */ \"../react-ui/node_modules/quill/core/utils/createRegistryWithFormats.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst debug = (0,_logger_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"])('quill');\nconst globalRegistry = new parchment__WEBPACK_IMPORTED_MODULE_1__.Registry();\nparchment__WEBPACK_IMPORTED_MODULE_1__.ParentBlot.uiClass = 'ql-ui';\n\n/**\n * Options for initializing a Quill instance\n */\n\n/**\n * Similar to QuillOptions, but with all properties expanded to their default values,\n * and all selectors resolved to HTMLElements.\n */\n\nclass Quill {\n  static DEFAULTS = {\n    bounds: null,\n    modules: {\n      clipboard: true,\n      keyboard: true,\n      history: true,\n      uploader: true\n    },\n    placeholder: '',\n    readOnly: false,\n    registry: globalRegistry,\n    theme: 'default'\n  };\n  static events = _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].events;\n  static sources = _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources;\n  static version =  false ? 0 : \"2.0.3\";\n  static imports = {\n    delta: quill_delta__WEBPACK_IMPORTED_MODULE_2__,\n    parchment: parchment__WEBPACK_IMPORTED_MODULE_1__,\n    'core/module': _module_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n    'core/theme': _theme_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"]\n  };\n  static debug(limit) {\n    if (limit === true) {\n      limit = 'log';\n    }\n    _logger_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].level(limit);\n  }\n  static find(node) {\n    let bubble = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    return _instances_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].get(node) || globalRegistry.find(node, bubble);\n  }\n  static import(name) {\n    if (this.imports[name] == null) {\n      debug.error(`Cannot import ${name}. Are you sure it was registered?`);\n    }\n    return this.imports[name];\n  }\n  static register() {\n    if (typeof (arguments.length <= 0 ? undefined : arguments[0]) !== 'string') {\n      const target = arguments.length <= 0 ? undefined : arguments[0];\n      const overwrite = !!(arguments.length <= 1 ? undefined : arguments[1]);\n      const name = 'attrName' in target ? target.attrName : target.blotName;\n      if (typeof name === 'string') {\n        // Shortcut for formats:\n        // register(Blot | Attributor, overwrite)\n        this.register(`formats/${name}`, target, overwrite);\n      } else {\n        Object.keys(target).forEach(key => {\n          this.register(key, target[key], overwrite);\n        });\n      }\n    } else {\n      const path = arguments.length <= 0 ? undefined : arguments[0];\n      const target = arguments.length <= 1 ? undefined : arguments[1];\n      const overwrite = !!(arguments.length <= 2 ? undefined : arguments[2]);\n      if (this.imports[path] != null && !overwrite) {\n        debug.warn(`Overwriting ${path} with`, target);\n      }\n      this.imports[path] = target;\n      if ((path.startsWith('blots/') || path.startsWith('formats/')) && target && typeof target !== 'boolean' && target.blotName !== 'abstract') {\n        globalRegistry.register(target);\n      }\n      if (typeof target.register === 'function') {\n        target.register(globalRegistry);\n      }\n    }\n  }\n  constructor(container) {\n    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    this.options = expandConfig(container, options);\n    this.container = this.options.container;\n    if (this.container == null) {\n      debug.error('Invalid Quill container', container);\n      return;\n    }\n    if (this.options.debug) {\n      Quill.debug(this.options.debug);\n    }\n    const html = this.container.innerHTML.trim();\n    this.container.classList.add('ql-container');\n    this.container.innerHTML = '';\n    _instances_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].set(this.container, this);\n    this.root = this.addContainer('ql-editor');\n    this.root.classList.add('ql-blank');\n    this.emitter = new _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]();\n    const scrollBlotName = parchment__WEBPACK_IMPORTED_MODULE_1__.ScrollBlot.blotName;\n    const ScrollBlot = this.options.registry.query(scrollBlotName);\n    if (!ScrollBlot || !('blotName' in ScrollBlot)) {\n      throw new Error(`Cannot initialize Quill without \"${scrollBlotName}\" blot`);\n    }\n    this.scroll = new ScrollBlot(this.options.registry, this.root, {\n      emitter: this.emitter\n    });\n    this.editor = new _editor_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"](this.scroll);\n    this.selection = new _selection_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"](this.scroll, this.emitter);\n    this.composition = new _composition_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"](this.scroll, this.emitter);\n    this.theme = new this.options.theme(this, this.options); // eslint-disable-line new-cap\n    this.keyboard = this.theme.addModule('keyboard');\n    this.clipboard = this.theme.addModule('clipboard');\n    this.history = this.theme.addModule('history');\n    this.uploader = this.theme.addModule('uploader');\n    this.theme.addModule('input');\n    this.theme.addModule('uiNode');\n    this.theme.init();\n    this.emitter.on(_emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].events.EDITOR_CHANGE, type => {\n      if (type === _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].events.TEXT_CHANGE) {\n        this.root.classList.toggle('ql-blank', this.editor.isBlank());\n      }\n    });\n    this.emitter.on(_emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].events.SCROLL_UPDATE, (source, mutations) => {\n      const oldRange = this.selection.lastRange;\n      const [newRange] = this.selection.getRange();\n      const selectionInfo = oldRange && newRange ? {\n        oldRange,\n        newRange\n      } : undefined;\n      modify.call(this, () => this.editor.update(null, mutations, selectionInfo), source);\n    });\n    this.emitter.on(_emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].events.SCROLL_EMBED_UPDATE, (blot, delta) => {\n      const oldRange = this.selection.lastRange;\n      const [newRange] = this.selection.getRange();\n      const selectionInfo = oldRange && newRange ? {\n        oldRange,\n        newRange\n      } : undefined;\n      modify.call(this, () => {\n        const change = new quill_delta__WEBPACK_IMPORTED_MODULE_2__().retain(blot.offset(this)).retain({\n          [blot.statics.blotName]: delta\n        });\n        return this.editor.update(change, [], selectionInfo);\n      }, Quill.sources.USER);\n    });\n    if (html) {\n      const contents = this.clipboard.convert({\n        html: `${html}<p><br></p>`,\n        text: '\\n'\n      });\n      this.setContents(contents);\n    }\n    this.history.clear();\n    if (this.options.placeholder) {\n      this.root.setAttribute('data-placeholder', this.options.placeholder);\n    }\n    if (this.options.readOnly) {\n      this.disable();\n    }\n    this.allowReadOnlyEdits = false;\n  }\n  addContainer(container) {\n    let refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    if (typeof container === 'string') {\n      const className = container;\n      container = document.createElement('div');\n      container.classList.add(className);\n    }\n    this.container.insertBefore(container, refNode);\n    return container;\n  }\n  blur() {\n    this.selection.setRange(null);\n  }\n  deleteText(index, length, source) {\n    // @ts-expect-error\n    [index, length,, source] = overload(index, length, source);\n    return modify.call(this, () => {\n      return this.editor.deleteText(index, length);\n    }, source, index, -1 * length);\n  }\n  disable() {\n    this.enable(false);\n  }\n  editReadOnly(modifier) {\n    this.allowReadOnlyEdits = true;\n    const value = modifier();\n    this.allowReadOnlyEdits = false;\n    return value;\n  }\n  enable() {\n    let enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n    this.scroll.enable(enabled);\n    this.container.classList.toggle('ql-disabled', !enabled);\n  }\n  focus() {\n    let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    this.selection.focus();\n    if (!options.preventScroll) {\n      this.scrollSelectionIntoView();\n    }\n  }\n  format(name, value) {\n    let source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.API;\n    return modify.call(this, () => {\n      const range = this.getSelection(true);\n      let change = new quill_delta__WEBPACK_IMPORTED_MODULE_2__();\n      if (range == null) return change;\n      if (this.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_1__.Scope.BLOCK)) {\n        change = this.editor.formatLine(range.index, range.length, {\n          [name]: value\n        });\n      } else if (range.length === 0) {\n        this.selection.format(name, value);\n        return change;\n      } else {\n        change = this.editor.formatText(range.index, range.length, {\n          [name]: value\n        });\n      }\n      this.setSelection(range, _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n      return change;\n    }, source);\n  }\n  formatLine(index, length, name, value, source) {\n    let formats;\n    // eslint-disable-next-line prefer-const\n    [index, length, formats, source] = overload(index, length,\n    // @ts-expect-error\n    name, value, source);\n    return modify.call(this, () => {\n      return this.editor.formatLine(index, length, formats);\n    }, source, index, 0);\n  }\n  formatText(index, length, name, value, source) {\n    let formats;\n    // eslint-disable-next-line prefer-const\n    [index, length, formats, source] = overload(\n    // @ts-expect-error\n    index, length, name, value, source);\n    return modify.call(this, () => {\n      return this.editor.formatText(index, length, formats);\n    }, source, index, 0);\n  }\n  getBounds(index) {\n    let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    let bounds = null;\n    if (typeof index === 'number') {\n      bounds = this.selection.getBounds(index, length);\n    } else {\n      bounds = this.selection.getBounds(index.index, index.length);\n    }\n    if (!bounds) return null;\n    const containerBounds = this.container.getBoundingClientRect();\n    return {\n      bottom: bounds.bottom - containerBounds.top,\n      height: bounds.height,\n      left: bounds.left - containerBounds.left,\n      right: bounds.right - containerBounds.left,\n      top: bounds.top - containerBounds.top,\n      width: bounds.width\n    };\n  }\n  getContents() {\n    let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n    [index, length] = overload(index, length);\n    return this.editor.getContents(index, length);\n  }\n  getFormat() {\n    let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n    let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    if (typeof index === 'number') {\n      return this.editor.getFormat(index, length);\n    }\n    return this.editor.getFormat(index.index, index.length);\n  }\n  getIndex(blot) {\n    return blot.offset(this.scroll);\n  }\n  getLength() {\n    return this.scroll.length();\n  }\n  getLeaf(index) {\n    return this.scroll.leaf(index);\n  }\n  getLine(index) {\n    return this.scroll.line(index);\n  }\n  getLines() {\n    let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n    if (typeof index !== 'number') {\n      return this.scroll.lines(index.index, index.length);\n    }\n    return this.scroll.lines(index, length);\n  }\n  getModule(name) {\n    return this.theme.modules[name];\n  }\n  getSelection() {\n    let focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n    if (focus) this.focus();\n    this.update(); // Make sure we access getRange with editor in consistent state\n    return this.selection.getRange()[0];\n  }\n  getSemanticHTML() {\n    let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    let length = arguments.length > 1 ? arguments[1] : undefined;\n    if (typeof index === 'number') {\n      length = length ?? this.getLength() - index;\n    }\n    // @ts-expect-error\n    [index, length] = overload(index, length);\n    return this.editor.getHTML(index, length);\n  }\n  getText() {\n    let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n    let length = arguments.length > 1 ? arguments[1] : undefined;\n    if (typeof index === 'number') {\n      length = length ?? this.getLength() - index;\n    }\n    // @ts-expect-error\n    [index, length] = overload(index, length);\n    return this.editor.getText(index, length);\n  }\n  hasFocus() {\n    return this.selection.hasFocus();\n  }\n  insertEmbed(index, embed, value) {\n    let source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n    return modify.call(this, () => {\n      return this.editor.insertEmbed(index, embed, value);\n    }, source, index);\n  }\n  insertText(index, text, name, value, source) {\n    let formats;\n    // eslint-disable-next-line prefer-const\n    // @ts-expect-error\n    [index,, formats, source] = overload(index, 0, name, value, source);\n    return modify.call(this, () => {\n      return this.editor.insertText(index, text, formats);\n    }, source, index, text.length);\n  }\n  isEnabled() {\n    return this.scroll.isEnabled();\n  }\n  off() {\n    return this.emitter.off(...arguments);\n  }\n  on() {\n    return this.emitter.on(...arguments);\n  }\n  once() {\n    return this.emitter.once(...arguments);\n  }\n  removeFormat(index, length, source) {\n    [index, length,, source] = overload(index, length, source);\n    return modify.call(this, () => {\n      return this.editor.removeFormat(index, length);\n    }, source, index);\n  }\n  scrollRectIntoView(rect) {\n    (0,_utils_scrollRectIntoView_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(this.root, rect);\n  }\n\n  /**\n   * @deprecated Use Quill#scrollSelectionIntoView() instead.\n   */\n  scrollIntoView() {\n    console.warn('Quill#scrollIntoView() has been deprecated and will be removed in the near future. Please use Quill#scrollSelectionIntoView() instead.');\n    this.scrollSelectionIntoView();\n  }\n\n  /**\n   * Scroll the current selection into the visible area.\n   * If the selection is already visible, no scrolling will occur.\n   */\n  scrollSelectionIntoView() {\n    const range = this.selection.lastRange;\n    const bounds = range && this.selection.getBounds(range.index, range.length);\n    if (bounds) {\n      this.scrollRectIntoView(bounds);\n    }\n  }\n  setContents(delta) {\n    let source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.API;\n    return modify.call(this, () => {\n      delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2__(delta);\n      const length = this.getLength();\n      // Quill will set empty editor to \\n\n      const delete1 = this.editor.deleteText(0, length);\n      const applied = this.editor.insertContents(0, delta);\n      // Remove extra \\n from empty editor initialization\n      const delete2 = this.editor.deleteText(this.getLength() - 1, 1);\n      return delete1.compose(applied).compose(delete2);\n    }, source);\n  }\n  setSelection(index, length, source) {\n    if (index == null) {\n      // @ts-expect-error https://github.com/microsoft/TypeScript/issues/22609\n      this.selection.setRange(null, length || Quill.sources.API);\n    } else {\n      // @ts-expect-error\n      [index, length,, source] = overload(index, length, source);\n      this.selection.setRange(new _selection_js__WEBPACK_IMPORTED_MODULE_8__.Range(Math.max(0, index), length), source);\n      if (source !== _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT) {\n        this.scrollSelectionIntoView();\n      }\n    }\n  }\n  setText(text) {\n    let source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.API;\n    const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2__().insert(text);\n    return this.setContents(delta, source);\n  }\n  update() {\n    let source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER;\n    const change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n    this.selection.update(source);\n    // TODO this is usually undefined\n    return change;\n  }\n  updateContents(delta) {\n    let source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.API;\n    return modify.call(this, () => {\n      delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2__(delta);\n      return this.editor.applyDelta(delta);\n    }, source, true);\n  }\n}\nfunction resolveSelector(selector) {\n  return typeof selector === 'string' ? document.querySelector(selector) : selector;\n}\nfunction expandModuleConfig(config) {\n  return Object.entries(config ?? {}).reduce((expanded, _ref) => {\n    let [key, value] = _ref;\n    return {\n      ...expanded,\n      [key]: value === true ? {} : value\n    };\n  }, {});\n}\nfunction omitUndefinedValuesFromOptions(obj) {\n  return Object.fromEntries(Object.entries(obj).filter(entry => entry[1] !== undefined));\n}\nfunction expandConfig(containerOrSelector, options) {\n  const container = resolveSelector(containerOrSelector);\n  if (!container) {\n    throw new Error('Invalid Quill container');\n  }\n  const shouldUseDefaultTheme = !options.theme || options.theme === Quill.DEFAULTS.theme;\n  const theme = shouldUseDefaultTheme ? _theme_js__WEBPACK_IMPORTED_MODULE_10__[\"default\"] : Quill.import(`themes/${options.theme}`);\n  if (!theme) {\n    throw new Error(`Invalid theme ${options.theme}. Did you register it?`);\n  }\n  const {\n    modules: quillModuleDefaults,\n    ...quillDefaults\n  } = Quill.DEFAULTS;\n  const {\n    modules: themeModuleDefaults,\n    ...themeDefaults\n  } = theme.DEFAULTS;\n  let userModuleOptions = expandModuleConfig(options.modules);\n  // Special case toolbar shorthand\n  if (userModuleOptions != null && userModuleOptions.toolbar && userModuleOptions.toolbar.constructor !== Object) {\n    userModuleOptions = {\n      ...userModuleOptions,\n      toolbar: {\n        container: userModuleOptions.toolbar\n      }\n    };\n  }\n  const modules = (0,lodash_es__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, expandModuleConfig(quillModuleDefaults), expandModuleConfig(themeModuleDefaults), userModuleOptions);\n  const config = {\n    ...quillDefaults,\n    ...omitUndefinedValuesFromOptions(themeDefaults),\n    ...omitUndefinedValuesFromOptions(options)\n  };\n  let registry = options.registry;\n  if (registry) {\n    if (options.formats) {\n      debug.warn('Ignoring \"formats\" option because \"registry\" is specified');\n    }\n  } else {\n    registry = options.formats ? (0,_utils_createRegistryWithFormats_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(options.formats, config.registry, debug) : config.registry;\n  }\n  return {\n    ...config,\n    registry,\n    container,\n    theme,\n    modules: Object.entries(modules).reduce((modulesWithDefaults, _ref2) => {\n      let [name, value] = _ref2;\n      if (!value) return modulesWithDefaults;\n      const moduleClass = Quill.import(`modules/${name}`);\n      if (moduleClass == null) {\n        debug.error(`Cannot load ${name} module. Are you sure you registered it?`);\n        return modulesWithDefaults;\n      }\n      return {\n        ...modulesWithDefaults,\n        // @ts-expect-error\n        [name]: (0,lodash_es__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, moduleClass.DEFAULTS || {}, value)\n      };\n    }, {}),\n    bounds: resolveSelector(config.bounds)\n  };\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n  if (!this.isEnabled() && source === _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER && !this.allowReadOnlyEdits) {\n    return new quill_delta__WEBPACK_IMPORTED_MODULE_2__();\n  }\n  let range = index == null ? null : this.getSelection();\n  const oldDelta = this.editor.delta;\n  const change = modifier();\n  if (range != null) {\n    if (index === true) {\n      index = range.index; // eslint-disable-line prefer-destructuring\n    }\n    if (shift == null) {\n      range = shiftRange(range, change, source);\n    } else if (shift !== 0) {\n      // @ts-expect-error index should always be number\n      range = shiftRange(range, index, shift, source);\n    }\n    this.setSelection(range, _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n  }\n  if (change.length() > 0) {\n    const args = [_emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].events.TEXT_CHANGE, change, oldDelta, source];\n    this.emitter.emit(_emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].events.EDITOR_CHANGE, ...args);\n    if (source !== _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT) {\n      this.emitter.emit(...args);\n    }\n  }\n  return change;\n}\nfunction overload(index, length, name, value, source) {\n  let formats = {};\n  // @ts-expect-error\n  if (typeof index.index === 'number' && typeof index.length === 'number') {\n    // Allow for throwaway end (used by insertText/insertEmbed)\n    if (typeof length !== 'number') {\n      // @ts-expect-error\n      source = value;\n      value = name;\n      name = length;\n      // @ts-expect-error\n      length = index.length; // eslint-disable-line prefer-destructuring\n      // @ts-expect-error\n      index = index.index; // eslint-disable-line prefer-destructuring\n    } else {\n      // @ts-expect-error\n      length = index.length; // eslint-disable-line prefer-destructuring\n      // @ts-expect-error\n      index = index.index; // eslint-disable-line prefer-destructuring\n    }\n  } else if (typeof length !== 'number') {\n    // @ts-expect-error\n    source = value;\n    value = name;\n    name = length;\n    length = 0;\n  }\n  // Handle format being object, two format name/value strings or excluded\n  if (typeof name === 'object') {\n    // @ts-expect-error Fix me later\n    formats = name;\n    // @ts-expect-error\n    source = value;\n  } else if (typeof name === 'string') {\n    if (value != null) {\n      formats[name] = value;\n    } else {\n      // @ts-expect-error\n      source = name;\n    }\n  }\n  // Handle optional source\n  source = source || _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.API;\n  // @ts-expect-error\n  return [index, length, formats, source];\n}\nfunction shiftRange(range, index, lengthOrSource, source) {\n  const length = typeof lengthOrSource === 'number' ? lengthOrSource : 0;\n  if (range == null) return null;\n  let start;\n  let end;\n  // @ts-expect-error -- TODO: add a better type guard around `index`\n  if (index && typeof index.transformPosition === 'function') {\n    [start, end] = [range.index, range.index + range.length].map(pos =>\n    // @ts-expect-error -- TODO: add a better type guard around `index`\n    index.transformPosition(pos, source !== _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER));\n  } else {\n    [start, end] = [range.index, range.index + range.length].map(pos => {\n      // @ts-expect-error -- TODO: add a better type guard around `index`\n      if (pos < index || pos === index && source === _emitter_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER) return pos;\n      if (length >= 0) {\n        return pos + length;\n      }\n      // @ts-expect-error -- TODO: add a better type guard around `index`\n      return Math.max(index, pos + length);\n    });\n  }\n  return new _selection_js__WEBPACK_IMPORTED_MODULE_8__.Range(start, end - start);\n}\n\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/core/quill.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/core/selection.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/quill/core/selection.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Range: () => (/* binding */ Range),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var lodash_es__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash-es */ \"../react-ui/node_modules/lodash-es/cloneDeep.js\");\n/* harmony import */ var lodash_es__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash-es */ \"../react-ui/node_modules/lodash-es/isEqual.js\");\n/* harmony import */ var _emitter_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./emitter.js */ \"../react-ui/node_modules/quill/core/emitter.js\");\n/* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./logger.js */ \"../react-ui/node_modules/quill/core/logger.js\");\n\n\n\n\nconst debug = (0,_logger_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('quill:selection');\nclass Range {\n  constructor(index) {\n    let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    this.index = index;\n    this.length = length;\n  }\n}\nclass Selection {\n  constructor(scroll, emitter) {\n    this.emitter = emitter;\n    this.scroll = scroll;\n    this.composing = false;\n    this.mouseDown = false;\n    this.root = this.scroll.domNode;\n    // @ts-expect-error\n    this.cursor = this.scroll.create('cursor', this);\n    // savedRange is last non-null range\n    this.savedRange = new Range(0, 0);\n    this.lastRange = this.savedRange;\n    this.lastNative = null;\n    this.handleComposition();\n    this.handleDragging();\n    this.emitter.listenDOM('selectionchange', document, () => {\n      if (!this.mouseDown && !this.composing) {\n        setTimeout(this.update.bind(this, _emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.USER), 1);\n      }\n    });\n    this.emitter.on(_emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.SCROLL_BEFORE_UPDATE, () => {\n      if (!this.hasFocus()) return;\n      const native = this.getNativeRange();\n      if (native == null) return;\n      if (native.start.node === this.cursor.textNode) return; // cursor.restore() will handle\n      this.emitter.once(_emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.SCROLL_UPDATE, (source, mutations) => {\n        try {\n          if (this.root.contains(native.start.node) && this.root.contains(native.end.node)) {\n            this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n          }\n          const triggeredByTyping = mutations.some(mutation => mutation.type === 'characterData' || mutation.type === 'childList' || mutation.type === 'attributes' && mutation.target === this.root);\n          this.update(triggeredByTyping ? _emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.SILENT : source);\n        } catch (ignored) {\n          // ignore\n        }\n      });\n    });\n    this.emitter.on(_emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.SCROLL_OPTIMIZE, (mutations, context) => {\n      if (context.range) {\n        const {\n          startNode,\n          startOffset,\n          endNode,\n          endOffset\n        } = context.range;\n        this.setNativeRange(startNode, startOffset, endNode, endOffset);\n        this.update(_emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.SILENT);\n      }\n    });\n    this.update(_emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.SILENT);\n  }\n  handleComposition() {\n    this.emitter.on(_emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.COMPOSITION_BEFORE_START, () => {\n      this.composing = true;\n    });\n    this.emitter.on(_emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.COMPOSITION_END, () => {\n      this.composing = false;\n      if (this.cursor.parent) {\n        const range = this.cursor.restore();\n        if (!range) return;\n        setTimeout(() => {\n          this.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n        }, 1);\n      }\n    });\n  }\n  handleDragging() {\n    this.emitter.listenDOM('mousedown', document.body, () => {\n      this.mouseDown = true;\n    });\n    this.emitter.listenDOM('mouseup', document.body, () => {\n      this.mouseDown = false;\n      this.update(_emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.USER);\n    });\n  }\n  focus() {\n    if (this.hasFocus()) return;\n    this.root.focus({\n      preventScroll: true\n    });\n    this.setRange(this.savedRange);\n  }\n  format(format, value) {\n    this.scroll.update();\n    const nativeRange = this.getNativeRange();\n    if (nativeRange == null || !nativeRange.native.collapsed || this.scroll.query(format, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK)) return;\n    if (nativeRange.start.node !== this.cursor.textNode) {\n      const blot = this.scroll.find(nativeRange.start.node, false);\n      if (blot == null) return;\n      // TODO Give blot ability to not split\n      if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_0__.LeafBlot) {\n        const after = blot.split(nativeRange.start.offset);\n        blot.parent.insertBefore(this.cursor, after);\n      } else {\n        // @ts-expect-error TODO: nativeRange.start.node doesn't seem to match function signature\n        blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n      }\n      this.cursor.attach();\n    }\n    this.cursor.format(format, value);\n    this.scroll.optimize();\n    this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n    this.update();\n  }\n  getBounds(index) {\n    let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n    const scrollLength = this.scroll.length();\n    index = Math.min(index, scrollLength - 1);\n    length = Math.min(index + length, scrollLength - 1) - index;\n    let node;\n    let [leaf, offset] = this.scroll.leaf(index);\n    if (leaf == null) return null;\n    if (length > 0 && offset === leaf.length()) {\n      const [next] = this.scroll.leaf(index + 1);\n      if (next) {\n        const [line] = this.scroll.line(index);\n        const [nextLine] = this.scroll.line(index + 1);\n        if (line === nextLine) {\n          leaf = next;\n          offset = 0;\n        }\n      }\n    }\n    [node, offset] = leaf.position(offset, true);\n    const range = document.createRange();\n    if (length > 0) {\n      range.setStart(node, offset);\n      [leaf, offset] = this.scroll.leaf(index + length);\n      if (leaf == null) return null;\n      [node, offset] = leaf.position(offset, true);\n      range.setEnd(node, offset);\n      return range.getBoundingClientRect();\n    }\n    let side = 'left';\n    let rect;\n    if (node instanceof Text) {\n      // Return null if the text node is empty because it is\n      // not able to get a useful client rect:\n      // https://github.com/w3c/csswg-drafts/issues/2514.\n      // Empty text nodes are most likely caused by TextBlot#optimize()\n      // not getting called when editor content changes.\n      if (!node.data.length) {\n        return null;\n      }\n      if (offset < node.data.length) {\n        range.setStart(node, offset);\n        range.setEnd(node, offset + 1);\n      } else {\n        range.setStart(node, offset - 1);\n        range.setEnd(node, offset);\n        side = 'right';\n      }\n      rect = range.getBoundingClientRect();\n    } else {\n      if (!(leaf.domNode instanceof Element)) return null;\n      rect = leaf.domNode.getBoundingClientRect();\n      if (offset > 0) side = 'right';\n    }\n    return {\n      bottom: rect.top + rect.height,\n      height: rect.height,\n      left: rect[side],\n      right: rect[side],\n      top: rect.top,\n      width: 0\n    };\n  }\n  getNativeRange() {\n    const selection = document.getSelection();\n    if (selection == null || selection.rangeCount <= 0) return null;\n    const nativeRange = selection.getRangeAt(0);\n    if (nativeRange == null) return null;\n    const range = this.normalizeNative(nativeRange);\n    debug.info('getNativeRange', range);\n    return range;\n  }\n  getRange() {\n    const root = this.scroll.domNode;\n    if ('isConnected' in root && !root.isConnected) {\n      // document.getSelection() forces layout on Blink, so we trend to\n      // not calling it.\n      return [null, null];\n    }\n    const normalized = this.getNativeRange();\n    if (normalized == null) return [null, null];\n    const range = this.normalizedToRange(normalized);\n    return [range, normalized];\n  }\n  hasFocus() {\n    return document.activeElement === this.root || document.activeElement != null && contains(this.root, document.activeElement);\n  }\n  normalizedToRange(range) {\n    const positions = [[range.start.node, range.start.offset]];\n    if (!range.native.collapsed) {\n      positions.push([range.end.node, range.end.offset]);\n    }\n    const indexes = positions.map(position => {\n      const [node, offset] = position;\n      const blot = this.scroll.find(node, true);\n      // @ts-expect-error Fix me later\n      const index = blot.offset(this.scroll);\n      if (offset === 0) {\n        return index;\n      }\n      if (blot instanceof parchment__WEBPACK_IMPORTED_MODULE_0__.LeafBlot) {\n        return index + blot.index(node, offset);\n      }\n      // @ts-expect-error Fix me later\n      return index + blot.length();\n    });\n    const end = Math.min(Math.max(...indexes), this.scroll.length() - 1);\n    const start = Math.min(end, ...indexes);\n    return new Range(start, end - start);\n  }\n  normalizeNative(nativeRange) {\n    if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n      return null;\n    }\n    const range = {\n      start: {\n        node: nativeRange.startContainer,\n        offset: nativeRange.startOffset\n      },\n      end: {\n        node: nativeRange.endContainer,\n        offset: nativeRange.endOffset\n      },\n      native: nativeRange\n    };\n    [range.start, range.end].forEach(position => {\n      let {\n        node,\n        offset\n      } = position;\n      while (!(node instanceof Text) && node.childNodes.length > 0) {\n        if (node.childNodes.length > offset) {\n          node = node.childNodes[offset];\n          offset = 0;\n        } else if (node.childNodes.length === offset) {\n          // @ts-expect-error Fix me later\n          node = node.lastChild;\n          if (node instanceof Text) {\n            offset = node.data.length;\n          } else if (node.childNodes.length > 0) {\n            // Container case\n            offset = node.childNodes.length;\n          } else {\n            // Embed case\n            offset = node.childNodes.length + 1;\n          }\n        } else {\n          break;\n        }\n      }\n      position.node = node;\n      position.offset = offset;\n    });\n    return range;\n  }\n  rangeToNative(range) {\n    const scrollLength = this.scroll.length();\n    const getPosition = (index, inclusive) => {\n      index = Math.min(scrollLength - 1, index);\n      const [leaf, leafOffset] = this.scroll.leaf(index);\n      return leaf ? leaf.position(leafOffset, inclusive) : [null, -1];\n    };\n    return [...getPosition(range.index, false), ...getPosition(range.index + range.length, true)];\n  }\n  setNativeRange(startNode, startOffset) {\n    let endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n    let endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n    let force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n    debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n    if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null ||\n    // @ts-expect-error Fix me later\n    endNode.parentNode == null)) {\n      return;\n    }\n    const selection = document.getSelection();\n    if (selection == null) return;\n    if (startNode != null) {\n      if (!this.hasFocus()) this.root.focus({\n        preventScroll: true\n      });\n      const {\n        native\n      } = this.getNativeRange() || {};\n      if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n        if (startNode instanceof Element && startNode.tagName === 'BR') {\n          // @ts-expect-error Fix me later\n          startOffset = Array.from(startNode.parentNode.childNodes).indexOf(startNode);\n          startNode = startNode.parentNode;\n        }\n        if (endNode instanceof Element && endNode.tagName === 'BR') {\n          // @ts-expect-error Fix me later\n          endOffset = Array.from(endNode.parentNode.childNodes).indexOf(endNode);\n          endNode = endNode.parentNode;\n        }\n        const range = document.createRange();\n        // @ts-expect-error Fix me later\n        range.setStart(startNode, startOffset);\n        // @ts-expect-error Fix me later\n        range.setEnd(endNode, endOffset);\n        selection.removeAllRanges();\n        selection.addRange(range);\n      }\n    } else {\n      selection.removeAllRanges();\n      this.root.blur();\n    }\n  }\n  setRange(range) {\n    let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    let source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.API;\n    if (typeof force === 'string') {\n      source = force;\n      force = false;\n    }\n    debug.info('setRange', range);\n    if (range != null) {\n      const args = this.rangeToNative(range);\n      this.setNativeRange(...args, force);\n    } else {\n      this.setNativeRange(null);\n    }\n    this.update(source);\n  }\n  update() {\n    let source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.USER;\n    const oldRange = this.lastRange;\n    const [lastRange, nativeRange] = this.getRange();\n    this.lastRange = lastRange;\n    this.lastNative = nativeRange;\n    if (this.lastRange != null) {\n      this.savedRange = this.lastRange;\n    }\n    if (!(0,lodash_es__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(oldRange, this.lastRange)) {\n      if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n        const range = this.cursor.restore();\n        if (range) {\n          this.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n        }\n      }\n      const args = [_emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.SELECTION_CHANGE, (0,lodash_es__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(this.lastRange), (0,lodash_es__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(oldRange), source];\n      this.emitter.emit(_emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.EDITOR_CHANGE, ...args);\n      if (source !== _emitter_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.SILENT) {\n        this.emitter.emit(...args);\n      }\n    }\n  }\n}\nfunction contains(parent, descendant) {\n  try {\n    // Firefox inserts inaccessible nodes around video elements\n    descendant.parentNode; // eslint-disable-line @typescript-eslint/no-unused-expressions\n  } catch (e) {\n    return false;\n  }\n  return parent.contains(descendant);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Selection);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/core/selection.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/core/theme.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/quill/core/theme.js ***!
  \****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nclass Theme {\n  static DEFAULTS = {\n    modules: {}\n  };\n  static themes = {\n    default: Theme\n  };\n  modules = {};\n  constructor(quill, options) {\n    this.quill = quill;\n    this.options = options;\n  }\n  init() {\n    Object.keys(this.options.modules).forEach(name => {\n      if (this.modules[name] == null) {\n        this.addModule(name);\n      }\n    });\n  }\n  addModule(name) {\n    // @ts-expect-error\n    const ModuleClass = this.quill.constructor.import(`modules/${name}`);\n    this.modules[name] = new ModuleClass(this.quill, this.options.modules[name] || {});\n    return this.modules[name];\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Theme);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/core/theme.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/core/utils/createRegistryWithFormats.js":
/*!******************************************************************************!*\
  !*** ../react-ui/node_modules/quill/core/utils/createRegistryWithFormats.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n\nconst MAX_REGISTER_ITERATIONS = 100;\nconst CORE_FORMATS = ['block', 'break', 'cursor', 'inline', 'scroll', 'text'];\nconst createRegistryWithFormats = (formats, sourceRegistry, debug) => {\n  const registry = new parchment__WEBPACK_IMPORTED_MODULE_0__.Registry();\n  CORE_FORMATS.forEach(name => {\n    const coreBlot = sourceRegistry.query(name);\n    if (coreBlot) registry.register(coreBlot);\n  });\n  formats.forEach(name => {\n    let format = sourceRegistry.query(name);\n    if (!format) {\n      debug.error(`Cannot register \"${name}\" specified in \"formats\" config. Are you sure it was registered?`);\n    }\n    let iterations = 0;\n    while (format) {\n      registry.register(format);\n      format = 'blotName' in format ? format.requiredContainer ?? null : null;\n      iterations += 1;\n      if (iterations > MAX_REGISTER_ITERATIONS) {\n        debug.error(`Cycle detected in registering blot requiredContainer: \"${name}\"`);\n        break;\n      }\n    }\n  });\n  return registry;\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (createRegistryWithFormats);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/core/utils/createRegistryWithFormats.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/core/utils/scrollRectIntoView.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/quill/core/utils/scrollRectIntoView.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst getParentElement = element => element.parentElement || element.getRootNode().host || null;\nconst getElementRect = element => {\n  const rect = element.getBoundingClientRect();\n  const scaleX = 'offsetWidth' in element && Math.abs(rect.width) / element.offsetWidth || 1;\n  const scaleY = 'offsetHeight' in element && Math.abs(rect.height) / element.offsetHeight || 1;\n  return {\n    top: rect.top,\n    right: rect.left + element.clientWidth * scaleX,\n    bottom: rect.top + element.clientHeight * scaleY,\n    left: rect.left\n  };\n};\nconst paddingValueToInt = value => {\n  const number = parseInt(value, 10);\n  return Number.isNaN(number) ? 0 : number;\n};\n\n// Follow the steps described in https://www.w3.org/TR/cssom-view-1/#element-scrolling-members,\n// assuming that the scroll option is set to 'nearest'.\nconst getScrollDistance = (targetStart, targetEnd, scrollStart, scrollEnd, scrollPaddingStart, scrollPaddingEnd) => {\n  if (targetStart < scrollStart && targetEnd > scrollEnd) {\n    return 0;\n  }\n  if (targetStart < scrollStart) {\n    return -(scrollStart - targetStart + scrollPaddingStart);\n  }\n  if (targetEnd > scrollEnd) {\n    return targetEnd - targetStart > scrollEnd - scrollStart ? targetStart + scrollPaddingStart - scrollStart : targetEnd - scrollEnd + scrollPaddingEnd;\n  }\n  return 0;\n};\nconst scrollRectIntoView = (root, targetRect) => {\n  const document = root.ownerDocument;\n  let rect = targetRect;\n  let current = root;\n  while (current) {\n    const isDocumentBody = current === document.body;\n    const bounding = isDocumentBody ? {\n      top: 0,\n      right: window.visualViewport?.width ?? document.documentElement.clientWidth,\n      bottom: window.visualViewport?.height ?? document.documentElement.clientHeight,\n      left: 0\n    } : getElementRect(current);\n    const style = getComputedStyle(current);\n    const scrollDistanceX = getScrollDistance(rect.left, rect.right, bounding.left, bounding.right, paddingValueToInt(style.scrollPaddingLeft), paddingValueToInt(style.scrollPaddingRight));\n    const scrollDistanceY = getScrollDistance(rect.top, rect.bottom, bounding.top, bounding.bottom, paddingValueToInt(style.scrollPaddingTop), paddingValueToInt(style.scrollPaddingBottom));\n    if (scrollDistanceX || scrollDistanceY) {\n      if (isDocumentBody) {\n        document.defaultView?.scrollBy(scrollDistanceX, scrollDistanceY);\n      } else {\n        const {\n          scrollLeft,\n          scrollTop\n        } = current;\n        if (scrollDistanceY) {\n          current.scrollTop += scrollDistanceY;\n        }\n        if (scrollDistanceX) {\n          current.scrollLeft += scrollDistanceX;\n        }\n        const scrolledLeft = current.scrollLeft - scrollLeft;\n        const scrolledTop = current.scrollTop - scrollTop;\n        rect = {\n          left: rect.left - scrolledLeft,\n          top: rect.top - scrolledTop,\n          right: rect.right - scrolledLeft,\n          bottom: rect.bottom - scrolledTop\n        };\n      }\n    }\n    current = isDocumentBody || style.position === 'fixed' ? null : getParentElement(current);\n  }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (scrollRectIntoView);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/core/utils/scrollRectIntoView.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/align.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/align.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   AlignAttribute: () => (/* binding */ AlignAttribute),\n/* harmony export */   AlignClass: () => (/* binding */ AlignClass),\n/* harmony export */   AlignStyle: () => (/* binding */ AlignStyle)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n\nconst config = {\n  scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK,\n  whitelist: ['right', 'center', 'justify']\n};\nconst AlignAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__.Attributor('align', 'align', config);\nconst AlignClass = new parchment__WEBPACK_IMPORTED_MODULE_0__.ClassAttributor('align', 'ql-align', config);\nconst AlignStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__.StyleAttributor('align', 'text-align', config);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/align.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/background.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/background.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   BackgroundClass: () => (/* binding */ BackgroundClass),\n/* harmony export */   BackgroundStyle: () => (/* binding */ BackgroundStyle)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var _color_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./color.js */ \"../react-ui/node_modules/quill/formats/color.js\");\n\n\nconst BackgroundClass = new parchment__WEBPACK_IMPORTED_MODULE_0__.ClassAttributor('background', 'ql-bg', {\n  scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE\n});\nconst BackgroundStyle = new _color_js__WEBPACK_IMPORTED_MODULE_1__.ColorAttributor('background', 'background-color', {\n  scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE\n});\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/background.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/blockquote.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/blockquote.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _blots_block_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/block.js */ \"../react-ui/node_modules/quill/blots/block.js\");\n\nclass Blockquote extends _blots_block_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  static blotName = 'blockquote';\n  static tagName = 'blockquote';\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Blockquote);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/blockquote.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/bold.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/bold.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _blots_inline_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/inline.js */ \"../react-ui/node_modules/quill/blots/inline.js\");\n\nclass Bold extends _blots_inline_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  static blotName = 'bold';\n  static tagName = ['STRONG', 'B'];\n  static create() {\n    return super.create();\n  }\n  static formats() {\n    return true;\n  }\n  optimize(context) {\n    super.optimize(context);\n    if (this.domNode.tagName !== this.statics.tagName[0]) {\n      this.replaceWith(this.statics.blotName);\n    }\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Bold);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/bold.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/code.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/code.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Code: () => (/* binding */ Code),\n/* harmony export */   CodeBlockContainer: () => (/* binding */ CodeBlockContainer),\n/* harmony export */   \"default\": () => (/* binding */ CodeBlock)\n/* harmony export */ });\n/* harmony import */ var _blots_block_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/block.js */ \"../react-ui/node_modules/quill/blots/block.js\");\n/* harmony import */ var _blots_break_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../blots/break.js */ \"../react-ui/node_modules/quill/blots/break.js\");\n/* harmony import */ var _blots_cursor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../blots/cursor.js */ \"../react-ui/node_modules/quill/blots/cursor.js\");\n/* harmony import */ var _blots_inline_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../blots/inline.js */ \"../react-ui/node_modules/quill/blots/inline.js\");\n/* harmony import */ var _blots_text_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../blots/text.js */ \"../react-ui/node_modules/quill/blots/text.js\");\n/* harmony import */ var _blots_container_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../blots/container.js */ \"../react-ui/node_modules/quill/blots/container.js\");\n/* harmony import */ var _core_quill_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/quill.js */ \"../react-ui/node_modules/quill/core/quill.js\");\n\n\n\n\n\n\n\nclass CodeBlockContainer extends _blots_container_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"] {\n  static create(value) {\n    const domNode = super.create(value);\n    domNode.setAttribute('spellcheck', 'false');\n    return domNode;\n  }\n  code(index, length) {\n    return this.children\n    // @ts-expect-error\n    .map(child => child.length() <= 1 ? '' : child.domNode.innerText).join('\\n').slice(index, index + length);\n  }\n  html(index, length) {\n    // `\\n`s are needed in order to support empty lines at the beginning and the end.\n    // https://html.spec.whatwg.org/multipage/syntax.html#element-restrictions\n    return `<pre>\\n${(0,_blots_text_js__WEBPACK_IMPORTED_MODULE_4__.escapeText)(this.code(index, length))}\\n</pre>`;\n  }\n}\nclass CodeBlock extends _blots_block_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  static TAB = '  ';\n  static register() {\n    _core_quill_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].register(CodeBlockContainer);\n  }\n}\nclass Code extends _blots_inline_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"] {}\nCode.blotName = 'code';\nCode.tagName = 'CODE';\nCodeBlock.blotName = 'code-block';\nCodeBlock.className = 'ql-code-block';\nCodeBlock.tagName = 'DIV';\nCodeBlockContainer.blotName = 'code-block-container';\nCodeBlockContainer.className = 'ql-code-block-container';\nCodeBlockContainer.tagName = 'DIV';\nCodeBlockContainer.allowedChildren = [CodeBlock];\nCodeBlock.allowedChildren = [_blots_text_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _blots_break_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _blots_cursor_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"]];\nCodeBlock.requiredContainer = CodeBlockContainer;\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/code.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/color.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/color.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ColorAttributor: () => (/* binding */ ColorAttributor),\n/* harmony export */   ColorClass: () => (/* binding */ ColorClass),\n/* harmony export */   ColorStyle: () => (/* binding */ ColorStyle)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n\nclass ColorAttributor extends parchment__WEBPACK_IMPORTED_MODULE_0__.StyleAttributor {\n  value(domNode) {\n    let value = super.value(domNode);\n    if (!value.startsWith('rgb(')) return value;\n    value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n    const hex = value.split(',').map(component => `00${parseInt(component, 10).toString(16)}`.slice(-2)).join('');\n    return `#${hex}`;\n  }\n}\nconst ColorClass = new parchment__WEBPACK_IMPORTED_MODULE_0__.ClassAttributor('color', 'ql-color', {\n  scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE\n});\nconst ColorStyle = new ColorAttributor('color', 'color', {\n  scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE\n});\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/color.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/direction.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/direction.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DirectionAttribute: () => (/* binding */ DirectionAttribute),\n/* harmony export */   DirectionClass: () => (/* binding */ DirectionClass),\n/* harmony export */   DirectionStyle: () => (/* binding */ DirectionStyle)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n\nconst config = {\n  scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK,\n  whitelist: ['rtl']\n};\nconst DirectionAttribute = new parchment__WEBPACK_IMPORTED_MODULE_0__.Attributor('direction', 'dir', config);\nconst DirectionClass = new parchment__WEBPACK_IMPORTED_MODULE_0__.ClassAttributor('direction', 'ql-direction', config);\nconst DirectionStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__.StyleAttributor('direction', 'direction', config);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/direction.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/font.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/font.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   FontClass: () => (/* binding */ FontClass),\n/* harmony export */   FontStyle: () => (/* binding */ FontStyle)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n\nconst config = {\n  scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE,\n  whitelist: ['serif', 'monospace']\n};\nconst FontClass = new parchment__WEBPACK_IMPORTED_MODULE_0__.ClassAttributor('font', 'ql-font', config);\nclass FontStyleAttributor extends parchment__WEBPACK_IMPORTED_MODULE_0__.StyleAttributor {\n  value(node) {\n    return super.value(node).replace(/[\"']/g, '');\n  }\n}\nconst FontStyle = new FontStyleAttributor('font', 'font-family', config);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/font.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/formula.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/formula.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _blots_embed_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/embed.js */ \"../react-ui/node_modules/quill/blots/embed.js\");\n\nclass Formula extends _blots_embed_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  static blotName = 'formula';\n  static className = 'ql-formula';\n  static tagName = 'SPAN';\n  static create(value) {\n    // @ts-expect-error\n    if (window.katex == null) {\n      throw new Error('Formula module requires KaTeX.');\n    }\n    const node = super.create(value);\n    if (typeof value === 'string') {\n      // @ts-expect-error\n      window.katex.render(value, node, {\n        throwOnError: false,\n        errorColor: '#f00'\n      });\n      node.setAttribute('data-value', value);\n    }\n    return node;\n  }\n  static value(domNode) {\n    return domNode.getAttribute('data-value');\n  }\n  html() {\n    const {\n      formula\n    } = this.value();\n    return `<span>${formula}</span>`;\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Formula);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/formula.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/header.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/header.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _blots_block_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/block.js */ \"../react-ui/node_modules/quill/blots/block.js\");\n\nclass Header extends _blots_block_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  static blotName = 'header';\n  static tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n  static formats(domNode) {\n    return this.tagName.indexOf(domNode.tagName) + 1;\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Header);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/header.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/image.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/image.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var _link_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./link.js */ \"../react-ui/node_modules/quill/formats/link.js\");\n\n\nconst ATTRIBUTES = ['alt', 'height', 'width'];\nclass Image extends parchment__WEBPACK_IMPORTED_MODULE_0__.EmbedBlot {\n  static blotName = 'image';\n  static tagName = 'IMG';\n  static create(value) {\n    const node = super.create(value);\n    if (typeof value === 'string') {\n      node.setAttribute('src', this.sanitize(value));\n    }\n    return node;\n  }\n  static formats(domNode) {\n    return ATTRIBUTES.reduce((formats, attribute) => {\n      if (domNode.hasAttribute(attribute)) {\n        formats[attribute] = domNode.getAttribute(attribute);\n      }\n      return formats;\n    }, {});\n  }\n  static match(url) {\n    return /\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url);\n  }\n  static sanitize(url) {\n    return (0,_link_js__WEBPACK_IMPORTED_MODULE_1__.sanitize)(url, ['http', 'https', 'data']) ? url : '//:0';\n  }\n  static value(domNode) {\n    return domNode.getAttribute('src');\n  }\n  format(name, value) {\n    if (ATTRIBUTES.indexOf(name) > -1) {\n      if (value) {\n        this.domNode.setAttribute(name, value);\n      } else {\n        this.domNode.removeAttribute(name);\n      }\n    } else {\n      super.format(name, value);\n    }\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Image);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/image.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/indent.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/indent.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n\nclass IndentAttributor extends parchment__WEBPACK_IMPORTED_MODULE_0__.ClassAttributor {\n  add(node, value) {\n    let normalizedValue = 0;\n    if (value === '+1' || value === '-1') {\n      const indent = this.value(node) || 0;\n      normalizedValue = value === '+1' ? indent + 1 : indent - 1;\n    } else if (typeof value === 'number') {\n      normalizedValue = value;\n    }\n    if (normalizedValue === 0) {\n      this.remove(node);\n      return true;\n    }\n    return super.add(node, normalizedValue.toString());\n  }\n  canAdd(node, value) {\n    return super.canAdd(node, value) || super.canAdd(node, parseInt(value, 10));\n  }\n  value(node) {\n    return parseInt(super.value(node), 10) || undefined; // Don't return NaN\n  }\n}\nconst IndentClass = new IndentAttributor('indent', 'ql-indent', {\n  scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK,\n  // @ts-expect-error\n  whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (IndentClass);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/indent.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/italic.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/italic.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _bold_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bold.js */ \"../react-ui/node_modules/quill/formats/bold.js\");\n\nclass Italic extends _bold_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  static blotName = 'italic';\n  static tagName = ['EM', 'I'];\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Italic);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/italic.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/link.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/link.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Link),\n/* harmony export */   sanitize: () => (/* binding */ sanitize)\n/* harmony export */ });\n/* harmony import */ var _blots_inline_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/inline.js */ \"../react-ui/node_modules/quill/blots/inline.js\");\n\nclass Link extends _blots_inline_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  static blotName = 'link';\n  static tagName = 'A';\n  static SANITIZED_URL = 'about:blank';\n  static PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel', 'sms'];\n  static create(value) {\n    const node = super.create(value);\n    node.setAttribute('href', this.sanitize(value));\n    node.setAttribute('rel', 'noopener noreferrer');\n    node.setAttribute('target', '_blank');\n    return node;\n  }\n  static formats(domNode) {\n    return domNode.getAttribute('href');\n  }\n  static sanitize(url) {\n    return sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n  }\n  format(name, value) {\n    if (name !== this.statics.blotName || !value) {\n      super.format(name, value);\n    } else {\n      // @ts-expect-error\n      this.domNode.setAttribute('href', this.constructor.sanitize(value));\n    }\n  }\n}\nfunction sanitize(url, protocols) {\n  const anchor = document.createElement('a');\n  anchor.href = url;\n  const protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n  return protocols.indexOf(protocol) > -1;\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/link.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/list.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/list.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ListContainer: () => (/* binding */ ListContainer),\n/* harmony export */   \"default\": () => (/* binding */ ListItem)\n/* harmony export */ });\n/* harmony import */ var _blots_block_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/block.js */ \"../react-ui/node_modules/quill/blots/block.js\");\n/* harmony import */ var _blots_container_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../blots/container.js */ \"../react-ui/node_modules/quill/blots/container.js\");\n/* harmony import */ var _core_quill_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/quill.js */ \"../react-ui/node_modules/quill/core/quill.js\");\n\n\n\nclass ListContainer extends _blots_container_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {}\nListContainer.blotName = 'list-container';\nListContainer.tagName = 'OL';\nclass ListItem extends _blots_block_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  static create(value) {\n    const node = super.create();\n    node.setAttribute('data-list', value);\n    return node;\n  }\n  static formats(domNode) {\n    return domNode.getAttribute('data-list') || undefined;\n  }\n  static register() {\n    _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].register(ListContainer);\n  }\n  constructor(scroll, domNode) {\n    super(scroll, domNode);\n    const ui = domNode.ownerDocument.createElement('span');\n    const listEventHandler = e => {\n      if (!scroll.isEnabled()) return;\n      const format = this.statics.formats(domNode, scroll);\n      if (format === 'checked') {\n        this.format('list', 'unchecked');\n        e.preventDefault();\n      } else if (format === 'unchecked') {\n        this.format('list', 'checked');\n        e.preventDefault();\n      }\n    };\n    ui.addEventListener('mousedown', listEventHandler);\n    ui.addEventListener('touchstart', listEventHandler);\n    this.attachUI(ui);\n  }\n  format(name, value) {\n    if (name === this.statics.blotName && value) {\n      this.domNode.setAttribute('data-list', value);\n    } else {\n      super.format(name, value);\n    }\n  }\n}\nListItem.blotName = 'list';\nListItem.tagName = 'LI';\nListContainer.allowedChildren = [ListItem];\nListItem.requiredContainer = ListContainer;\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/list.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/script.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/script.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _blots_inline_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/inline.js */ \"../react-ui/node_modules/quill/blots/inline.js\");\n\nclass Script extends _blots_inline_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  static blotName = 'script';\n  static tagName = ['SUB', 'SUP'];\n  static create(value) {\n    if (value === 'super') {\n      return document.createElement('sup');\n    }\n    if (value === 'sub') {\n      return document.createElement('sub');\n    }\n    return super.create(value);\n  }\n  static formats(domNode) {\n    if (domNode.tagName === 'SUB') return 'sub';\n    if (domNode.tagName === 'SUP') return 'super';\n    return undefined;\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Script);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/script.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/size.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/size.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   SizeClass: () => (/* binding */ SizeClass),\n/* harmony export */   SizeStyle: () => (/* binding */ SizeStyle)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n\nconst SizeClass = new parchment__WEBPACK_IMPORTED_MODULE_0__.ClassAttributor('size', 'ql-size', {\n  scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE,\n  whitelist: ['small', 'large', 'huge']\n});\nconst SizeStyle = new parchment__WEBPACK_IMPORTED_MODULE_0__.StyleAttributor('size', 'font-size', {\n  scope: parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.INLINE,\n  whitelist: ['10px', '18px', '32px']\n});\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/size.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/strike.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/strike.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _bold_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bold.js */ \"../react-ui/node_modules/quill/formats/bold.js\");\n\nclass Strike extends _bold_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  static blotName = 'strike';\n  static tagName = ['S', 'STRIKE'];\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Strike);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/strike.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/table.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/table.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   TableBody: () => (/* binding */ TableBody),\n/* harmony export */   TableCell: () => (/* binding */ TableCell),\n/* harmony export */   TableContainer: () => (/* binding */ TableContainer),\n/* harmony export */   TableRow: () => (/* binding */ TableRow),\n/* harmony export */   tableId: () => (/* binding */ tableId)\n/* harmony export */ });\n/* harmony import */ var _blots_block_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/block.js */ \"../react-ui/node_modules/quill/blots/block.js\");\n/* harmony import */ var _blots_container_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../blots/container.js */ \"../react-ui/node_modules/quill/blots/container.js\");\n\n\nclass TableCell extends _blots_block_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  static blotName = 'table';\n  static tagName = 'TD';\n  static create(value) {\n    const node = super.create();\n    if (value) {\n      node.setAttribute('data-row', value);\n    } else {\n      node.setAttribute('data-row', tableId());\n    }\n    return node;\n  }\n  static formats(domNode) {\n    if (domNode.hasAttribute('data-row')) {\n      return domNode.getAttribute('data-row');\n    }\n    return undefined;\n  }\n  cellOffset() {\n    if (this.parent) {\n      return this.parent.children.indexOf(this);\n    }\n    return -1;\n  }\n  format(name, value) {\n    if (name === TableCell.blotName && value) {\n      this.domNode.setAttribute('data-row', value);\n    } else {\n      super.format(name, value);\n    }\n  }\n  row() {\n    return this.parent;\n  }\n  rowOffset() {\n    if (this.row()) {\n      return this.row().rowOffset();\n    }\n    return -1;\n  }\n  table() {\n    return this.row() && this.row().table();\n  }\n}\nclass TableRow extends _blots_container_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n  static blotName = 'table-row';\n  static tagName = 'TR';\n  checkMerge() {\n    // @ts-expect-error\n    if (super.checkMerge() && this.next.children.head != null) {\n      // @ts-expect-error\n      const thisHead = this.children.head.formats();\n      // @ts-expect-error\n      const thisTail = this.children.tail.formats();\n      // @ts-expect-error\n      const nextHead = this.next.children.head.formats();\n      // @ts-expect-error\n      const nextTail = this.next.children.tail.formats();\n      return thisHead.table === thisTail.table && thisHead.table === nextHead.table && thisHead.table === nextTail.table;\n    }\n    return false;\n  }\n  optimize(context) {\n    super.optimize(context);\n    this.children.forEach(child => {\n      if (child.next == null) return;\n      const childFormats = child.formats();\n      const nextFormats = child.next.formats();\n      if (childFormats.table !== nextFormats.table) {\n        const next = this.splitAfter(child);\n        if (next) {\n          // @ts-expect-error TODO: parameters of optimize() should be a optional\n          next.optimize();\n        }\n        // We might be able to merge with prev now\n        if (this.prev) {\n          // @ts-expect-error TODO: parameters of optimize() should be a optional\n          this.prev.optimize();\n        }\n      }\n    });\n  }\n  rowOffset() {\n    if (this.parent) {\n      return this.parent.children.indexOf(this);\n    }\n    return -1;\n  }\n  table() {\n    return this.parent && this.parent.parent;\n  }\n}\nclass TableBody extends _blots_container_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n  static blotName = 'table-body';\n  static tagName = 'TBODY';\n}\nclass TableContainer extends _blots_container_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n  static blotName = 'table-container';\n  static tagName = 'TABLE';\n  balanceCells() {\n    const rows = this.descendants(TableRow);\n    const maxColumns = rows.reduce((max, row) => {\n      return Math.max(row.children.length, max);\n    }, 0);\n    rows.forEach(row => {\n      new Array(maxColumns - row.children.length).fill(0).forEach(() => {\n        let value;\n        if (row.children.head != null) {\n          value = TableCell.formats(row.children.head.domNode);\n        }\n        const blot = this.scroll.create(TableCell.blotName, value);\n        row.appendChild(blot);\n        // @ts-expect-error TODO: parameters of optimize() should be a optional\n        blot.optimize(); // Add break blot\n      });\n    });\n  }\n  cells(column) {\n    return this.rows().map(row => row.children.at(column));\n  }\n  deleteColumn(index) {\n    // @ts-expect-error\n    const [body] = this.descendant(TableBody);\n    if (body == null || body.children.head == null) return;\n    body.children.forEach(row => {\n      const cell = row.children.at(index);\n      if (cell != null) {\n        cell.remove();\n      }\n    });\n  }\n  insertColumn(index) {\n    // @ts-expect-error\n    const [body] = this.descendant(TableBody);\n    if (body == null || body.children.head == null) return;\n    body.children.forEach(row => {\n      const ref = row.children.at(index);\n      // @ts-expect-error\n      const value = TableCell.formats(row.children.head.domNode);\n      const cell = this.scroll.create(TableCell.blotName, value);\n      row.insertBefore(cell, ref);\n    });\n  }\n  insertRow(index) {\n    // @ts-expect-error\n    const [body] = this.descendant(TableBody);\n    if (body == null || body.children.head == null) return;\n    const id = tableId();\n    const row = this.scroll.create(TableRow.blotName);\n    body.children.head.children.forEach(() => {\n      const cell = this.scroll.create(TableCell.blotName, id);\n      row.appendChild(cell);\n    });\n    const ref = body.children.at(index);\n    body.insertBefore(row, ref);\n  }\n  rows() {\n    const body = this.children.head;\n    if (body == null) return [];\n    return body.children.map(row => row);\n  }\n}\nTableContainer.allowedChildren = [TableBody];\nTableBody.requiredContainer = TableContainer;\nTableBody.allowedChildren = [TableRow];\nTableRow.requiredContainer = TableBody;\nTableRow.allowedChildren = [TableCell];\nTableCell.requiredContainer = TableRow;\nfunction tableId() {\n  const id = Math.random().toString(36).slice(2, 6);\n  return `row-${id}`;\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/table.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/underline.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/underline.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _blots_inline_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/inline.js */ \"../react-ui/node_modules/quill/blots/inline.js\");\n\nclass Underline extends _blots_inline_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  static blotName = 'underline';\n  static tagName = 'U';\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Underline);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/underline.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/formats/video.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/quill/formats/video.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _blots_block_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../blots/block.js */ \"../react-ui/node_modules/quill/blots/block.js\");\n/* harmony import */ var _link_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./link.js */ \"../react-ui/node_modules/quill/formats/link.js\");\n\n\nconst ATTRIBUTES = ['height', 'width'];\nclass Video extends _blots_block_js__WEBPACK_IMPORTED_MODULE_0__.BlockEmbed {\n  static blotName = 'video';\n  static className = 'ql-video';\n  static tagName = 'IFRAME';\n  static create(value) {\n    const node = super.create(value);\n    node.setAttribute('frameborder', '0');\n    node.setAttribute('allowfullscreen', 'true');\n    node.setAttribute('src', this.sanitize(value));\n    return node;\n  }\n  static formats(domNode) {\n    return ATTRIBUTES.reduce((formats, attribute) => {\n      if (domNode.hasAttribute(attribute)) {\n        formats[attribute] = domNode.getAttribute(attribute);\n      }\n      return formats;\n    }, {});\n  }\n  static sanitize(url) {\n    return _link_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sanitize(url);\n  }\n  static value(domNode) {\n    return domNode.getAttribute('src');\n  }\n  format(name, value) {\n    if (ATTRIBUTES.indexOf(name) > -1) {\n      if (value) {\n        this.domNode.setAttribute(name, value);\n      } else {\n        this.domNode.removeAttribute(name);\n      }\n    } else {\n      super.format(name, value);\n    }\n  }\n  html() {\n    const {\n      video\n    } = this.value();\n    return `<a href=\"${video}\">${video}</a>`;\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Video);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/formats/video.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/modules/clipboard.js":
/*!***********************************************************!*\
  !*** ../react-ui/node_modules/quill/modules/clipboard.js ***!
  \***********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Clipboard),\n/* harmony export */   matchAttributor: () => (/* binding */ matchAttributor),\n/* harmony export */   matchBlot: () => (/* binding */ matchBlot),\n/* harmony export */   matchNewline: () => (/* binding */ matchNewline),\n/* harmony export */   matchText: () => (/* binding */ matchText),\n/* harmony export */   traverse: () => (/* binding */ traverse)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! quill-delta */ \"../react-ui/node_modules/quill-delta/dist/Delta.js\");\n/* harmony import */ var _blots_block_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../blots/block.js */ \"../react-ui/node_modules/quill/blots/block.js\");\n/* harmony import */ var _core_logger_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/logger.js */ \"../react-ui/node_modules/quill/core/logger.js\");\n/* harmony import */ var _core_module_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/module.js */ \"../react-ui/node_modules/quill/core/module.js\");\n/* harmony import */ var _core_quill_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/quill.js */ \"../react-ui/node_modules/quill/core/quill.js\");\n/* harmony import */ var _formats_align_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../formats/align.js */ \"../react-ui/node_modules/quill/formats/align.js\");\n/* harmony import */ var _formats_background_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../formats/background.js */ \"../react-ui/node_modules/quill/formats/background.js\");\n/* harmony import */ var _formats_code_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../formats/code.js */ \"../react-ui/node_modules/quill/formats/code.js\");\n/* harmony import */ var _formats_color_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../formats/color.js */ \"../react-ui/node_modules/quill/formats/color.js\");\n/* harmony import */ var _formats_direction_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../formats/direction.js */ \"../react-ui/node_modules/quill/formats/direction.js\");\n/* harmony import */ var _formats_font_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../formats/font.js */ \"../react-ui/node_modules/quill/formats/font.js\");\n/* harmony import */ var _formats_size_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../formats/size.js */ \"../react-ui/node_modules/quill/formats/size.js\");\n/* harmony import */ var _keyboard_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./keyboard.js */ \"../react-ui/node_modules/quill/modules/keyboard.js\");\n/* harmony import */ var _normalizeExternalHTML_index_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./normalizeExternalHTML/index.js */ \"../react-ui/node_modules/quill/modules/normalizeExternalHTML/index.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst debug = (0,_core_logger_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('quill:clipboard');\nconst CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['ol, ul', matchList], ['pre', matchCodeBlock], ['tr', matchTable], ['b', createMatchAlias('bold')], ['i', createMatchAlias('italic')], ['strike', createMatchAlias('strike')], ['style', matchIgnore]];\nconst ATTRIBUTE_ATTRIBUTORS = [_formats_align_js__WEBPACK_IMPORTED_MODULE_6__.AlignAttribute, _formats_direction_js__WEBPACK_IMPORTED_MODULE_10__.DirectionAttribute].reduce((memo, attr) => {\n  memo[attr.keyName] = attr;\n  return memo;\n}, {});\nconst STYLE_ATTRIBUTORS = [_formats_align_js__WEBPACK_IMPORTED_MODULE_6__.AlignStyle, _formats_background_js__WEBPACK_IMPORTED_MODULE_7__.BackgroundStyle, _formats_color_js__WEBPACK_IMPORTED_MODULE_9__.ColorStyle, _formats_direction_js__WEBPACK_IMPORTED_MODULE_10__.DirectionStyle, _formats_font_js__WEBPACK_IMPORTED_MODULE_11__.FontStyle, _formats_size_js__WEBPACK_IMPORTED_MODULE_12__.SizeStyle].reduce((memo, attr) => {\n  memo[attr.keyName] = attr;\n  return memo;\n}, {});\nclass Clipboard extends _core_module_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"] {\n  static DEFAULTS = {\n    matchers: []\n  };\n  constructor(quill, options) {\n    super(quill, options);\n    this.quill.root.addEventListener('copy', e => this.onCaptureCopy(e, false));\n    this.quill.root.addEventListener('cut', e => this.onCaptureCopy(e, true));\n    this.quill.root.addEventListener('paste', this.onCapturePaste.bind(this));\n    this.matchers = [];\n    CLIPBOARD_CONFIG.concat(this.options.matchers ?? []).forEach(_ref => {\n      let [selector, matcher] = _ref;\n      this.addMatcher(selector, matcher);\n    });\n  }\n  addMatcher(selector, matcher) {\n    this.matchers.push([selector, matcher]);\n  }\n  convert(_ref2) {\n    let {\n      html,\n      text\n    } = _ref2;\n    let formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    if (formats[_formats_code_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].blotName]) {\n      return new quill_delta__WEBPACK_IMPORTED_MODULE_1__().insert(text || '', {\n        [_formats_code_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].blotName]: formats[_formats_code_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"].blotName]\n      });\n    }\n    if (!html) {\n      return new quill_delta__WEBPACK_IMPORTED_MODULE_1__().insert(text || '', formats);\n    }\n    const delta = this.convertHTML(html);\n    // Remove trailing newline\n    if (deltaEndsWith(delta, '\\n') && (delta.ops[delta.ops.length - 1].attributes == null || formats.table)) {\n      return delta.compose(new quill_delta__WEBPACK_IMPORTED_MODULE_1__().retain(delta.length() - 1).delete(1));\n    }\n    return delta;\n  }\n  normalizeHTML(doc) {\n    (0,_normalizeExternalHTML_index_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(doc);\n  }\n  convertHTML(html) {\n    const doc = new DOMParser().parseFromString(html, 'text/html');\n    this.normalizeHTML(doc);\n    const container = doc.body;\n    const nodeMatches = new WeakMap();\n    const [elementMatchers, textMatchers] = this.prepareMatching(container, nodeMatches);\n    return traverse(this.quill.scroll, container, elementMatchers, textMatchers, nodeMatches);\n  }\n  dangerouslyPasteHTML(index, html) {\n    let source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _core_quill_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.API;\n    if (typeof index === 'string') {\n      const delta = this.convert({\n        html: index,\n        text: ''\n      });\n      // @ts-expect-error\n      this.quill.setContents(delta, html);\n      this.quill.setSelection(0, _core_quill_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.SILENT);\n    } else {\n      const paste = this.convert({\n        html,\n        text: ''\n      });\n      this.quill.updateContents(new quill_delta__WEBPACK_IMPORTED_MODULE_1__().retain(index).concat(paste), source);\n      this.quill.setSelection(index + paste.length(), _core_quill_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.SILENT);\n    }\n  }\n  onCaptureCopy(e) {\n    let isCut = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    if (e.defaultPrevented) return;\n    e.preventDefault();\n    const [range] = this.quill.selection.getRange();\n    if (range == null) return;\n    const {\n      html,\n      text\n    } = this.onCopy(range, isCut);\n    e.clipboardData?.setData('text/plain', text);\n    e.clipboardData?.setData('text/html', html);\n    if (isCut) {\n      (0,_keyboard_js__WEBPACK_IMPORTED_MODULE_13__.deleteRange)({\n        range,\n        quill: this.quill\n      });\n    }\n  }\n\n  /*\n   * https://www.iana.org/assignments/media-types/text/uri-list\n   */\n  normalizeURIList(urlList) {\n    return urlList.split(/\\r?\\n/)\n    // Ignore all comments\n    .filter(url => url[0] !== '#').join('\\n');\n  }\n  onCapturePaste(e) {\n    if (e.defaultPrevented || !this.quill.isEnabled()) return;\n    e.preventDefault();\n    const range = this.quill.getSelection(true);\n    if (range == null) return;\n    const html = e.clipboardData?.getData('text/html');\n    let text = e.clipboardData?.getData('text/plain');\n    if (!html && !text) {\n      const urlList = e.clipboardData?.getData('text/uri-list');\n      if (urlList) {\n        text = this.normalizeURIList(urlList);\n      }\n    }\n    const files = Array.from(e.clipboardData?.files || []);\n    if (!html && files.length > 0) {\n      this.quill.uploader.upload(range, files);\n      return;\n    }\n    if (html && files.length > 0) {\n      const doc = new DOMParser().parseFromString(html, 'text/html');\n      if (doc.body.childElementCount === 1 && doc.body.firstElementChild?.tagName === 'IMG') {\n        this.quill.uploader.upload(range, files);\n        return;\n      }\n    }\n    this.onPaste(range, {\n      html,\n      text\n    });\n  }\n  onCopy(range) {\n    const text = this.quill.getText(range);\n    const html = this.quill.getSemanticHTML(range);\n    return {\n      html,\n      text\n    };\n  }\n  onPaste(range, _ref3) {\n    let {\n      text,\n      html\n    } = _ref3;\n    const formats = this.quill.getFormat(range.index);\n    const pastedDelta = this.convert({\n      text,\n      html\n    }, formats);\n    debug.log('onPaste', pastedDelta, {\n      text,\n      html\n    });\n    const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_1__().retain(range.index).delete(range.length).concat(pastedDelta);\n    this.quill.updateContents(delta, _core_quill_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n    // range.length contributes to delta.length()\n    this.quill.setSelection(delta.length() - range.length, _core_quill_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.SILENT);\n    this.quill.scrollSelectionIntoView();\n  }\n  prepareMatching(container, nodeMatches) {\n    const elementMatchers = [];\n    const textMatchers = [];\n    this.matchers.forEach(pair => {\n      const [selector, matcher] = pair;\n      switch (selector) {\n        case Node.TEXT_NODE:\n          textMatchers.push(matcher);\n          break;\n        case Node.ELEMENT_NODE:\n          elementMatchers.push(matcher);\n          break;\n        default:\n          Array.from(container.querySelectorAll(selector)).forEach(node => {\n            if (nodeMatches.has(node)) {\n              const matches = nodeMatches.get(node);\n              matches?.push(matcher);\n            } else {\n              nodeMatches.set(node, [matcher]);\n            }\n          });\n          break;\n      }\n    });\n    return [elementMatchers, textMatchers];\n  }\n}\nfunction applyFormat(delta, format, value, scroll) {\n  if (!scroll.query(format)) {\n    return delta;\n  }\n  return delta.reduce((newDelta, op) => {\n    if (!op.insert) return newDelta;\n    if (op.attributes && op.attributes[format]) {\n      return newDelta.push(op);\n    }\n    const formats = value ? {\n      [format]: value\n    } : {};\n    return newDelta.insert(op.insert, {\n      ...formats,\n      ...op.attributes\n    });\n  }, new quill_delta__WEBPACK_IMPORTED_MODULE_1__());\n}\nfunction deltaEndsWith(delta, text) {\n  let endText = '';\n  for (let i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i // eslint-disable-line no-plusplus\n  ) {\n    const op = delta.ops[i];\n    if (typeof op.insert !== 'string') break;\n    endText = op.insert + endText;\n  }\n  return endText.slice(-1 * text.length) === text;\n}\nfunction isLine(node, scroll) {\n  if (!(node instanceof Element)) return false;\n  const match = scroll.query(node);\n  // @ts-expect-error\n  if (match && match.prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_0__.EmbedBlot) return false;\n  return ['address', 'article', 'blockquote', 'canvas', 'dd', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'iframe', 'li', 'main', 'nav', 'ol', 'output', 'p', 'pre', 'section', 'table', 'td', 'tr', 'ul', 'video'].includes(node.tagName.toLowerCase());\n}\nfunction isBetweenInlineElements(node, scroll) {\n  return node.previousElementSibling && node.nextElementSibling && !isLine(node.previousElementSibling, scroll) && !isLine(node.nextElementSibling, scroll);\n}\nconst preNodes = new WeakMap();\nfunction isPre(node) {\n  if (node == null) return false;\n  if (!preNodes.has(node)) {\n    // @ts-expect-error\n    if (node.tagName === 'PRE') {\n      preNodes.set(node, true);\n    } else {\n      preNodes.set(node, isPre(node.parentNode));\n    }\n  }\n  return preNodes.get(node);\n}\nfunction traverse(scroll, node, elementMatchers, textMatchers, nodeMatches) {\n  // Post-order\n  if (node.nodeType === node.TEXT_NODE) {\n    return textMatchers.reduce((delta, matcher) => {\n      return matcher(node, delta, scroll);\n    }, new quill_delta__WEBPACK_IMPORTED_MODULE_1__());\n  }\n  if (node.nodeType === node.ELEMENT_NODE) {\n    return Array.from(node.childNodes || []).reduce((delta, childNode) => {\n      let childrenDelta = traverse(scroll, childNode, elementMatchers, textMatchers, nodeMatches);\n      if (childNode.nodeType === node.ELEMENT_NODE) {\n        childrenDelta = elementMatchers.reduce((reducedDelta, matcher) => {\n          return matcher(childNode, reducedDelta, scroll);\n        }, childrenDelta);\n        childrenDelta = (nodeMatches.get(childNode) || []).reduce((reducedDelta, matcher) => {\n          return matcher(childNode, reducedDelta, scroll);\n        }, childrenDelta);\n      }\n      return delta.concat(childrenDelta);\n    }, new quill_delta__WEBPACK_IMPORTED_MODULE_1__());\n  }\n  return new quill_delta__WEBPACK_IMPORTED_MODULE_1__();\n}\nfunction createMatchAlias(format) {\n  return (_node, delta, scroll) => {\n    return applyFormat(delta, format, true, scroll);\n  };\n}\nfunction matchAttributor(node, delta, scroll) {\n  const attributes = parchment__WEBPACK_IMPORTED_MODULE_0__.Attributor.keys(node);\n  const classes = parchment__WEBPACK_IMPORTED_MODULE_0__.ClassAttributor.keys(node);\n  const styles = parchment__WEBPACK_IMPORTED_MODULE_0__.StyleAttributor.keys(node);\n  const formats = {};\n  attributes.concat(classes).concat(styles).forEach(name => {\n    let attr = scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.ATTRIBUTE);\n    if (attr != null) {\n      formats[attr.attrName] = attr.value(node);\n      if (formats[attr.attrName]) return;\n    }\n    attr = ATTRIBUTE_ATTRIBUTORS[name];\n    if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n      formats[attr.attrName] = attr.value(node) || undefined;\n    }\n    attr = STYLE_ATTRIBUTORS[name];\n    if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n      attr = STYLE_ATTRIBUTORS[name];\n      formats[attr.attrName] = attr.value(node) || undefined;\n    }\n  });\n  return Object.entries(formats).reduce((newDelta, _ref4) => {\n    let [name, value] = _ref4;\n    return applyFormat(newDelta, name, value, scroll);\n  }, delta);\n}\nfunction matchBlot(node, delta, scroll) {\n  const match = scroll.query(node);\n  if (match == null) return delta;\n  // @ts-expect-error\n  if (match.prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_0__.EmbedBlot) {\n    const embed = {};\n    // @ts-expect-error\n    const value = match.value(node);\n    if (value != null) {\n      // @ts-expect-error\n      embed[match.blotName] = value;\n      // @ts-expect-error\n      return new quill_delta__WEBPACK_IMPORTED_MODULE_1__().insert(embed, match.formats(node, scroll));\n    }\n  } else {\n    // @ts-expect-error\n    if (match.prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_0__.BlockBlot && !deltaEndsWith(delta, '\\n')) {\n      delta.insert('\\n');\n    }\n    if ('blotName' in match && 'formats' in match && typeof match.formats === 'function') {\n      return applyFormat(delta, match.blotName, match.formats(node, scroll), scroll);\n    }\n  }\n  return delta;\n}\nfunction matchBreak(node, delta) {\n  if (!deltaEndsWith(delta, '\\n')) {\n    delta.insert('\\n');\n  }\n  return delta;\n}\nfunction matchCodeBlock(node, delta, scroll) {\n  const match = scroll.query('code-block');\n  const language = match && 'formats' in match && typeof match.formats === 'function' ? match.formats(node, scroll) : true;\n  return applyFormat(delta, 'code-block', language, scroll);\n}\nfunction matchIgnore() {\n  return new quill_delta__WEBPACK_IMPORTED_MODULE_1__();\n}\nfunction matchIndent(node, delta, scroll) {\n  const match = scroll.query(node);\n  if (match == null ||\n  // @ts-expect-error\n  match.blotName !== 'list' || !deltaEndsWith(delta, '\\n')) {\n    return delta;\n  }\n  let indent = -1;\n  let parent = node.parentNode;\n  while (parent != null) {\n    // @ts-expect-error\n    if (['OL', 'UL'].includes(parent.tagName)) {\n      indent += 1;\n    }\n    parent = parent.parentNode;\n  }\n  if (indent <= 0) return delta;\n  return delta.reduce((composed, op) => {\n    if (!op.insert) return composed;\n    if (op.attributes && typeof op.attributes.indent === 'number') {\n      return composed.push(op);\n    }\n    return composed.insert(op.insert, {\n      indent,\n      ...(op.attributes || {})\n    });\n  }, new quill_delta__WEBPACK_IMPORTED_MODULE_1__());\n}\nfunction matchList(node, delta, scroll) {\n  const element = node;\n  let list = element.tagName === 'OL' ? 'ordered' : 'bullet';\n  const checkedAttr = element.getAttribute('data-checked');\n  if (checkedAttr) {\n    list = checkedAttr === 'true' ? 'checked' : 'unchecked';\n  }\n  return applyFormat(delta, 'list', list, scroll);\n}\nfunction matchNewline(node, delta, scroll) {\n  if (!deltaEndsWith(delta, '\\n')) {\n    if (isLine(node, scroll) && (node.childNodes.length > 0 || node instanceof HTMLParagraphElement)) {\n      return delta.insert('\\n');\n    }\n    if (delta.length() > 0 && node.nextSibling) {\n      let nextSibling = node.nextSibling;\n      while (nextSibling != null) {\n        if (isLine(nextSibling, scroll)) {\n          return delta.insert('\\n');\n        }\n        const match = scroll.query(nextSibling);\n        // @ts-expect-error\n        if (match && match.prototype instanceof _blots_block_js__WEBPACK_IMPORTED_MODULE_2__.BlockEmbed) {\n          return delta.insert('\\n');\n        }\n        nextSibling = nextSibling.firstChild;\n      }\n    }\n  }\n  return delta;\n}\nfunction matchStyles(node, delta, scroll) {\n  const formats = {};\n  const style = node.style || {};\n  if (style.fontStyle === 'italic') {\n    formats.italic = true;\n  }\n  if (style.textDecoration === 'underline') {\n    formats.underline = true;\n  }\n  if (style.textDecoration === 'line-through') {\n    formats.strike = true;\n  }\n  if (style.fontWeight?.startsWith('bold') ||\n  // @ts-expect-error Fix me later\n  parseInt(style.fontWeight, 10) >= 700) {\n    formats.bold = true;\n  }\n  delta = Object.entries(formats).reduce((newDelta, _ref5) => {\n    let [name, value] = _ref5;\n    return applyFormat(newDelta, name, value, scroll);\n  }, delta);\n  // @ts-expect-error\n  if (parseFloat(style.textIndent || 0) > 0) {\n    // Could be 0.5in\n    return new quill_delta__WEBPACK_IMPORTED_MODULE_1__().insert('\\t').concat(delta);\n  }\n  return delta;\n}\nfunction matchTable(node, delta, scroll) {\n  const table = node.parentElement?.tagName === 'TABLE' ? node.parentElement : node.parentElement?.parentElement;\n  if (table != null) {\n    const rows = Array.from(table.querySelectorAll('tr'));\n    const row = rows.indexOf(node) + 1;\n    return applyFormat(delta, 'table', row, scroll);\n  }\n  return delta;\n}\nfunction matchText(node, delta, scroll) {\n  // @ts-expect-error\n  let text = node.data;\n  // Word represents empty line with <o:p>&nbsp;</o:p>\n  if (node.parentElement?.tagName === 'O:P') {\n    return delta.insert(text.trim());\n  }\n  if (!isPre(node)) {\n    if (text.trim().length === 0 && text.includes('\\n') && !isBetweenInlineElements(node, scroll)) {\n      return delta;\n    }\n    // convert all non-nbsp whitespace into regular space\n    text = text.replace(/[^\\S\\u00a0]/g, ' ');\n    // collapse consecutive spaces into one\n    text = text.replace(/ {2,}/g, ' ');\n    if (node.previousSibling == null && node.parentElement != null && isLine(node.parentElement, scroll) || node.previousSibling instanceof Element && isLine(node.previousSibling, scroll)) {\n      // block structure means we don't need leading space\n      text = text.replace(/^ /, '');\n    }\n    if (node.nextSibling == null && node.parentElement != null && isLine(node.parentElement, scroll) || node.nextSibling instanceof Element && isLine(node.nextSibling, scroll)) {\n      // block structure means we don't need trailing space\n      text = text.replace(/ $/, '');\n    }\n    // done removing whitespace and can normalize all to regular space\n    text = text.replaceAll('\\u00a0', ' ');\n  }\n  return delta.insert(text);\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/modules/clipboard.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/modules/history.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/quill/modules/history.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ History),\n/* harmony export */   getLastChangeIndex: () => (/* binding */ getLastChangeIndex)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var _core_module_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/module.js */ \"../react-ui/node_modules/quill/core/module.js\");\n/* harmony import */ var _core_quill_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/quill.js */ \"../react-ui/node_modules/quill/core/quill.js\");\n\n\n\nclass History extends _core_module_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n  static DEFAULTS = {\n    delay: 1000,\n    maxStack: 100,\n    userOnly: false\n  };\n  lastRecorded = 0;\n  ignoreChange = false;\n  stack = {\n    undo: [],\n    redo: []\n  };\n  currentRange = null;\n  constructor(quill, options) {\n    super(quill, options);\n    this.quill.on(_core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].events.EDITOR_CHANGE, (eventName, value, oldValue, source) => {\n      if (eventName === _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].events.SELECTION_CHANGE) {\n        if (value && source !== _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.SILENT) {\n          this.currentRange = value;\n        }\n      } else if (eventName === _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].events.TEXT_CHANGE) {\n        if (!this.ignoreChange) {\n          if (!this.options.userOnly || source === _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER) {\n            this.record(value, oldValue);\n          } else {\n            this.transform(value);\n          }\n        }\n        this.currentRange = transformRange(this.currentRange, value);\n      }\n    });\n    this.quill.keyboard.addBinding({\n      key: 'z',\n      shortKey: true\n    }, this.undo.bind(this));\n    this.quill.keyboard.addBinding({\n      key: ['z', 'Z'],\n      shortKey: true,\n      shiftKey: true\n    }, this.redo.bind(this));\n    if (/Win/i.test(navigator.platform)) {\n      this.quill.keyboard.addBinding({\n        key: 'y',\n        shortKey: true\n      }, this.redo.bind(this));\n    }\n    this.quill.root.addEventListener('beforeinput', event => {\n      if (event.inputType === 'historyUndo') {\n        this.undo();\n        event.preventDefault();\n      } else if (event.inputType === 'historyRedo') {\n        this.redo();\n        event.preventDefault();\n      }\n    });\n  }\n  change(source, dest) {\n    if (this.stack[source].length === 0) return;\n    const item = this.stack[source].pop();\n    if (!item) return;\n    const base = this.quill.getContents();\n    const inverseDelta = item.delta.invert(base);\n    this.stack[dest].push({\n      delta: inverseDelta,\n      range: transformRange(item.range, inverseDelta)\n    });\n    this.lastRecorded = 0;\n    this.ignoreChange = true;\n    this.quill.updateContents(item.delta, _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n    this.ignoreChange = false;\n    this.restoreSelection(item);\n  }\n  clear() {\n    this.stack = {\n      undo: [],\n      redo: []\n    };\n  }\n  cutoff() {\n    this.lastRecorded = 0;\n  }\n  record(changeDelta, oldDelta) {\n    if (changeDelta.ops.length === 0) return;\n    this.stack.redo = [];\n    let undoDelta = changeDelta.invert(oldDelta);\n    let undoRange = this.currentRange;\n    const timestamp = Date.now();\n    if (\n    // @ts-expect-error Fix me later\n    this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n      const item = this.stack.undo.pop();\n      if (item) {\n        undoDelta = undoDelta.compose(item.delta);\n        undoRange = item.range;\n      }\n    } else {\n      this.lastRecorded = timestamp;\n    }\n    if (undoDelta.length() === 0) return;\n    this.stack.undo.push({\n      delta: undoDelta,\n      range: undoRange\n    });\n    // @ts-expect-error Fix me later\n    if (this.stack.undo.length > this.options.maxStack) {\n      this.stack.undo.shift();\n    }\n  }\n  redo() {\n    this.change('redo', 'undo');\n  }\n  transform(delta) {\n    transformStack(this.stack.undo, delta);\n    transformStack(this.stack.redo, delta);\n  }\n  undo() {\n    this.change('undo', 'redo');\n  }\n  restoreSelection(stackItem) {\n    if (stackItem.range) {\n      this.quill.setSelection(stackItem.range, _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n    } else {\n      const index = getLastChangeIndex(this.quill.scroll, stackItem.delta);\n      this.quill.setSelection(index, _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n    }\n  }\n}\nfunction transformStack(stack, delta) {\n  let remoteDelta = delta;\n  for (let i = stack.length - 1; i >= 0; i -= 1) {\n    const oldItem = stack[i];\n    stack[i] = {\n      delta: remoteDelta.transform(oldItem.delta, true),\n      range: oldItem.range && transformRange(oldItem.range, remoteDelta)\n    };\n    remoteDelta = oldItem.delta.transform(remoteDelta);\n    if (stack[i].delta.length() === 0) {\n      stack.splice(i, 1);\n    }\n  }\n}\nfunction endsWithNewlineChange(scroll, delta) {\n  const lastOp = delta.ops[delta.ops.length - 1];\n  if (lastOp == null) return false;\n  if (lastOp.insert != null) {\n    return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n  }\n  if (lastOp.attributes != null) {\n    return Object.keys(lastOp.attributes).some(attr => {\n      return scroll.query(attr, parchment__WEBPACK_IMPORTED_MODULE_0__.Scope.BLOCK) != null;\n    });\n  }\n  return false;\n}\nfunction getLastChangeIndex(scroll, delta) {\n  const deleteLength = delta.reduce((length, op) => {\n    return length + (op.delete || 0);\n  }, 0);\n  let changeIndex = delta.length() - deleteLength;\n  if (endsWithNewlineChange(scroll, delta)) {\n    changeIndex -= 1;\n  }\n  return changeIndex;\n}\nfunction transformRange(range, delta) {\n  if (!range) return range;\n  const start = delta.transformPosition(range.index);\n  const end = delta.transformPosition(range.index + range.length);\n  return {\n    index: start,\n    length: end - start\n  };\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/modules/history.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/modules/input.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/quill/modules/input.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! quill-delta */ \"../react-ui/node_modules/quill-delta/dist/Delta.js\");\n/* harmony import */ var _core_module_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/module.js */ \"../react-ui/node_modules/quill/core/module.js\");\n/* harmony import */ var _core_quill_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/quill.js */ \"../react-ui/node_modules/quill/core/quill.js\");\n/* harmony import */ var _keyboard_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./keyboard.js */ \"../react-ui/node_modules/quill/modules/keyboard.js\");\n\n\n\n\nconst INSERT_TYPES = ['insertText', 'insertReplacementText'];\nclass Input extends _core_module_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n  constructor(quill, options) {\n    super(quill, options);\n    quill.root.addEventListener('beforeinput', event => {\n      this.handleBeforeInput(event);\n    });\n\n    // Gboard with English input on Android triggers `compositionstart` sometimes even\n    // users are not going to type anything.\n    if (!/Android/i.test(navigator.userAgent)) {\n      quill.on(_core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].events.COMPOSITION_BEFORE_START, () => {\n        this.handleCompositionStart();\n      });\n    }\n  }\n  deleteRange(range) {\n    (0,_keyboard_js__WEBPACK_IMPORTED_MODULE_3__.deleteRange)({\n      range,\n      quill: this.quill\n    });\n  }\n  replaceText(range) {\n    let text = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n    if (range.length === 0) return false;\n    if (text) {\n      // Follow the native behavior that inherits the formats of the first character\n      const formats = this.quill.getFormat(range.index, 1);\n      this.deleteRange(range);\n      this.quill.updateContents(new quill_delta__WEBPACK_IMPORTED_MODULE_0__().retain(range.index).insert(text, formats), _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n    } else {\n      this.deleteRange(range);\n    }\n    this.quill.setSelection(range.index + text.length, 0, _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.SILENT);\n    return true;\n  }\n  handleBeforeInput(event) {\n    if (this.quill.composition.isComposing || event.defaultPrevented || !INSERT_TYPES.includes(event.inputType)) {\n      return;\n    }\n    const staticRange = event.getTargetRanges ? event.getTargetRanges()[0] : null;\n    if (!staticRange || staticRange.collapsed === true) {\n      return;\n    }\n    const text = getPlainTextFromInputEvent(event);\n    if (text == null) {\n      return;\n    }\n    const normalized = this.quill.selection.normalizeNative(staticRange);\n    const range = normalized ? this.quill.selection.normalizedToRange(normalized) : null;\n    if (range && this.replaceText(range, text)) {\n      event.preventDefault();\n    }\n  }\n  handleCompositionStart() {\n    const range = this.quill.getSelection();\n    if (range) {\n      this.replaceText(range);\n    }\n  }\n}\nfunction getPlainTextFromInputEvent(event) {\n  // When `inputType` is \"insertText\":\n  // - `event.data` should be string (Safari uses `event.dataTransfer`).\n  // - `event.dataTransfer` should be null.\n  // When `inputType` is \"insertReplacementText\":\n  // - `event.data` should be null.\n  // - `event.dataTransfer` should contain \"text/plain\" data.\n\n  if (typeof event.data === 'string') {\n    return event.data;\n  }\n  if (event.dataTransfer?.types.includes('text/plain')) {\n    return event.dataTransfer.getData('text/plain');\n  }\n  return null;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Input);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/modules/input.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/modules/keyboard.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/quill/modules/keyboard.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   SHORTKEY: () => (/* binding */ SHORTKEY),\n/* harmony export */   \"default\": () => (/* binding */ Keyboard),\n/* harmony export */   deleteRange: () => (/* binding */ deleteRange),\n/* harmony export */   normalize: () => (/* binding */ normalize)\n/* harmony export */ });\n/* harmony import */ var lodash_es__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash-es */ \"../react-ui/node_modules/lodash-es/cloneDeep.js\");\n/* harmony import */ var lodash_es__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash-es */ \"../react-ui/node_modules/lodash-es/isEqual.js\");\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! quill-delta */ \"../react-ui/node_modules/quill-delta/dist/Delta.js\");\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var _core_quill_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/quill.js */ \"../react-ui/node_modules/quill/core/quill.js\");\n/* harmony import */ var _core_logger_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/logger.js */ \"../react-ui/node_modules/quill/core/logger.js\");\n/* harmony import */ var _core_module_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/module.js */ \"../react-ui/node_modules/quill/core/module.js\");\n\n\n\n\n\n\nconst debug = (0,_core_logger_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('quill:keyboard');\nconst SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\nclass Keyboard extends _core_module_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"] {\n  static match(evt, binding) {\n    if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(key => {\n      return !!binding[key] !== evt[key] && binding[key] !== null;\n    })) {\n      return false;\n    }\n    return binding.key === evt.key || binding.key === evt.which;\n  }\n  constructor(quill, options) {\n    super(quill, options);\n    this.bindings = {};\n    // @ts-expect-error Fix me later\n    Object.keys(this.options.bindings).forEach(name => {\n      // @ts-expect-error Fix me later\n      if (this.options.bindings[name]) {\n        // @ts-expect-error Fix me later\n        this.addBinding(this.options.bindings[name]);\n      }\n    });\n    this.addBinding({\n      key: 'Enter',\n      shiftKey: null\n    }, this.handleEnter);\n    this.addBinding({\n      key: 'Enter',\n      metaKey: null,\n      ctrlKey: null,\n      altKey: null\n    }, () => {});\n    if (/Firefox/i.test(navigator.userAgent)) {\n      // Need to handle delete and backspace for Firefox in the general case #1171\n      this.addBinding({\n        key: 'Backspace'\n      }, {\n        collapsed: true\n      }, this.handleBackspace);\n      this.addBinding({\n        key: 'Delete'\n      }, {\n        collapsed: true\n      }, this.handleDelete);\n    } else {\n      this.addBinding({\n        key: 'Backspace'\n      }, {\n        collapsed: true,\n        prefix: /^.?$/\n      }, this.handleBackspace);\n      this.addBinding({\n        key: 'Delete'\n      }, {\n        collapsed: true,\n        suffix: /^.?$/\n      }, this.handleDelete);\n    }\n    this.addBinding({\n      key: 'Backspace'\n    }, {\n      collapsed: false\n    }, this.handleDeleteRange);\n    this.addBinding({\n      key: 'Delete'\n    }, {\n      collapsed: false\n    }, this.handleDeleteRange);\n    this.addBinding({\n      key: 'Backspace',\n      altKey: null,\n      ctrlKey: null,\n      metaKey: null,\n      shiftKey: null\n    }, {\n      collapsed: true,\n      offset: 0\n    }, this.handleBackspace);\n    this.listen();\n  }\n  addBinding(keyBinding) {\n    let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    let handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n    const binding = normalize(keyBinding);\n    if (binding == null) {\n      debug.warn('Attempted to add invalid keyboard binding', binding);\n      return;\n    }\n    if (typeof context === 'function') {\n      context = {\n        handler: context\n      };\n    }\n    if (typeof handler === 'function') {\n      handler = {\n        handler\n      };\n    }\n    const keys = Array.isArray(binding.key) ? binding.key : [binding.key];\n    keys.forEach(key => {\n      const singleBinding = {\n        ...binding,\n        key,\n        ...context,\n        ...handler\n      };\n      this.bindings[singleBinding.key] = this.bindings[singleBinding.key] || [];\n      this.bindings[singleBinding.key].push(singleBinding);\n    });\n  }\n  listen() {\n    this.quill.root.addEventListener('keydown', evt => {\n      if (evt.defaultPrevented || evt.isComposing) return;\n\n      // evt.isComposing is false when pressing Enter/Backspace when composing in Safari\n      // https://bugs.webkit.org/show_bug.cgi?id=165004\n      const isComposing = evt.keyCode === 229 && (evt.key === 'Enter' || evt.key === 'Backspace');\n      if (isComposing) return;\n      const bindings = (this.bindings[evt.key] || []).concat(this.bindings[evt.which] || []);\n      const matches = bindings.filter(binding => Keyboard.match(evt, binding));\n      if (matches.length === 0) return;\n      // @ts-expect-error\n      const blot = _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].find(evt.target, true);\n      if (blot && blot.scroll !== this.quill.scroll) return;\n      const range = this.quill.getSelection();\n      if (range == null || !this.quill.hasFocus()) return;\n      const [line, offset] = this.quill.getLine(range.index);\n      const [leafStart, offsetStart] = this.quill.getLeaf(range.index);\n      const [leafEnd, offsetEnd] = range.length === 0 ? [leafStart, offsetStart] : this.quill.getLeaf(range.index + range.length);\n      const prefixText = leafStart instanceof parchment__WEBPACK_IMPORTED_MODULE_3__.TextBlot ? leafStart.value().slice(0, offsetStart) : '';\n      const suffixText = leafEnd instanceof parchment__WEBPACK_IMPORTED_MODULE_3__.TextBlot ? leafEnd.value().slice(offsetEnd) : '';\n      const curContext = {\n        collapsed: range.length === 0,\n        // @ts-expect-error Fix me later\n        empty: range.length === 0 && line.length() <= 1,\n        format: this.quill.getFormat(range),\n        line,\n        offset,\n        prefix: prefixText,\n        suffix: suffixText,\n        event: evt\n      };\n      const prevented = matches.some(binding => {\n        if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) {\n          return false;\n        }\n        if (binding.empty != null && binding.empty !== curContext.empty) {\n          return false;\n        }\n        if (binding.offset != null && binding.offset !== curContext.offset) {\n          return false;\n        }\n        if (Array.isArray(binding.format)) {\n          // any format is present\n          if (binding.format.every(name => curContext.format[name] == null)) {\n            return false;\n          }\n        } else if (typeof binding.format === 'object') {\n          // all formats must match\n          if (!Object.keys(binding.format).every(name => {\n            // @ts-expect-error Fix me later\n            if (binding.format[name] === true) return curContext.format[name] != null;\n            // @ts-expect-error Fix me later\n            if (binding.format[name] === false) return curContext.format[name] == null;\n            // @ts-expect-error Fix me later\n            return (0,lodash_es__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(binding.format[name], curContext.format[name]);\n          })) {\n            return false;\n          }\n        }\n        if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) {\n          return false;\n        }\n        if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) {\n          return false;\n        }\n        // @ts-expect-error Fix me later\n        return binding.handler.call(this, range, curContext, binding) !== true;\n      });\n      if (prevented) {\n        evt.preventDefault();\n      }\n    });\n  }\n  handleBackspace(range, context) {\n    // Check for astral symbols\n    const length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n    if (range.index === 0 || this.quill.getLength() <= 1) return;\n    let formats = {};\n    const [line] = this.quill.getLine(range.index);\n    let delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2__().retain(range.index - length).delete(length);\n    if (context.offset === 0) {\n      // Always deleting newline here, length always 1\n      const [prev] = this.quill.getLine(range.index - 1);\n      if (prev) {\n        const isPrevLineEmpty = prev.statics.blotName === 'block' && prev.length() <= 1;\n        if (!isPrevLineEmpty) {\n          // @ts-expect-error Fix me later\n          const curFormats = line.formats();\n          const prevFormats = this.quill.getFormat(range.index - 1, 1);\n          formats = quill_delta__WEBPACK_IMPORTED_MODULE_2__.AttributeMap.diff(curFormats, prevFormats) || {};\n          if (Object.keys(formats).length > 0) {\n            // line.length() - 1 targets \\n in line, another -1 for newline being deleted\n            const formatDelta = new quill_delta__WEBPACK_IMPORTED_MODULE_2__()\n            // @ts-expect-error Fix me later\n            .retain(range.index + line.length() - 2).retain(1, formats);\n            delta = delta.compose(formatDelta);\n          }\n        }\n      }\n    }\n    this.quill.updateContents(delta, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n    this.quill.focus();\n  }\n  handleDelete(range, context) {\n    // Check for astral symbols\n    const length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n    if (range.index >= this.quill.getLength() - length) return;\n    let formats = {};\n    const [line] = this.quill.getLine(range.index);\n    let delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2__().retain(range.index).delete(length);\n    // @ts-expect-error Fix me later\n    if (context.offset >= line.length() - 1) {\n      const [next] = this.quill.getLine(range.index + 1);\n      if (next) {\n        // @ts-expect-error Fix me later\n        const curFormats = line.formats();\n        const nextFormats = this.quill.getFormat(range.index, 1);\n        formats = quill_delta__WEBPACK_IMPORTED_MODULE_2__.AttributeMap.diff(curFormats, nextFormats) || {};\n        if (Object.keys(formats).length > 0) {\n          delta = delta.retain(next.length() - 1).retain(1, formats);\n        }\n      }\n    }\n    this.quill.updateContents(delta, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n    this.quill.focus();\n  }\n  handleDeleteRange(range) {\n    deleteRange({\n      range,\n      quill: this.quill\n    });\n    this.quill.focus();\n  }\n  handleEnter(range, context) {\n    const lineFormats = Object.keys(context.format).reduce((formats, format) => {\n      if (this.quill.scroll.query(format, parchment__WEBPACK_IMPORTED_MODULE_3__.Scope.BLOCK) && !Array.isArray(context.format[format])) {\n        formats[format] = context.format[format];\n      }\n      return formats;\n    }, {});\n    const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2__().retain(range.index).delete(range.length).insert('\\n', lineFormats);\n    this.quill.updateContents(delta, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n    this.quill.setSelection(range.index + 1, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n    this.quill.focus();\n  }\n}\nconst defaultOptions = {\n  bindings: {\n    bold: makeFormatHandler('bold'),\n    italic: makeFormatHandler('italic'),\n    underline: makeFormatHandler('underline'),\n    indent: {\n      // highlight tab or tab at beginning of list, indent or blockquote\n      key: 'Tab',\n      format: ['blockquote', 'indent', 'list'],\n      handler(range, context) {\n        if (context.collapsed && context.offset !== 0) return true;\n        this.quill.format('indent', '+1', _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        return false;\n      }\n    },\n    outdent: {\n      key: 'Tab',\n      shiftKey: true,\n      format: ['blockquote', 'indent', 'list'],\n      // highlight tab or tab at beginning of list, indent or blockquote\n      handler(range, context) {\n        if (context.collapsed && context.offset !== 0) return true;\n        this.quill.format('indent', '-1', _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        return false;\n      }\n    },\n    'outdent backspace': {\n      key: 'Backspace',\n      collapsed: true,\n      shiftKey: null,\n      metaKey: null,\n      ctrlKey: null,\n      altKey: null,\n      format: ['indent', 'list'],\n      offset: 0,\n      handler(range, context) {\n        if (context.format.indent != null) {\n          this.quill.format('indent', '-1', _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        } else if (context.format.list != null) {\n          this.quill.format('list', false, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        }\n      }\n    },\n    'indent code-block': makeCodeBlockHandler(true),\n    'outdent code-block': makeCodeBlockHandler(false),\n    'remove tab': {\n      key: 'Tab',\n      shiftKey: true,\n      collapsed: true,\n      prefix: /\\t$/,\n      handler(range) {\n        this.quill.deleteText(range.index - 1, 1, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n      }\n    },\n    tab: {\n      key: 'Tab',\n      handler(range, context) {\n        if (context.format.table) return true;\n        this.quill.history.cutoff();\n        const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2__().retain(range.index).delete(range.length).insert('\\t');\n        this.quill.updateContents(delta, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        this.quill.history.cutoff();\n        this.quill.setSelection(range.index + 1, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n        return false;\n      }\n    },\n    'blockquote empty enter': {\n      key: 'Enter',\n      collapsed: true,\n      format: ['blockquote'],\n      empty: true,\n      handler() {\n        this.quill.format('blockquote', false, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n      }\n    },\n    'list empty enter': {\n      key: 'Enter',\n      collapsed: true,\n      format: ['list'],\n      empty: true,\n      handler(range, context) {\n        const formats = {\n          list: false\n        };\n        if (context.format.indent) {\n          formats.indent = false;\n        }\n        this.quill.formatLine(range.index, range.length, formats, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n      }\n    },\n    'checklist enter': {\n      key: 'Enter',\n      collapsed: true,\n      format: {\n        list: 'checked'\n      },\n      handler(range) {\n        const [line, offset] = this.quill.getLine(range.index);\n        const formats = {\n          // @ts-expect-error Fix me later\n          ...line.formats(),\n          list: 'checked'\n        };\n        const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2__().retain(range.index).insert('\\n', formats)\n        // @ts-expect-error Fix me later\n        .retain(line.length() - offset - 1).retain(1, {\n          list: 'unchecked'\n        });\n        this.quill.updateContents(delta, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        this.quill.setSelection(range.index + 1, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n        this.quill.scrollSelectionIntoView();\n      }\n    },\n    'header enter': {\n      key: 'Enter',\n      collapsed: true,\n      format: ['header'],\n      suffix: /^$/,\n      handler(range, context) {\n        const [line, offset] = this.quill.getLine(range.index);\n        const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2__().retain(range.index).insert('\\n', context.format)\n        // @ts-expect-error Fix me later\n        .retain(line.length() - offset - 1).retain(1, {\n          header: null\n        });\n        this.quill.updateContents(delta, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        this.quill.setSelection(range.index + 1, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n        this.quill.scrollSelectionIntoView();\n      }\n    },\n    'table backspace': {\n      key: 'Backspace',\n      format: ['table'],\n      collapsed: true,\n      offset: 0,\n      handler() {}\n    },\n    'table delete': {\n      key: 'Delete',\n      format: ['table'],\n      collapsed: true,\n      suffix: /^$/,\n      handler() {}\n    },\n    'table enter': {\n      key: 'Enter',\n      shiftKey: null,\n      format: ['table'],\n      handler(range) {\n        const module = this.quill.getModule('table');\n        if (module) {\n          // @ts-expect-error\n          const [table, row, cell, offset] = module.getTable(range);\n          const shift = tableSide(table, row, cell, offset);\n          if (shift == null) return;\n          let index = table.offset();\n          if (shift < 0) {\n            const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2__().retain(index).insert('\\n');\n            this.quill.updateContents(delta, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n            this.quill.setSelection(range.index + 1, range.length, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n          } else if (shift > 0) {\n            index += table.length();\n            const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2__().retain(index).insert('\\n');\n            this.quill.updateContents(delta, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n            this.quill.setSelection(index, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n          }\n        }\n      }\n    },\n    'table tab': {\n      key: 'Tab',\n      shiftKey: null,\n      format: ['table'],\n      handler(range, context) {\n        const {\n          event,\n          line: cell\n        } = context;\n        const offset = cell.offset(this.quill.scroll);\n        if (event.shiftKey) {\n          this.quill.setSelection(offset - 1, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        } else {\n          this.quill.setSelection(offset + cell.length(), _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        }\n      }\n    },\n    'list autofill': {\n      key: ' ',\n      shiftKey: null,\n      collapsed: true,\n      format: {\n        'code-block': false,\n        blockquote: false,\n        table: false\n      },\n      prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n      handler(range, context) {\n        if (this.quill.scroll.query('list') == null) return true;\n        const {\n          length\n        } = context.prefix;\n        const [line, offset] = this.quill.getLine(range.index);\n        if (offset > length) return true;\n        let value;\n        switch (context.prefix.trim()) {\n          case '[]':\n          case '[ ]':\n            value = 'unchecked';\n            break;\n          case '[x]':\n            value = 'checked';\n            break;\n          case '-':\n          case '*':\n            value = 'bullet';\n            break;\n          default:\n            value = 'ordered';\n        }\n        this.quill.insertText(range.index, ' ', _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        this.quill.history.cutoff();\n        const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2__().retain(range.index - offset).delete(length + 1)\n        // @ts-expect-error Fix me later\n        .retain(line.length() - 2 - offset).retain(1, {\n          list: value\n        });\n        this.quill.updateContents(delta, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        this.quill.history.cutoff();\n        this.quill.setSelection(range.index - length, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n        return false;\n      }\n    },\n    'code exit': {\n      key: 'Enter',\n      collapsed: true,\n      format: ['code-block'],\n      prefix: /^$/,\n      suffix: /^\\s*$/,\n      handler(range) {\n        const [line, offset] = this.quill.getLine(range.index);\n        let numLines = 2;\n        let cur = line;\n        while (cur != null && cur.length() <= 1 && cur.formats()['code-block']) {\n          // @ts-expect-error\n          cur = cur.prev;\n          numLines -= 1;\n          // Requisite prev lines are empty\n          if (numLines <= 0) {\n            const delta = new quill_delta__WEBPACK_IMPORTED_MODULE_2__()\n            // @ts-expect-error Fix me later\n            .retain(range.index + line.length() - offset - 2).retain(1, {\n              'code-block': null\n            }).delete(1);\n            this.quill.updateContents(delta, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n            this.quill.setSelection(range.index - 1, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n            return false;\n          }\n        }\n        return true;\n      }\n    },\n    'embed left': makeEmbedArrowHandler('ArrowLeft', false),\n    'embed left shift': makeEmbedArrowHandler('ArrowLeft', true),\n    'embed right': makeEmbedArrowHandler('ArrowRight', false),\n    'embed right shift': makeEmbedArrowHandler('ArrowRight', true),\n    'table down': makeTableArrowHandler(false),\n    'table up': makeTableArrowHandler(true)\n  }\n};\nKeyboard.DEFAULTS = defaultOptions;\nfunction makeCodeBlockHandler(indent) {\n  return {\n    key: 'Tab',\n    shiftKey: !indent,\n    format: {\n      'code-block': true\n    },\n    handler(range, _ref) {\n      let {\n        event\n      } = _ref;\n      const CodeBlock = this.quill.scroll.query('code-block');\n      // @ts-expect-error\n      const {\n        TAB\n      } = CodeBlock;\n      if (range.length === 0 && !event.shiftKey) {\n        this.quill.insertText(range.index, TAB, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        this.quill.setSelection(range.index + TAB.length, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n        return;\n      }\n      const lines = range.length === 0 ? this.quill.getLines(range.index, 1) : this.quill.getLines(range);\n      let {\n        index,\n        length\n      } = range;\n      lines.forEach((line, i) => {\n        if (indent) {\n          line.insertAt(0, TAB);\n          if (i === 0) {\n            index += TAB.length;\n          } else {\n            length += TAB.length;\n          }\n          // @ts-expect-error Fix me later\n        } else if (line.domNode.textContent.startsWith(TAB)) {\n          line.deleteAt(0, TAB.length);\n          if (i === 0) {\n            index -= TAB.length;\n          } else {\n            length -= TAB.length;\n          }\n        }\n      });\n      this.quill.update(_core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n      this.quill.setSelection(index, length, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n    }\n  };\n}\nfunction makeEmbedArrowHandler(key, shiftKey) {\n  const where = key === 'ArrowLeft' ? 'prefix' : 'suffix';\n  return {\n    key,\n    shiftKey,\n    altKey: null,\n    [where]: /^$/,\n    handler(range) {\n      let {\n        index\n      } = range;\n      if (key === 'ArrowRight') {\n        index += range.length + 1;\n      }\n      const [leaf] = this.quill.getLeaf(index);\n      if (!(leaf instanceof parchment__WEBPACK_IMPORTED_MODULE_3__.EmbedBlot)) return true;\n      if (key === 'ArrowLeft') {\n        if (shiftKey) {\n          this.quill.setSelection(range.index - 1, range.length + 1, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        } else {\n          this.quill.setSelection(range.index - 1, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        }\n      } else if (shiftKey) {\n        this.quill.setSelection(range.index, range.length + 1, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n      } else {\n        this.quill.setSelection(range.index + range.length + 1, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n      }\n      return false;\n    }\n  };\n}\nfunction makeFormatHandler(format) {\n  return {\n    key: format[0],\n    shortKey: true,\n    handler(range, context) {\n      this.quill.format(format, !context.format[format], _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n    }\n  };\n}\nfunction makeTableArrowHandler(up) {\n  return {\n    key: up ? 'ArrowUp' : 'ArrowDown',\n    collapsed: true,\n    format: ['table'],\n    handler(range, context) {\n      // TODO move to table module\n      const key = up ? 'prev' : 'next';\n      const cell = context.line;\n      const targetRow = cell.parent[key];\n      if (targetRow != null) {\n        if (targetRow.statics.blotName === 'table-row') {\n          // @ts-expect-error\n          let targetCell = targetRow.children.head;\n          let cur = cell;\n          while (cur.prev != null) {\n            // @ts-expect-error\n            cur = cur.prev;\n            targetCell = targetCell.next;\n          }\n          const index = targetCell.offset(this.quill.scroll) + Math.min(context.offset, targetCell.length() - 1);\n          this.quill.setSelection(index, 0, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n        }\n      } else {\n        // @ts-expect-error\n        const targetLine = cell.table()[key];\n        if (targetLine != null) {\n          if (up) {\n            this.quill.setSelection(targetLine.offset(this.quill.scroll) + targetLine.length() - 1, 0, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n          } else {\n            this.quill.setSelection(targetLine.offset(this.quill.scroll), 0, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n          }\n        }\n      }\n      return false;\n    }\n  };\n}\nfunction normalize(binding) {\n  if (typeof binding === 'string' || typeof binding === 'number') {\n    binding = {\n      key: binding\n    };\n  } else if (typeof binding === 'object') {\n    binding = (0,lodash_es__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(binding);\n  } else {\n    return null;\n  }\n  if (binding.shortKey) {\n    binding[SHORTKEY] = binding.shortKey;\n    delete binding.shortKey;\n  }\n  return binding;\n}\n\n// TODO: Move into quill.ts or editor.ts\nfunction deleteRange(_ref2) {\n  let {\n    quill,\n    range\n  } = _ref2;\n  const lines = quill.getLines(range);\n  let formats = {};\n  if (lines.length > 1) {\n    const firstFormats = lines[0].formats();\n    const lastFormats = lines[lines.length - 1].formats();\n    formats = quill_delta__WEBPACK_IMPORTED_MODULE_2__.AttributeMap.diff(lastFormats, firstFormats) || {};\n  }\n  quill.deleteText(range, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n  if (Object.keys(formats).length > 0) {\n    quill.formatLine(range.index, 1, formats, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.USER);\n  }\n  quill.setSelection(range.index, _core_quill_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"].sources.SILENT);\n}\nfunction tableSide(_table, row, cell, offset) {\n  if (row.prev == null && row.next == null) {\n    if (cell.prev == null && cell.next == null) {\n      return offset === 0 ? -1 : 1;\n    }\n    return cell.prev == null ? -1 : 1;\n  }\n  if (row.prev == null) {\n    return -1;\n  }\n  if (row.next == null) {\n    return 1;\n  }\n  return null;\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/modules/keyboard.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/modules/normalizeExternalHTML/index.js":
/*!*****************************************************************************!*\
  !*** ../react-ui/node_modules/quill/modules/normalizeExternalHTML/index.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _normalizers_googleDocs_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./normalizers/googleDocs.js */ \"../react-ui/node_modules/quill/modules/normalizeExternalHTML/normalizers/googleDocs.js\");\n/* harmony import */ var _normalizers_msWord_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./normalizers/msWord.js */ \"../react-ui/node_modules/quill/modules/normalizeExternalHTML/normalizers/msWord.js\");\n\n\nconst NORMALIZERS = [_normalizers_msWord_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _normalizers_googleDocs_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]];\nconst normalizeExternalHTML = doc => {\n  if (doc.documentElement) {\n    NORMALIZERS.forEach(normalize => {\n      normalize(doc);\n    });\n  }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (normalizeExternalHTML);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/modules/normalizeExternalHTML/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/modules/normalizeExternalHTML/normalizers/googleDocs.js":
/*!**********************************************************************************************!*\
  !*** ../react-ui/node_modules/quill/modules/normalizeExternalHTML/normalizers/googleDocs.js ***!
  \**********************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ normalize)\n/* harmony export */ });\nconst normalWeightRegexp = /font-weight:\\s*normal/;\nconst blockTagNames = ['P', 'OL', 'UL'];\nconst isBlockElement = element => {\n  return element && blockTagNames.includes(element.tagName);\n};\nconst normalizeEmptyLines = doc => {\n  Array.from(doc.querySelectorAll('br')).filter(br => isBlockElement(br.previousElementSibling) && isBlockElement(br.nextElementSibling)).forEach(br => {\n    br.parentNode?.removeChild(br);\n  });\n};\nconst normalizeFontWeight = doc => {\n  Array.from(doc.querySelectorAll('b[style*=\"font-weight\"]')).filter(node => node.getAttribute('style')?.match(normalWeightRegexp)).forEach(node => {\n    const fragment = doc.createDocumentFragment();\n    fragment.append(...node.childNodes);\n    node.parentNode?.replaceChild(fragment, node);\n  });\n};\nfunction normalize(doc) {\n  if (doc.querySelector('[id^=\"docs-internal-guid-\"]')) {\n    normalizeFontWeight(doc);\n    normalizeEmptyLines(doc);\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/modules/normalizeExternalHTML/normalizers/googleDocs.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/modules/normalizeExternalHTML/normalizers/msWord.js":
/*!******************************************************************************************!*\
  !*** ../react-ui/node_modules/quill/modules/normalizeExternalHTML/normalizers/msWord.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ normalize)\n/* harmony export */ });\nconst ignoreRegexp = /\\bmso-list:[^;]*ignore/i;\nconst idRegexp = /\\bmso-list:[^;]*\\bl(\\d+)/i;\nconst indentRegexp = /\\bmso-list:[^;]*\\blevel(\\d+)/i;\nconst parseListItem = (element, html) => {\n  const style = element.getAttribute('style');\n  const idMatch = style?.match(idRegexp);\n  if (!idMatch) {\n    return null;\n  }\n  const id = Number(idMatch[1]);\n  const indentMatch = style?.match(indentRegexp);\n  const indent = indentMatch ? Number(indentMatch[1]) : 1;\n  const typeRegexp = new RegExp(`@list l${id}:level${indent}\\\\s*\\\\{[^\\\\}]*mso-level-number-format:\\\\s*([\\\\w-]+)`, 'i');\n  const typeMatch = html.match(typeRegexp);\n  const type = typeMatch && typeMatch[1] === 'bullet' ? 'bullet' : 'ordered';\n  return {\n    id,\n    indent,\n    type,\n    element\n  };\n};\n\n// list items are represented as `p` tags with styles like `mso-list: l0 level1` where:\n// 1. \"0\" in \"l0\" means the list item id;\n// 2. \"1\" in \"level1\" means the indent level, starting from 1.\nconst normalizeListItem = doc => {\n  const msoList = Array.from(doc.querySelectorAll('[style*=mso-list]'));\n  const ignored = [];\n  const others = [];\n  msoList.forEach(node => {\n    const shouldIgnore = (node.getAttribute('style') || '').match(ignoreRegexp);\n    if (shouldIgnore) {\n      ignored.push(node);\n    } else {\n      others.push(node);\n    }\n  });\n\n  // Each list item contains a marker wrapped with \"mso-list: Ignore\".\n  ignored.forEach(node => node.parentNode?.removeChild(node));\n\n  // The list stype is not defined inline with the tag, instead, it's in the\n  // style tag so we need to pass the html as a string.\n  const html = doc.documentElement.innerHTML;\n  const listItems = others.map(element => parseListItem(element, html)).filter(parsed => parsed);\n  while (listItems.length) {\n    const childListItems = [];\n    let current = listItems.shift();\n    // Group continuous items into the same group (aka \"ul\")\n    while (current) {\n      childListItems.push(current);\n      current = listItems.length && listItems[0]?.element === current.element.nextElementSibling &&\n      // Different id means the next item doesn't belong to this group.\n      listItems[0].id === current.id ? listItems.shift() : null;\n    }\n    const ul = document.createElement('ul');\n    childListItems.forEach(listItem => {\n      const li = document.createElement('li');\n      li.setAttribute('data-list', listItem.type);\n      if (listItem.indent > 1) {\n        li.setAttribute('class', `ql-indent-${listItem.indent - 1}`);\n      }\n      li.innerHTML = listItem.element.innerHTML;\n      ul.appendChild(li);\n    });\n    const element = childListItems[0]?.element;\n    const {\n      parentNode\n    } = element ?? {};\n    if (element) {\n      parentNode?.replaceChild(ul, element);\n    }\n    childListItems.slice(1).forEach(_ref => {\n      let {\n        element: e\n      } = _ref;\n      parentNode?.removeChild(e);\n    });\n  }\n};\nfunction normalize(doc) {\n  if (doc.documentElement.getAttribute('xmlns:w') === 'urn:schemas-microsoft-com:office:word') {\n    normalizeListItem(doc);\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/modules/normalizeExternalHTML/normalizers/msWord.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/modules/syntax.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/quill/modules/syntax.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   CodeBlock: () => (/* binding */ SyntaxCodeBlock),\n/* harmony export */   CodeToken: () => (/* binding */ CodeToken),\n/* harmony export */   \"default\": () => (/* binding */ Syntax)\n/* harmony export */ });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! quill-delta */ \"../react-ui/node_modules/quill-delta/dist/Delta.js\");\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var _blots_inline_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../blots/inline.js */ \"../react-ui/node_modules/quill/blots/inline.js\");\n/* harmony import */ var _core_quill_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/quill.js */ \"../react-ui/node_modules/quill/core/quill.js\");\n/* harmony import */ var _core_module_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/module.js */ \"../react-ui/node_modules/quill/core/module.js\");\n/* harmony import */ var _blots_block_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../blots/block.js */ \"../react-ui/node_modules/quill/blots/block.js\");\n/* harmony import */ var _blots_break_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../blots/break.js */ \"../react-ui/node_modules/quill/blots/break.js\");\n/* harmony import */ var _blots_cursor_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../blots/cursor.js */ \"../react-ui/node_modules/quill/blots/cursor.js\");\n/* harmony import */ var _blots_text_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../blots/text.js */ \"../react-ui/node_modules/quill/blots/text.js\");\n/* harmony import */ var _formats_code_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../formats/code.js */ \"../react-ui/node_modules/quill/formats/code.js\");\n/* harmony import */ var _clipboard_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./clipboard.js */ \"../react-ui/node_modules/quill/modules/clipboard.js\");\n\n\n\n\n\n\n\n\n\n\n\nconst TokenAttributor = new parchment__WEBPACK_IMPORTED_MODULE_1__.ClassAttributor('code-token', 'hljs', {\n  scope: parchment__WEBPACK_IMPORTED_MODULE_1__.Scope.INLINE\n});\nclass CodeToken extends _blots_inline_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n  static formats(node, scroll) {\n    while (node != null && node !== scroll.domNode) {\n      if (node.classList && node.classList.contains(_formats_code_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].className)) {\n        // @ts-expect-error\n        return super.formats(node, scroll);\n      }\n      // @ts-expect-error\n      node = node.parentNode;\n    }\n    return undefined;\n  }\n  constructor(scroll, domNode, value) {\n    // @ts-expect-error\n    super(scroll, domNode, value);\n    TokenAttributor.add(this.domNode, value);\n  }\n  format(format, value) {\n    if (format !== CodeToken.blotName) {\n      super.format(format, value);\n    } else if (value) {\n      TokenAttributor.add(this.domNode, value);\n    } else {\n      TokenAttributor.remove(this.domNode);\n      this.domNode.classList.remove(this.statics.className);\n    }\n  }\n  optimize() {\n    // @ts-expect-error\n    super.optimize(...arguments);\n    if (!TokenAttributor.value(this.domNode)) {\n      this.unwrap();\n    }\n  }\n}\nCodeToken.blotName = 'code-token';\nCodeToken.className = 'ql-token';\nclass SyntaxCodeBlock extends _formats_code_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"] {\n  static create(value) {\n    const domNode = super.create(value);\n    if (typeof value === 'string') {\n      domNode.setAttribute('data-language', value);\n    }\n    return domNode;\n  }\n  static formats(domNode) {\n    // @ts-expect-error\n    return domNode.getAttribute('data-language') || 'plain';\n  }\n  static register() {} // Syntax module will register\n\n  format(name, value) {\n    if (name === this.statics.blotName && value) {\n      // @ts-expect-error\n      this.domNode.setAttribute('data-language', value);\n    } else {\n      super.format(name, value);\n    }\n  }\n  replaceWith(name, value) {\n    this.formatAt(0, this.length(), CodeToken.blotName, false);\n    return super.replaceWith(name, value);\n  }\n}\nclass SyntaxCodeBlockContainer extends _formats_code_js__WEBPACK_IMPORTED_MODULE_9__.CodeBlockContainer {\n  attach() {\n    super.attach();\n    this.forceNext = false;\n    // @ts-expect-error\n    this.scroll.emitMount(this);\n  }\n  format(name, value) {\n    if (name === SyntaxCodeBlock.blotName) {\n      this.forceNext = true;\n      this.children.forEach(child => {\n        // @ts-expect-error\n        child.format(name, value);\n      });\n    }\n  }\n  formatAt(index, length, name, value) {\n    if (name === SyntaxCodeBlock.blotName) {\n      this.forceNext = true;\n    }\n    super.formatAt(index, length, name, value);\n  }\n  highlight(highlight) {\n    let forced = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    if (this.children.head == null) return;\n    const nodes = Array.from(this.domNode.childNodes).filter(node => node !== this.uiNode);\n    const text = `${nodes.map(node => node.textContent).join('\\n')}\\n`;\n    const language = SyntaxCodeBlock.formats(this.children.head.domNode);\n    if (forced || this.forceNext || this.cachedText !== text) {\n      if (text.trim().length > 0 || this.cachedText == null) {\n        const oldDelta = this.children.reduce((delta, child) => {\n          // @ts-expect-error\n          return delta.concat((0,_blots_block_js__WEBPACK_IMPORTED_MODULE_5__.blockDelta)(child, false));\n        }, new quill_delta__WEBPACK_IMPORTED_MODULE_0__());\n        const delta = highlight(text, language);\n        oldDelta.diff(delta).reduce((index, _ref) => {\n          let {\n            retain,\n            attributes\n          } = _ref;\n          // Should be all retains\n          if (!retain) return index;\n          if (attributes) {\n            Object.keys(attributes).forEach(format => {\n              if ([SyntaxCodeBlock.blotName, CodeToken.blotName].includes(format)) {\n                // @ts-expect-error\n                this.formatAt(index, retain, format, attributes[format]);\n              }\n            });\n          }\n          // @ts-expect-error\n          return index + retain;\n        }, 0);\n      }\n      this.cachedText = text;\n      this.forceNext = false;\n    }\n  }\n  html(index, length) {\n    const [codeBlock] = this.children.find(index);\n    const language = codeBlock ? SyntaxCodeBlock.formats(codeBlock.domNode) : 'plain';\n    return `<pre data-language=\"${language}\">\\n${(0,_blots_text_js__WEBPACK_IMPORTED_MODULE_8__.escapeText)(this.code(index, length))}\\n</pre>`;\n  }\n  optimize(context) {\n    super.optimize(context);\n    if (this.parent != null && this.children.head != null && this.uiNode != null) {\n      const language = SyntaxCodeBlock.formats(this.children.head.domNode);\n      // @ts-expect-error\n      if (language !== this.uiNode.value) {\n        // @ts-expect-error\n        this.uiNode.value = language;\n      }\n    }\n  }\n}\nSyntaxCodeBlockContainer.allowedChildren = [SyntaxCodeBlock];\nSyntaxCodeBlock.requiredContainer = SyntaxCodeBlockContainer;\nSyntaxCodeBlock.allowedChildren = [CodeToken, _blots_cursor_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"], _blots_text_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"], _blots_break_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"]];\nconst highlight = (lib, language, text) => {\n  if (typeof lib.versionString === 'string') {\n    const majorVersion = lib.versionString.split('.')[0];\n    if (parseInt(majorVersion, 10) >= 11) {\n      return lib.highlight(text, {\n        language\n      }).value;\n    }\n  }\n  return lib.highlight(language, text).value;\n};\nclass Syntax extends _core_module_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"] {\n  static register() {\n    _core_quill_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].register(CodeToken, true);\n    _core_quill_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].register(SyntaxCodeBlock, true);\n    _core_quill_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].register(SyntaxCodeBlockContainer, true);\n  }\n  constructor(quill, options) {\n    super(quill, options);\n    if (this.options.hljs == null) {\n      throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n    }\n    // @ts-expect-error Fix me later\n    this.languages = this.options.languages.reduce((memo, _ref2) => {\n      let {\n        key\n      } = _ref2;\n      memo[key] = true;\n      return memo;\n    }, {});\n    this.highlightBlot = this.highlightBlot.bind(this);\n    this.initListener();\n    this.initTimer();\n  }\n  initListener() {\n    this.quill.on(_core_quill_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.SCROLL_BLOT_MOUNT, blot => {\n      if (!(blot instanceof SyntaxCodeBlockContainer)) return;\n      const select = this.quill.root.ownerDocument.createElement('select');\n      // @ts-expect-error Fix me later\n      this.options.languages.forEach(_ref3 => {\n        let {\n          key,\n          label\n        } = _ref3;\n        const option = select.ownerDocument.createElement('option');\n        option.textContent = label;\n        option.setAttribute('value', key);\n        select.appendChild(option);\n      });\n      select.addEventListener('change', () => {\n        blot.format(SyntaxCodeBlock.blotName, select.value);\n        this.quill.root.focus(); // Prevent scrolling\n        this.highlight(blot, true);\n      });\n      if (blot.uiNode == null) {\n        blot.attachUI(select);\n        if (blot.children.head) {\n          select.value = SyntaxCodeBlock.formats(blot.children.head.domNode);\n        }\n      }\n    });\n  }\n  initTimer() {\n    let timer = null;\n    this.quill.on(_core_quill_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].events.SCROLL_OPTIMIZE, () => {\n      if (timer) {\n        clearTimeout(timer);\n      }\n      timer = setTimeout(() => {\n        this.highlight();\n        timer = null;\n      }, this.options.interval);\n    });\n  }\n  highlight() {\n    let blot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    if (this.quill.selection.composing) return;\n    this.quill.update(_core_quill_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.USER);\n    const range = this.quill.getSelection();\n    const blots = blot == null ? this.quill.scroll.descendants(SyntaxCodeBlockContainer) : [blot];\n    blots.forEach(container => {\n      container.highlight(this.highlightBlot, force);\n    });\n    this.quill.update(_core_quill_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.SILENT);\n    if (range != null) {\n      this.quill.setSelection(range, _core_quill_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].sources.SILENT);\n    }\n  }\n  highlightBlot(text) {\n    let language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'plain';\n    language = this.languages[language] ? language : 'plain';\n    if (language === 'plain') {\n      return (0,_blots_text_js__WEBPACK_IMPORTED_MODULE_8__.escapeText)(text).split('\\n').reduce((delta, line, i) => {\n        if (i !== 0) {\n          delta.insert('\\n', {\n            [_formats_code_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].blotName]: language\n          });\n        }\n        return delta.insert(line);\n      }, new quill_delta__WEBPACK_IMPORTED_MODULE_0__());\n    }\n    const container = this.quill.root.ownerDocument.createElement('div');\n    container.classList.add(_formats_code_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].className);\n    container.innerHTML = highlight(this.options.hljs, language, text);\n    return (0,_clipboard_js__WEBPACK_IMPORTED_MODULE_10__.traverse)(this.quill.scroll, container, [(node, delta) => {\n      // @ts-expect-error\n      const value = TokenAttributor.value(node);\n      if (value) {\n        return delta.compose(new quill_delta__WEBPACK_IMPORTED_MODULE_0__().retain(delta.length(), {\n          [CodeToken.blotName]: value\n        }));\n      }\n      return delta;\n    }], [(node, delta) => {\n      // @ts-expect-error\n      return node.data.split('\\n').reduce((memo, nodeText, i) => {\n        if (i !== 0) memo.insert('\\n', {\n          [_formats_code_js__WEBPACK_IMPORTED_MODULE_9__[\"default\"].blotName]: language\n        });\n        return memo.insert(nodeText);\n      }, delta);\n    }], new WeakMap());\n  }\n}\nSyntax.DEFAULTS = {\n  hljs: (() => {\n    return window.hljs;\n  })(),\n  interval: 1000,\n  languages: [{\n    key: 'plain',\n    label: 'Plain'\n  }, {\n    key: 'bash',\n    label: 'Bash'\n  }, {\n    key: 'cpp',\n    label: 'C++'\n  }, {\n    key: 'cs',\n    label: 'C#'\n  }, {\n    key: 'css',\n    label: 'CSS'\n  }, {\n    key: 'diff',\n    label: 'Diff'\n  }, {\n    key: 'xml',\n    label: 'HTML/XML'\n  }, {\n    key: 'java',\n    label: 'Java'\n  }, {\n    key: 'javascript',\n    label: 'JavaScript'\n  }, {\n    key: 'markdown',\n    label: 'Markdown'\n  }, {\n    key: 'php',\n    label: 'PHP'\n  }, {\n    key: 'python',\n    label: 'Python'\n  }, {\n    key: 'ruby',\n    label: 'Ruby'\n  }, {\n    key: 'sql',\n    label: 'SQL'\n  }]\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/modules/syntax.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/modules/table.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/quill/modules/table.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! quill-delta */ \"../react-ui/node_modules/quill-delta/dist/Delta.js\");\n/* harmony import */ var _core_quill_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/quill.js */ \"../react-ui/node_modules/quill/core/quill.js\");\n/* harmony import */ var _core_module_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/module.js */ \"../react-ui/node_modules/quill/core/module.js\");\n/* harmony import */ var _formats_table_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../formats/table.js */ \"../react-ui/node_modules/quill/formats/table.js\");\n\n\n\n\nclass Table extends _core_module_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n  static register() {\n    _core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].register(_formats_table_js__WEBPACK_IMPORTED_MODULE_3__.TableCell);\n    _core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].register(_formats_table_js__WEBPACK_IMPORTED_MODULE_3__.TableRow);\n    _core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].register(_formats_table_js__WEBPACK_IMPORTED_MODULE_3__.TableBody);\n    _core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].register(_formats_table_js__WEBPACK_IMPORTED_MODULE_3__.TableContainer);\n  }\n  constructor() {\n    super(...arguments);\n    this.listenBalanceCells();\n  }\n  balanceTables() {\n    this.quill.scroll.descendants(_formats_table_js__WEBPACK_IMPORTED_MODULE_3__.TableContainer).forEach(table => {\n      table.balanceCells();\n    });\n  }\n  deleteColumn() {\n    const [table,, cell] = this.getTable();\n    if (cell == null) return;\n    // @ts-expect-error\n    table.deleteColumn(cell.cellOffset());\n    this.quill.update(_core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n  }\n  deleteRow() {\n    const [, row] = this.getTable();\n    if (row == null) return;\n    row.remove();\n    this.quill.update(_core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n  }\n  deleteTable() {\n    const [table] = this.getTable();\n    if (table == null) return;\n    // @ts-expect-error\n    const offset = table.offset();\n    // @ts-expect-error\n    table.remove();\n    this.quill.update(_core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n    this.quill.setSelection(offset, _core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.SILENT);\n  }\n  getTable() {\n    let range = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.quill.getSelection();\n    if (range == null) return [null, null, null, -1];\n    const [cell, offset] = this.quill.getLine(range.index);\n    if (cell == null || cell.statics.blotName !== _formats_table_js__WEBPACK_IMPORTED_MODULE_3__.TableCell.blotName) {\n      return [null, null, null, -1];\n    }\n    const row = cell.parent;\n    const table = row.parent.parent;\n    // @ts-expect-error\n    return [table, row, cell, offset];\n  }\n  insertColumn(offset) {\n    const range = this.quill.getSelection();\n    if (!range) return;\n    const [table, row, cell] = this.getTable(range);\n    if (cell == null) return;\n    const column = cell.cellOffset();\n    table.insertColumn(column + offset);\n    this.quill.update(_core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n    let shift = row.rowOffset();\n    if (offset === 0) {\n      shift += 1;\n    }\n    this.quill.setSelection(range.index + shift, range.length, _core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.SILENT);\n  }\n  insertColumnLeft() {\n    this.insertColumn(0);\n  }\n  insertColumnRight() {\n    this.insertColumn(1);\n  }\n  insertRow(offset) {\n    const range = this.quill.getSelection();\n    if (!range) return;\n    const [table, row, cell] = this.getTable(range);\n    if (cell == null) return;\n    const index = row.rowOffset();\n    table.insertRow(index + offset);\n    this.quill.update(_core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n    if (offset > 0) {\n      this.quill.setSelection(range, _core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.SILENT);\n    } else {\n      this.quill.setSelection(range.index + row.children.length, range.length, _core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.SILENT);\n    }\n  }\n  insertRowAbove() {\n    this.insertRow(0);\n  }\n  insertRowBelow() {\n    this.insertRow(1);\n  }\n  insertTable(rows, columns) {\n    const range = this.quill.getSelection();\n    if (range == null) return;\n    const delta = new Array(rows).fill(0).reduce(memo => {\n      const text = new Array(columns).fill('\\n').join('');\n      return memo.insert(text, {\n        table: (0,_formats_table_js__WEBPACK_IMPORTED_MODULE_3__.tableId)()\n      });\n    }, new quill_delta__WEBPACK_IMPORTED_MODULE_0__().retain(range.index));\n    this.quill.updateContents(delta, _core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n    this.quill.setSelection(range.index, _core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.SILENT);\n    this.balanceTables();\n  }\n  listenBalanceCells() {\n    this.quill.on(_core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.SCROLL_OPTIMIZE, mutations => {\n      mutations.some(mutation => {\n        if (['TD', 'TR', 'TBODY', 'TABLE'].includes(mutation.target.tagName)) {\n          this.quill.once(_core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.TEXT_CHANGE, (delta, old, source) => {\n            if (source !== _core_quill_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER) return;\n            this.balanceTables();\n          });\n          return true;\n        }\n        return false;\n      });\n    });\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Table);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/modules/table.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/modules/toolbar.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/quill/modules/toolbar.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   addControls: () => (/* binding */ addControls),\n/* harmony export */   \"default\": () => (/* binding */ Toolbar)\n/* harmony export */ });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! quill-delta */ \"../react-ui/node_modules/quill-delta/dist/Delta.js\");\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var _core_quill_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/quill.js */ \"../react-ui/node_modules/quill/core/quill.js\");\n/* harmony import */ var _core_logger_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/logger.js */ \"../react-ui/node_modules/quill/core/logger.js\");\n/* harmony import */ var _core_module_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/module.js */ \"../react-ui/node_modules/quill/core/module.js\");\n\n\n\n\n\nconst debug = (0,_core_logger_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('quill:toolbar');\nclass Toolbar extends _core_module_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"] {\n  constructor(quill, options) {\n    super(quill, options);\n    if (Array.isArray(this.options.container)) {\n      const container = document.createElement('div');\n      container.setAttribute('role', 'toolbar');\n      addControls(container, this.options.container);\n      quill.container?.parentNode?.insertBefore(container, quill.container);\n      this.container = container;\n    } else if (typeof this.options.container === 'string') {\n      this.container = document.querySelector(this.options.container);\n    } else {\n      this.container = this.options.container;\n    }\n    if (!(this.container instanceof HTMLElement)) {\n      debug.error('Container required for toolbar', this.options);\n      return;\n    }\n    this.container.classList.add('ql-toolbar');\n    this.controls = [];\n    this.handlers = {};\n    if (this.options.handlers) {\n      Object.keys(this.options.handlers).forEach(format => {\n        const handler = this.options.handlers?.[format];\n        if (handler) {\n          this.addHandler(format, handler);\n        }\n      });\n    }\n    Array.from(this.container.querySelectorAll('button, select')).forEach(input => {\n      // @ts-expect-error\n      this.attach(input);\n    });\n    this.quill.on(_core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].events.EDITOR_CHANGE, () => {\n      const [range] = this.quill.selection.getRange(); // quill.getSelection triggers update\n      this.update(range);\n    });\n  }\n  addHandler(format, handler) {\n    this.handlers[format] = handler;\n  }\n  attach(input) {\n    let format = Array.from(input.classList).find(className => {\n      return className.indexOf('ql-') === 0;\n    });\n    if (!format) return;\n    format = format.slice('ql-'.length);\n    if (input.tagName === 'BUTTON') {\n      input.setAttribute('type', 'button');\n    }\n    if (this.handlers[format] == null && this.quill.scroll.query(format) == null) {\n      debug.warn('ignoring attaching to nonexistent format', format, input);\n      return;\n    }\n    const eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n    input.addEventListener(eventName, e => {\n      let value;\n      if (input.tagName === 'SELECT') {\n        // @ts-expect-error\n        if (input.selectedIndex < 0) return;\n        // @ts-expect-error\n        const selected = input.options[input.selectedIndex];\n        if (selected.hasAttribute('selected')) {\n          value = false;\n        } else {\n          value = selected.value || false;\n        }\n      } else {\n        if (input.classList.contains('ql-active')) {\n          value = false;\n        } else {\n          // @ts-expect-error\n          value = input.value || !input.hasAttribute('value');\n        }\n        e.preventDefault();\n      }\n      this.quill.focus();\n      const [range] = this.quill.selection.getRange();\n      if (this.handlers[format] != null) {\n        this.handlers[format].call(this, value);\n      } else if (\n      // @ts-expect-error\n      this.quill.scroll.query(format).prototype instanceof parchment__WEBPACK_IMPORTED_MODULE_1__.EmbedBlot) {\n        value = prompt(`Enter ${format}`); // eslint-disable-line no-alert\n        if (!value) return;\n        this.quill.updateContents(new quill_delta__WEBPACK_IMPORTED_MODULE_0__()\n        // @ts-expect-error Fix me later\n        .retain(range.index)\n        // @ts-expect-error Fix me later\n        .delete(range.length).insert({\n          [format]: value\n        }), _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n      } else {\n        this.quill.format(format, value, _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n      }\n      this.update(range);\n    });\n    this.controls.push([format, input]);\n  }\n  update(range) {\n    const formats = range == null ? {} : this.quill.getFormat(range);\n    this.controls.forEach(pair => {\n      const [format, input] = pair;\n      if (input.tagName === 'SELECT') {\n        let option = null;\n        if (range == null) {\n          option = null;\n        } else if (formats[format] == null) {\n          option = input.querySelector('option[selected]');\n        } else if (!Array.isArray(formats[format])) {\n          let value = formats[format];\n          if (typeof value === 'string') {\n            value = value.replace(/\"/g, '\\\\\"');\n          }\n          option = input.querySelector(`option[value=\"${value}\"]`);\n        }\n        if (option == null) {\n          // @ts-expect-error TODO fix me later\n          input.value = ''; // TODO make configurable?\n          // @ts-expect-error TODO fix me later\n          input.selectedIndex = -1;\n        } else {\n          option.selected = true;\n        }\n      } else if (range == null) {\n        input.classList.remove('ql-active');\n        input.setAttribute('aria-pressed', 'false');\n      } else if (input.hasAttribute('value')) {\n        // both being null should match (default values)\n        // '1' should match with 1 (headers)\n        const value = formats[format];\n        const isActive = value === input.getAttribute('value') || value != null && value.toString() === input.getAttribute('value') || value == null && !input.getAttribute('value');\n        input.classList.toggle('ql-active', isActive);\n        input.setAttribute('aria-pressed', isActive.toString());\n      } else {\n        const isActive = formats[format] != null;\n        input.classList.toggle('ql-active', isActive);\n        input.setAttribute('aria-pressed', isActive.toString());\n      }\n    });\n  }\n}\nToolbar.DEFAULTS = {};\nfunction addButton(container, format, value) {\n  const input = document.createElement('button');\n  input.setAttribute('type', 'button');\n  input.classList.add(`ql-${format}`);\n  input.setAttribute('aria-pressed', 'false');\n  if (value != null) {\n    input.value = value;\n    input.setAttribute('aria-label', `${format}: ${value}`);\n  } else {\n    input.setAttribute('aria-label', format);\n  }\n  container.appendChild(input);\n}\nfunction addControls(container, groups) {\n  if (!Array.isArray(groups[0])) {\n    // @ts-expect-error\n    groups = [groups];\n  }\n  groups.forEach(controls => {\n    const group = document.createElement('span');\n    group.classList.add('ql-formats');\n    controls.forEach(control => {\n      if (typeof control === 'string') {\n        addButton(group, control);\n      } else {\n        const format = Object.keys(control)[0];\n        const value = control[format];\n        if (Array.isArray(value)) {\n          addSelect(group, format, value);\n        } else {\n          addButton(group, format, value);\n        }\n      }\n    });\n    container.appendChild(group);\n  });\n}\nfunction addSelect(container, format, values) {\n  const input = document.createElement('select');\n  input.classList.add(`ql-${format}`);\n  values.forEach(value => {\n    const option = document.createElement('option');\n    if (value !== false) {\n      option.setAttribute('value', String(value));\n    } else {\n      option.setAttribute('selected', 'selected');\n    }\n    input.appendChild(option);\n  });\n  container.appendChild(input);\n}\nToolbar.DEFAULTS = {\n  container: null,\n  handlers: {\n    clean() {\n      const range = this.quill.getSelection();\n      if (range == null) return;\n      if (range.length === 0) {\n        const formats = this.quill.getFormat();\n        Object.keys(formats).forEach(name => {\n          // Clean functionality in existing apps only clean inline formats\n          if (this.quill.scroll.query(name, parchment__WEBPACK_IMPORTED_MODULE_1__.Scope.INLINE) != null) {\n            this.quill.format(name, false, _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n          }\n        });\n      } else {\n        this.quill.removeFormat(range.index, range.length, _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n      }\n    },\n    direction(value) {\n      const {\n        align\n      } = this.quill.getFormat();\n      if (value === 'rtl' && align == null) {\n        this.quill.format('align', 'right', _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n      } else if (!value && align === 'right') {\n        this.quill.format('align', false, _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n      }\n      this.quill.format('direction', value, _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n    },\n    indent(value) {\n      const range = this.quill.getSelection();\n      // @ts-expect-error\n      const formats = this.quill.getFormat(range);\n      // @ts-expect-error\n      const indent = parseInt(formats.indent || 0, 10);\n      if (value === '+1' || value === '-1') {\n        let modifier = value === '+1' ? 1 : -1;\n        if (formats.direction === 'rtl') modifier *= -1;\n        this.quill.format('indent', indent + modifier, _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n      }\n    },\n    link(value) {\n      if (value === true) {\n        value = prompt('Enter link URL:'); // eslint-disable-line no-alert\n      }\n      this.quill.format('link', value, _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n    },\n    list(value) {\n      const range = this.quill.getSelection();\n      // @ts-expect-error\n      const formats = this.quill.getFormat(range);\n      if (value === 'check') {\n        if (formats.list === 'checked' || formats.list === 'unchecked') {\n          this.quill.format('list', false, _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n        } else {\n          this.quill.format('list', 'unchecked', _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n        }\n      } else {\n        this.quill.format('list', value, _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n      }\n    }\n  }\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/modules/toolbar.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/modules/uiNode.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/quill/modules/uiNode.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   TTL_FOR_VALID_SELECTION_CHANGE: () => (/* binding */ TTL_FOR_VALID_SELECTION_CHANGE),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var parchment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! parchment */ \"../react-ui/node_modules/parchment/dist/parchment.js\");\n/* harmony import */ var _core_module_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/module.js */ \"../react-ui/node_modules/quill/core/module.js\");\n/* harmony import */ var _core_quill_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/quill.js */ \"../react-ui/node_modules/quill/core/quill.js\");\n\n\n\nconst isMac = /Mac/i.test(navigator.platform);\n\n// Export for testing\nconst TTL_FOR_VALID_SELECTION_CHANGE = 100;\n\n// A loose check to determine if the shortcut can move the caret before a UI node:\n// <ANY_PARENT>[CARET]<div class=\"ql-ui\"></div>[CONTENT]</ANY_PARENT>\nconst canMoveCaretBeforeUINode = event => {\n  if (event.key === 'ArrowLeft' || event.key === 'ArrowRight' ||\n  // RTL scripts or moving from the end of the previous line\n  event.key === 'ArrowUp' || event.key === 'ArrowDown' || event.key === 'Home') {\n    return true;\n  }\n  if (isMac && event.key === 'a' && event.ctrlKey === true) {\n    return true;\n  }\n  return false;\n};\nclass UINode extends _core_module_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"] {\n  isListening = false;\n  selectionChangeDeadline = 0;\n  constructor(quill, options) {\n    super(quill, options);\n    this.handleArrowKeys();\n    this.handleNavigationShortcuts();\n  }\n  handleArrowKeys() {\n    this.quill.keyboard.addBinding({\n      key: ['ArrowLeft', 'ArrowRight'],\n      offset: 0,\n      shiftKey: null,\n      handler(range, _ref) {\n        let {\n          line,\n          event\n        } = _ref;\n        if (!(line instanceof parchment__WEBPACK_IMPORTED_MODULE_0__.ParentBlot) || !line.uiNode) {\n          return true;\n        }\n        const isRTL = getComputedStyle(line.domNode)['direction'] === 'rtl';\n        if (isRTL && event.key !== 'ArrowRight' || !isRTL && event.key !== 'ArrowLeft') {\n          return true;\n        }\n        this.quill.setSelection(range.index - 1, range.length + (event.shiftKey ? 1 : 0), _core_quill_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].sources.USER);\n        return false;\n      }\n    });\n  }\n  handleNavigationShortcuts() {\n    this.quill.root.addEventListener('keydown', event => {\n      if (!event.defaultPrevented && canMoveCaretBeforeUINode(event)) {\n        this.ensureListeningToSelectionChange();\n      }\n    });\n  }\n\n  /**\n   * We only listen to the `selectionchange` event when\n   * there is an intention of moving the caret to the beginning using shortcuts.\n   * This is primarily implemented to prevent infinite loops, as we are changing\n   * the selection within the handler of a `selectionchange` event.\n   */\n  ensureListeningToSelectionChange() {\n    this.selectionChangeDeadline = Date.now() + TTL_FOR_VALID_SELECTION_CHANGE;\n    if (this.isListening) return;\n    this.isListening = true;\n    const listener = () => {\n      this.isListening = false;\n      if (Date.now() <= this.selectionChangeDeadline) {\n        this.handleSelectionChange();\n      }\n    };\n    document.addEventListener('selectionchange', listener, {\n      once: true\n    });\n  }\n  handleSelectionChange() {\n    const selection = document.getSelection();\n    if (!selection) return;\n    const range = selection.getRangeAt(0);\n    if (range.collapsed !== true || range.startOffset !== 0) return;\n    const line = this.quill.scroll.find(range.startContainer);\n    if (!(line instanceof parchment__WEBPACK_IMPORTED_MODULE_0__.ParentBlot) || !line.uiNode) return;\n    const newRange = document.createRange();\n    newRange.setStartAfter(line.uiNode);\n    newRange.setEndAfter(line.uiNode);\n    selection.removeAllRanges();\n    selection.addRange(newRange);\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (UINode);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/modules/uiNode.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/modules/uploader.js":
/*!**********************************************************!*\
  !*** ../react-ui/node_modules/quill/modules/uploader.js ***!
  \**********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var quill_delta__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! quill-delta */ \"../react-ui/node_modules/quill-delta/dist/Delta.js\");\n/* harmony import */ var _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/emitter.js */ \"../react-ui/node_modules/quill/core/emitter.js\");\n/* harmony import */ var _core_module_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/module.js */ \"../react-ui/node_modules/quill/core/module.js\");\n\n\n\nclass Uploader extends _core_module_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n  constructor(quill, options) {\n    super(quill, options);\n    quill.root.addEventListener('drop', e => {\n      e.preventDefault();\n      let native = null;\n      if (document.caretRangeFromPoint) {\n        native = document.caretRangeFromPoint(e.clientX, e.clientY);\n        // @ts-expect-error\n      } else if (document.caretPositionFromPoint) {\n        // @ts-expect-error\n        const position = document.caretPositionFromPoint(e.clientX, e.clientY);\n        native = document.createRange();\n        native.setStart(position.offsetNode, position.offset);\n        native.setEnd(position.offsetNode, position.offset);\n      }\n      const normalized = native && quill.selection.normalizeNative(native);\n      if (normalized) {\n        const range = quill.selection.normalizedToRange(normalized);\n        if (e.dataTransfer?.files) {\n          this.upload(range, e.dataTransfer.files);\n        }\n      }\n    });\n  }\n  upload(range, files) {\n    const uploads = [];\n    Array.from(files).forEach(file => {\n      if (file && this.options.mimetypes?.includes(file.type)) {\n        uploads.push(file);\n      }\n    });\n    if (uploads.length > 0) {\n      // @ts-expect-error Fix me later\n      this.options.handler.call(this, range, uploads);\n    }\n  }\n}\nUploader.DEFAULTS = {\n  mimetypes: ['image/png', 'image/jpeg'],\n  handler(range, files) {\n    if (!this.quill.scroll.query('image')) {\n      return;\n    }\n    const promises = files.map(file => {\n      return new Promise(resolve => {\n        const reader = new FileReader();\n        reader.onload = () => {\n          resolve(reader.result);\n        };\n        reader.readAsDataURL(file);\n      });\n    });\n    Promise.all(promises).then(images => {\n      const update = images.reduce((delta, image) => {\n        return delta.insert({\n          image\n        });\n      }, new quill_delta__WEBPACK_IMPORTED_MODULE_0__().retain(range.index).delete(range.length));\n      this.quill.updateContents(update, _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n      this.quill.setSelection(range.index + images.length, _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.SILENT);\n    });\n  }\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Uploader);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/modules/uploader.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/quill.js":
/*!***********************************************!*\
  !*** ../react-ui/node_modules/quill/quill.js ***!
  \***********************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   AttributeMap: () => (/* reexport safe */ _core_js__WEBPACK_IMPORTED_MODULE_0__.AttributeMap),\n/* harmony export */   Delta: () => (/* reexport safe */ _core_js__WEBPACK_IMPORTED_MODULE_0__.Delta),\n/* harmony export */   Module: () => (/* reexport safe */ _core_js__WEBPACK_IMPORTED_MODULE_0__.Module),\n/* harmony export */   Op: () => (/* reexport safe */ _core_js__WEBPACK_IMPORTED_MODULE_0__.Op),\n/* harmony export */   OpIterator: () => (/* reexport safe */ _core_js__WEBPACK_IMPORTED_MODULE_0__.OpIterator),\n/* harmony export */   Parchment: () => (/* reexport safe */ _core_js__WEBPACK_IMPORTED_MODULE_0__.Parchment),\n/* harmony export */   Range: () => (/* reexport safe */ _core_js__WEBPACK_IMPORTED_MODULE_0__.Range),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _core_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core.js */ \"../react-ui/node_modules/quill/core.js\");\n/* harmony import */ var _formats_align_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formats/align.js */ \"../react-ui/node_modules/quill/formats/align.js\");\n/* harmony import */ var _formats_direction_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formats/direction.js */ \"../react-ui/node_modules/quill/formats/direction.js\");\n/* harmony import */ var _formats_indent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./formats/indent.js */ \"../react-ui/node_modules/quill/formats/indent.js\");\n/* harmony import */ var _formats_blockquote_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./formats/blockquote.js */ \"../react-ui/node_modules/quill/formats/blockquote.js\");\n/* harmony import */ var _formats_header_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./formats/header.js */ \"../react-ui/node_modules/quill/formats/header.js\");\n/* harmony import */ var _formats_list_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./formats/list.js */ \"../react-ui/node_modules/quill/formats/list.js\");\n/* harmony import */ var _formats_background_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./formats/background.js */ \"../react-ui/node_modules/quill/formats/background.js\");\n/* harmony import */ var _formats_color_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./formats/color.js */ \"../react-ui/node_modules/quill/formats/color.js\");\n/* harmony import */ var _formats_font_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./formats/font.js */ \"../react-ui/node_modules/quill/formats/font.js\");\n/* harmony import */ var _formats_size_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./formats/size.js */ \"../react-ui/node_modules/quill/formats/size.js\");\n/* harmony import */ var _formats_bold_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./formats/bold.js */ \"../react-ui/node_modules/quill/formats/bold.js\");\n/* harmony import */ var _formats_italic_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./formats/italic.js */ \"../react-ui/node_modules/quill/formats/italic.js\");\n/* harmony import */ var _formats_link_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./formats/link.js */ \"../react-ui/node_modules/quill/formats/link.js\");\n/* harmony import */ var _formats_script_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./formats/script.js */ \"../react-ui/node_modules/quill/formats/script.js\");\n/* harmony import */ var _formats_strike_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./formats/strike.js */ \"../react-ui/node_modules/quill/formats/strike.js\");\n/* harmony import */ var _formats_underline_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./formats/underline.js */ \"../react-ui/node_modules/quill/formats/underline.js\");\n/* harmony import */ var _formats_formula_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./formats/formula.js */ \"../react-ui/node_modules/quill/formats/formula.js\");\n/* harmony import */ var _formats_image_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./formats/image.js */ \"../react-ui/node_modules/quill/formats/image.js\");\n/* harmony import */ var _formats_video_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./formats/video.js */ \"../react-ui/node_modules/quill/formats/video.js\");\n/* harmony import */ var _formats_code_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./formats/code.js */ \"../react-ui/node_modules/quill/formats/code.js\");\n/* harmony import */ var _modules_syntax_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./modules/syntax.js */ \"../react-ui/node_modules/quill/modules/syntax.js\");\n/* harmony import */ var _modules_table_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./modules/table.js */ \"../react-ui/node_modules/quill/modules/table.js\");\n/* harmony import */ var _modules_toolbar_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./modules/toolbar.js */ \"../react-ui/node_modules/quill/modules/toolbar.js\");\n/* harmony import */ var _ui_icons_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./ui/icons.js */ \"../react-ui/node_modules/quill/ui/icons.js\");\n/* harmony import */ var _ui_picker_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./ui/picker.js */ \"../react-ui/node_modules/quill/ui/picker.js\");\n/* harmony import */ var _ui_color_picker_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ./ui/color-picker.js */ \"../react-ui/node_modules/quill/ui/color-picker.js\");\n/* harmony import */ var _ui_icon_picker_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./ui/icon-picker.js */ \"../react-ui/node_modules/quill/ui/icon-picker.js\");\n/* harmony import */ var _ui_tooltip_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./ui/tooltip.js */ \"../react-ui/node_modules/quill/ui/tooltip.js\");\n/* harmony import */ var _themes_bubble_js__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./themes/bubble.js */ \"../react-ui/node_modules/quill/themes/bubble.js\");\n/* harmony import */ var _themes_snow_js__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./themes/snow.js */ \"../react-ui/node_modules/quill/themes/snow.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n_core_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].register({\n  'attributors/attribute/direction': _formats_direction_js__WEBPACK_IMPORTED_MODULE_2__.DirectionAttribute,\n  'attributors/class/align': _formats_align_js__WEBPACK_IMPORTED_MODULE_1__.AlignClass,\n  'attributors/class/background': _formats_background_js__WEBPACK_IMPORTED_MODULE_7__.BackgroundClass,\n  'attributors/class/color': _formats_color_js__WEBPACK_IMPORTED_MODULE_8__.ColorClass,\n  'attributors/class/direction': _formats_direction_js__WEBPACK_IMPORTED_MODULE_2__.DirectionClass,\n  'attributors/class/font': _formats_font_js__WEBPACK_IMPORTED_MODULE_9__.FontClass,\n  'attributors/class/size': _formats_size_js__WEBPACK_IMPORTED_MODULE_10__.SizeClass,\n  'attributors/style/align': _formats_align_js__WEBPACK_IMPORTED_MODULE_1__.AlignStyle,\n  'attributors/style/background': _formats_background_js__WEBPACK_IMPORTED_MODULE_7__.BackgroundStyle,\n  'attributors/style/color': _formats_color_js__WEBPACK_IMPORTED_MODULE_8__.ColorStyle,\n  'attributors/style/direction': _formats_direction_js__WEBPACK_IMPORTED_MODULE_2__.DirectionStyle,\n  'attributors/style/font': _formats_font_js__WEBPACK_IMPORTED_MODULE_9__.FontStyle,\n  'attributors/style/size': _formats_size_js__WEBPACK_IMPORTED_MODULE_10__.SizeStyle\n}, true);\n_core_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].register({\n  'formats/align': _formats_align_js__WEBPACK_IMPORTED_MODULE_1__.AlignClass,\n  'formats/direction': _formats_direction_js__WEBPACK_IMPORTED_MODULE_2__.DirectionClass,\n  'formats/indent': _formats_indent_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"],\n  'formats/background': _formats_background_js__WEBPACK_IMPORTED_MODULE_7__.BackgroundStyle,\n  'formats/color': _formats_color_js__WEBPACK_IMPORTED_MODULE_8__.ColorStyle,\n  'formats/font': _formats_font_js__WEBPACK_IMPORTED_MODULE_9__.FontClass,\n  'formats/size': _formats_size_js__WEBPACK_IMPORTED_MODULE_10__.SizeClass,\n  'formats/blockquote': _formats_blockquote_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"],\n  'formats/code-block': _formats_code_js__WEBPACK_IMPORTED_MODULE_20__[\"default\"],\n  'formats/header': _formats_header_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"],\n  'formats/list': _formats_list_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"],\n  'formats/bold': _formats_bold_js__WEBPACK_IMPORTED_MODULE_11__[\"default\"],\n  'formats/code': _formats_code_js__WEBPACK_IMPORTED_MODULE_20__.Code,\n  'formats/italic': _formats_italic_js__WEBPACK_IMPORTED_MODULE_12__[\"default\"],\n  'formats/link': _formats_link_js__WEBPACK_IMPORTED_MODULE_13__[\"default\"],\n  'formats/script': _formats_script_js__WEBPACK_IMPORTED_MODULE_14__[\"default\"],\n  'formats/strike': _formats_strike_js__WEBPACK_IMPORTED_MODULE_15__[\"default\"],\n  'formats/underline': _formats_underline_js__WEBPACK_IMPORTED_MODULE_16__[\"default\"],\n  'formats/formula': _formats_formula_js__WEBPACK_IMPORTED_MODULE_17__[\"default\"],\n  'formats/image': _formats_image_js__WEBPACK_IMPORTED_MODULE_18__[\"default\"],\n  'formats/video': _formats_video_js__WEBPACK_IMPORTED_MODULE_19__[\"default\"],\n  'modules/syntax': _modules_syntax_js__WEBPACK_IMPORTED_MODULE_21__[\"default\"],\n  'modules/table': _modules_table_js__WEBPACK_IMPORTED_MODULE_22__[\"default\"],\n  'modules/toolbar': _modules_toolbar_js__WEBPACK_IMPORTED_MODULE_23__[\"default\"],\n  'themes/bubble': _themes_bubble_js__WEBPACK_IMPORTED_MODULE_29__[\"default\"],\n  'themes/snow': _themes_snow_js__WEBPACK_IMPORTED_MODULE_30__[\"default\"],\n  'ui/icons': _ui_icons_js__WEBPACK_IMPORTED_MODULE_24__[\"default\"],\n  'ui/picker': _ui_picker_js__WEBPACK_IMPORTED_MODULE_25__[\"default\"],\n  'ui/icon-picker': _ui_icon_picker_js__WEBPACK_IMPORTED_MODULE_27__[\"default\"],\n  'ui/color-picker': _ui_color_picker_js__WEBPACK_IMPORTED_MODULE_26__[\"default\"],\n  'ui/tooltip': _ui_tooltip_js__WEBPACK_IMPORTED_MODULE_28__[\"default\"]\n}, true);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_core_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"]);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/quill.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/themes/base.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/quill/themes/base.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   BaseTooltip: () => (/* binding */ BaseTooltip),\n/* harmony export */   \"default\": () => (/* binding */ BaseTheme)\n/* harmony export */ });\n/* harmony import */ var lodash_es__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash-es */ \"../react-ui/node_modules/lodash-es/merge.js\");\n/* harmony import */ var _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/emitter.js */ \"../react-ui/node_modules/quill/core/emitter.js\");\n/* harmony import */ var _core_theme_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/theme.js */ \"../react-ui/node_modules/quill/core/theme.js\");\n/* harmony import */ var _ui_color_picker_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../ui/color-picker.js */ \"../react-ui/node_modules/quill/ui/color-picker.js\");\n/* harmony import */ var _ui_icon_picker_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui/icon-picker.js */ \"../react-ui/node_modules/quill/ui/icon-picker.js\");\n/* harmony import */ var _ui_picker_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ui/picker.js */ \"../react-ui/node_modules/quill/ui/picker.js\");\n/* harmony import */ var _ui_tooltip_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../ui/tooltip.js */ \"../react-ui/node_modules/quill/ui/tooltip.js\");\n\n\n\n\n\n\n\nconst ALIGNS = [false, 'center', 'right', 'justify'];\nconst COLORS = ['#000000', '#e60000', '#ff9900', '#ffff00', '#008a00', '#0066cc', '#9933ff', '#ffffff', '#facccc', '#ffebcc', '#ffffcc', '#cce8cc', '#cce0f5', '#ebd6ff', '#bbbbbb', '#f06666', '#ffc266', '#ffff66', '#66b966', '#66a3e0', '#c285ff', '#888888', '#a10000', '#b26b00', '#b2b200', '#006100', '#0047b2', '#6b24b2', '#444444', '#5c0000', '#663d00', '#666600', '#003700', '#002966', '#3d1466'];\nconst FONTS = [false, 'serif', 'monospace'];\nconst HEADERS = ['1', '2', '3', false];\nconst SIZES = ['small', false, 'large', 'huge'];\nclass BaseTheme extends _core_theme_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n  constructor(quill, options) {\n    super(quill, options);\n    const listener = e => {\n      if (!document.body.contains(quill.root)) {\n        document.body.removeEventListener('click', listener);\n        return;\n      }\n      if (this.tooltip != null &&\n      // @ts-expect-error\n      !this.tooltip.root.contains(e.target) &&\n      // @ts-expect-error\n      document.activeElement !== this.tooltip.textbox && !this.quill.hasFocus()) {\n        this.tooltip.hide();\n      }\n      if (this.pickers != null) {\n        this.pickers.forEach(picker => {\n          // @ts-expect-error\n          if (!picker.container.contains(e.target)) {\n            picker.close();\n          }\n        });\n      }\n    };\n    quill.emitter.listenDOM('click', document.body, listener);\n  }\n  addModule(name) {\n    const module = super.addModule(name);\n    if (name === 'toolbar') {\n      // @ts-expect-error\n      this.extendToolbar(module);\n    }\n    return module;\n  }\n  buildButtons(buttons, icons) {\n    Array.from(buttons).forEach(button => {\n      const className = button.getAttribute('class') || '';\n      className.split(/\\s+/).forEach(name => {\n        if (!name.startsWith('ql-')) return;\n        name = name.slice('ql-'.length);\n        if (icons[name] == null) return;\n        if (name === 'direction') {\n          // @ts-expect-error\n          button.innerHTML = icons[name][''] + icons[name].rtl;\n        } else if (typeof icons[name] === 'string') {\n          // @ts-expect-error\n          button.innerHTML = icons[name];\n        } else {\n          // @ts-expect-error\n          const value = button.value || '';\n          // @ts-expect-error\n          if (value != null && icons[name][value]) {\n            // @ts-expect-error\n            button.innerHTML = icons[name][value];\n          }\n        }\n      });\n    });\n  }\n  buildPickers(selects, icons) {\n    this.pickers = Array.from(selects).map(select => {\n      if (select.classList.contains('ql-align')) {\n        if (select.querySelector('option') == null) {\n          fillSelect(select, ALIGNS);\n        }\n        if (typeof icons.align === 'object') {\n          return new _ui_icon_picker_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"](select, icons.align);\n        }\n      }\n      if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n        const format = select.classList.contains('ql-background') ? 'background' : 'color';\n        if (select.querySelector('option') == null) {\n          fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n        }\n        return new _ui_color_picker_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"](select, icons[format]);\n      }\n      if (select.querySelector('option') == null) {\n        if (select.classList.contains('ql-font')) {\n          fillSelect(select, FONTS);\n        } else if (select.classList.contains('ql-header')) {\n          fillSelect(select, HEADERS);\n        } else if (select.classList.contains('ql-size')) {\n          fillSelect(select, SIZES);\n        }\n      }\n      return new _ui_picker_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"](select);\n    });\n    const update = () => {\n      this.pickers.forEach(picker => {\n        picker.update();\n      });\n    };\n    this.quill.on(_core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.EDITOR_CHANGE, update);\n  }\n}\nBaseTheme.DEFAULTS = (0,lodash_es__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, _core_theme_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].DEFAULTS, {\n  modules: {\n    toolbar: {\n      handlers: {\n        formula() {\n          this.quill.theme.tooltip.edit('formula');\n        },\n        image() {\n          let fileInput = this.container.querySelector('input.ql-image[type=file]');\n          if (fileInput == null) {\n            fileInput = document.createElement('input');\n            fileInput.setAttribute('type', 'file');\n            fileInput.setAttribute('accept', this.quill.uploader.options.mimetypes.join(', '));\n            fileInput.classList.add('ql-image');\n            fileInput.addEventListener('change', () => {\n              const range = this.quill.getSelection(true);\n              this.quill.uploader.upload(range, fileInput.files);\n              fileInput.value = '';\n            });\n            this.container.appendChild(fileInput);\n          }\n          fileInput.click();\n        },\n        video() {\n          this.quill.theme.tooltip.edit('video');\n        }\n      }\n    }\n  }\n});\nclass BaseTooltip extends _ui_tooltip_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"] {\n  constructor(quill, boundsContainer) {\n    super(quill, boundsContainer);\n    this.textbox = this.root.querySelector('input[type=\"text\"]');\n    this.listen();\n  }\n  listen() {\n    // @ts-expect-error Fix me later\n    this.textbox.addEventListener('keydown', event => {\n      if (event.key === 'Enter') {\n        this.save();\n        event.preventDefault();\n      } else if (event.key === 'Escape') {\n        this.cancel();\n        event.preventDefault();\n      }\n    });\n  }\n  cancel() {\n    this.hide();\n    this.restoreFocus();\n  }\n  edit() {\n    let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n    let preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    this.root.classList.remove('ql-hidden');\n    this.root.classList.add('ql-editing');\n    if (this.textbox == null) return;\n    if (preview != null) {\n      this.textbox.value = preview;\n    } else if (mode !== this.root.getAttribute('data-mode')) {\n      this.textbox.value = '';\n    }\n    const bounds = this.quill.getBounds(this.quill.selection.savedRange);\n    if (bounds != null) {\n      this.position(bounds);\n    }\n    this.textbox.select();\n    this.textbox.setAttribute('placeholder', this.textbox.getAttribute(`data-${mode}`) || '');\n    this.root.setAttribute('data-mode', mode);\n  }\n  restoreFocus() {\n    this.quill.focus({\n      preventScroll: true\n    });\n  }\n  save() {\n    // @ts-expect-error Fix me later\n    let {\n      value\n    } = this.textbox;\n    switch (this.root.getAttribute('data-mode')) {\n      case 'link':\n        {\n          const {\n            scrollTop\n          } = this.quill.root;\n          if (this.linkRange) {\n            this.quill.formatText(this.linkRange, 'link', value, _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n            delete this.linkRange;\n          } else {\n            this.restoreFocus();\n            this.quill.format('link', value, _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n          }\n          this.quill.root.scrollTop = scrollTop;\n          break;\n        }\n      case 'video':\n        {\n          value = extractVideoUrl(value);\n        }\n      // eslint-disable-next-line no-fallthrough\n      case 'formula':\n        {\n          if (!value) break;\n          const range = this.quill.getSelection(true);\n          if (range != null) {\n            const index = range.index + range.length;\n            this.quill.insertEmbed(index,\n            // @ts-expect-error Fix me later\n            this.root.getAttribute('data-mode'), value, _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n            if (this.root.getAttribute('data-mode') === 'formula') {\n              this.quill.insertText(index + 1, ' ', _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n            }\n            this.quill.setSelection(index + 2, _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n          }\n          break;\n        }\n      default:\n    }\n    // @ts-expect-error Fix me later\n    this.textbox.value = '';\n    this.hide();\n  }\n}\nfunction extractVideoUrl(url) {\n  let match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n  if (match) {\n    return `${match[1] || 'https'}://www.youtube.com/embed/${match[2]}?showinfo=0`;\n  }\n  // eslint-disable-next-line no-cond-assign\n  if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n    return `${match[1] || 'https'}://player.vimeo.com/video/${match[2]}/`;\n  }\n  return url;\n}\nfunction fillSelect(select, values) {\n  let defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n  values.forEach(value => {\n    const option = document.createElement('option');\n    if (value === defaultValue) {\n      option.setAttribute('selected', 'selected');\n    } else {\n      option.setAttribute('value', String(value));\n    }\n    select.appendChild(option);\n  });\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/themes/base.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/themes/bubble.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/quill/themes/bubble.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   BubbleTooltip: () => (/* binding */ BubbleTooltip),\n/* harmony export */   \"default\": () => (/* binding */ BubbleTheme)\n/* harmony export */ });\n/* harmony import */ var lodash_es__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash-es */ \"../react-ui/node_modules/lodash-es/merge.js\");\n/* harmony import */ var _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/emitter.js */ \"../react-ui/node_modules/quill/core/emitter.js\");\n/* harmony import */ var _base_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base.js */ \"../react-ui/node_modules/quill/themes/base.js\");\n/* harmony import */ var _core_selection_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../core/selection.js */ \"../react-ui/node_modules/quill/core/selection.js\");\n/* harmony import */ var _ui_icons_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../ui/icons.js */ \"../react-ui/node_modules/quill/ui/icons.js\");\n/* harmony import */ var _core_quill_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../core/quill.js */ \"../react-ui/node_modules/quill/core/quill.js\");\n\n\n\n\n\n\nconst TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{\n  header: 1\n}, {\n  header: 2\n}, 'blockquote']];\nclass BubbleTooltip extends _base_js__WEBPACK_IMPORTED_MODULE_2__.BaseTooltip {\n  static TEMPLATE = ['<span class=\"ql-tooltip-arrow\"></span>', '<div class=\"ql-tooltip-editor\">', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-close\"></a>', '</div>'].join('');\n  constructor(quill, bounds) {\n    super(quill, bounds);\n    this.quill.on(_core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.EDITOR_CHANGE, (type, range, oldRange, source) => {\n      if (type !== _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.SELECTION_CHANGE) return;\n      if (range != null && range.length > 0 && source === _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER) {\n        this.show();\n        // Lock our width so we will expand beyond our offsetParent boundaries\n        this.root.style.left = '0px';\n        this.root.style.width = '';\n        this.root.style.width = `${this.root.offsetWidth}px`;\n        const lines = this.quill.getLines(range.index, range.length);\n        if (lines.length === 1) {\n          const bounds = this.quill.getBounds(range);\n          if (bounds != null) {\n            this.position(bounds);\n          }\n        } else {\n          const lastLine = lines[lines.length - 1];\n          const index = this.quill.getIndex(lastLine);\n          const length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n          const indexBounds = this.quill.getBounds(new _core_selection_js__WEBPACK_IMPORTED_MODULE_3__.Range(index, length));\n          if (indexBounds != null) {\n            this.position(indexBounds);\n          }\n        }\n      } else if (document.activeElement !== this.textbox && this.quill.hasFocus()) {\n        this.hide();\n      }\n    });\n  }\n  listen() {\n    super.listen();\n    // @ts-expect-error Fix me later\n    this.root.querySelector('.ql-close').addEventListener('click', () => {\n      this.root.classList.remove('ql-editing');\n    });\n    this.quill.on(_core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.SCROLL_OPTIMIZE, () => {\n      // Let selection be restored by toolbar handlers before repositioning\n      setTimeout(() => {\n        if (this.root.classList.contains('ql-hidden')) return;\n        const range = this.quill.getSelection();\n        if (range != null) {\n          const bounds = this.quill.getBounds(range);\n          if (bounds != null) {\n            this.position(bounds);\n          }\n        }\n      }, 1);\n    });\n  }\n  cancel() {\n    this.show();\n  }\n  position(reference) {\n    const shift = super.position(reference);\n    const arrow = this.root.querySelector('.ql-tooltip-arrow');\n    // @ts-expect-error\n    arrow.style.marginLeft = '';\n    if (shift !== 0) {\n      // @ts-expect-error\n      arrow.style.marginLeft = `${-1 * shift - arrow.offsetWidth / 2}px`;\n    }\n    return shift;\n  }\n}\nclass BubbleTheme extends _base_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n  constructor(quill, options) {\n    if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n      options.modules.toolbar.container = TOOLBAR_CONFIG;\n    }\n    super(quill, options);\n    this.quill.container.classList.add('ql-bubble');\n  }\n  extendToolbar(toolbar) {\n    // @ts-expect-error\n    this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n    if (toolbar.container != null) {\n      this.tooltip.root.appendChild(toolbar.container);\n      this.buildButtons(toolbar.container.querySelectorAll('button'), _ui_icons_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n      this.buildPickers(toolbar.container.querySelectorAll('select'), _ui_icons_js__WEBPACK_IMPORTED_MODULE_4__[\"default\"]);\n    }\n  }\n}\nBubbleTheme.DEFAULTS = (0,lodash_es__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, _base_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].DEFAULTS, {\n  modules: {\n    toolbar: {\n      handlers: {\n        link(value) {\n          if (!value) {\n            this.quill.format('link', false, _core_quill_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"].sources.USER);\n          } else {\n            // @ts-expect-error\n            this.quill.theme.tooltip.edit();\n          }\n        }\n      }\n    }\n  }\n});\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/themes/bubble.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/themes/snow.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/quill/themes/snow.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var lodash_es__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash-es */ \"../react-ui/node_modules/lodash-es/merge.js\");\n/* harmony import */ var _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../core/emitter.js */ \"../react-ui/node_modules/quill/core/emitter.js\");\n/* harmony import */ var _base_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base.js */ \"../react-ui/node_modules/quill/themes/base.js\");\n/* harmony import */ var _formats_link_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../formats/link.js */ \"../react-ui/node_modules/quill/formats/link.js\");\n/* harmony import */ var _core_selection_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../core/selection.js */ \"../react-ui/node_modules/quill/core/selection.js\");\n/* harmony import */ var _ui_icons_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../ui/icons.js */ \"../react-ui/node_modules/quill/ui/icons.js\");\n/* harmony import */ var _core_quill_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../core/quill.js */ \"../react-ui/node_modules/quill/core/quill.js\");\n\n\n\n\n\n\n\nconst TOOLBAR_CONFIG = [[{\n  header: ['1', '2', '3', false]\n}], ['bold', 'italic', 'underline', 'link'], [{\n  list: 'ordered'\n}, {\n  list: 'bullet'\n}], ['clean']];\nclass SnowTooltip extends _base_js__WEBPACK_IMPORTED_MODULE_2__.BaseTooltip {\n  static TEMPLATE = ['<a class=\"ql-preview\" rel=\"noopener noreferrer\" target=\"_blank\" href=\"about:blank\"></a>', '<input type=\"text\" data-formula=\"e=mc^2\" data-link=\"https://quilljs.com\" data-video=\"Embed URL\">', '<a class=\"ql-action\"></a>', '<a class=\"ql-remove\"></a>'].join('');\n  preview = this.root.querySelector('a.ql-preview');\n  listen() {\n    super.listen();\n    // @ts-expect-error Fix me later\n    this.root.querySelector('a.ql-action').addEventListener('click', event => {\n      if (this.root.classList.contains('ql-editing')) {\n        this.save();\n      } else {\n        // @ts-expect-error Fix me later\n        this.edit('link', this.preview.textContent);\n      }\n      event.preventDefault();\n    });\n    // @ts-expect-error Fix me later\n    this.root.querySelector('a.ql-remove').addEventListener('click', event => {\n      if (this.linkRange != null) {\n        const range = this.linkRange;\n        this.restoreFocus();\n        this.quill.formatText(range, 'link', false, _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER);\n        delete this.linkRange;\n      }\n      event.preventDefault();\n      this.hide();\n    });\n    this.quill.on(_core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].events.SELECTION_CHANGE, (range, oldRange, source) => {\n      if (range == null) return;\n      if (range.length === 0 && source === _core_emitter_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"].sources.USER) {\n        const [link, offset] = this.quill.scroll.descendant(_formats_link_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"], range.index);\n        if (link != null) {\n          this.linkRange = new _core_selection_js__WEBPACK_IMPORTED_MODULE_4__.Range(range.index - offset, link.length());\n          const preview = _formats_link_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"].formats(link.domNode);\n          // @ts-expect-error Fix me later\n          this.preview.textContent = preview;\n          // @ts-expect-error Fix me later\n          this.preview.setAttribute('href', preview);\n          this.show();\n          const bounds = this.quill.getBounds(this.linkRange);\n          if (bounds != null) {\n            this.position(bounds);\n          }\n          return;\n        }\n      } else {\n        delete this.linkRange;\n      }\n      this.hide();\n    });\n  }\n  show() {\n    super.show();\n    this.root.removeAttribute('data-mode');\n  }\n}\nclass SnowTheme extends _base_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"] {\n  constructor(quill, options) {\n    if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n      options.modules.toolbar.container = TOOLBAR_CONFIG;\n    }\n    super(quill, options);\n    this.quill.container.classList.add('ql-snow');\n  }\n  extendToolbar(toolbar) {\n    if (toolbar.container != null) {\n      toolbar.container.classList.add('ql-snow');\n      this.buildButtons(toolbar.container.querySelectorAll('button'), _ui_icons_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n      this.buildPickers(toolbar.container.querySelectorAll('select'), _ui_icons_js__WEBPACK_IMPORTED_MODULE_5__[\"default\"]);\n      // @ts-expect-error\n      this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n      if (toolbar.container.querySelector('.ql-link')) {\n        this.quill.keyboard.addBinding({\n          key: 'k',\n          shortKey: true\n        }, (_range, context) => {\n          toolbar.handlers.link.call(toolbar, !context.format.link);\n        });\n      }\n    }\n  }\n}\nSnowTheme.DEFAULTS = (0,lodash_es__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, _base_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"].DEFAULTS, {\n  modules: {\n    toolbar: {\n      handlers: {\n        link(value) {\n          if (value) {\n            const range = this.quill.getSelection();\n            if (range == null || range.length === 0) return;\n            let preview = this.quill.getText(range);\n            if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n              preview = `mailto:${preview}`;\n            }\n            // @ts-expect-error\n            const {\n              tooltip\n            } = this.quill.theme;\n            tooltip.edit('link', preview);\n          } else {\n            this.quill.format('link', false, _core_quill_js__WEBPACK_IMPORTED_MODULE_6__[\"default\"].sources.USER);\n          }\n        }\n      }\n    }\n  }\n});\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SnowTheme);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/themes/snow.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/ui/color-picker.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/quill/ui/color-picker.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _picker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./picker.js */ \"../react-ui/node_modules/quill/ui/picker.js\");\n\nclass ColorPicker extends _picker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  constructor(select, label) {\n    super(select);\n    this.label.innerHTML = label;\n    this.container.classList.add('ql-color-picker');\n    Array.from(this.container.querySelectorAll('.ql-picker-item')).slice(0, 7).forEach(item => {\n      item.classList.add('ql-primary');\n    });\n  }\n  buildItem(option) {\n    const item = super.buildItem(option);\n    item.style.backgroundColor = option.getAttribute('value') || '';\n    return item;\n  }\n  selectItem(item, trigger) {\n    super.selectItem(item, trigger);\n    const colorLabel = this.label.querySelector('.ql-color-label');\n    const value = item ? item.getAttribute('data-value') || '' : '';\n    if (colorLabel) {\n      if (colorLabel.tagName === 'line') {\n        colorLabel.style.stroke = value;\n      } else {\n        colorLabel.style.fill = value;\n      }\n    }\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ColorPicker);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/ui/color-picker.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/ui/icon-picker.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/quill/ui/icon-picker.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _picker_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./picker.js */ \"../react-ui/node_modules/quill/ui/picker.js\");\n\nclass IconPicker extends _picker_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"] {\n  constructor(select, icons) {\n    super(select);\n    this.container.classList.add('ql-icon-picker');\n    Array.from(this.container.querySelectorAll('.ql-picker-item')).forEach(item => {\n      item.innerHTML = icons[item.getAttribute('data-value') || ''];\n    });\n    this.defaultItem = this.container.querySelector('.ql-selected');\n    this.selectItem(this.defaultItem);\n  }\n  selectItem(target, trigger) {\n    super.selectItem(target, trigger);\n    const item = target || this.defaultItem;\n    if (item != null) {\n      if (this.label.innerHTML === item.innerHTML) return;\n      this.label.innerHTML = item.innerHTML;\n    }\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (IconPicker);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/ui/icon-picker.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/ui/icons.js":
/*!**************************************************!*\
  !*** ../react-ui/node_modules/quill/ui/icons.js ***!
  \**************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst alignLeftIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><line class=\\\"ql-stroke\\\" x1=\\\"3\\\" x2=\\\"15\\\" y1=\\\"9\\\" y2=\\\"9\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"3\\\" x2=\\\"13\\\" y1=\\\"14\\\" y2=\\\"14\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"3\\\" x2=\\\"9\\\" y1=\\\"4\\\" y2=\\\"4\\\"/></svg>\";\nconst alignCenterIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><line class=\\\"ql-stroke\\\" x1=\\\"15\\\" x2=\\\"3\\\" y1=\\\"9\\\" y2=\\\"9\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"14\\\" x2=\\\"4\\\" y1=\\\"14\\\" y2=\\\"14\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"12\\\" x2=\\\"6\\\" y1=\\\"4\\\" y2=\\\"4\\\"/></svg>\";\nconst alignRightIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><line class=\\\"ql-stroke\\\" x1=\\\"15\\\" x2=\\\"3\\\" y1=\\\"9\\\" y2=\\\"9\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"15\\\" x2=\\\"5\\\" y1=\\\"14\\\" y2=\\\"14\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"15\\\" x2=\\\"9\\\" y1=\\\"4\\\" y2=\\\"4\\\"/></svg>\";\nconst alignJustifyIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><line class=\\\"ql-stroke\\\" x1=\\\"15\\\" x2=\\\"3\\\" y1=\\\"9\\\" y2=\\\"9\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"15\\\" x2=\\\"3\\\" y1=\\\"14\\\" y2=\\\"14\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"15\\\" x2=\\\"3\\\" y1=\\\"4\\\" y2=\\\"4\\\"/></svg>\";\nconst backgroundIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><g class=\\\"ql-fill ql-color-label\\\"><polygon points=\\\"6 6.868 6 6 5 6 5 7 5.942 7 6 6.868\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"4\\\" y=\\\"4\\\"/><polygon points=\\\"6.817 5 6 5 6 6 6.38 6 6.817 5\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"2\\\" y=\\\"6\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"3\\\" y=\\\"5\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"4\\\" y=\\\"7\\\"/><polygon points=\\\"4 11.439 4 11 3 11 3 12 3.755 12 4 11.439\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"2\\\" y=\\\"12\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"2\\\" y=\\\"9\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"2\\\" y=\\\"15\\\"/><polygon points=\\\"4.63 10 4 10 4 11 4.192 11 4.63 10\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"3\\\" y=\\\"8\\\"/><path d=\\\"M10.832,4.2L11,4.582V4H10.708A1.948,1.948,0,0,1,10.832,4.2Z\\\"/><path d=\\\"M7,4.582L7.168,4.2A1.929,1.929,0,0,1,7.292,4H7V4.582Z\\\"/><path d=\\\"M8,13H7.683l-0.351.8a1.933,1.933,0,0,1-.124.2H8V13Z\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"12\\\" y=\\\"2\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"11\\\" y=\\\"3\\\"/><path d=\\\"M9,3H8V3.282A1.985,1.985,0,0,1,9,3Z\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"2\\\" y=\\\"3\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"6\\\" y=\\\"2\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"3\\\" y=\\\"2\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"5\\\" y=\\\"3\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"9\\\" y=\\\"2\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"15\\\" y=\\\"14\\\"/><polygon points=\\\"13.447 10.174 13.469 10.225 13.472 10.232 13.808 11 14 11 14 10 13.37 10 13.447 10.174\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"13\\\" y=\\\"7\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"15\\\" y=\\\"5\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"14\\\" y=\\\"6\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"15\\\" y=\\\"8\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"14\\\" y=\\\"9\\\"/><path d=\\\"M3.775,14H3v1H4V14.314A1.97,1.97,0,0,1,3.775,14Z\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"14\\\" y=\\\"3\\\"/><polygon points=\\\"12 6.868 12 6 11.62 6 12 6.868\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"15\\\" y=\\\"2\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"12\\\" y=\\\"5\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"13\\\" y=\\\"4\\\"/><polygon points=\\\"12.933 9 13 9 13 8 12.495 8 12.933 9\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"9\\\" y=\\\"14\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"8\\\" y=\\\"15\\\"/><path d=\\\"M6,14.926V15H7V14.316A1.993,1.993,0,0,1,6,14.926Z\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"5\\\" y=\\\"15\\\"/><path d=\\\"M10.668,13.8L10.317,13H10v1h0.792A1.947,1.947,0,0,1,10.668,13.8Z\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"11\\\" y=\\\"15\\\"/><path d=\\\"M14.332,12.2a1.99,1.99,0,0,1,.166.8H15V12H14.245Z\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"14\\\" y=\\\"15\\\"/><rect height=\\\"1\\\" width=\\\"1\\\" x=\\\"15\\\" y=\\\"11\\\"/></g><polyline class=\\\"ql-stroke\\\" points=\\\"5.5 13 9 5 12.5 13\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"11.63\\\" x2=\\\"6.38\\\" y1=\\\"11\\\" y2=\\\"11\\\"/></svg>\";\nconst blockquoteIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><rect class=\\\"ql-fill ql-stroke\\\" height=\\\"3\\\" width=\\\"3\\\" x=\\\"4\\\" y=\\\"5\\\"/><rect class=\\\"ql-fill ql-stroke\\\" height=\\\"3\\\" width=\\\"3\\\" x=\\\"11\\\" y=\\\"5\\\"/><path class=\\\"ql-even ql-fill ql-stroke\\\" d=\\\"M7,8c0,4.031-3,5-3,5\\\"/><path class=\\\"ql-even ql-fill ql-stroke\\\" d=\\\"M14,8c0,4.031-3,5-3,5\\\"/></svg>\";\nconst boldIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><path class=\\\"ql-stroke\\\" d=\\\"M5,4H9.5A2.5,2.5,0,0,1,12,6.5v0A2.5,2.5,0,0,1,9.5,9H5A0,0,0,0,1,5,9V4A0,0,0,0,1,5,4Z\\\"/><path class=\\\"ql-stroke\\\" d=\\\"M5,9h5.5A2.5,2.5,0,0,1,13,11.5v0A2.5,2.5,0,0,1,10.5,14H5a0,0,0,0,1,0,0V9A0,0,0,0,1,5,9Z\\\"/></svg>\";\nconst cleanIcon = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"><line class=\\\"ql-stroke\\\" x1=\\\"5\\\" x2=\\\"13\\\" y1=\\\"3\\\" y2=\\\"3\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"6\\\" x2=\\\"9.35\\\" y1=\\\"12\\\" y2=\\\"3\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"11\\\" x2=\\\"15\\\" y1=\\\"11\\\" y2=\\\"15\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"15\\\" x2=\\\"11\\\" y1=\\\"11\\\" y2=\\\"15\\\"/><rect class=\\\"ql-fill\\\" height=\\\"1\\\" rx=\\\"0.5\\\" ry=\\\"0.5\\\" width=\\\"7\\\" x=\\\"2\\\" y=\\\"14\\\"/></svg>\";\nconst codeIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><polyline class=\\\"ql-even ql-stroke\\\" points=\\\"5 7 3 9 5 11\\\"/><polyline class=\\\"ql-even ql-stroke\\\" points=\\\"13 7 15 9 13 11\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"10\\\" x2=\\\"8\\\" y1=\\\"5\\\" y2=\\\"13\\\"/></svg>\";\nconst colorIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><line class=\\\"ql-color-label ql-stroke ql-transparent\\\" x1=\\\"3\\\" x2=\\\"15\\\" y1=\\\"15\\\" y2=\\\"15\\\"/><polyline class=\\\"ql-stroke\\\" points=\\\"5.5 11 9 3 12.5 11\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"11.63\\\" x2=\\\"6.38\\\" y1=\\\"9\\\" y2=\\\"9\\\"/></svg>\";\nconst directionLeftToRightIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"3 11 5 9 3 7 3 11\\\"/><line class=\\\"ql-stroke ql-fill\\\" x1=\\\"15\\\" x2=\\\"11\\\" y1=\\\"4\\\" y2=\\\"4\\\"/><path class=\\\"ql-fill\\\" d=\\\"M11,3a3,3,0,0,0,0,6h1V3H11Z\\\"/><rect class=\\\"ql-fill\\\" height=\\\"11\\\" width=\\\"1\\\" x=\\\"11\\\" y=\\\"4\\\"/><rect class=\\\"ql-fill\\\" height=\\\"11\\\" width=\\\"1\\\" x=\\\"13\\\" y=\\\"4\\\"/></svg>\";\nconst directionRightToLeftIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><polygon class=\\\"ql-stroke ql-fill\\\" points=\\\"15 12 13 10 15 8 15 12\\\"/><line class=\\\"ql-stroke ql-fill\\\" x1=\\\"9\\\" x2=\\\"5\\\" y1=\\\"4\\\" y2=\\\"4\\\"/><path class=\\\"ql-fill\\\" d=\\\"M5,3A3,3,0,0,0,5,9H6V3H5Z\\\"/><rect class=\\\"ql-fill\\\" height=\\\"11\\\" width=\\\"1\\\" x=\\\"5\\\" y=\\\"4\\\"/><rect class=\\\"ql-fill\\\" height=\\\"11\\\" width=\\\"1\\\" x=\\\"7\\\" y=\\\"4\\\"/></svg>\";\nconst formulaIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><path class=\\\"ql-fill\\\" d=\\\"M11.759,2.482a2.561,2.561,0,0,0-3.53.607A7.656,7.656,0,0,0,6.8,6.2C6.109,9.188,5.275,14.677,4.15,14.927a1.545,1.545,0,0,0-1.3-.933A0.922,0.922,0,0,0,2,15.036S1.954,16,4.119,16s3.091-2.691,3.7-5.553c0.177-.826.36-1.726,0.554-2.6L8.775,6.2c0.381-1.421.807-2.521,1.306-2.676a1.014,1.014,0,0,0,1.02.56A0.966,0.966,0,0,0,11.759,2.482Z\\\"/><rect class=\\\"ql-fill\\\" height=\\\"1.6\\\" rx=\\\"0.8\\\" ry=\\\"0.8\\\" width=\\\"5\\\" x=\\\"5.15\\\" y=\\\"6.2\\\"/><path class=\\\"ql-fill\\\" d=\\\"M13.663,12.027a1.662,1.662,0,0,1,.266-0.276q0.193,0.069.456,0.138a2.1,2.1,0,0,0,.535.069,1.075,1.075,0,0,0,.767-0.3,1.044,1.044,0,0,0,.314-0.8,0.84,0.84,0,0,0-.238-0.619,0.8,0.8,0,0,0-.594-0.239,1.154,1.154,0,0,0-.781.3,4.607,4.607,0,0,0-.781,1q-0.091.15-.218,0.346l-0.246.38c-0.068-.288-0.137-0.582-0.212-0.885-0.459-1.847-2.494-.984-2.941-0.8-0.482.2-.353,0.647-0.094,0.529a0.869,0.869,0,0,1,1.281.585c0.217,0.751.377,1.436,0.527,2.038a5.688,5.688,0,0,1-.362.467,2.69,2.69,0,0,1-.264.271q-0.221-.08-0.471-0.147a2.029,2.029,0,0,0-.522-0.066,1.079,1.079,0,0,0-.768.3A1.058,1.058,0,0,0,9,15.131a0.82,0.82,0,0,0,.832.852,1.134,1.134,0,0,0,.787-0.3,5.11,5.11,0,0,0,.776-0.993q0.141-.219.215-0.34c0.046-.076.122-0.194,0.223-0.346a2.786,2.786,0,0,0,.918,1.726,2.582,2.582,0,0,0,2.376-.185c0.317-.181.212-0.565,0-0.494A0.807,0.807,0,0,1,14.176,15a5.159,5.159,0,0,1-.913-2.446l0,0Q13.487,12.24,13.663,12.027Z\\\"/></svg>\";\nconst headerIcon = \"<svg viewBox=\\\"0 0 18 18\\\"><path class=\\\"ql-fill\\\" d=\\\"M10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Zm6.06787,9.209H14.98975V7.59863a.54085.54085,0,0,0-.605-.60547h-.62744a1.01119,1.01119,0,0,0-.748.29688L11.645,8.56641a.5435.5435,0,0,0-.022.8584l.28613.30762a.53861.53861,0,0,0,.84717.0332l.09912-.08789a1.2137,1.2137,0,0,0,.2417-.35254h.02246s-.01123.30859-.01123.60547V13.209H12.041a.54085.54085,0,0,0-.605.60547v.43945a.54085.54085,0,0,0,.605.60547h4.02686a.54085.54085,0,0,0,.605-.60547v-.43945A.54085.54085,0,0,0,16.06787,13.209Z\\\"/></svg>\";\nconst header2Icon = \"<svg viewBox=\\\"0 0 18 18\\\"><path class=\\\"ql-fill\\\" d=\\\"M16.73975,13.81445v.43945a.54085.54085,0,0,1-.605.60547H11.855a.58392.58392,0,0,1-.64893-.60547V14.0127c0-2.90527,3.39941-3.42187,3.39941-4.55469a.77675.77675,0,0,0-.84717-.78125,1.17684,1.17684,0,0,0-.83594.38477c-.2749.26367-.561.374-.85791.13184l-.4292-.34082c-.30811-.24219-.38525-.51758-.1543-.81445a2.97155,2.97155,0,0,1,2.45361-1.17676,2.45393,2.45393,0,0,1,2.68408,2.40918c0,2.45312-3.1792,2.92676-3.27832,3.93848h2.79443A.54085.54085,0,0,1,16.73975,13.81445ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z\\\"/></svg>\";\nconst header3Icon = \"<svg viewBox=\\\"0 0 18 18\\\"><path class=\\\"ql-fill\\\" d=\\\"M16.65186,12.30664a2.6742,2.6742,0,0,1-2.915,2.68457,3.96592,3.96592,0,0,1-2.25537-.6709.56007.56007,0,0,1-.13232-.83594L11.64648,13c.209-.34082.48389-.36328.82471-.1543a2.32654,2.32654,0,0,0,1.12256.33008c.71484,0,1.12207-.35156,1.12207-.78125,0-.61523-.61621-.86816-1.46338-.86816H13.2085a.65159.65159,0,0,1-.68213-.41895l-.05518-.10937a.67114.67114,0,0,1,.14307-.78125l.71533-.86914a8.55289,8.55289,0,0,1,.68213-.7373V8.58887a3.93913,3.93913,0,0,1-.748.05469H11.9873a.54085.54085,0,0,1-.605-.60547V7.59863a.54085.54085,0,0,1,.605-.60547h3.75146a.53773.53773,0,0,1,.60547.59375v.17676a1.03723,1.03723,0,0,1-.27539.748L14.74854,10.0293A2.31132,2.31132,0,0,1,16.65186,12.30664ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z\\\"/></svg>\";\nconst header4Icon = \"<svg viewBox=\\\"0 0 18 18\\\"><path class=\\\"ql-fill\\\" d=\\\"M10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Zm7.05371,7.96582v.38477c0,.39648-.165.60547-.46191.60547h-.47314v1.29785a.54085.54085,0,0,1-.605.60547h-.69336a.54085.54085,0,0,1-.605-.60547V12.95605H11.333a.5412.5412,0,0,1-.60547-.60547v-.15332a1.199,1.199,0,0,1,.22021-.748l2.56348-4.05957a.7819.7819,0,0,1,.72607-.39648h1.27637a.54085.54085,0,0,1,.605.60547v3.7627h.33008A.54055.54055,0,0,1,17.05371,11.96582ZM14.28125,8.7207h-.022a4.18969,4.18969,0,0,1-.38525.81348l-1.188,1.80469v.02246h1.5293V9.60059A7.04058,7.04058,0,0,1,14.28125,8.7207Z\\\"/></svg>\";\nconst header5Icon = \"<svg viewBox=\\\"0 0 18 18\\\"><path class=\\\"ql-fill\\\" d=\\\"M16.74023,12.18555a2.75131,2.75131,0,0,1-2.91553,2.80566,3.908,3.908,0,0,1-2.25537-.68164.54809.54809,0,0,1-.13184-.8252L11.73438,13c.209-.34082.48389-.36328.8252-.1543a2.23757,2.23757,0,0,0,1.1001.33008,1.01827,1.01827,0,0,0,1.1001-.96777c0-.61621-.53906-.97949-1.25439-.97949a2.15554,2.15554,0,0,0-.64893.09961,1.15209,1.15209,0,0,1-.814.01074l-.12109-.04395a.64116.64116,0,0,1-.45117-.71484l.231-3.00391a.56666.56666,0,0,1,.62744-.583H15.541a.54085.54085,0,0,1,.605.60547v.43945a.54085.54085,0,0,1-.605.60547H13.41748l-.04395.72559a1.29306,1.29306,0,0,1-.04395.30859h.022a2.39776,2.39776,0,0,1,.57227-.07715A2.53266,2.53266,0,0,1,16.74023,12.18555ZM9,3A.99974.99974,0,0,0,8,4V8H3V4A1,1,0,0,0,1,4V14a1,1,0,0,0,2,0V10H8v4a1,1,0,0,0,2,0V4A.99974.99974,0,0,0,9,3Z\\\"/></svg>\";\nconst header6Icon = \"<svg viewBox=\\\"0 0 18 18\\\"><path class=\\\"ql-fill\\\" d=\\\"M14.51758,9.64453a1.85627,1.85627,0,0,0-1.24316.38477H13.252a1.73532,1.73532,0,0,1,1.72754-1.4082,2.66491,2.66491,0,0,1,.5498.06641c.35254.05469.57227.01074.70508-.40723l.16406-.5166a.53393.53393,0,0,0-.373-.75977,4.83723,4.83723,0,0,0-1.17773-.14258c-2.43164,0-3.7627,2.17773-3.7627,4.43359,0,2.47559,1.60645,3.69629,3.19043,3.69629A2.70585,2.70585,0,0,0,16.96,12.19727,2.43861,2.43861,0,0,0,14.51758,9.64453Zm-.23047,3.58691c-.67187,0-1.22168-.81445-1.22168-1.45215,0-.47363.30762-.583.72559-.583.96875,0,1.27734.59375,1.27734,1.12207A.82182.82182,0,0,1,14.28711,13.23145ZM10,4V14a1,1,0,0,1-2,0V10H3v4a1,1,0,0,1-2,0V4A1,1,0,0,1,3,4V8H8V4a1,1,0,0,1,2,0Z\\\"/></svg>\";\nconst italicIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><line class=\\\"ql-stroke\\\" x1=\\\"7\\\" x2=\\\"13\\\" y1=\\\"4\\\" y2=\\\"4\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"5\\\" x2=\\\"11\\\" y1=\\\"14\\\" y2=\\\"14\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"8\\\" x2=\\\"10\\\" y1=\\\"14\\\" y2=\\\"4\\\"/></svg>\";\nconst imageIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><rect class=\\\"ql-stroke\\\" height=\\\"10\\\" width=\\\"12\\\" x=\\\"3\\\" y=\\\"4\\\"/><circle class=\\\"ql-fill\\\" cx=\\\"6\\\" cy=\\\"7\\\" r=\\\"1\\\"/><polyline class=\\\"ql-even ql-fill\\\" points=\\\"5 12 5 11 7 9 8 10 11 7 13 9 13 12 5 12\\\"/></svg>\";\nconst indentIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><line class=\\\"ql-stroke\\\" x1=\\\"3\\\" x2=\\\"15\\\" y1=\\\"14\\\" y2=\\\"14\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"3\\\" x2=\\\"15\\\" y1=\\\"4\\\" y2=\\\"4\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"9\\\" x2=\\\"15\\\" y1=\\\"9\\\" y2=\\\"9\\\"/><polyline class=\\\"ql-fill ql-stroke\\\" points=\\\"3 7 3 11 5 9 3 7\\\"/></svg>\";\nconst outdentIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><line class=\\\"ql-stroke\\\" x1=\\\"3\\\" x2=\\\"15\\\" y1=\\\"14\\\" y2=\\\"14\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"3\\\" x2=\\\"15\\\" y1=\\\"4\\\" y2=\\\"4\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"9\\\" x2=\\\"15\\\" y1=\\\"9\\\" y2=\\\"9\\\"/><polyline class=\\\"ql-stroke\\\" points=\\\"5 7 5 11 3 9 5 7\\\"/></svg>\";\nconst linkIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><line class=\\\"ql-stroke\\\" x1=\\\"7\\\" x2=\\\"11\\\" y1=\\\"7\\\" y2=\\\"11\\\"/><path class=\\\"ql-even ql-stroke\\\" d=\\\"M8.9,4.577a3.476,3.476,0,0,1,.36,4.679A3.476,3.476,0,0,1,4.577,8.9C3.185,7.5,2.035,6.4,4.217,4.217S7.5,3.185,8.9,4.577Z\\\"/><path class=\\\"ql-even ql-stroke\\\" d=\\\"M13.423,9.1a3.476,3.476,0,0,0-4.679-.36,3.476,3.476,0,0,0,.36,4.679c1.392,1.392,2.5,2.542,4.679.36S14.815,10.5,13.423,9.1Z\\\"/></svg>\";\nconst listBulletIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><line class=\\\"ql-stroke\\\" x1=\\\"6\\\" x2=\\\"15\\\" y1=\\\"4\\\" y2=\\\"4\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"6\\\" x2=\\\"15\\\" y1=\\\"9\\\" y2=\\\"9\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"6\\\" x2=\\\"15\\\" y1=\\\"14\\\" y2=\\\"14\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"3\\\" x2=\\\"3\\\" y1=\\\"4\\\" y2=\\\"4\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"3\\\" x2=\\\"3\\\" y1=\\\"9\\\" y2=\\\"9\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"3\\\" x2=\\\"3\\\" y1=\\\"14\\\" y2=\\\"14\\\"/></svg>\";\nconst listCheckIcon = \"<svg class=\\\"\\\" viewbox=\\\"0 0 18 18\\\"><line class=\\\"ql-stroke\\\" x1=\\\"9\\\" x2=\\\"15\\\" y1=\\\"4\\\" y2=\\\"4\\\"/><polyline class=\\\"ql-stroke\\\" points=\\\"3 4 4 5 6 3\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"9\\\" x2=\\\"15\\\" y1=\\\"14\\\" y2=\\\"14\\\"/><polyline class=\\\"ql-stroke\\\" points=\\\"3 14 4 15 6 13\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"9\\\" x2=\\\"15\\\" y1=\\\"9\\\" y2=\\\"9\\\"/><polyline class=\\\"ql-stroke\\\" points=\\\"3 9 4 10 6 8\\\"/></svg>\";\nconst listOrderedIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><line class=\\\"ql-stroke\\\" x1=\\\"7\\\" x2=\\\"15\\\" y1=\\\"4\\\" y2=\\\"4\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"7\\\" x2=\\\"15\\\" y1=\\\"9\\\" y2=\\\"9\\\"/><line class=\\\"ql-stroke\\\" x1=\\\"7\\\" x2=\\\"15\\\" y1=\\\"14\\\" y2=\\\"14\\\"/><line class=\\\"ql-stroke ql-thin\\\" x1=\\\"2.5\\\" x2=\\\"4.5\\\" y1=\\\"5.5\\\" y2=\\\"5.5\\\"/><path class=\\\"ql-fill\\\" d=\\\"M3.5,6A0.5,0.5,0,0,1,3,5.5V3.085l-0.276.138A0.5,0.5,0,0,1,2.053,3c-0.124-.247-0.023-0.324.224-0.447l1-.5A0.5,0.5,0,0,1,4,2.5v3A0.5,0.5,0,0,1,3.5,6Z\\\"/><path class=\\\"ql-stroke ql-thin\\\" d=\\\"M4.5,10.5h-2c0-.234,1.85-1.076,1.85-2.234A0.959,0.959,0,0,0,2.5,8.156\\\"/><path class=\\\"ql-stroke ql-thin\\\" d=\\\"M2.5,14.846a0.959,0.959,0,0,0,1.85-.109A0.7,0.7,0,0,0,3.75,14a0.688,0.688,0,0,0,.6-0.736,0.959,0.959,0,0,0-1.85-.109\\\"/></svg>\";\nconst subscriptIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><path class=\\\"ql-fill\\\" d=\\\"M15.5,15H13.861a3.858,3.858,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.921,1.921,0,0,0,12.021,11.7a0.50013,0.50013,0,1,0,.957.291h0a0.914,0.914,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.076-1.16971,1.86982-1.93971,2.43082A1.45639,1.45639,0,0,0,12,15.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,15Z\\\"/><path class=\\\"ql-fill\\\" d=\\\"M9.65,5.241a1,1,0,0,0-1.409.108L6,7.964,3.759,5.349A1,1,0,0,0,2.192,6.59178Q2.21541,6.6213,2.241,6.649L4.684,9.5,2.241,12.35A1,1,0,0,0,3.71,13.70722q0.02557-.02768.049-0.05722L6,11.036,8.241,13.65a1,1,0,1,0,1.567-1.24277Q9.78459,12.3777,9.759,12.35L7.316,9.5,9.759,6.651A1,1,0,0,0,9.65,5.241Z\\\"/></svg>\";\nconst superscriptIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><path class=\\\"ql-fill\\\" d=\\\"M15.5,7H13.861a4.015,4.015,0,0,0,1.914-2.975,1.8,1.8,0,0,0-1.6-1.751A1.922,1.922,0,0,0,12.021,3.7a0.5,0.5,0,1,0,.957.291,0.917,0.917,0,0,1,1.053-.725,0.81,0.81,0,0,1,.744.762c0,1.077-1.164,1.925-1.934,2.486A1.423,1.423,0,0,0,12,7.5a0.5,0.5,0,0,0,.5.5h3A0.5,0.5,0,0,0,15.5,7Z\\\"/><path class=\\\"ql-fill\\\" d=\\\"M9.651,5.241a1,1,0,0,0-1.41.108L6,7.964,3.759,5.349a1,1,0,1,0-1.519,1.3L4.683,9.5,2.241,12.35a1,1,0,1,0,1.519,1.3L6,11.036,8.241,13.65a1,1,0,0,0,1.519-1.3L7.317,9.5,9.759,6.651A1,1,0,0,0,9.651,5.241Z\\\"/></svg>\";\nconst strikeIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><line class=\\\"ql-stroke ql-thin\\\" x1=\\\"15.5\\\" x2=\\\"2.5\\\" y1=\\\"8.5\\\" y2=\\\"9.5\\\"/><path class=\\\"ql-fill\\\" d=\\\"M9.007,8C6.542,7.791,6,7.519,6,6.5,6,5.792,7.283,5,9,5c1.571,0,2.765.679,2.969,1.309a1,1,0,0,0,1.9-.617C13.356,4.106,11.354,3,9,3,6.2,3,4,4.538,4,6.5a3.2,3.2,0,0,0,.5,1.843Z\\\"/><path class=\\\"ql-fill\\\" d=\\\"M8.984,10C11.457,10.208,12,10.479,12,11.5c0,0.708-1.283,1.5-3,1.5-1.571,0-2.765-.679-2.969-1.309a1,1,0,1,0-1.9.617C4.644,13.894,6.646,15,9,15c2.8,0,5-1.538,5-3.5a3.2,3.2,0,0,0-.5-1.843Z\\\"/></svg>\";\nconst tableIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><rect class=\\\"ql-stroke\\\" height=\\\"12\\\" width=\\\"12\\\" x=\\\"3\\\" y=\\\"3\\\"/><rect class=\\\"ql-fill\\\" height=\\\"2\\\" width=\\\"3\\\" x=\\\"5\\\" y=\\\"5\\\"/><rect class=\\\"ql-fill\\\" height=\\\"2\\\" width=\\\"4\\\" x=\\\"9\\\" y=\\\"5\\\"/><g class=\\\"ql-fill ql-transparent\\\"><rect height=\\\"2\\\" width=\\\"3\\\" x=\\\"5\\\" y=\\\"8\\\"/><rect height=\\\"2\\\" width=\\\"4\\\" x=\\\"9\\\" y=\\\"8\\\"/><rect height=\\\"2\\\" width=\\\"3\\\" x=\\\"5\\\" y=\\\"11\\\"/><rect height=\\\"2\\\" width=\\\"4\\\" x=\\\"9\\\" y=\\\"11\\\"/></g></svg>\";\nconst underlineIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><path class=\\\"ql-stroke\\\" d=\\\"M5,3V9a4.012,4.012,0,0,0,4,4H9a4.012,4.012,0,0,0,4-4V3\\\"/><rect class=\\\"ql-fill\\\" height=\\\"1\\\" rx=\\\"0.5\\\" ry=\\\"0.5\\\" width=\\\"12\\\" x=\\\"3\\\" y=\\\"15\\\"/></svg>\";\nconst videoIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><rect class=\\\"ql-stroke\\\" height=\\\"12\\\" width=\\\"12\\\" x=\\\"3\\\" y=\\\"3\\\"/><rect class=\\\"ql-fill\\\" height=\\\"12\\\" width=\\\"1\\\" x=\\\"5\\\" y=\\\"3\\\"/><rect class=\\\"ql-fill\\\" height=\\\"12\\\" width=\\\"1\\\" x=\\\"12\\\" y=\\\"3\\\"/><rect class=\\\"ql-fill\\\" height=\\\"2\\\" width=\\\"8\\\" x=\\\"5\\\" y=\\\"8\\\"/><rect class=\\\"ql-fill\\\" height=\\\"1\\\" width=\\\"3\\\" x=\\\"3\\\" y=\\\"5\\\"/><rect class=\\\"ql-fill\\\" height=\\\"1\\\" width=\\\"3\\\" x=\\\"3\\\" y=\\\"7\\\"/><rect class=\\\"ql-fill\\\" height=\\\"1\\\" width=\\\"3\\\" x=\\\"3\\\" y=\\\"10\\\"/><rect class=\\\"ql-fill\\\" height=\\\"1\\\" width=\\\"3\\\" x=\\\"3\\\" y=\\\"12\\\"/><rect class=\\\"ql-fill\\\" height=\\\"1\\\" width=\\\"3\\\" x=\\\"12\\\" y=\\\"5\\\"/><rect class=\\\"ql-fill\\\" height=\\\"1\\\" width=\\\"3\\\" x=\\\"12\\\" y=\\\"7\\\"/><rect class=\\\"ql-fill\\\" height=\\\"1\\\" width=\\\"3\\\" x=\\\"12\\\" y=\\\"10\\\"/><rect class=\\\"ql-fill\\\" height=\\\"1\\\" width=\\\"3\\\" x=\\\"12\\\" y=\\\"12\\\"/></svg>\";\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  align: {\n    '': alignLeftIcon,\n    center: alignCenterIcon,\n    right: alignRightIcon,\n    justify: alignJustifyIcon\n  },\n  background: backgroundIcon,\n  blockquote: blockquoteIcon,\n  bold: boldIcon,\n  clean: cleanIcon,\n  code: codeIcon,\n  'code-block': codeIcon,\n  color: colorIcon,\n  direction: {\n    '': directionLeftToRightIcon,\n    rtl: directionRightToLeftIcon\n  },\n  formula: formulaIcon,\n  header: {\n    '1': headerIcon,\n    '2': header2Icon,\n    '3': header3Icon,\n    '4': header4Icon,\n    '5': header5Icon,\n    '6': header6Icon\n  },\n  italic: italicIcon,\n  image: imageIcon,\n  indent: {\n    '+1': indentIcon,\n    '-1': outdentIcon\n  },\n  link: linkIcon,\n  list: {\n    bullet: listBulletIcon,\n    check: listCheckIcon,\n    ordered: listOrderedIcon\n  },\n  script: {\n    sub: subscriptIcon,\n    super: superscriptIcon\n  },\n  strike: strikeIcon,\n  table: tableIcon,\n  underline: underlineIcon,\n  video: videoIcon\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/ui/icons.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/ui/picker.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/quill/ui/picker.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst DropdownIcon = \"<svg viewbox=\\\"0 0 18 18\\\"><polygon class=\\\"ql-stroke\\\" points=\\\"7 11 9 13 11 11 7 11\\\"/><polygon class=\\\"ql-stroke\\\" points=\\\"7 7 9 5 11 7 7 7\\\"/></svg>\";\nlet optionsCounter = 0;\nfunction toggleAriaAttribute(element, attribute) {\n  element.setAttribute(attribute, `${!(element.getAttribute(attribute) === 'true')}`);\n}\nclass Picker {\n  constructor(select) {\n    this.select = select;\n    this.container = document.createElement('span');\n    this.buildPicker();\n    this.select.style.display = 'none';\n    // @ts-expect-error Fix me later\n    this.select.parentNode.insertBefore(this.container, this.select);\n    this.label.addEventListener('mousedown', () => {\n      this.togglePicker();\n    });\n    this.label.addEventListener('keydown', event => {\n      switch (event.key) {\n        case 'Enter':\n          this.togglePicker();\n          break;\n        case 'Escape':\n          this.escape();\n          event.preventDefault();\n          break;\n        default:\n      }\n    });\n    this.select.addEventListener('change', this.update.bind(this));\n  }\n  togglePicker() {\n    this.container.classList.toggle('ql-expanded');\n    // Toggle aria-expanded and aria-hidden to make the picker accessible\n    toggleAriaAttribute(this.label, 'aria-expanded');\n    // @ts-expect-error\n    toggleAriaAttribute(this.options, 'aria-hidden');\n  }\n  buildItem(option) {\n    const item = document.createElement('span');\n    // @ts-expect-error\n    item.tabIndex = '0';\n    item.setAttribute('role', 'button');\n    item.classList.add('ql-picker-item');\n    const value = option.getAttribute('value');\n    if (value) {\n      item.setAttribute('data-value', value);\n    }\n    if (option.textContent) {\n      item.setAttribute('data-label', option.textContent);\n    }\n    item.addEventListener('click', () => {\n      this.selectItem(item, true);\n    });\n    item.addEventListener('keydown', event => {\n      switch (event.key) {\n        case 'Enter':\n          this.selectItem(item, true);\n          event.preventDefault();\n          break;\n        case 'Escape':\n          this.escape();\n          event.preventDefault();\n          break;\n        default:\n      }\n    });\n    return item;\n  }\n  buildLabel() {\n    const label = document.createElement('span');\n    label.classList.add('ql-picker-label');\n    label.innerHTML = DropdownIcon;\n    // @ts-expect-error\n    label.tabIndex = '0';\n    label.setAttribute('role', 'button');\n    label.setAttribute('aria-expanded', 'false');\n    this.container.appendChild(label);\n    return label;\n  }\n  buildOptions() {\n    const options = document.createElement('span');\n    options.classList.add('ql-picker-options');\n\n    // Don't want screen readers to read this until options are visible\n    options.setAttribute('aria-hidden', 'true');\n    // @ts-expect-error\n    options.tabIndex = '-1';\n\n    // Need a unique id for aria-controls\n    options.id = `ql-picker-options-${optionsCounter}`;\n    optionsCounter += 1;\n    this.label.setAttribute('aria-controls', options.id);\n\n    // @ts-expect-error\n    this.options = options;\n    Array.from(this.select.options).forEach(option => {\n      const item = this.buildItem(option);\n      options.appendChild(item);\n      if (option.selected === true) {\n        this.selectItem(item);\n      }\n    });\n    this.container.appendChild(options);\n  }\n  buildPicker() {\n    Array.from(this.select.attributes).forEach(item => {\n      this.container.setAttribute(item.name, item.value);\n    });\n    this.container.classList.add('ql-picker');\n    this.label = this.buildLabel();\n    this.buildOptions();\n  }\n  escape() {\n    // Close menu and return focus to trigger label\n    this.close();\n    // Need setTimeout for accessibility to ensure that the browser executes\n    // focus on the next process thread and after any DOM content changes\n    setTimeout(() => this.label.focus(), 1);\n  }\n  close() {\n    this.container.classList.remove('ql-expanded');\n    this.label.setAttribute('aria-expanded', 'false');\n    // @ts-expect-error\n    this.options.setAttribute('aria-hidden', 'true');\n  }\n  selectItem(item) {\n    let trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n    const selected = this.container.querySelector('.ql-selected');\n    if (item === selected) return;\n    if (selected != null) {\n      selected.classList.remove('ql-selected');\n    }\n    if (item == null) return;\n    item.classList.add('ql-selected');\n    // @ts-expect-error Fix me later\n    this.select.selectedIndex = Array.from(item.parentNode.children).indexOf(item);\n    if (item.hasAttribute('data-value')) {\n      // @ts-expect-error Fix me later\n      this.label.setAttribute('data-value', item.getAttribute('data-value'));\n    } else {\n      this.label.removeAttribute('data-value');\n    }\n    if (item.hasAttribute('data-label')) {\n      // @ts-expect-error Fix me later\n      this.label.setAttribute('data-label', item.getAttribute('data-label'));\n    } else {\n      this.label.removeAttribute('data-label');\n    }\n    if (trigger) {\n      this.select.dispatchEvent(new Event('change'));\n      this.close();\n    }\n  }\n  update() {\n    let option;\n    if (this.select.selectedIndex > -1) {\n      const item =\n      // @ts-expect-error Fix me later\n      this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n      option = this.select.options[this.select.selectedIndex];\n      // @ts-expect-error\n      this.selectItem(item);\n    } else {\n      this.selectItem(null);\n    }\n    const isActive = option != null && option !== this.select.querySelector('option[selected]');\n    this.label.classList.toggle('ql-active', isActive);\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Picker);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/ui/picker.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/quill/ui/tooltip.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/quill/ui/tooltip.js ***!
  \****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst isScrollable = el => {\n  const {\n    overflowY\n  } = getComputedStyle(el, null);\n  return overflowY !== 'visible' && overflowY !== 'clip';\n};\nclass Tooltip {\n  constructor(quill, boundsContainer) {\n    this.quill = quill;\n    this.boundsContainer = boundsContainer || document.body;\n    this.root = quill.addContainer('ql-tooltip');\n    // @ts-expect-error\n    this.root.innerHTML = this.constructor.TEMPLATE;\n    if (isScrollable(this.quill.root)) {\n      this.quill.root.addEventListener('scroll', () => {\n        this.root.style.marginTop = `${-1 * this.quill.root.scrollTop}px`;\n      });\n    }\n    this.hide();\n  }\n  hide() {\n    this.root.classList.add('ql-hidden');\n  }\n  position(reference) {\n    const left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n    // root.scrollTop should be 0 if scrollContainer !== root\n    const top = reference.bottom + this.quill.root.scrollTop;\n    this.root.style.left = `${left}px`;\n    this.root.style.top = `${top}px`;\n    this.root.classList.remove('ql-flip');\n    const containerBounds = this.boundsContainer.getBoundingClientRect();\n    const rootBounds = this.root.getBoundingClientRect();\n    let shift = 0;\n    if (rootBounds.right > containerBounds.right) {\n      shift = containerBounds.right - rootBounds.right;\n      this.root.style.left = `${left + shift}px`;\n    }\n    if (rootBounds.left < containerBounds.left) {\n      shift = containerBounds.left - rootBounds.left;\n      this.root.style.left = `${left + shift}px`;\n    }\n    if (rootBounds.bottom > containerBounds.bottom) {\n      const height = rootBounds.bottom - rootBounds.top;\n      const verticalShift = reference.bottom - reference.top + height;\n      this.root.style.top = `${top - verticalShift}px`;\n      this.root.classList.add('ql-flip');\n    }\n    return shift;\n  }\n  show() {\n    this.root.classList.remove('ql-editing');\n    this.root.classList.remove('ql-hidden');\n  }\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Tooltip);\n\n//# sourceURL=webpack:///../react-ui/node_modules/quill/ui/tooltip.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-barcode/lib/react-barcode.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/react-barcode/lib/react-barcode.js ***!
  \*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nfunction _typeof(obj) {\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n  return _typeof(obj);\n}\nvar _react = _interopRequireDefault(__webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\"));\nvar _jsbarcode = _interopRequireDefault(__webpack_require__(/*! jsbarcode */ \"../react-ui/node_modules/jsbarcode/bin/JsBarcode.js\"));\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"../react-ui/node_modules/prop-types/index.js\"));\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    \"default\": obj\n  };\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n  return _assertThisInitialized(self);\n}\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return self;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n  return _setPrototypeOf(o, p);\n}\nvar getDOMNode; // Super naive semver detection but it's good enough. We support 0.12, 0.13\n// which both have getDOMNode on the ref. 0.14 and 15 make the DOM node the ref.\n\nvar version = _react[\"default\"].version.split(/[.-]/);\nif (version[0] === \"0\" && (version[1] === \"13\" || version[1] === \"12\")) {\n  getDOMNode = function getDOMNode(ref) {\n    return ref.getDOMNode();\n  };\n} else {\n  getDOMNode = function getDOMNode(ref) {\n    return ref;\n  };\n}\nvar Barcode = /*#__PURE__*/\nfunction (_React$Component) {\n  _inherits(Barcode, _React$Component);\n  function Barcode(props) {\n    var _this;\n    _classCallCheck(this, Barcode);\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(Barcode).call(this, props));\n    _this.renderElementRef = _react[\"default\"].createRef();\n    _this.update = _this.update.bind(_assertThisInitialized(_this));\n    return _this;\n  }\n  _createClass(Barcode, [{\n    key: \"shouldComponentUpdate\",\n    value: function shouldComponentUpdate(nextProps) {\n      var _this2 = this;\n      return Object.keys(Barcode.propTypes).some(function (k) {\n        return _this2.props[k] !== nextProps[k];\n      });\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.update();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      this.update();\n    }\n  }, {\n    key: \"update\",\n    value: function update() {\n      var renderElement = getDOMNode(this.renderElementRef.current);\n      try {\n        new _jsbarcode[\"default\"](renderElement, this.props.value, Object.assign({\n          text: this.props.text || this.props.value\n        }, this.props));\n      } catch (e) {\n        // prevent stop the parent process\n        window.console.error(e);\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$props = this.props,\n        id = _this$props.id,\n        className = _this$props.className;\n      if (this.props.renderer === \"svg\") {\n        return _react[\"default\"].createElement(\"svg\", {\n          ref: this.renderElementRef,\n          id: id,\n          className: className\n        });\n      } else if (this.props.renderer === \"canvas\") {\n        return _react[\"default\"].createElement(\"canvas\", {\n          ref: this.renderElementRef,\n          id: id,\n          className: className\n        });\n      } else if (this.props.renderer === \"img\") {\n        return _react[\"default\"].createElement(\"img\", {\n          ref: this.renderElementRef,\n          id: id,\n          className: className\n        });\n      }\n    }\n  }]);\n  return Barcode;\n}(_react[\"default\"].Component);\nBarcode.propTypes = {\n  value: _propTypes[\"default\"].string.isRequired,\n  text: _propTypes[\"default\"].string,\n  renderer: _propTypes[\"default\"].string,\n  format: _propTypes[\"default\"].string,\n  width: _propTypes[\"default\"].number,\n  height: _propTypes[\"default\"].number,\n  displayValue: _propTypes[\"default\"].bool,\n  fontOptions: _propTypes[\"default\"].string,\n  font: _propTypes[\"default\"].string,\n  textAlign: _propTypes[\"default\"].string,\n  textPosition: _propTypes[\"default\"].string,\n  textMargin: _propTypes[\"default\"].number,\n  fontSize: _propTypes[\"default\"].number,\n  background: _propTypes[\"default\"].string,\n  lineColor: _propTypes[\"default\"].string,\n  margin: _propTypes[\"default\"].number,\n  marginTop: _propTypes[\"default\"].number,\n  marginBottom: _propTypes[\"default\"].number,\n  marginLeft: _propTypes[\"default\"].number,\n  marginRight: _propTypes[\"default\"].number,\n  id: _propTypes[\"default\"].string,\n  className: _propTypes[\"default\"].string,\n  ean128: _propTypes[\"default\"].bool\n};\nBarcode.defaultProps = {\n  format: \"CODE128\",\n  renderer: \"svg\",\n  width: 2,\n  height: 100,\n  displayValue: true,\n  fontOptions: \"\",\n  font: \"monospace\",\n  textAlign: \"center\",\n  textPosition: \"bottom\",\n  textMargin: 2,\n  fontSize: 20,\n  background: \"#ffffff\",\n  lineColor: \"#000000\",\n  margin: 10,\n  className: \"\",\n  ean128: false\n};\nmodule.exports = Barcode;\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-barcode/lib/react-barcode.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-chartjs-2/dist/index.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/react-chartjs-2/dist/index.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Bar: () => (/* binding */ Bar),\n/* harmony export */   Bubble: () => (/* binding */ Bubble),\n/* harmony export */   Chart: () => (/* binding */ Chart),\n/* harmony export */   Doughnut: () => (/* binding */ Doughnut),\n/* harmony export */   Line: () => (/* binding */ Line),\n/* harmony export */   Pie: () => (/* binding */ Pie),\n/* harmony export */   PolarArea: () => (/* binding */ PolarArea),\n/* harmony export */   Radar: () => (/* binding */ Radar),\n/* harmony export */   Scatter: () => (/* binding */ Scatter),\n/* harmony export */   getDatasetAtEvent: () => (/* binding */ getDatasetAtEvent),\n/* harmony export */   getElementAtEvent: () => (/* binding */ getElementAtEvent),\n/* harmony export */   getElementsAtEvent: () => (/* binding */ getElementsAtEvent)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var chart_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! chart.js */ \"../react-ui/node_modules/chart.js/dist/chart.js\");\n\n\nconst defaultDatasetIdKey = 'label';\nfunction reforwardRef(ref, value) {\n  if (typeof ref === 'function') {\n    ref(value);\n  } else if (ref) {\n    ref.current = value;\n  }\n}\nfunction setOptions(chart, nextOptions) {\n  const options = chart.options;\n  if (options && nextOptions) {\n    Object.assign(options, nextOptions);\n  }\n}\nfunction setLabels(currentData, nextLabels) {\n  currentData.labels = nextLabels;\n}\nfunction setDatasets(currentData, nextDatasets) {\n  let datasetIdKey = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : defaultDatasetIdKey;\n  const addedDatasets = [];\n  currentData.datasets = nextDatasets.map(nextDataset => {\n    // given the new set, find it's current match\n    const currentDataset = currentData.datasets.find(dataset => dataset[datasetIdKey] === nextDataset[datasetIdKey]);\n    // There is no original to update, so simply add new one\n    if (!currentDataset || !nextDataset.data || addedDatasets.includes(currentDataset)) {\n      return {\n        ...nextDataset\n      };\n    }\n    addedDatasets.push(currentDataset);\n    Object.assign(currentDataset, nextDataset);\n    return currentDataset;\n  });\n}\nfunction cloneData(data) {\n  let datasetIdKey = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : defaultDatasetIdKey;\n  const nextData = {\n    labels: [],\n    datasets: []\n  };\n  setLabels(nextData, data.labels);\n  setDatasets(nextData, data.datasets, datasetIdKey);\n  return nextData;\n}\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nfunction getDatasetAtEvent(chart, event) {\n  return chart.getElementsAtEventForMode(event.nativeEvent, 'dataset', {\n    intersect: true\n  }, false);\n}\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nfunction getElementAtEvent(chart, event) {\n  return chart.getElementsAtEventForMode(event.nativeEvent, 'nearest', {\n    intersect: true\n  }, false);\n}\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nfunction getElementsAtEvent(chart, event) {\n  return chart.getElementsAtEventForMode(event.nativeEvent, 'index', {\n    intersect: true\n  }, false);\n}\nfunction ChartComponent(props, ref) {\n  const {\n    height = 150,\n    width = 300,\n    redraw = false,\n    datasetIdKey,\n    type,\n    data,\n    options,\n    plugins = [],\n    fallbackContent,\n    updateMode,\n    ...canvasProps\n  } = props;\n  const canvasRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n  const chartRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n  const renderChart = () => {\n    if (!canvasRef.current) return;\n    chartRef.current = new chart_js__WEBPACK_IMPORTED_MODULE_1__.Chart(canvasRef.current, {\n      type,\n      data: cloneData(data, datasetIdKey),\n      options: options && {\n        ...options\n      },\n      plugins\n    });\n    reforwardRef(ref, chartRef.current);\n  };\n  const destroyChart = () => {\n    reforwardRef(ref, null);\n    if (chartRef.current) {\n      chartRef.current.destroy();\n      chartRef.current = null;\n    }\n  };\n  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n    if (!redraw && chartRef.current && options) {\n      setOptions(chartRef.current, options);\n    }\n  }, [redraw, options]);\n  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n    if (!redraw && chartRef.current) {\n      setLabels(chartRef.current.config.data, data.labels);\n    }\n  }, [redraw, data.labels]);\n  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n    if (!redraw && chartRef.current && data.datasets) {\n      setDatasets(chartRef.current.config.data, data.datasets, datasetIdKey);\n    }\n  }, [redraw, data.datasets]);\n  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n    if (!chartRef.current) return;\n    if (redraw) {\n      destroyChart();\n      setTimeout(renderChart);\n    } else {\n      chartRef.current.update(updateMode);\n    }\n  }, [redraw, options, data.labels, data.datasets, updateMode]);\n  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n    if (!chartRef.current) return;\n    destroyChart();\n    setTimeout(renderChart);\n  }, [type]);\n  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n    renderChart();\n    return () => destroyChart();\n  }, []);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"canvas\", {\n    ref: canvasRef,\n    role: \"img\",\n    height: height,\n    width: width,\n    ...canvasProps\n  }, fallbackContent);\n}\nconst Chart = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(ChartComponent);\nfunction createTypedChart(type, registerables) {\n  chart_js__WEBPACK_IMPORTED_MODULE_1__.Chart.register(registerables);\n  return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)((props, ref) => /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(Chart, {\n    ...props,\n    ref: ref,\n    type: type\n  }));\n}\nconst Line = /* #__PURE__ */createTypedChart('line', chart_js__WEBPACK_IMPORTED_MODULE_1__.LineController);\nconst Bar = /* #__PURE__ */createTypedChart('bar', chart_js__WEBPACK_IMPORTED_MODULE_1__.BarController);\nconst Radar = /* #__PURE__ */createTypedChart('radar', chart_js__WEBPACK_IMPORTED_MODULE_1__.RadarController);\nconst Doughnut = /* #__PURE__ */createTypedChart('doughnut', chart_js__WEBPACK_IMPORTED_MODULE_1__.DoughnutController);\nconst PolarArea = /* #__PURE__ */createTypedChart('polarArea', chart_js__WEBPACK_IMPORTED_MODULE_1__.PolarAreaController);\nconst Bubble = /* #__PURE__ */createTypedChart('bubble', chart_js__WEBPACK_IMPORTED_MODULE_1__.BubbleController);\nconst Pie = /* #__PURE__ */createTypedChart('pie', chart_js__WEBPACK_IMPORTED_MODULE_1__.PieController);\nconst Scatter = /* #__PURE__ */createTypedChart('scatter', chart_js__WEBPACK_IMPORTED_MODULE_1__.ScatterController);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-chartjs-2/dist/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd-html5-backend/dist/BrowserDetector.js":
/*!********************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd-html5-backend/dist/BrowserDetector.js ***!
  \********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   isFirefox: () => (/* binding */ isFirefox),\n/* harmony export */   isSafari: () => (/* binding */ isSafari)\n/* harmony export */ });\n/* harmony import */ var _utils_js_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/js_utils.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/utils/js_utils.js\");\n\nconst isFirefox = (0,_utils_js_utils_js__WEBPACK_IMPORTED_MODULE_0__.memoize)(() => /firefox/i.test(navigator.userAgent));\nconst isSafari = (0,_utils_js_utils_js__WEBPACK_IMPORTED_MODULE_0__.memoize)(() => Boolean(window.safari));\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd-html5-backend/dist/BrowserDetector.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd-html5-backend/dist/EnterLeaveCounter.js":
/*!**********************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd-html5-backend/dist/EnterLeaveCounter.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   EnterLeaveCounter: () => (/* binding */ EnterLeaveCounter)\n/* harmony export */ });\n/* harmony import */ var _utils_js_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/js_utils.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/utils/js_utils.js\");\n\nclass EnterLeaveCounter {\n  enter(enteringNode) {\n    const previousLength = this.entered.length;\n    const isNodeEntered = node => this.isNodeInDocument(node) && (!node.contains || node.contains(enteringNode));\n    this.entered = (0,_utils_js_utils_js__WEBPACK_IMPORTED_MODULE_0__.union)(this.entered.filter(isNodeEntered), [enteringNode]);\n    return previousLength === 0 && this.entered.length > 0;\n  }\n  leave(leavingNode) {\n    const previousLength = this.entered.length;\n    this.entered = (0,_utils_js_utils_js__WEBPACK_IMPORTED_MODULE_0__.without)(this.entered.filter(this.isNodeInDocument), leavingNode);\n    return previousLength > 0 && this.entered.length === 0;\n  }\n  reset() {\n    this.entered = [];\n  }\n  constructor(isNodeInDocument) {\n    this.entered = [];\n    this.isNodeInDocument = isNodeInDocument;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd-html5-backend/dist/EnterLeaveCounter.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd-html5-backend/dist/HTML5BackendImpl.js":
/*!*********************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd-html5-backend/dist/HTML5BackendImpl.js ***!
  \*********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   HTML5BackendImpl: () => (/* binding */ HTML5BackendImpl)\n/* harmony export */ });\n/* harmony import */ var _EnterLeaveCounter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EnterLeaveCounter.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/EnterLeaveCounter.js\");\n/* harmony import */ var _NativeDragSources_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NativeDragSources/index.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/index.js\");\n/* harmony import */ var _NativeTypes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./NativeTypes.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/NativeTypes.js\");\n/* harmony import */ var _OffsetUtils_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./OffsetUtils.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/OffsetUtils.js\");\n/* harmony import */ var _OptionsReader_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./OptionsReader.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/OptionsReader.js\");\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n    var ownKeys = Object.keys(source);\n    if (typeof Object.getOwnPropertySymbols === 'function') {\n      ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n        return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n      }));\n    }\n    ownKeys.forEach(function (key) {\n      _defineProperty(target, key, source[key]);\n    });\n  }\n  return target;\n}\n\n\n\n\n\nclass HTML5BackendImpl {\n  /**\n  * Generate profiling statistics for the HTML5Backend.\n  */\n  profile() {\n    var ref, ref1;\n    return {\n      sourcePreviewNodes: this.sourcePreviewNodes.size,\n      sourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size,\n      sourceNodeOptions: this.sourceNodeOptions.size,\n      sourceNodes: this.sourceNodes.size,\n      dragStartSourceIds: ((ref = this.dragStartSourceIds) === null || ref === void 0 ? void 0 : ref.length) || 0,\n      dropTargetIds: this.dropTargetIds.length,\n      dragEnterTargetIds: this.dragEnterTargetIds.length,\n      dragOverTargetIds: ((ref1 = this.dragOverTargetIds) === null || ref1 === void 0 ? void 0 : ref1.length) || 0\n    };\n  }\n  // public for test\n  get window() {\n    return this.options.window;\n  }\n  get document() {\n    return this.options.document;\n  }\n  /**\n  * Get the root element to use for event subscriptions\n  */\n  get rootElement() {\n    return this.options.rootElement;\n  }\n  setup() {\n    const root = this.rootElement;\n    if (root === undefined) {\n      return;\n    }\n    if (root.__isReactDndBackendSetUp) {\n      throw new Error('Cannot have two HTML5 backends at the same time.');\n    }\n    root.__isReactDndBackendSetUp = true;\n    this.addEventListeners(root);\n  }\n  teardown() {\n    const root = this.rootElement;\n    if (root === undefined) {\n      return;\n    }\n    root.__isReactDndBackendSetUp = false;\n    this.removeEventListeners(this.rootElement);\n    this.clearCurrentDragSourceNode();\n    if (this.asyncEndDragFrameId) {\n      var ref;\n      (ref = this.window) === null || ref === void 0 ? void 0 : ref.cancelAnimationFrame(this.asyncEndDragFrameId);\n    }\n  }\n  connectDragPreview(sourceId, node, options) {\n    this.sourcePreviewNodeOptions.set(sourceId, options);\n    this.sourcePreviewNodes.set(sourceId, node);\n    return () => {\n      this.sourcePreviewNodes.delete(sourceId);\n      this.sourcePreviewNodeOptions.delete(sourceId);\n    };\n  }\n  connectDragSource(sourceId, node, options) {\n    this.sourceNodes.set(sourceId, node);\n    this.sourceNodeOptions.set(sourceId, options);\n    const handleDragStart = e => this.handleDragStart(e, sourceId);\n    const handleSelectStart = e => this.handleSelectStart(e);\n    node.setAttribute('draggable', 'true');\n    node.addEventListener('dragstart', handleDragStart);\n    node.addEventListener('selectstart', handleSelectStart);\n    return () => {\n      this.sourceNodes.delete(sourceId);\n      this.sourceNodeOptions.delete(sourceId);\n      node.removeEventListener('dragstart', handleDragStart);\n      node.removeEventListener('selectstart', handleSelectStart);\n      node.setAttribute('draggable', 'false');\n    };\n  }\n  connectDropTarget(targetId, node) {\n    const handleDragEnter = e => this.handleDragEnter(e, targetId);\n    const handleDragOver = e => this.handleDragOver(e, targetId);\n    const handleDrop = e => this.handleDrop(e, targetId);\n    node.addEventListener('dragenter', handleDragEnter);\n    node.addEventListener('dragover', handleDragOver);\n    node.addEventListener('drop', handleDrop);\n    return () => {\n      node.removeEventListener('dragenter', handleDragEnter);\n      node.removeEventListener('dragover', handleDragOver);\n      node.removeEventListener('drop', handleDrop);\n    };\n  }\n  addEventListeners(target) {\n    // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n    if (!target.addEventListener) {\n      return;\n    }\n    target.addEventListener('dragstart', this.handleTopDragStart);\n    target.addEventListener('dragstart', this.handleTopDragStartCapture, true);\n    target.addEventListener('dragend', this.handleTopDragEndCapture, true);\n    target.addEventListener('dragenter', this.handleTopDragEnter);\n    target.addEventListener('dragenter', this.handleTopDragEnterCapture, true);\n    target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n    target.addEventListener('dragover', this.handleTopDragOver);\n    target.addEventListener('dragover', this.handleTopDragOverCapture, true);\n    target.addEventListener('drop', this.handleTopDrop);\n    target.addEventListener('drop', this.handleTopDropCapture, true);\n  }\n  removeEventListeners(target) {\n    // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n    if (!target.removeEventListener) {\n      return;\n    }\n    target.removeEventListener('dragstart', this.handleTopDragStart);\n    target.removeEventListener('dragstart', this.handleTopDragStartCapture, true);\n    target.removeEventListener('dragend', this.handleTopDragEndCapture, true);\n    target.removeEventListener('dragenter', this.handleTopDragEnter);\n    target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true);\n    target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n    target.removeEventListener('dragover', this.handleTopDragOver);\n    target.removeEventListener('dragover', this.handleTopDragOverCapture, true);\n    target.removeEventListener('drop', this.handleTopDrop);\n    target.removeEventListener('drop', this.handleTopDropCapture, true);\n  }\n  getCurrentSourceNodeOptions() {\n    const sourceId = this.monitor.getSourceId();\n    const sourceNodeOptions = this.sourceNodeOptions.get(sourceId);\n    return _objectSpread({\n      dropEffect: this.altKeyPressed ? 'copy' : 'move'\n    }, sourceNodeOptions || {});\n  }\n  getCurrentDropEffect() {\n    if (this.isDraggingNativeItem()) {\n      // It makes more sense to default to 'copy' for native resources\n      return 'copy';\n    }\n    return this.getCurrentSourceNodeOptions().dropEffect;\n  }\n  getCurrentSourcePreviewNodeOptions() {\n    const sourceId = this.monitor.getSourceId();\n    const sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId);\n    return _objectSpread({\n      anchorX: 0.5,\n      anchorY: 0.5,\n      captureDraggingState: false\n    }, sourcePreviewNodeOptions || {});\n  }\n  isDraggingNativeItem() {\n    const itemType = this.monitor.getItemType();\n    return Object.keys(_NativeTypes_js__WEBPACK_IMPORTED_MODULE_2__).some(key => _NativeTypes_js__WEBPACK_IMPORTED_MODULE_2__[key] === itemType);\n  }\n  beginDragNativeItem(type, dataTransfer) {\n    this.clearCurrentDragSourceNode();\n    this.currentNativeSource = (0,_NativeDragSources_index_js__WEBPACK_IMPORTED_MODULE_1__.createNativeDragSource)(type, dataTransfer);\n    this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource);\n    this.actions.beginDrag([this.currentNativeHandle]);\n  }\n  setCurrentDragSourceNode(node) {\n    this.clearCurrentDragSourceNode();\n    this.currentDragSourceNode = node;\n    // A timeout of > 0 is necessary to resolve Firefox issue referenced\n    // See:\n    //   * https://github.com/react-dnd/react-dnd/pull/928\n    //   * https://github.com/react-dnd/react-dnd/issues/869\n    const MOUSE_MOVE_TIMEOUT = 1000;\n    // Receiving a mouse event in the middle of a dragging operation\n    // means it has ended and the drag source node disappeared from DOM,\n    // so the browser didn't dispatch the dragend event.\n    //\n    // We need to wait before we start listening for mousemove events.\n    // This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event\n    // immediately in some browsers.\n    //\n    // See:\n    //   * https://github.com/react-dnd/react-dnd/pull/928\n    //   * https://github.com/react-dnd/react-dnd/issues/869\n    //\n    this.mouseMoveTimeoutTimer = setTimeout(() => {\n      var ref;\n      return (ref = this.rootElement) === null || ref === void 0 ? void 0 : ref.addEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n    }, MOUSE_MOVE_TIMEOUT);\n  }\n  clearCurrentDragSourceNode() {\n    if (this.currentDragSourceNode) {\n      this.currentDragSourceNode = null;\n      if (this.rootElement) {\n        var ref;\n        (ref = this.window) === null || ref === void 0 ? void 0 : ref.clearTimeout(this.mouseMoveTimeoutTimer || undefined);\n        this.rootElement.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n      }\n      this.mouseMoveTimeoutTimer = null;\n      return true;\n    }\n    return false;\n  }\n  handleDragStart(e, sourceId) {\n    if (e.defaultPrevented) {\n      return;\n    }\n    if (!this.dragStartSourceIds) {\n      this.dragStartSourceIds = [];\n    }\n    this.dragStartSourceIds.unshift(sourceId);\n  }\n  handleDragEnter(_e, targetId) {\n    this.dragEnterTargetIds.unshift(targetId);\n  }\n  handleDragOver(_e, targetId) {\n    if (this.dragOverTargetIds === null) {\n      this.dragOverTargetIds = [];\n    }\n    this.dragOverTargetIds.unshift(targetId);\n  }\n  handleDrop(_e, targetId) {\n    this.dropTargetIds.unshift(targetId);\n  }\n  constructor(manager, globalContext, options) {\n    this.sourcePreviewNodes = new Map();\n    this.sourcePreviewNodeOptions = new Map();\n    this.sourceNodes = new Map();\n    this.sourceNodeOptions = new Map();\n    this.dragStartSourceIds = null;\n    this.dropTargetIds = [];\n    this.dragEnterTargetIds = [];\n    this.currentNativeSource = null;\n    this.currentNativeHandle = null;\n    this.currentDragSourceNode = null;\n    this.altKeyPressed = false;\n    this.mouseMoveTimeoutTimer = null;\n    this.asyncEndDragFrameId = null;\n    this.dragOverTargetIds = null;\n    this.lastClientOffset = null;\n    this.hoverRafId = null;\n    this.getSourceClientOffset = sourceId => {\n      const source = this.sourceNodes.get(sourceId);\n      return source && (0,_OffsetUtils_js__WEBPACK_IMPORTED_MODULE_3__.getNodeClientOffset)(source) || null;\n    };\n    this.endDragNativeItem = () => {\n      if (!this.isDraggingNativeItem()) {\n        return;\n      }\n      this.actions.endDrag();\n      if (this.currentNativeHandle) {\n        this.registry.removeSource(this.currentNativeHandle);\n      }\n      this.currentNativeHandle = null;\n      this.currentNativeSource = null;\n    };\n    this.isNodeInDocument = node => {\n      // Check the node either in the main document or in the current context\n      return Boolean(node && this.document && this.document.body && this.document.body.contains(node));\n    };\n    this.endDragIfSourceWasRemovedFromDOM = () => {\n      const node = this.currentDragSourceNode;\n      if (node == null || this.isNodeInDocument(node)) {\n        return;\n      }\n      if (this.clearCurrentDragSourceNode() && this.monitor.isDragging()) {\n        this.actions.endDrag();\n      }\n      this.cancelHover();\n    };\n    this.scheduleHover = dragOverTargetIds => {\n      if (this.hoverRafId === null && typeof requestAnimationFrame !== 'undefined') {\n        this.hoverRafId = requestAnimationFrame(() => {\n          if (this.monitor.isDragging()) {\n            this.actions.hover(dragOverTargetIds || [], {\n              clientOffset: this.lastClientOffset\n            });\n          }\n          this.hoverRafId = null;\n        });\n      }\n    };\n    this.cancelHover = () => {\n      if (this.hoverRafId !== null && typeof cancelAnimationFrame !== 'undefined') {\n        cancelAnimationFrame(this.hoverRafId);\n        this.hoverRafId = null;\n      }\n    };\n    this.handleTopDragStartCapture = () => {\n      this.clearCurrentDragSourceNode();\n      this.dragStartSourceIds = [];\n    };\n    this.handleTopDragStart = e => {\n      if (e.defaultPrevented) {\n        return;\n      }\n      const {\n        dragStartSourceIds\n      } = this;\n      this.dragStartSourceIds = null;\n      const clientOffset = (0,_OffsetUtils_js__WEBPACK_IMPORTED_MODULE_3__.getEventClientOffset)(e);\n      // Avoid crashing if we missed a drop event or our previous drag died\n      if (this.monitor.isDragging()) {\n        this.actions.endDrag();\n        this.cancelHover();\n      }\n      // Don't publish the source just yet (see why below)\n      this.actions.beginDrag(dragStartSourceIds || [], {\n        publishSource: false,\n        getSourceClientOffset: this.getSourceClientOffset,\n        clientOffset\n      });\n      const {\n        dataTransfer\n      } = e;\n      const nativeType = (0,_NativeDragSources_index_js__WEBPACK_IMPORTED_MODULE_1__.matchNativeItemType)(dataTransfer);\n      if (this.monitor.isDragging()) {\n        if (dataTransfer && typeof dataTransfer.setDragImage === 'function') {\n          // Use custom drag image if user specifies it.\n          // If child drag source refuses drag but parent agrees,\n          // use parent's node as drag image. Neither works in IE though.\n          const sourceId = this.monitor.getSourceId();\n          const sourceNode = this.sourceNodes.get(sourceId);\n          const dragPreview = this.sourcePreviewNodes.get(sourceId) || sourceNode;\n          if (dragPreview) {\n            const {\n              anchorX,\n              anchorY,\n              offsetX,\n              offsetY\n            } = this.getCurrentSourcePreviewNodeOptions();\n            const anchorPoint = {\n              anchorX,\n              anchorY\n            };\n            const offsetPoint = {\n              offsetX,\n              offsetY\n            };\n            const dragPreviewOffset = (0,_OffsetUtils_js__WEBPACK_IMPORTED_MODULE_3__.getDragPreviewOffset)(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint);\n            dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y);\n          }\n        }\n        try {\n          // Firefox won't drag without setting data\n          dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.setData('application/json', {});\n        } catch (err) {\n          // IE doesn't support MIME types in setData\n        }\n        // Store drag source node so we can check whether\n        // it is removed from DOM and trigger endDrag manually.\n        this.setCurrentDragSourceNode(e.target);\n        // Now we are ready to publish the drag source.. or are we not?\n        const {\n          captureDraggingState\n        } = this.getCurrentSourcePreviewNodeOptions();\n        if (!captureDraggingState) {\n          // Usually we want to publish it in the next tick so that browser\n          // is able to screenshot the current (not yet dragging) state.\n          //\n          // It also neatly avoids a situation where render() returns null\n          // in the same tick for the source element, and browser freaks out.\n          setTimeout(() => this.actions.publishDragSource(), 0);\n        } else {\n          // In some cases the user may want to override this behavior, e.g.\n          // to work around IE not supporting custom drag previews.\n          //\n          // When using a custom drag layer, the only way to prevent\n          // the default drag preview from drawing in IE is to screenshot\n          // the dragging state in which the node itself has zero opacity\n          // and height. In this case, though, returning null from render()\n          // will abruptly end the dragging, which is not obvious.\n          //\n          // This is the reason such behavior is strictly opt-in.\n          this.actions.publishDragSource();\n        }\n      } else if (nativeType) {\n        // A native item (such as URL) dragged from inside the document\n        this.beginDragNativeItem(nativeType);\n      } else if (dataTransfer && !dataTransfer.types && (e.target && !e.target.hasAttribute || !e.target.hasAttribute('draggable'))) {\n        // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.\n        // Just let it drag. It's a native type (URL or text) and will be picked up in\n        // dragenter handler.\n        return;\n      } else {\n        // If by this time no drag source reacted, tell browser not to drag.\n        e.preventDefault();\n      }\n    };\n    this.handleTopDragEndCapture = () => {\n      if (this.clearCurrentDragSourceNode() && this.monitor.isDragging()) {\n        // Firefox can dispatch this event in an infinite loop\n        // if dragend handler does something like showing an alert.\n        // Only proceed if we have not handled it already.\n        this.actions.endDrag();\n      }\n      this.cancelHover();\n    };\n    this.handleTopDragEnterCapture = e => {\n      this.dragEnterTargetIds = [];\n      if (this.isDraggingNativeItem()) {\n        var ref;\n        (ref = this.currentNativeSource) === null || ref === void 0 ? void 0 : ref.loadDataTransfer(e.dataTransfer);\n      }\n      const isFirstEnter = this.enterLeaveCounter.enter(e.target);\n      if (!isFirstEnter || this.monitor.isDragging()) {\n        return;\n      }\n      const {\n        dataTransfer\n      } = e;\n      const nativeType = (0,_NativeDragSources_index_js__WEBPACK_IMPORTED_MODULE_1__.matchNativeItemType)(dataTransfer);\n      if (nativeType) {\n        // A native item (such as file or URL) dragged from outside the document\n        this.beginDragNativeItem(nativeType, dataTransfer);\n      }\n    };\n    this.handleTopDragEnter = e => {\n      const {\n        dragEnterTargetIds\n      } = this;\n      this.dragEnterTargetIds = [];\n      if (!this.monitor.isDragging()) {\n        // This is probably a native item type we don't understand.\n        return;\n      }\n      this.altKeyPressed = e.altKey;\n      // If the target changes position as the result of `dragenter`, `dragover` might still\n      // get dispatched despite target being no longer there. The easy solution is to check\n      // whether there actually is a target before firing `hover`.\n      if (dragEnterTargetIds.length > 0) {\n        this.actions.hover(dragEnterTargetIds, {\n          clientOffset: (0,_OffsetUtils_js__WEBPACK_IMPORTED_MODULE_3__.getEventClientOffset)(e)\n        });\n      }\n      const canDrop = dragEnterTargetIds.some(targetId => this.monitor.canDropOnTarget(targetId));\n      if (canDrop) {\n        // IE requires this to fire dragover events\n        e.preventDefault();\n        if (e.dataTransfer) {\n          e.dataTransfer.dropEffect = this.getCurrentDropEffect();\n        }\n      }\n    };\n    this.handleTopDragOverCapture = e => {\n      this.dragOverTargetIds = [];\n      if (this.isDraggingNativeItem()) {\n        var ref;\n        (ref = this.currentNativeSource) === null || ref === void 0 ? void 0 : ref.loadDataTransfer(e.dataTransfer);\n      }\n    };\n    this.handleTopDragOver = e => {\n      const {\n        dragOverTargetIds\n      } = this;\n      this.dragOverTargetIds = [];\n      if (!this.monitor.isDragging()) {\n        // This is probably a native item type we don't understand.\n        // Prevent default \"drop and blow away the whole document\" action.\n        e.preventDefault();\n        if (e.dataTransfer) {\n          e.dataTransfer.dropEffect = 'none';\n        }\n        return;\n      }\n      this.altKeyPressed = e.altKey;\n      this.lastClientOffset = (0,_OffsetUtils_js__WEBPACK_IMPORTED_MODULE_3__.getEventClientOffset)(e);\n      this.scheduleHover(dragOverTargetIds);\n      const canDrop = (dragOverTargetIds || []).some(targetId => this.monitor.canDropOnTarget(targetId));\n      if (canDrop) {\n        // Show user-specified drop effect.\n        e.preventDefault();\n        if (e.dataTransfer) {\n          e.dataTransfer.dropEffect = this.getCurrentDropEffect();\n        }\n      } else if (this.isDraggingNativeItem()) {\n        // Don't show a nice cursor but still prevent default\n        // \"drop and blow away the whole document\" action.\n        e.preventDefault();\n      } else {\n        e.preventDefault();\n        if (e.dataTransfer) {\n          e.dataTransfer.dropEffect = 'none';\n        }\n      }\n    };\n    this.handleTopDragLeaveCapture = e => {\n      if (this.isDraggingNativeItem()) {\n        e.preventDefault();\n      }\n      const isLastLeave = this.enterLeaveCounter.leave(e.target);\n      if (!isLastLeave) {\n        return;\n      }\n      if (this.isDraggingNativeItem()) {\n        setTimeout(() => this.endDragNativeItem(), 0);\n      }\n      this.cancelHover();\n    };\n    this.handleTopDropCapture = e => {\n      this.dropTargetIds = [];\n      if (this.isDraggingNativeItem()) {\n        var ref;\n        e.preventDefault();\n        (ref = this.currentNativeSource) === null || ref === void 0 ? void 0 : ref.loadDataTransfer(e.dataTransfer);\n      } else if ((0,_NativeDragSources_index_js__WEBPACK_IMPORTED_MODULE_1__.matchNativeItemType)(e.dataTransfer)) {\n        // Dragging some elements, like <a> and <img> may still behave like a native drag event,\n        // even if the current drag event matches a user-defined type.\n        // Stop the default behavior when we're not expecting a native item to be dropped.\n        e.preventDefault();\n      }\n      this.enterLeaveCounter.reset();\n    };\n    this.handleTopDrop = e => {\n      const {\n        dropTargetIds\n      } = this;\n      this.dropTargetIds = [];\n      this.actions.hover(dropTargetIds, {\n        clientOffset: (0,_OffsetUtils_js__WEBPACK_IMPORTED_MODULE_3__.getEventClientOffset)(e)\n      });\n      this.actions.drop({\n        dropEffect: this.getCurrentDropEffect()\n      });\n      if (this.isDraggingNativeItem()) {\n        this.endDragNativeItem();\n      } else if (this.monitor.isDragging()) {\n        this.actions.endDrag();\n      }\n      this.cancelHover();\n    };\n    this.handleSelectStart = e => {\n      const target = e.target;\n      // Only IE requires us to explicitly say\n      // we want drag drop operation to start\n      if (typeof target.dragDrop !== 'function') {\n        return;\n      }\n      // Inputs and textareas should be selectable\n      if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n        return;\n      }\n      // For other targets, ask IE\n      // to enable drag and drop\n      e.preventDefault();\n      target.dragDrop();\n    };\n    this.options = new _OptionsReader_js__WEBPACK_IMPORTED_MODULE_4__.OptionsReader(globalContext, options);\n    this.actions = manager.getActions();\n    this.monitor = manager.getMonitor();\n    this.registry = manager.getRegistry();\n    this.enterLeaveCounter = new _EnterLeaveCounter_js__WEBPACK_IMPORTED_MODULE_0__.EnterLeaveCounter(this.isNodeInDocument);\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd-html5-backend/dist/HTML5BackendImpl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd-html5-backend/dist/MonotonicInterpolant.js":
/*!*************************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd-html5-backend/dist/MonotonicInterpolant.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   MonotonicInterpolant: () => (/* binding */ MonotonicInterpolant)\n/* harmony export */ });\nclass MonotonicInterpolant {\n  interpolate(x) {\n    const {\n      xs,\n      ys,\n      c1s,\n      c2s,\n      c3s\n    } = this;\n    // The rightmost point in the dataset should give an exact result\n    let i = xs.length - 1;\n    if (x === xs[i]) {\n      return ys[i];\n    }\n    // Search for the interval x is in, returning the corresponding y if x is one of the original xs\n    let low = 0;\n    let high = c3s.length - 1;\n    let mid;\n    while (low <= high) {\n      mid = Math.floor(0.5 * (low + high));\n      const xHere = xs[mid];\n      if (xHere < x) {\n        low = mid + 1;\n      } else if (xHere > x) {\n        high = mid - 1;\n      } else {\n        return ys[mid];\n      }\n    }\n    i = Math.max(0, high);\n    // Interpolate\n    const diff = x - xs[i];\n    const diffSq = diff * diff;\n    return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq;\n  }\n  constructor(xs, ys) {\n    const {\n      length\n    } = xs;\n    // Rearrange xs and ys so that xs is sorted\n    const indexes = [];\n    for (let i = 0; i < length; i++) {\n      indexes.push(i);\n    }\n    indexes.sort((a, b) => xs[a] < xs[b] ? -1 : 1);\n    // Get consecutive differences and slopes\n    const dys = [];\n    const dxs = [];\n    const ms = [];\n    let dx;\n    let dy;\n    for (let i1 = 0; i1 < length - 1; i1++) {\n      dx = xs[i1 + 1] - xs[i1];\n      dy = ys[i1 + 1] - ys[i1];\n      dxs.push(dx);\n      dys.push(dy);\n      ms.push(dy / dx);\n    }\n    // Get degree-1 coefficients\n    const c1s = [ms[0]];\n    for (let i2 = 0; i2 < dxs.length - 1; i2++) {\n      const m2 = ms[i2];\n      const mNext = ms[i2 + 1];\n      if (m2 * mNext <= 0) {\n        c1s.push(0);\n      } else {\n        dx = dxs[i2];\n        const dxNext = dxs[i2 + 1];\n        const common = dx + dxNext;\n        c1s.push(3 * common / ((common + dxNext) / m2 + (common + dx) / mNext));\n      }\n    }\n    c1s.push(ms[ms.length - 1]);\n    // Get degree-2 and degree-3 coefficients\n    const c2s = [];\n    const c3s = [];\n    let m;\n    for (let i3 = 0; i3 < c1s.length - 1; i3++) {\n      m = ms[i3];\n      const c1 = c1s[i3];\n      const invDx = 1 / dxs[i3];\n      const common = c1 + c1s[i3 + 1] - m - m;\n      c2s.push((m - c1 - common) * invDx);\n      c3s.push(common * invDx * invDx);\n    }\n    this.xs = xs;\n    this.ys = ys;\n    this.c1s = c1s;\n    this.c2s = c2s;\n    this.c3s = c3s;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd-html5-backend/dist/MonotonicInterpolant.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/NativeDragSource.js":
/*!***************************************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/NativeDragSource.js ***!
  \***************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   NativeDragSource: () => (/* binding */ NativeDragSource)\n/* harmony export */ });\nclass NativeDragSource {\n  initializeExposedProperties() {\n    Object.keys(this.config.exposeProperties).forEach(property => {\n      Object.defineProperty(this.item, property, {\n        configurable: true,\n        enumerable: true,\n        get() {\n          // eslint-disable-next-line no-console\n          console.warn(`Browser doesn't allow reading \"${property}\" until the drop event.`);\n          return null;\n        }\n      });\n    });\n  }\n  loadDataTransfer(dataTransfer) {\n    if (dataTransfer) {\n      const newProperties = {};\n      Object.keys(this.config.exposeProperties).forEach(property => {\n        const propertyFn = this.config.exposeProperties[property];\n        if (propertyFn != null) {\n          newProperties[property] = {\n            value: propertyFn(dataTransfer, this.config.matchesTypes),\n            configurable: true,\n            enumerable: true\n          };\n        }\n      });\n      Object.defineProperties(this.item, newProperties);\n    }\n  }\n  canDrag() {\n    return true;\n  }\n  beginDrag() {\n    return this.item;\n  }\n  isDragging(monitor, handle) {\n    return handle === monitor.getSourceId();\n  }\n  endDrag() {\n    // empty\n  }\n  constructor(config) {\n    this.config = config;\n    this.item = {};\n    this.initializeExposedProperties();\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/NativeDragSource.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/getDataFromDataTransfer.js":
/*!**********************************************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/getDataFromDataTransfer.js ***!
  \**********************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   getDataFromDataTransfer: () => (/* binding */ getDataFromDataTransfer)\n/* harmony export */ });\nfunction getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {\n  const result = typesToTry.reduce((resultSoFar, typeToTry) => resultSoFar || dataTransfer.getData(typeToTry), '');\n  return result != null ? result : defaultValue;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/getDataFromDataTransfer.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/index.js":
/*!****************************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/index.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   createNativeDragSource: () => (/* binding */ createNativeDragSource),\n/* harmony export */   matchNativeItemType: () => (/* binding */ matchNativeItemType)\n/* harmony export */ });\n/* harmony import */ var _NativeDragSource_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./NativeDragSource.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/NativeDragSource.js\");\n/* harmony import */ var _nativeTypesConfig_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./nativeTypesConfig.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/nativeTypesConfig.js\");\n\n\nfunction createNativeDragSource(type, dataTransfer) {\n  const config = _nativeTypesConfig_js__WEBPACK_IMPORTED_MODULE_1__.nativeTypesConfig[type];\n  if (!config) {\n    throw new Error(`native type ${type} has no configuration`);\n  }\n  const result = new _NativeDragSource_js__WEBPACK_IMPORTED_MODULE_0__.NativeDragSource(config);\n  result.loadDataTransfer(dataTransfer);\n  return result;\n}\nfunction matchNativeItemType(dataTransfer) {\n  if (!dataTransfer) {\n    return null;\n  }\n  const dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);\n  return Object.keys(_nativeTypesConfig_js__WEBPACK_IMPORTED_MODULE_1__.nativeTypesConfig).filter(nativeItemType => {\n    const typeConfig = _nativeTypesConfig_js__WEBPACK_IMPORTED_MODULE_1__.nativeTypesConfig[nativeItemType];\n    if (!(typeConfig === null || typeConfig === void 0 ? void 0 : typeConfig.matchesTypes)) {\n      return false;\n    }\n    return typeConfig.matchesTypes.some(t => dataTransferTypes.indexOf(t) > -1);\n  })[0] || null;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/nativeTypesConfig.js":
/*!****************************************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/nativeTypesConfig.js ***!
  \****************************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   nativeTypesConfig: () => (/* binding */ nativeTypesConfig)\n/* harmony export */ });\n/* harmony import */ var _NativeTypes_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../NativeTypes.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/NativeTypes.js\");\n/* harmony import */ var _getDataFromDataTransfer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDataFromDataTransfer.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/getDataFromDataTransfer.js\");\n\n\nconst nativeTypesConfig = {\n  [_NativeTypes_js__WEBPACK_IMPORTED_MODULE_0__.FILE]: {\n    exposeProperties: {\n      files: dataTransfer => Array.prototype.slice.call(dataTransfer.files),\n      items: dataTransfer => dataTransfer.items,\n      dataTransfer: dataTransfer => dataTransfer\n    },\n    matchesTypes: ['Files']\n  },\n  [_NativeTypes_js__WEBPACK_IMPORTED_MODULE_0__.HTML]: {\n    exposeProperties: {\n      html: (dataTransfer, matchesTypes) => (0,_getDataFromDataTransfer_js__WEBPACK_IMPORTED_MODULE_1__.getDataFromDataTransfer)(dataTransfer, matchesTypes, ''),\n      dataTransfer: dataTransfer => dataTransfer\n    },\n    matchesTypes: ['Html', 'text/html']\n  },\n  [_NativeTypes_js__WEBPACK_IMPORTED_MODULE_0__.URL]: {\n    exposeProperties: {\n      urls: (dataTransfer, matchesTypes) => (0,_getDataFromDataTransfer_js__WEBPACK_IMPORTED_MODULE_1__.getDataFromDataTransfer)(dataTransfer, matchesTypes, '').split('\\n'),\n      dataTransfer: dataTransfer => dataTransfer\n    },\n    matchesTypes: ['Url', 'text/uri-list']\n  },\n  [_NativeTypes_js__WEBPACK_IMPORTED_MODULE_0__.TEXT]: {\n    exposeProperties: {\n      text: (dataTransfer, matchesTypes) => (0,_getDataFromDataTransfer_js__WEBPACK_IMPORTED_MODULE_1__.getDataFromDataTransfer)(dataTransfer, matchesTypes, ''),\n      dataTransfer: dataTransfer => dataTransfer\n    },\n    matchesTypes: ['Text', 'text/plain']\n  }\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd-html5-backend/dist/NativeDragSources/nativeTypesConfig.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd-html5-backend/dist/NativeTypes.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd-html5-backend/dist/NativeTypes.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   FILE: () => (/* binding */ FILE),\n/* harmony export */   HTML: () => (/* binding */ HTML),\n/* harmony export */   TEXT: () => (/* binding */ TEXT),\n/* harmony export */   URL: () => (/* binding */ URL)\n/* harmony export */ });\nconst FILE = '__NATIVE_FILE__';\nconst URL = '__NATIVE_URL__';\nconst TEXT = '__NATIVE_TEXT__';\nconst HTML = '__NATIVE_HTML__';\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd-html5-backend/dist/NativeTypes.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd-html5-backend/dist/OffsetUtils.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd-html5-backend/dist/OffsetUtils.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   getDragPreviewOffset: () => (/* binding */ getDragPreviewOffset),\n/* harmony export */   getEventClientOffset: () => (/* binding */ getEventClientOffset),\n/* harmony export */   getNodeClientOffset: () => (/* binding */ getNodeClientOffset)\n/* harmony export */ });\n/* harmony import */ var _BrowserDetector_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./BrowserDetector.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/BrowserDetector.js\");\n/* harmony import */ var _MonotonicInterpolant_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MonotonicInterpolant.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/MonotonicInterpolant.js\");\n\n\nconst ELEMENT_NODE = 1;\nfunction getNodeClientOffset(node) {\n  const el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;\n  if (!el) {\n    return null;\n  }\n  const {\n    top,\n    left\n  } = el.getBoundingClientRect();\n  return {\n    x: left,\n    y: top\n  };\n}\nfunction getEventClientOffset(e) {\n  return {\n    x: e.clientX,\n    y: e.clientY\n  };\n}\nfunction isImageNode(node) {\n  var ref;\n  return node.nodeName === 'IMG' && ((0,_BrowserDetector_js__WEBPACK_IMPORTED_MODULE_0__.isFirefox)() || !((ref = document.documentElement) === null || ref === void 0 ? void 0 : ref.contains(node)));\n}\nfunction getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) {\n  let dragPreviewWidth = isImage ? dragPreview.width : sourceWidth;\n  let dragPreviewHeight = isImage ? dragPreview.height : sourceHeight;\n  // Work around @2x coordinate discrepancies in browsers\n  if ((0,_BrowserDetector_js__WEBPACK_IMPORTED_MODULE_0__.isSafari)() && isImage) {\n    dragPreviewHeight /= window.devicePixelRatio;\n    dragPreviewWidth /= window.devicePixelRatio;\n  }\n  return {\n    dragPreviewWidth,\n    dragPreviewHeight\n  };\n}\nfunction getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint) {\n  // The browsers will use the image intrinsic size under different conditions.\n  // Firefox only cares if it's an image, but WebKit also wants it to be detached.\n  const isImage = isImageNode(dragPreview);\n  const dragPreviewNode = isImage ? sourceNode : dragPreview;\n  const dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode);\n  const offsetFromDragPreview = {\n    x: clientOffset.x - dragPreviewNodeOffsetFromClient.x,\n    y: clientOffset.y - dragPreviewNodeOffsetFromClient.y\n  };\n  const {\n    offsetWidth: sourceWidth,\n    offsetHeight: sourceHeight\n  } = sourceNode;\n  const {\n    anchorX,\n    anchorY\n  } = anchorPoint;\n  const {\n    dragPreviewWidth,\n    dragPreviewHeight\n  } = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight);\n  const calculateYOffset = () => {\n    const interpolantY = new _MonotonicInterpolant_js__WEBPACK_IMPORTED_MODULE_1__.MonotonicInterpolant([0, 0.5, 1], [\n    // Dock to the top\n    offsetFromDragPreview.y,\n    // Align at the center\n    offsetFromDragPreview.y / sourceHeight * dragPreviewHeight,\n    // Dock to the bottom\n    offsetFromDragPreview.y + dragPreviewHeight - sourceHeight]);\n    let y = interpolantY.interpolate(anchorY);\n    // Work around Safari 8 positioning bug\n    if ((0,_BrowserDetector_js__WEBPACK_IMPORTED_MODULE_0__.isSafari)() && isImage) {\n      // We'll have to wait for @3x to see if this is entirely correct\n      y += (window.devicePixelRatio - 1) * dragPreviewHeight;\n    }\n    return y;\n  };\n  const calculateXOffset = () => {\n    // Interpolate coordinates depending on anchor point\n    // If you know a simpler way to do this, let me know\n    const interpolantX = new _MonotonicInterpolant_js__WEBPACK_IMPORTED_MODULE_1__.MonotonicInterpolant([0, 0.5, 1], [\n    // Dock to the left\n    offsetFromDragPreview.x,\n    // Align at the center\n    offsetFromDragPreview.x / sourceWidth * dragPreviewWidth,\n    // Dock to the right\n    offsetFromDragPreview.x + dragPreviewWidth - sourceWidth]);\n    return interpolantX.interpolate(anchorX);\n  };\n  // Force offsets if specified in the options.\n  const {\n    offsetX,\n    offsetY\n  } = offsetPoint;\n  const isManualOffsetX = offsetX === 0 || offsetX;\n  const isManualOffsetY = offsetY === 0 || offsetY;\n  return {\n    x: isManualOffsetX ? offsetX : calculateXOffset(),\n    y: isManualOffsetY ? offsetY : calculateYOffset()\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd-html5-backend/dist/OffsetUtils.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd-html5-backend/dist/OptionsReader.js":
/*!******************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd-html5-backend/dist/OptionsReader.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   OptionsReader: () => (/* binding */ OptionsReader)\n/* harmony export */ });\nclass OptionsReader {\n  get window() {\n    if (this.globalContext) {\n      return this.globalContext;\n    } else if (typeof window !== 'undefined') {\n      return window;\n    }\n    return undefined;\n  }\n  get document() {\n    var ref;\n    if ((ref = this.globalContext) === null || ref === void 0 ? void 0 : ref.document) {\n      return this.globalContext.document;\n    } else if (this.window) {\n      return this.window.document;\n    } else {\n      return undefined;\n    }\n  }\n  get rootElement() {\n    var ref;\n    return ((ref = this.optionsArgs) === null || ref === void 0 ? void 0 : ref.rootElement) || this.window;\n  }\n  constructor(globalContext, options) {\n    this.ownerDocument = null;\n    this.globalContext = globalContext;\n    this.optionsArgs = options;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd-html5-backend/dist/OptionsReader.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd-html5-backend/dist/getEmptyImage.js":
/*!******************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd-html5-backend/dist/getEmptyImage.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   getEmptyImage: () => (/* binding */ getEmptyImage)\n/* harmony export */ });\nlet emptyImage;\nfunction getEmptyImage() {\n  if (!emptyImage) {\n    emptyImage = new Image();\n    emptyImage.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n  }\n  return emptyImage;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd-html5-backend/dist/getEmptyImage.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd-html5-backend/dist/index.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd-html5-backend/dist/index.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   HTML5Backend: () => (/* binding */ HTML5Backend),\n/* harmony export */   NativeTypes: () => (/* reexport module object */ _NativeTypes_js__WEBPACK_IMPORTED_MODULE_1__),\n/* harmony export */   getEmptyImage: () => (/* reexport safe */ _getEmptyImage_js__WEBPACK_IMPORTED_MODULE_2__.getEmptyImage)\n/* harmony export */ });\n/* harmony import */ var _HTML5BackendImpl_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./HTML5BackendImpl.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/HTML5BackendImpl.js\");\n/* harmony import */ var _NativeTypes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./NativeTypes.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/NativeTypes.js\");\n/* harmony import */ var _getEmptyImage_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getEmptyImage.js */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/getEmptyImage.js\");\n\n\n\n\nconst HTML5Backend = function createBackend(manager, context, options) {\n  return new _HTML5BackendImpl_js__WEBPACK_IMPORTED_MODULE_0__.HTML5BackendImpl(manager, context, options);\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd-html5-backend/dist/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd-html5-backend/dist/utils/js_utils.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd-html5-backend/dist/utils/js_utils.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   memoize: () => (/* binding */ memoize),\n/* harmony export */   union: () => (/* binding */ union),\n/* harmony export */   without: () => (/* binding */ without)\n/* harmony export */ });\n// cheap lodash replacements\nfunction memoize(fn) {\n  let result = null;\n  const memoized = () => {\n    if (result == null) {\n      result = fn();\n    }\n    return result;\n  };\n  return memoized;\n}\n/**\n * drop-in replacement for _.without\n */\nfunction without(items, item) {\n  return items.filter(i => i !== item);\n}\nfunction union(itemsA, itemsB) {\n  const set = new Set();\n  const insertItem = item => set.add(item);\n  itemsA.forEach(insertItem);\n  itemsB.forEach(insertItem);\n  const result = [];\n  set.forEach(key => result.push(key));\n  return result;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd-html5-backend/dist/utils/js_utils.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/core/DndContext.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/core/DndContext.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DndContext: () => (/* binding */ DndContext)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n\n/**\n * Create the React Context\n */\nconst DndContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({\n  dragDropManager: undefined\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/core/DndContext.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/core/DndProvider.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/core/DndProvider.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DndProvider: () => (/* binding */ DndProvider)\n/* harmony export */ });\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-runtime */ \"../react-ui/node_modules/react/jsx-runtime.js\");\n/* harmony import */ var dnd_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dnd-core */ \"../react-ui/node_modules/dnd-core/dist/createDragDropManager.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var _DndContext_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./DndContext.js */ \"../react-ui/node_modules/react-dnd/dist/core/DndContext.js\");\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = _objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n  return target;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n  return target;\n}\n\n\n\n\nlet refCount = 0;\nconst INSTANCE_SYM = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__');\nvar DndProvider = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_2__.memo)(function DndProvider(_param) {\n  var {\n      children\n    } = _param,\n    props = _objectWithoutProperties(_param, [\"children\"]);\n  const [manager, isGlobalInstance] = getDndContextValue(props) // memoized from props\n  ;\n  /**\n  * If the global context was used to store the DND context\n  * then where theres no more references to it we should\n  * clean it up to avoid memory leaks\n  */\n  (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {\n    if (isGlobalInstance) {\n      const context = getGlobalContext();\n      ++refCount;\n      return () => {\n        if (--refCount === 0) {\n          context[INSTANCE_SYM] = null;\n        }\n      };\n    }\n    return;\n  }, []);\n  return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_DndContext_js__WEBPACK_IMPORTED_MODULE_3__.DndContext.Provider, {\n    value: manager,\n    children: children\n  });\n});\n/**\n * A React component that provides the React-DnD context\n */\n\nfunction getDndContextValue(props) {\n  if ('manager' in props) {\n    const manager = {\n      dragDropManager: props.manager\n    };\n    return [manager, false];\n  }\n  const manager = createSingletonDndContext(props.backend, props.context, props.options, props.debugMode);\n  const isGlobalInstance = !props.context;\n  return [manager, isGlobalInstance];\n}\nfunction createSingletonDndContext(backend, context = getGlobalContext(), options, debugMode) {\n  const ctx = context;\n  if (!ctx[INSTANCE_SYM]) {\n    ctx[INSTANCE_SYM] = {\n      dragDropManager: (0,dnd_core__WEBPACK_IMPORTED_MODULE_1__.createDragDropManager)(backend, context, options, debugMode)\n    };\n  }\n  return ctx[INSTANCE_SYM];\n}\nfunction getGlobalContext() {\n  return typeof global !== 'undefined' ? global : window;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/core/DndProvider.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useCollectedProps.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useCollectedProps.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useCollectedProps: () => (/* binding */ useCollectedProps)\n/* harmony export */ });\n/* harmony import */ var _useMonitorOutput_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./useMonitorOutput.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useMonitorOutput.js\");\n\nfunction useCollectedProps(collector, monitor, connector) {\n  return (0,_useMonitorOutput_js__WEBPACK_IMPORTED_MODULE_0__.useMonitorOutput)(monitor, collector || (() => ({})), () => connector.reconnect());\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useCollectedProps.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useCollector.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useCollector.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useCollector: () => (/* binding */ useCollector)\n/* harmony export */ });\n/* harmony import */ var fast_deep_equal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! fast-deep-equal */ \"./node_modules/fast-deep-equal/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var _useIsomorphicLayoutEffect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./useIsomorphicLayoutEffect.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js\");\n\n\n\n/**\n *\n * @param monitor The monitor to collect state from\n * @param collect The collecting function\n * @param onUpdate A method to invoke when updates occur\n */\nfunction useCollector(monitor, collect, onUpdate) {\n  const [collected, setCollected] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(() => collect(monitor));\n  const updateCollected = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {\n    const nextValue = collect(monitor);\n    // This needs to be a deep-equality check because some monitor-collected values\n    // include XYCoord objects that may be equivalent, but do not have instance equality.\n    if (!fast_deep_equal__WEBPACK_IMPORTED_MODULE_0__(collected, nextValue)) {\n      setCollected(nextValue);\n      if (onUpdate) {\n        onUpdate();\n      }\n    }\n  }, [collected, monitor, onUpdate]);\n  // update the collected properties after react renders.\n  // Note that the \"Dustbin Stress Test\" fails if this is not\n  // done when the component updates\n  (0,_useIsomorphicLayoutEffect_js__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(updateCollected);\n  return [collected, updateCollected];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useCollector.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrag/DragSourceImpl.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrag/DragSourceImpl.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DragSourceImpl: () => (/* binding */ DragSourceImpl)\n/* harmony export */ });\nclass DragSourceImpl {\n  beginDrag() {\n    const spec = this.spec;\n    const monitor = this.monitor;\n    let result = null;\n    if (typeof spec.item === 'object') {\n      result = spec.item;\n    } else if (typeof spec.item === 'function') {\n      result = spec.item(monitor);\n    } else {\n      result = {};\n    }\n    return result !== null && result !== void 0 ? result : null;\n  }\n  canDrag() {\n    const spec = this.spec;\n    const monitor = this.monitor;\n    if (typeof spec.canDrag === 'boolean') {\n      return spec.canDrag;\n    } else if (typeof spec.canDrag === 'function') {\n      return spec.canDrag(monitor);\n    } else {\n      return true;\n    }\n  }\n  isDragging(globalMonitor, target) {\n    const spec = this.spec;\n    const monitor = this.monitor;\n    const {\n      isDragging\n    } = spec;\n    return isDragging ? isDragging(monitor) : target === globalMonitor.getSourceId();\n  }\n  endDrag() {\n    const spec = this.spec;\n    const monitor = this.monitor;\n    const connector = this.connector;\n    const {\n      end\n    } = spec;\n    if (end) {\n      end(monitor.getItem(), monitor);\n    }\n    connector.reconnect();\n  }\n  constructor(spec, monitor, connector) {\n    this.spec = spec;\n    this.monitor = monitor;\n    this.connector = connector;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrag/DragSourceImpl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrag/connectors.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrag/connectors.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useConnectDragPreview: () => (/* binding */ useConnectDragPreview),\n/* harmony export */   useConnectDragSource: () => (/* binding */ useConnectDragSource)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n\nfunction useConnectDragSource(connector) {\n  return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => connector.hooks.dragSource(), [connector]);\n}\nfunction useConnectDragPreview(connector) {\n  return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => connector.hooks.dragPreview(), [connector]);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrag/connectors.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDrag.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDrag.js ***!
  \************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useDrag: () => (/* binding */ useDrag)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/invariant */ \"../react-ui/node_modules/@react-dnd/invariant/dist/index.js\");\n/* harmony import */ var _useCollectedProps_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../useCollectedProps.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useCollectedProps.js\");\n/* harmony import */ var _useOptionalFactory_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../useOptionalFactory.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useOptionalFactory.js\");\n/* harmony import */ var _connectors_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./connectors.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrag/connectors.js\");\n/* harmony import */ var _useDragSourceConnector_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./useDragSourceConnector.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceConnector.js\");\n/* harmony import */ var _useDragSourceMonitor_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./useDragSourceMonitor.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceMonitor.js\");\n/* harmony import */ var _useRegisteredDragSource_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./useRegisteredDragSource.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useRegisteredDragSource.js\");\n\n\n\n\n\n\n\n/**\n * useDragSource hook\n * @param sourceSpec The drag source specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */\nfunction useDrag(specArg, deps) {\n  const spec = (0,_useOptionalFactory_js__WEBPACK_IMPORTED_MODULE_2__.useOptionalFactory)(specArg, deps);\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(!spec.begin, `useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)`);\n  const monitor = (0,_useDragSourceMonitor_js__WEBPACK_IMPORTED_MODULE_5__.useDragSourceMonitor)();\n  const connector = (0,_useDragSourceConnector_js__WEBPACK_IMPORTED_MODULE_4__.useDragSourceConnector)(spec.options, spec.previewOptions);\n  (0,_useRegisteredDragSource_js__WEBPACK_IMPORTED_MODULE_6__.useRegisteredDragSource)(spec, monitor, connector);\n  return [(0,_useCollectedProps_js__WEBPACK_IMPORTED_MODULE_1__.useCollectedProps)(spec.collect, monitor, connector), (0,_connectors_js__WEBPACK_IMPORTED_MODULE_3__.useConnectDragSource)(connector), (0,_connectors_js__WEBPACK_IMPORTED_MODULE_3__.useConnectDragPreview)(connector)];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDrag.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragSource.js":
/*!******************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragSource.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useDragSource: () => (/* binding */ useDragSource)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var _DragSourceImpl_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DragSourceImpl.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrag/DragSourceImpl.js\");\n\n\nfunction useDragSource(spec, monitor, connector) {\n  const handler = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => new _DragSourceImpl_js__WEBPACK_IMPORTED_MODULE_1__.DragSourceImpl(spec, monitor, connector), [monitor, connector]);\n  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n    handler.spec = spec;\n  }, [spec]);\n  return handler;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragSource.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceConnector.js":
/*!***************************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceConnector.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useDragSourceConnector: () => (/* binding */ useDragSourceConnector)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var _internals_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../internals/index.js */ \"../react-ui/node_modules/react-dnd/dist/internals/SourceConnector.js\");\n/* harmony import */ var _useDragDropManager_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../useDragDropManager.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDragDropManager.js\");\n/* harmony import */ var _useIsomorphicLayoutEffect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../useIsomorphicLayoutEffect.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js\");\n\n\n\n\nfunction useDragSourceConnector(dragSourceOptions, dragPreviewOptions) {\n  const manager = (0,_useDragDropManager_js__WEBPACK_IMPORTED_MODULE_2__.useDragDropManager)();\n  const connector = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => new _internals_index_js__WEBPACK_IMPORTED_MODULE_1__.SourceConnector(manager.getBackend()), [manager]);\n  (0,_useIsomorphicLayoutEffect_js__WEBPACK_IMPORTED_MODULE_3__.useIsomorphicLayoutEffect)(() => {\n    connector.dragSourceOptions = dragSourceOptions || null;\n    connector.reconnect();\n    return () => connector.disconnectDragSource();\n  }, [connector, dragSourceOptions]);\n  (0,_useIsomorphicLayoutEffect_js__WEBPACK_IMPORTED_MODULE_3__.useIsomorphicLayoutEffect)(() => {\n    connector.dragPreviewOptions = dragPreviewOptions || null;\n    connector.reconnect();\n    return () => connector.disconnectDragPreview();\n  }, [connector, dragPreviewOptions]);\n  return connector;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceConnector.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceMonitor.js":
/*!*************************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceMonitor.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useDragSourceMonitor: () => (/* binding */ useDragSourceMonitor)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var _internals_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../internals/index.js */ \"../react-ui/node_modules/react-dnd/dist/internals/DragSourceMonitorImpl.js\");\n/* harmony import */ var _useDragDropManager_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../useDragDropManager.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDragDropManager.js\");\n\n\n\nfunction useDragSourceMonitor() {\n  const manager = (0,_useDragDropManager_js__WEBPACK_IMPORTED_MODULE_2__.useDragDropManager)();\n  return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => new _internals_index_js__WEBPACK_IMPORTED_MODULE_1__.DragSourceMonitorImpl(manager), [manager]);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragSourceMonitor.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragType.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragType.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useDragType: () => (/* binding */ useDragType)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/invariant */ \"../react-ui/node_modules/@react-dnd/invariant/dist/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n\n\nfunction useDragType(spec) {\n  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => {\n    const result = spec.type;\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(result != null, 'spec.type must be defined');\n    return result;\n  }, [spec]);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragType.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useRegisteredDragSource.js":
/*!****************************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useRegisteredDragSource.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useRegisteredDragSource: () => (/* binding */ useRegisteredDragSource)\n/* harmony export */ });\n/* harmony import */ var _internals_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../internals/index.js */ \"../react-ui/node_modules/react-dnd/dist/internals/registration.js\");\n/* harmony import */ var _useDragDropManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../useDragDropManager.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDragDropManager.js\");\n/* harmony import */ var _useIsomorphicLayoutEffect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../useIsomorphicLayoutEffect.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js\");\n/* harmony import */ var _useDragSource_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useDragSource.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragSource.js\");\n/* harmony import */ var _useDragType_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./useDragType.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDragType.js\");\n\n\n\n\n\nfunction useRegisteredDragSource(spec, monitor, connector) {\n  const manager = (0,_useDragDropManager_js__WEBPACK_IMPORTED_MODULE_1__.useDragDropManager)();\n  const handler = (0,_useDragSource_js__WEBPACK_IMPORTED_MODULE_3__.useDragSource)(spec, monitor, connector);\n  const itemType = (0,_useDragType_js__WEBPACK_IMPORTED_MODULE_4__.useDragType)(spec);\n  (0,_useIsomorphicLayoutEffect_js__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(function registerDragSource() {\n    if (itemType != null) {\n      const [handlerId, unregister] = (0,_internals_index_js__WEBPACK_IMPORTED_MODULE_0__.registerSource)(itemType, handler, manager);\n      monitor.receiveHandlerId(handlerId);\n      connector.receiveHandlerId(handlerId);\n      return unregister;\n    }\n    return;\n  }, [manager, monitor, connector, handler, itemType]);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useRegisteredDragSource.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDragDropManager.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDragDropManager.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useDragDropManager: () => (/* binding */ useDragDropManager)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/invariant */ \"../react-ui/node_modules/@react-dnd/invariant/dist/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var _core_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../core/index.js */ \"../react-ui/node_modules/react-dnd/dist/core/DndContext.js\");\n\n\n\n/**\n * A hook to retrieve the DragDropManager from Context\n */\nfunction useDragDropManager() {\n  const {\n    dragDropManager\n  } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_core_index_js__WEBPACK_IMPORTED_MODULE_2__.DndContext);\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(dragDropManager != null, 'Expected drag drop context');\n  return dragDropManager;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDragDropManager.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrop/DropTargetImpl.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrop/DropTargetImpl.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DropTargetImpl: () => (/* binding */ DropTargetImpl)\n/* harmony export */ });\nclass DropTargetImpl {\n  canDrop() {\n    const spec = this.spec;\n    const monitor = this.monitor;\n    return spec.canDrop ? spec.canDrop(monitor.getItem(), monitor) : true;\n  }\n  hover() {\n    const spec = this.spec;\n    const monitor = this.monitor;\n    if (spec.hover) {\n      spec.hover(monitor.getItem(), monitor);\n    }\n  }\n  drop() {\n    const spec = this.spec;\n    const monitor = this.monitor;\n    if (spec.drop) {\n      return spec.drop(monitor.getItem(), monitor);\n    }\n    return;\n  }\n  constructor(spec, monitor) {\n    this.spec = spec;\n    this.monitor = monitor;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrop/DropTargetImpl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrop/connectors.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrop/connectors.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useConnectDropTarget: () => (/* binding */ useConnectDropTarget)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n\nfunction useConnectDropTarget(connector) {\n  return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => connector.hooks.dropTarget(), [connector]);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrop/connectors.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useAccept.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useAccept.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useAccept: () => (/* binding */ useAccept)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/invariant */ \"../react-ui/node_modules/@react-dnd/invariant/dist/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n\n\n/**\n * Internal utility hook to get an array-version of spec.accept.\n * The main utility here is that we aren't creating a new array on every render if a non-array spec.accept is passed in.\n * @param spec\n */\nfunction useAccept(spec) {\n  const {\n    accept\n  } = spec;\n  return (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(() => {\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(spec.accept != null, 'accept must be defined');\n    return Array.isArray(accept) ? accept : [accept];\n  }, [accept]);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useAccept.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDrop.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDrop.js ***!
  \************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useDrop: () => (/* binding */ useDrop)\n/* harmony export */ });\n/* harmony import */ var _useCollectedProps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../useCollectedProps.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useCollectedProps.js\");\n/* harmony import */ var _useOptionalFactory_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../useOptionalFactory.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useOptionalFactory.js\");\n/* harmony import */ var _connectors_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./connectors.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrop/connectors.js\");\n/* harmony import */ var _useDropTargetConnector_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useDropTargetConnector.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDropTargetConnector.js\");\n/* harmony import */ var _useDropTargetMonitor_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./useDropTargetMonitor.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDropTargetMonitor.js\");\n/* harmony import */ var _useRegisteredDropTarget_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./useRegisteredDropTarget.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useRegisteredDropTarget.js\");\n\n\n\n\n\n\n/**\n * useDropTarget Hook\n * @param spec The drop target specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */\nfunction useDrop(specArg, deps) {\n  const spec = (0,_useOptionalFactory_js__WEBPACK_IMPORTED_MODULE_1__.useOptionalFactory)(specArg, deps);\n  const monitor = (0,_useDropTargetMonitor_js__WEBPACK_IMPORTED_MODULE_4__.useDropTargetMonitor)();\n  const connector = (0,_useDropTargetConnector_js__WEBPACK_IMPORTED_MODULE_3__.useDropTargetConnector)(spec.options);\n  (0,_useRegisteredDropTarget_js__WEBPACK_IMPORTED_MODULE_5__.useRegisteredDropTarget)(spec, monitor, connector);\n  return [(0,_useCollectedProps_js__WEBPACK_IMPORTED_MODULE_0__.useCollectedProps)(spec.collect, monitor, connector), (0,_connectors_js__WEBPACK_IMPORTED_MODULE_2__.useConnectDropTarget)(connector)];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDrop.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDropTarget.js":
/*!******************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDropTarget.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useDropTarget: () => (/* binding */ useDropTarget)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var _DropTargetImpl_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DropTargetImpl.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrop/DropTargetImpl.js\");\n\n\nfunction useDropTarget(spec, monitor) {\n  const dropTarget = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => new _DropTargetImpl_js__WEBPACK_IMPORTED_MODULE_1__.DropTargetImpl(spec, monitor), [monitor]);\n  (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {\n    dropTarget.spec = spec;\n  }, [spec]);\n  return dropTarget;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDropTarget.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDropTargetConnector.js":
/*!***************************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDropTargetConnector.js ***!
  \***************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useDropTargetConnector: () => (/* binding */ useDropTargetConnector)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var _internals_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../internals/index.js */ \"../react-ui/node_modules/react-dnd/dist/internals/TargetConnector.js\");\n/* harmony import */ var _useDragDropManager_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../useDragDropManager.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDragDropManager.js\");\n/* harmony import */ var _useIsomorphicLayoutEffect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../useIsomorphicLayoutEffect.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js\");\n\n\n\n\nfunction useDropTargetConnector(options) {\n  const manager = (0,_useDragDropManager_js__WEBPACK_IMPORTED_MODULE_2__.useDragDropManager)();\n  const connector = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => new _internals_index_js__WEBPACK_IMPORTED_MODULE_1__.TargetConnector(manager.getBackend()), [manager]);\n  (0,_useIsomorphicLayoutEffect_js__WEBPACK_IMPORTED_MODULE_3__.useIsomorphicLayoutEffect)(() => {\n    connector.dropTargetOptions = options || null;\n    connector.reconnect();\n    return () => connector.disconnectDropTarget();\n  }, [options]);\n  return connector;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDropTargetConnector.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDropTargetMonitor.js":
/*!*************************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDropTargetMonitor.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useDropTargetMonitor: () => (/* binding */ useDropTargetMonitor)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var _internals_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../internals/index.js */ \"../react-ui/node_modules/react-dnd/dist/internals/DropTargetMonitorImpl.js\");\n/* harmony import */ var _useDragDropManager_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../useDragDropManager.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDragDropManager.js\");\n\n\n\nfunction useDropTargetMonitor() {\n  const manager = (0,_useDragDropManager_js__WEBPACK_IMPORTED_MODULE_2__.useDragDropManager)();\n  return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => new _internals_index_js__WEBPACK_IMPORTED_MODULE_1__.DropTargetMonitorImpl(manager), [manager]);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDropTargetMonitor.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useRegisteredDropTarget.js":
/*!****************************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useRegisteredDropTarget.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useRegisteredDropTarget: () => (/* binding */ useRegisteredDropTarget)\n/* harmony export */ });\n/* harmony import */ var _internals_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../internals/index.js */ \"../react-ui/node_modules/react-dnd/dist/internals/registration.js\");\n/* harmony import */ var _useDragDropManager_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../useDragDropManager.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDragDropManager.js\");\n/* harmony import */ var _useIsomorphicLayoutEffect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../useIsomorphicLayoutEffect.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js\");\n/* harmony import */ var _useAccept_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./useAccept.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useAccept.js\");\n/* harmony import */ var _useDropTarget_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./useDropTarget.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDropTarget.js\");\n\n\n\n\n\nfunction useRegisteredDropTarget(spec, monitor, connector) {\n  const manager = (0,_useDragDropManager_js__WEBPACK_IMPORTED_MODULE_1__.useDragDropManager)();\n  const dropTarget = (0,_useDropTarget_js__WEBPACK_IMPORTED_MODULE_4__.useDropTarget)(spec, monitor);\n  const accept = (0,_useAccept_js__WEBPACK_IMPORTED_MODULE_3__.useAccept)(spec);\n  (0,_useIsomorphicLayoutEffect_js__WEBPACK_IMPORTED_MODULE_2__.useIsomorphicLayoutEffect)(function registerDropTarget() {\n    const [handlerId, unregister] = (0,_internals_index_js__WEBPACK_IMPORTED_MODULE_0__.registerTarget)(accept, dropTarget, manager);\n    monitor.receiveHandlerId(handlerId);\n    connector.receiveHandlerId(handlerId);\n    return unregister;\n  }, [manager, monitor, dropTarget, connector, accept.map(a => a.toString()).join('|')]);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useRegisteredDropTarget.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js":
/*!**********************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useIsomorphicLayoutEffect: () => (/* binding */ useIsomorphicLayoutEffect)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n\n// suppress the useLayoutEffect warning on server side.\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect;\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useMonitorOutput.js":
/*!*************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useMonitorOutput.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useMonitorOutput: () => (/* binding */ useMonitorOutput)\n/* harmony export */ });\n/* harmony import */ var _useCollector_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./useCollector.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useCollector.js\");\n/* harmony import */ var _useIsomorphicLayoutEffect_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./useIsomorphicLayoutEffect.js */ \"../react-ui/node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js\");\n\n\nfunction useMonitorOutput(monitor, collect, onCollect) {\n  const [collected, updateCollected] = (0,_useCollector_js__WEBPACK_IMPORTED_MODULE_0__.useCollector)(monitor, collect, onCollect);\n  (0,_useIsomorphicLayoutEffect_js__WEBPACK_IMPORTED_MODULE_1__.useIsomorphicLayoutEffect)(function subscribeToMonitorStateChange() {\n    const handlerId = monitor.getHandlerId();\n    if (handlerId == null) {\n      return;\n    }\n    return monitor.subscribeToStateChange(updateCollected, {\n      handlerIds: [handlerId]\n    });\n  }, [monitor, updateCollected]);\n  return collected;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useMonitorOutput.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/hooks/useOptionalFactory.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/hooks/useOptionalFactory.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   useOptionalFactory: () => (/* binding */ useOptionalFactory)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n\nfunction useOptionalFactory(arg, deps) {\n  const memoDeps = [...(deps || [])];\n  if (deps == null && typeof arg !== 'function') {\n    memoDeps.push(arg);\n  }\n  return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => {\n    return typeof arg === 'function' ? arg() : arg;\n  }, memoDeps);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/hooks/useOptionalFactory.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/internals/DragSourceMonitorImpl.js":
/*!**********************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/internals/DragSourceMonitorImpl.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DragSourceMonitorImpl: () => (/* binding */ DragSourceMonitorImpl)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/invariant */ \"../react-ui/node_modules/@react-dnd/invariant/dist/index.js\");\n\nlet isCallingCanDrag = false;\nlet isCallingIsDragging = false;\nclass DragSourceMonitorImpl {\n  receiveHandlerId(sourceId) {\n    this.sourceId = sourceId;\n  }\n  getHandlerId() {\n    return this.sourceId;\n  }\n  canDrag() {\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n    try {\n      isCallingCanDrag = true;\n      return this.internalMonitor.canDragSource(this.sourceId);\n    } finally {\n      isCallingCanDrag = false;\n    }\n  }\n  isDragging() {\n    if (!this.sourceId) {\n      return false;\n    }\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n    try {\n      isCallingIsDragging = true;\n      return this.internalMonitor.isDraggingSource(this.sourceId);\n    } finally {\n      isCallingIsDragging = false;\n    }\n  }\n  subscribeToStateChange(listener, options) {\n    return this.internalMonitor.subscribeToStateChange(listener, options);\n  }\n  isDraggingSource(sourceId) {\n    return this.internalMonitor.isDraggingSource(sourceId);\n  }\n  isOverTarget(targetId, options) {\n    return this.internalMonitor.isOverTarget(targetId, options);\n  }\n  getTargetIds() {\n    return this.internalMonitor.getTargetIds();\n  }\n  isSourcePublic() {\n    return this.internalMonitor.isSourcePublic();\n  }\n  getSourceId() {\n    return this.internalMonitor.getSourceId();\n  }\n  subscribeToOffsetChange(listener) {\n    return this.internalMonitor.subscribeToOffsetChange(listener);\n  }\n  canDragSource(sourceId) {\n    return this.internalMonitor.canDragSource(sourceId);\n  }\n  canDropOnTarget(targetId) {\n    return this.internalMonitor.canDropOnTarget(targetId);\n  }\n  getItemType() {\n    return this.internalMonitor.getItemType();\n  }\n  getItem() {\n    return this.internalMonitor.getItem();\n  }\n  getDropResult() {\n    return this.internalMonitor.getDropResult();\n  }\n  didDrop() {\n    return this.internalMonitor.didDrop();\n  }\n  getInitialClientOffset() {\n    return this.internalMonitor.getInitialClientOffset();\n  }\n  getInitialSourceClientOffset() {\n    return this.internalMonitor.getInitialSourceClientOffset();\n  }\n  getSourceClientOffset() {\n    return this.internalMonitor.getSourceClientOffset();\n  }\n  getClientOffset() {\n    return this.internalMonitor.getClientOffset();\n  }\n  getDifferenceFromInitialOffset() {\n    return this.internalMonitor.getDifferenceFromInitialOffset();\n  }\n  constructor(manager) {\n    this.sourceId = null;\n    this.internalMonitor = manager.getMonitor();\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/internals/DragSourceMonitorImpl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/internals/DropTargetMonitorImpl.js":
/*!**********************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/internals/DropTargetMonitorImpl.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   DropTargetMonitorImpl: () => (/* binding */ DropTargetMonitorImpl)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/invariant */ \"../react-ui/node_modules/@react-dnd/invariant/dist/index.js\");\n\nlet isCallingCanDrop = false;\nclass DropTargetMonitorImpl {\n  receiveHandlerId(targetId) {\n    this.targetId = targetId;\n  }\n  getHandlerId() {\n    return this.targetId;\n  }\n  subscribeToStateChange(listener, options) {\n    return this.internalMonitor.subscribeToStateChange(listener, options);\n  }\n  canDrop() {\n    // Cut out early if the target id has not been set. This should prevent errors\n    // where the user has an older version of dnd-core like in\n    // https://github.com/react-dnd/react-dnd/issues/1310\n    if (!this.targetId) {\n      return false;\n    }\n    (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor');\n    try {\n      isCallingCanDrop = true;\n      return this.internalMonitor.canDropOnTarget(this.targetId);\n    } finally {\n      isCallingCanDrop = false;\n    }\n  }\n  isOver(options) {\n    if (!this.targetId) {\n      return false;\n    }\n    return this.internalMonitor.isOverTarget(this.targetId, options);\n  }\n  getItemType() {\n    return this.internalMonitor.getItemType();\n  }\n  getItem() {\n    return this.internalMonitor.getItem();\n  }\n  getDropResult() {\n    return this.internalMonitor.getDropResult();\n  }\n  didDrop() {\n    return this.internalMonitor.didDrop();\n  }\n  getInitialClientOffset() {\n    return this.internalMonitor.getInitialClientOffset();\n  }\n  getInitialSourceClientOffset() {\n    return this.internalMonitor.getInitialSourceClientOffset();\n  }\n  getSourceClientOffset() {\n    return this.internalMonitor.getSourceClientOffset();\n  }\n  getClientOffset() {\n    return this.internalMonitor.getClientOffset();\n  }\n  getDifferenceFromInitialOffset() {\n    return this.internalMonitor.getDifferenceFromInitialOffset();\n  }\n  constructor(manager) {\n    this.targetId = null;\n    this.internalMonitor = manager.getMonitor();\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/internals/DropTargetMonitorImpl.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/internals/SourceConnector.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/internals/SourceConnector.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   SourceConnector: () => (/* binding */ SourceConnector)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_shallowequal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/shallowequal */ \"../react-ui/node_modules/@react-dnd/shallowequal/dist/index.js\");\n/* harmony import */ var _isRef_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isRef.js */ \"../react-ui/node_modules/react-dnd/dist/internals/isRef.js\");\n/* harmony import */ var _wrapConnectorHooks_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./wrapConnectorHooks.js */ \"../react-ui/node_modules/react-dnd/dist/internals/wrapConnectorHooks.js\");\n\n\n\nclass SourceConnector {\n  receiveHandlerId(newHandlerId) {\n    if (this.handlerId === newHandlerId) {\n      return;\n    }\n    this.handlerId = newHandlerId;\n    this.reconnect();\n  }\n  get connectTarget() {\n    return this.dragSource;\n  }\n  get dragSourceOptions() {\n    return this.dragSourceOptionsInternal;\n  }\n  set dragSourceOptions(options) {\n    this.dragSourceOptionsInternal = options;\n  }\n  get dragPreviewOptions() {\n    return this.dragPreviewOptionsInternal;\n  }\n  set dragPreviewOptions(options) {\n    this.dragPreviewOptionsInternal = options;\n  }\n  reconnect() {\n    const didChange = this.reconnectDragSource();\n    this.reconnectDragPreview(didChange);\n  }\n  reconnectDragSource() {\n    const dragSource = this.dragSource;\n    // if nothing has changed then don't resubscribe\n    const didChange = this.didHandlerIdChange() || this.didConnectedDragSourceChange() || this.didDragSourceOptionsChange();\n    if (didChange) {\n      this.disconnectDragSource();\n    }\n    if (!this.handlerId) {\n      return didChange;\n    }\n    if (!dragSource) {\n      this.lastConnectedDragSource = dragSource;\n      return didChange;\n    }\n    if (didChange) {\n      this.lastConnectedHandlerId = this.handlerId;\n      this.lastConnectedDragSource = dragSource;\n      this.lastConnectedDragSourceOptions = this.dragSourceOptions;\n      this.dragSourceUnsubscribe = this.backend.connectDragSource(this.handlerId, dragSource, this.dragSourceOptions);\n    }\n    return didChange;\n  }\n  reconnectDragPreview(forceDidChange = false) {\n    const dragPreview = this.dragPreview;\n    // if nothing has changed then don't resubscribe\n    const didChange = forceDidChange || this.didHandlerIdChange() || this.didConnectedDragPreviewChange() || this.didDragPreviewOptionsChange();\n    if (didChange) {\n      this.disconnectDragPreview();\n    }\n    if (!this.handlerId) {\n      return;\n    }\n    if (!dragPreview) {\n      this.lastConnectedDragPreview = dragPreview;\n      return;\n    }\n    if (didChange) {\n      this.lastConnectedHandlerId = this.handlerId;\n      this.lastConnectedDragPreview = dragPreview;\n      this.lastConnectedDragPreviewOptions = this.dragPreviewOptions;\n      this.dragPreviewUnsubscribe = this.backend.connectDragPreview(this.handlerId, dragPreview, this.dragPreviewOptions);\n    }\n  }\n  didHandlerIdChange() {\n    return this.lastConnectedHandlerId !== this.handlerId;\n  }\n  didConnectedDragSourceChange() {\n    return this.lastConnectedDragSource !== this.dragSource;\n  }\n  didConnectedDragPreviewChange() {\n    return this.lastConnectedDragPreview !== this.dragPreview;\n  }\n  didDragSourceOptionsChange() {\n    return !(0,_react_dnd_shallowequal__WEBPACK_IMPORTED_MODULE_0__.shallowEqual)(this.lastConnectedDragSourceOptions, this.dragSourceOptions);\n  }\n  didDragPreviewOptionsChange() {\n    return !(0,_react_dnd_shallowequal__WEBPACK_IMPORTED_MODULE_0__.shallowEqual)(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions);\n  }\n  disconnectDragSource() {\n    if (this.dragSourceUnsubscribe) {\n      this.dragSourceUnsubscribe();\n      this.dragSourceUnsubscribe = undefined;\n    }\n  }\n  disconnectDragPreview() {\n    if (this.dragPreviewUnsubscribe) {\n      this.dragPreviewUnsubscribe();\n      this.dragPreviewUnsubscribe = undefined;\n      this.dragPreviewNode = null;\n      this.dragPreviewRef = null;\n    }\n  }\n  get dragSource() {\n    return this.dragSourceNode || this.dragSourceRef && this.dragSourceRef.current;\n  }\n  get dragPreview() {\n    return this.dragPreviewNode || this.dragPreviewRef && this.dragPreviewRef.current;\n  }\n  clearDragSource() {\n    this.dragSourceNode = null;\n    this.dragSourceRef = null;\n  }\n  clearDragPreview() {\n    this.dragPreviewNode = null;\n    this.dragPreviewRef = null;\n  }\n  constructor(backend) {\n    this.hooks = (0,_wrapConnectorHooks_js__WEBPACK_IMPORTED_MODULE_2__.wrapConnectorHooks)({\n      dragSource: (node, options) => {\n        this.clearDragSource();\n        this.dragSourceOptions = options || null;\n        if ((0,_isRef_js__WEBPACK_IMPORTED_MODULE_1__.isRef)(node)) {\n          this.dragSourceRef = node;\n        } else {\n          this.dragSourceNode = node;\n        }\n        this.reconnectDragSource();\n      },\n      dragPreview: (node, options) => {\n        this.clearDragPreview();\n        this.dragPreviewOptions = options || null;\n        if ((0,_isRef_js__WEBPACK_IMPORTED_MODULE_1__.isRef)(node)) {\n          this.dragPreviewRef = node;\n        } else {\n          this.dragPreviewNode = node;\n        }\n        this.reconnectDragPreview();\n      }\n    });\n    this.handlerId = null;\n    // The drop target may either be attached via ref or connect function\n    this.dragSourceRef = null;\n    this.dragSourceOptionsInternal = null;\n    // The drag preview may either be attached via ref or connect function\n    this.dragPreviewRef = null;\n    this.dragPreviewOptionsInternal = null;\n    this.lastConnectedHandlerId = null;\n    this.lastConnectedDragSource = null;\n    this.lastConnectedDragSourceOptions = null;\n    this.lastConnectedDragPreview = null;\n    this.lastConnectedDragPreviewOptions = null;\n    this.backend = backend;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/internals/SourceConnector.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/internals/TargetConnector.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/internals/TargetConnector.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   TargetConnector: () => (/* binding */ TargetConnector)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_shallowequal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/shallowequal */ \"../react-ui/node_modules/@react-dnd/shallowequal/dist/index.js\");\n/* harmony import */ var _isRef_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isRef.js */ \"../react-ui/node_modules/react-dnd/dist/internals/isRef.js\");\n/* harmony import */ var _wrapConnectorHooks_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./wrapConnectorHooks.js */ \"../react-ui/node_modules/react-dnd/dist/internals/wrapConnectorHooks.js\");\n\n\n\nclass TargetConnector {\n  get connectTarget() {\n    return this.dropTarget;\n  }\n  reconnect() {\n    // if nothing has changed then don't resubscribe\n    const didChange = this.didHandlerIdChange() || this.didDropTargetChange() || this.didOptionsChange();\n    if (didChange) {\n      this.disconnectDropTarget();\n    }\n    const dropTarget = this.dropTarget;\n    if (!this.handlerId) {\n      return;\n    }\n    if (!dropTarget) {\n      this.lastConnectedDropTarget = dropTarget;\n      return;\n    }\n    if (didChange) {\n      this.lastConnectedHandlerId = this.handlerId;\n      this.lastConnectedDropTarget = dropTarget;\n      this.lastConnectedDropTargetOptions = this.dropTargetOptions;\n      this.unsubscribeDropTarget = this.backend.connectDropTarget(this.handlerId, dropTarget, this.dropTargetOptions);\n    }\n  }\n  receiveHandlerId(newHandlerId) {\n    if (newHandlerId === this.handlerId) {\n      return;\n    }\n    this.handlerId = newHandlerId;\n    this.reconnect();\n  }\n  get dropTargetOptions() {\n    return this.dropTargetOptionsInternal;\n  }\n  set dropTargetOptions(options) {\n    this.dropTargetOptionsInternal = options;\n  }\n  didHandlerIdChange() {\n    return this.lastConnectedHandlerId !== this.handlerId;\n  }\n  didDropTargetChange() {\n    return this.lastConnectedDropTarget !== this.dropTarget;\n  }\n  didOptionsChange() {\n    return !(0,_react_dnd_shallowequal__WEBPACK_IMPORTED_MODULE_0__.shallowEqual)(this.lastConnectedDropTargetOptions, this.dropTargetOptions);\n  }\n  disconnectDropTarget() {\n    if (this.unsubscribeDropTarget) {\n      this.unsubscribeDropTarget();\n      this.unsubscribeDropTarget = undefined;\n    }\n  }\n  get dropTarget() {\n    return this.dropTargetNode || this.dropTargetRef && this.dropTargetRef.current;\n  }\n  clearDropTarget() {\n    this.dropTargetRef = null;\n    this.dropTargetNode = null;\n  }\n  constructor(backend) {\n    this.hooks = (0,_wrapConnectorHooks_js__WEBPACK_IMPORTED_MODULE_2__.wrapConnectorHooks)({\n      dropTarget: (node, options) => {\n        this.clearDropTarget();\n        this.dropTargetOptions = options;\n        if ((0,_isRef_js__WEBPACK_IMPORTED_MODULE_1__.isRef)(node)) {\n          this.dropTargetRef = node;\n        } else {\n          this.dropTargetNode = node;\n        }\n        this.reconnect();\n      }\n    });\n    this.handlerId = null;\n    // The drop target may either be attached via ref or connect function\n    this.dropTargetRef = null;\n    this.dropTargetOptionsInternal = null;\n    this.lastConnectedHandlerId = null;\n    this.lastConnectedDropTarget = null;\n    this.lastConnectedDropTargetOptions = null;\n    this.backend = backend;\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/internals/TargetConnector.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/internals/isRef.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/internals/isRef.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   isRef: () => (/* binding */ isRef)\n/* harmony export */ });\nfunction isRef(obj) {\n  return (\n    // eslint-disable-next-line no-prototype-builtins\n    obj !== null && typeof obj === 'object' && Object.prototype.hasOwnProperty.call(obj, 'current')\n  );\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/internals/isRef.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/internals/registration.js":
/*!*************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/internals/registration.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   registerSource: () => (/* binding */ registerSource),\n/* harmony export */   registerTarget: () => (/* binding */ registerTarget)\n/* harmony export */ });\nfunction registerTarget(type, target, manager) {\n  const registry = manager.getRegistry();\n  const targetId = registry.addTarget(type, target);\n  return [targetId, () => registry.removeTarget(targetId)];\n}\nfunction registerSource(type, source, manager) {\n  const registry = manager.getRegistry();\n  const sourceId = registry.addSource(type, source);\n  return [sourceId, () => registry.removeSource(sourceId)];\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/internals/registration.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dnd/dist/internals/wrapConnectorHooks.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/react-dnd/dist/internals/wrapConnectorHooks.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   wrapConnectorHooks: () => (/* binding */ wrapConnectorHooks)\n/* harmony export */ });\n/* harmony import */ var _react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @react-dnd/invariant */ \"../react-ui/node_modules/@react-dnd/invariant/dist/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n\n\nfunction throwIfCompositeComponentElement(element) {\n  // Custom components can no longer be wrapped directly in React DnD 2.0\n  // so that we don't need to depend on findDOMNode() from react-dom.\n  if (typeof element.type === 'string') {\n    return;\n  }\n  const displayName = element.type.displayName || element.type.name || 'the component';\n  throw new Error('Only native element nodes can now be passed to React DnD connectors.' + `You can either wrap ${displayName} into a <div>, or turn it into a ` + 'drag source or a drop target itself.');\n}\nfunction wrapHookToRecognizeElement(hook) {\n  return (elementOrNode = null, options = null) => {\n    // When passed a node, call the hook straight away.\n    if (! /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.isValidElement)(elementOrNode)) {\n      const node = elementOrNode;\n      hook(node, options);\n      // return the node so it can be chained (e.g. when within callback refs\n      // <div ref={node => connectDragSource(connectDropTarget(node))}/>\n      return node;\n    }\n    // If passed a ReactElement, clone it and attach this function as a ref.\n    // This helps us achieve a neat API where user doesn't even know that refs\n    // are being used under the hood.\n    const element = elementOrNode;\n    throwIfCompositeComponentElement(element);\n    // When no options are passed, use the hook directly\n    const ref = options ? node => hook(node, options) : hook;\n    return cloneWithRef(element, ref);\n  };\n}\nfunction wrapConnectorHooks(hooks) {\n  const wrappedHooks = {};\n  Object.keys(hooks).forEach(key => {\n    const hook = hooks[key];\n    // ref objects should be passed straight through without wrapping\n    if (key.endsWith('Ref')) {\n      wrappedHooks[key] = hooks[key];\n    } else {\n      const wrappedHook = wrapHookToRecognizeElement(hook);\n      wrappedHooks[key] = () => wrappedHook;\n    }\n  });\n  return wrappedHooks;\n}\nfunction setRef(ref, node) {\n  if (typeof ref === 'function') {\n    ref(node);\n  } else {\n    ref.current = node;\n  }\n}\nfunction cloneWithRef(element, newRef) {\n  const previousRef = element.ref;\n  (0,_react_dnd_invariant__WEBPACK_IMPORTED_MODULE_0__.invariant)(typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. ' + 'Read more: https://reactjs.org/docs/refs-and-the-dom.html#callback-refs');\n  if (!previousRef) {\n    // When there is no ref on the element, use the new ref directly\n    return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.cloneElement)(element, {\n      ref: newRef\n    });\n  } else {\n    return /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.cloneElement)(element, {\n      ref: node => {\n        setRef(previousRef, node);\n        setRef(newRef, node);\n      }\n    });\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dnd/dist/internals/wrapConnectorHooks.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dom/cjs/react-dom.development.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/react-dom/cjs/react-dom.development.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{/**\n * @license React\n * react-dom.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */if(true){(function(){'use strict';/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__!=='undefined'&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==='function'){__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());}var React=__webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");var Scheduler=__webpack_require__(/*! scheduler */ \"../react-ui/node_modules/scheduler/index.js\");var ReactSharedInternals=React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;var suppressWarning=false;function setSuppressWarning(newSuppressWarning){{suppressWarning=newSuppressWarning;}}// In DEV, calls to console.warn and console.error get replaced\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\nfunction warn(format){{if(!suppressWarning){for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key];}printWarning('warn',format,args);}}}function error(format){{if(!suppressWarning){for(var _len2=arguments.length,args=new Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){args[_key2-1]=arguments[_key2];}printWarning('error',format,args);}}}function printWarning(level,format,args){// When changing this logic, you might want to also\n// update consoleWithStackDev.www.js as well.\n{var ReactDebugCurrentFrame=ReactSharedInternals.ReactDebugCurrentFrame;var stack=ReactDebugCurrentFrame.getStackAddendum();if(stack!==''){format+='%s';args=args.concat([stack]);}// eslint-disable-next-line react-internal/safe-string-coercion\nvar argsWithFormat=args.map(function(item){return String(item);});// Careful: RN currently depends on this prefix\nargsWithFormat.unshift('Warning: '+format);// We intentionally don't use spread (or .apply) directly because it\n// breaks IE9: https://github.com/facebook/react/issues/13610\n// eslint-disable-next-line react-internal/no-production-logging\nFunction.prototype.apply.call(console[level],console,argsWithFormat);}}var FunctionComponent=0;var ClassComponent=1;var IndeterminateComponent=2;// Before we know whether it is function or class\nvar HostRoot=3;// Root of a host tree. Could be nested inside another node.\nvar HostPortal=4;// A subtree. Could be an entry point to a different renderer.\nvar HostComponent=5;var HostText=6;var Fragment=7;var Mode=8;var ContextConsumer=9;var ContextProvider=10;var ForwardRef=11;var Profiler=12;var SuspenseComponent=13;var MemoComponent=14;var SimpleMemoComponent=15;var LazyComponent=16;var IncompleteClassComponent=17;var DehydratedFragment=18;var SuspenseListComponent=19;var ScopeComponent=21;var OffscreenComponent=22;var LegacyHiddenComponent=23;var CacheComponent=24;var TracingMarkerComponent=25;// -----------------------------------------------------------------------------\nvar enableClientRenderFallbackOnTextMismatch=true;// TODO: Need to review this code one more time before landing\n// the react-reconciler package.\nvar enableNewReconciler=false;// Support legacy Primer support on internal FB www\nvar enableLazyContextPropagation=false;// FB-only usage. The new API has different semantics.\nvar enableLegacyHidden=false;// Enables unstable_avoidThisFallback feature in Fiber\nvar enableSuspenseAvoidThisFallback=false;// Enables unstable_avoidThisFallback feature in Fizz\n// React DOM Chopping Block\n//\n// Similar to main Chopping Block but only flags related to React DOM. These are\n// grouped because we will likely batch all of them into a single major release.\n// -----------------------------------------------------------------------------\n// Disable support for comment nodes as React DOM containers. Already disabled\n// in open source, but www codebase still relies on it. Need to remove.\nvar disableCommentsAsDOMContainers=true;// Disable javascript: URL strings in href for XSS protection.\n// and client rendering, mostly to allow JSX attributes to apply to the custom\n// element's object properties instead of only HTML attributes.\n// https://github.com/facebook/react/issues/11347\nvar enableCustomElementPropertySupport=false;// Disables children for <textarea> elements\nvar warnAboutStringRefs=true;// -----------------------------------------------------------------------------\n// Debugging and DevTools\n// -----------------------------------------------------------------------------\n// Adds user timing marks for e.g. state updates, suspense, and work loop stuff,\n// for an experimental timeline tool.\nvar enableSchedulingProfiler=true;// Helps identify side effects in render-phase lifecycle hooks and setState\nvar enableProfilerTimer=true;// Record durations for commit and passive effects phases.\nvar enableProfilerCommitHooks=true;// Phase param passed to onRender callback differentiates between an \"update\" and a \"cascading-update\".\nvar allNativeEvents=new Set();/**\n * Mapping from registration name to event name\n */var registrationNameDependencies={};/**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in true.\n * @type {Object}\n */var possibleRegistrationNames={};// Trust the developer to only use possibleRegistrationNames in true\nfunction registerTwoPhaseEvent(registrationName,dependencies){registerDirectEvent(registrationName,dependencies);registerDirectEvent(registrationName+'Capture',dependencies);}function registerDirectEvent(registrationName,dependencies){{if(registrationNameDependencies[registrationName]){error('EventRegistry: More than one plugin attempted to publish the same '+'registration name, `%s`.',registrationName);}}registrationNameDependencies[registrationName]=dependencies;{var lowerCasedName=registrationName.toLowerCase();possibleRegistrationNames[lowerCasedName]=registrationName;if(registrationName==='onDoubleClick'){possibleRegistrationNames.ondblclick=registrationName;}}for(var i=0;i<dependencies.length;i++){allNativeEvents.add(dependencies[i]);}}var canUseDOM=!!(typeof window!=='undefined'&&typeof window.document!=='undefined'&&typeof window.document.createElement!=='undefined');var hasOwnProperty=Object.prototype.hasOwnProperty;/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value){{// toStringTag is needed for namespaced types like Temporal.Instant\nvar hasToStringTag=typeof Symbol==='function'&&Symbol.toStringTag;var type=hasToStringTag&&value[Symbol.toStringTag]||value.constructor.name||'Object';return type;}}// $FlowFixMe only called in DEV, so void return is not possible.\nfunction willCoercionThrow(value){{try{testStringCoercion(value);return false;}catch(e){return true;}}}function testStringCoercion(value){// If you ended up here by following an exception call stack, here's what's\n// happened: you supplied an object or symbol value to React (as a prop, key,\n// DOM attribute, CSS property, string ref, etc.) and when React tried to\n// coerce it to a string using `'' + value`, an exception was thrown.\n//\n// The most common types that will cause this exception are `Symbol` instances\n// and Temporal objects like `Temporal.Instant`. But any object that has a\n// `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n// exception. (Library authors do this to prevent users from using built-in\n// numeric operators like `+` or comparison operators like `>=` because custom\n// methods are needed to perform accurate arithmetic or comparison.)\n//\n// To fix the problem, coerce this object or symbol value to a string before\n// passing it to React. The most reliable way is usually `String(value)`.\n//\n// To find which value is throwing, check the browser or debugger console.\n// Before this exception was thrown, there should be `console.error` output\n// that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n// problem and how that type was used: key, atrribute, input value prop, etc.\n// In most cases, this console output also shows the component and its\n// ancestor components where the exception happened.\n//\n// eslint-disable-next-line react-internal/safe-string-coercion\nreturn''+value;}function checkAttributeStringCoercion(value,attributeName){{if(willCoercionThrow(value)){error('The provided `%s` attribute is an unsupported type %s.'+' This value must be coerced to a string before before using it here.',attributeName,typeName(value));return testStringCoercion(value);// throw (to help callers find troubleshooting comments)\n}}}function checkKeyStringCoercion(value){{if(willCoercionThrow(value)){error('The provided key is an unsupported type %s.'+' This value must be coerced to a string before before using it here.',typeName(value));return testStringCoercion(value);// throw (to help callers find troubleshooting comments)\n}}}function checkPropStringCoercion(value,propName){{if(willCoercionThrow(value)){error('The provided `%s` prop is an unsupported type %s.'+' This value must be coerced to a string before before using it here.',propName,typeName(value));return testStringCoercion(value);// throw (to help callers find troubleshooting comments)\n}}}function checkCSSPropertyStringCoercion(value,propName){{if(willCoercionThrow(value)){error('The provided `%s` CSS property is an unsupported type %s.'+' This value must be coerced to a string before before using it here.',propName,typeName(value));return testStringCoercion(value);// throw (to help callers find troubleshooting comments)\n}}}function checkHtmlStringCoercion(value){{if(willCoercionThrow(value)){error('The provided HTML markup uses a value of unsupported type %s.'+' This value must be coerced to a string before before using it here.',typeName(value));return testStringCoercion(value);// throw (to help callers find troubleshooting comments)\n}}}function checkFormFieldValueStringCoercion(value){{if(willCoercionThrow(value)){error('Form field values (value, checked, defaultValue, or defaultChecked props)'+' must be strings, not %s.'+' This value must be coerced to a string before before using it here.',typeName(value));return testStringCoercion(value);// throw (to help callers find troubleshooting comments)\n}}}// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED=0;// A simple string attribute.\n// Attributes that aren't in the filter are presumed to have this type.\nvar STRING=1;// A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\nvar BOOLEANISH_STRING=2;// A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\nvar BOOLEAN=3;// An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\nvar OVERLOADED_BOOLEAN=4;// An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\nvar NUMERIC=5;// An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\nvar POSITIVE_NUMERIC=6;/* eslint-disable max-len */var ATTRIBUTE_NAME_START_CHAR=\":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";/* eslint-enable max-len */var ATTRIBUTE_NAME_CHAR=ATTRIBUTE_NAME_START_CHAR+\"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";var VALID_ATTRIBUTE_NAME_REGEX=new RegExp('^['+ATTRIBUTE_NAME_START_CHAR+']['+ATTRIBUTE_NAME_CHAR+']*$');var illegalAttributeNameCache={};var validatedAttributeNameCache={};function isAttributeNameSafe(attributeName){if(hasOwnProperty.call(validatedAttributeNameCache,attributeName)){return true;}if(hasOwnProperty.call(illegalAttributeNameCache,attributeName)){return false;}if(VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)){validatedAttributeNameCache[attributeName]=true;return true;}illegalAttributeNameCache[attributeName]=true;{error('Invalid attribute name: `%s`',attributeName);}return false;}function shouldIgnoreAttribute(name,propertyInfo,isCustomComponentTag){if(propertyInfo!==null){return propertyInfo.type===RESERVED;}if(isCustomComponentTag){return false;}if(name.length>2&&(name[0]==='o'||name[0]==='O')&&(name[1]==='n'||name[1]==='N')){return true;}return false;}function shouldRemoveAttributeWithWarning(name,value,propertyInfo,isCustomComponentTag){if(propertyInfo!==null&&propertyInfo.type===RESERVED){return false;}switch(typeof value){case'function':// $FlowIssue symbol is perfectly valid here\ncase'symbol':// eslint-disable-line\nreturn true;case'boolean':{if(isCustomComponentTag){return false;}if(propertyInfo!==null){return!propertyInfo.acceptsBooleans;}else{var prefix=name.toLowerCase().slice(0,5);return prefix!=='data-'&&prefix!=='aria-';}}default:return false;}}function shouldRemoveAttribute(name,value,propertyInfo,isCustomComponentTag){if(value===null||typeof value==='undefined'){return true;}if(shouldRemoveAttributeWithWarning(name,value,propertyInfo,isCustomComponentTag)){return true;}if(isCustomComponentTag){return false;}if(propertyInfo!==null){switch(propertyInfo.type){case BOOLEAN:return!value;case OVERLOADED_BOOLEAN:return value===false;case NUMERIC:return isNaN(value);case POSITIVE_NUMERIC:return isNaN(value)||value<1;}}return false;}function getPropertyInfo(name){return properties.hasOwnProperty(name)?properties[name]:null;}function PropertyInfoRecord(name,type,mustUseProperty,attributeName,attributeNamespace,sanitizeURL,removeEmptyString){this.acceptsBooleans=type===BOOLEANISH_STRING||type===BOOLEAN||type===OVERLOADED_BOOLEAN;this.attributeName=attributeName;this.attributeNamespace=attributeNamespace;this.mustUseProperty=mustUseProperty;this.propertyName=name;this.type=type;this.sanitizeURL=sanitizeURL;this.removeEmptyString=removeEmptyString;}// When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\nvar properties={};// These props are reserved by React. They shouldn't be written to the DOM.\nvar reservedProps=['children','dangerouslySetInnerHTML',// TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue','defaultChecked','innerHTML','suppressContentEditableWarning','suppressHydrationWarning','style'];reservedProps.forEach(function(name){properties[name]=new PropertyInfoRecord(name,RESERVED,false,// mustUseProperty\nname,// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n[['acceptCharset','accept-charset'],['className','class'],['htmlFor','for'],['httpEquiv','http-equiv']].forEach(function(_ref){var name=_ref[0],attributeName=_ref[1];properties[name]=new PropertyInfoRecord(name,STRING,false,// mustUseProperty\nattributeName,// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n['contentEditable','draggable','spellCheck','value'].forEach(function(name){properties[name]=new PropertyInfoRecord(name,BOOLEANISH_STRING,false,// mustUseProperty\nname.toLowerCase(),// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n['autoReverse','externalResourcesRequired','focusable','preserveAlpha'].forEach(function(name){properties[name]=new PropertyInfoRecord(name,BOOLEANISH_STRING,false,// mustUseProperty\nname,// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These are HTML boolean attributes.\n['allowFullScreen','async',// Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus','autoPlay','controls','default','defer','disabled','disablePictureInPicture','disableRemotePlayback','formNoValidate','hidden','loop','noModule','noValidate','open','playsInline','readOnly','required','reversed','scoped','seamless',// Microdata\n'itemScope'].forEach(function(name){properties[name]=new PropertyInfoRecord(name,BOOLEAN,false,// mustUseProperty\nname.toLowerCase(),// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n['checked',// Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple','muted','selected'// NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function(name){properties[name]=new PropertyInfoRecord(name,BOOLEAN,true,// mustUseProperty\nname,// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n['capture','download'// NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function(name){properties[name]=new PropertyInfoRecord(name,OVERLOADED_BOOLEAN,false,// mustUseProperty\nname,// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These are HTML attributes that must be positive numbers.\n['cols','rows','size','span'// NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function(name){properties[name]=new PropertyInfoRecord(name,POSITIVE_NUMERIC,false,// mustUseProperty\nname,// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These are HTML attributes that must be numbers.\n['rowSpan','start'].forEach(function(name){properties[name]=new PropertyInfoRecord(name,NUMERIC,false,// mustUseProperty\nname.toLowerCase(),// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});var CAMELIZE=/[\\-\\:]([a-z])/g;var capitalize=function(token){return token[1].toUpperCase();};// This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML attribute filter.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n['accent-height','alignment-baseline','arabic-form','baseline-shift','cap-height','clip-path','clip-rule','color-interpolation','color-interpolation-filters','color-profile','color-rendering','dominant-baseline','enable-background','fill-opacity','fill-rule','flood-color','flood-opacity','font-family','font-size','font-size-adjust','font-stretch','font-style','font-variant','font-weight','glyph-name','glyph-orientation-horizontal','glyph-orientation-vertical','horiz-adv-x','horiz-origin-x','image-rendering','letter-spacing','lighting-color','marker-end','marker-mid','marker-start','overline-position','overline-thickness','paint-order','panose-1','pointer-events','rendering-intent','shape-rendering','stop-color','stop-opacity','strikethrough-position','strikethrough-thickness','stroke-dasharray','stroke-dashoffset','stroke-linecap','stroke-linejoin','stroke-miterlimit','stroke-opacity','stroke-width','text-anchor','text-decoration','text-rendering','underline-position','underline-thickness','unicode-bidi','unicode-range','units-per-em','v-alphabetic','v-hanging','v-ideographic','v-mathematical','vector-effect','vert-adv-y','vert-origin-x','vert-origin-y','word-spacing','writing-mode','xmlns:xlink','x-height'// NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function(attributeName){var name=attributeName.replace(CAMELIZE,capitalize);properties[name]=new PropertyInfoRecord(name,STRING,false,// mustUseProperty\nattributeName,null,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// String SVG attributes with the xlink namespace.\n['xlink:actuate','xlink:arcrole','xlink:role','xlink:show','xlink:title','xlink:type'// NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function(attributeName){var name=attributeName.replace(CAMELIZE,capitalize);properties[name]=new PropertyInfoRecord(name,STRING,false,// mustUseProperty\nattributeName,'http://www.w3.org/1999/xlink',false,// sanitizeURL\nfalse);});// String SVG attributes with the xml namespace.\n['xml:base','xml:lang','xml:space'// NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function(attributeName){var name=attributeName.replace(CAMELIZE,capitalize);properties[name]=new PropertyInfoRecord(name,STRING,false,// mustUseProperty\nattributeName,'http://www.w3.org/XML/1998/namespace',false,// sanitizeURL\nfalse);});// These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n['tabIndex','crossOrigin'].forEach(function(attributeName){properties[attributeName]=new PropertyInfoRecord(attributeName,STRING,false,// mustUseProperty\nattributeName.toLowerCase(),// attributeName\nnull,// attributeNamespace\nfalse,// sanitizeURL\nfalse);});// These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\nvar xlinkHref='xlinkHref';properties[xlinkHref]=new PropertyInfoRecord('xlinkHref',STRING,false,// mustUseProperty\n'xlink:href','http://www.w3.org/1999/xlink',true,// sanitizeURL\nfalse);['src','href','action','formAction'].forEach(function(attributeName){properties[attributeName]=new PropertyInfoRecord(attributeName,STRING,false,// mustUseProperty\nattributeName.toLowerCase(),// attributeName\nnull,// attributeNamespace\ntrue,// sanitizeURL\ntrue);});// and any newline or tab are filtered out as if they're not part of the URL.\n// https://url.spec.whatwg.org/#url-parsing\n// Tab or newline are defined as \\r\\n\\t:\n// https://infra.spec.whatwg.org/#ascii-tab-or-newline\n// A C0 control is a code point in the range \\u0000 NULL to \\u001F\n// INFORMATION SEPARATOR ONE, inclusive:\n// https://infra.spec.whatwg.org/#c0-control-or-space\n/* eslint-disable max-len */var isJavaScriptProtocol=/^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*\\:/i;var didWarn=false;function sanitizeURL(url){{if(!didWarn&&isJavaScriptProtocol.test(url)){didWarn=true;error('A future version of React will block javascript: URLs as a security precaution. '+'Use event handlers instead if you can. If you need to generate unsafe HTML try '+'using dangerouslySetInnerHTML instead. React was passed %s.',JSON.stringify(url));}}}/**\n * Get the value for a property on a node. Only used in DEV for SSR validation.\n * The \"expected\" argument is used as a hint of what the expected value is.\n * Some properties have multiple equivalent values.\n */function getValueForProperty(node,name,expected,propertyInfo){{if(propertyInfo.mustUseProperty){var propertyName=propertyInfo.propertyName;return node[propertyName];}else{// This check protects multiple uses of `expected`, which is why the\n// react-internal/safe-string-coercion rule is disabled in several spots\n// below.\n{checkAttributeStringCoercion(expected,name);}if(propertyInfo.sanitizeURL){// If we haven't fully disabled javascript: URLs, and if\n// the hydration is successful of a javascript: URL, we\n// still want to warn on the client.\n// eslint-disable-next-line react-internal/safe-string-coercion\nsanitizeURL(''+expected);}var attributeName=propertyInfo.attributeName;var stringValue=null;if(propertyInfo.type===OVERLOADED_BOOLEAN){if(node.hasAttribute(attributeName)){var value=node.getAttribute(attributeName);if(value===''){return true;}if(shouldRemoveAttribute(name,expected,propertyInfo,false)){return value;}// eslint-disable-next-line react-internal/safe-string-coercion\nif(value===''+expected){return expected;}return value;}}else if(node.hasAttribute(attributeName)){if(shouldRemoveAttribute(name,expected,propertyInfo,false)){// We had an attribute but shouldn't have had one, so read it\n// for the error message.\nreturn node.getAttribute(attributeName);}if(propertyInfo.type===BOOLEAN){// If this was a boolean, it doesn't matter what the value is\n// the fact that we have it is the same as the expected.\nreturn expected;}// Even if this property uses a namespace we use getAttribute\n// because we assume its namespaced name is the same as our config.\n// To use getAttributeNS we need the local name which we don't have\n// in our config atm.\nstringValue=node.getAttribute(attributeName);}if(shouldRemoveAttribute(name,expected,propertyInfo,false)){return stringValue===null?expected:stringValue;// eslint-disable-next-line react-internal/safe-string-coercion\n}else if(stringValue===''+expected){return expected;}else{return stringValue;}}}}/**\n * Get the value for a attribute on a node. Only used in DEV for SSR validation.\n * The third argument is used as a hint of what the expected value is. Some\n * attributes have multiple equivalent values.\n */function getValueForAttribute(node,name,expected,isCustomComponentTag){{if(!isAttributeNameSafe(name)){return;}if(!node.hasAttribute(name)){return expected===undefined?undefined:null;}var value=node.getAttribute(name);{checkAttributeStringCoercion(expected,name);}if(value===''+expected){return expected;}return value;}}/**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */function setValueForProperty(node,name,value,isCustomComponentTag){var propertyInfo=getPropertyInfo(name);if(shouldIgnoreAttribute(name,propertyInfo,isCustomComponentTag)){return;}if(shouldRemoveAttribute(name,value,propertyInfo,isCustomComponentTag)){value=null;}if(isCustomComponentTag||propertyInfo===null){if(isAttributeNameSafe(name)){var _attributeName=name;if(value===null){node.removeAttribute(_attributeName);}else{{checkAttributeStringCoercion(value,name);}node.setAttribute(_attributeName,''+value);}}return;}var mustUseProperty=propertyInfo.mustUseProperty;if(mustUseProperty){var propertyName=propertyInfo.propertyName;if(value===null){var type=propertyInfo.type;node[propertyName]=type===BOOLEAN?false:'';}else{// Contrary to `setAttribute`, object properties are properly\n// `toString`ed by IE8/9.\nnode[propertyName]=value;}return;}// The rest are treated as attributes with special cases.\nvar attributeName=propertyInfo.attributeName,attributeNamespace=propertyInfo.attributeNamespace;if(value===null){node.removeAttribute(attributeName);}else{var _type=propertyInfo.type;var attributeValue;if(_type===BOOLEAN||_type===OVERLOADED_BOOLEAN&&value===true){// If attribute type is boolean, we know for sure it won't be an execution sink\n// and we won't require Trusted Type here.\nattributeValue='';}else{// `setAttribute` with objects becomes only `[object]` in IE8/9,\n// ('' + value) makes it output the correct toString()-value.\n{{checkAttributeStringCoercion(value,attributeName);}attributeValue=''+value;}if(propertyInfo.sanitizeURL){sanitizeURL(attributeValue.toString());}}if(attributeNamespace){node.setAttributeNS(attributeNamespace,attributeName,attributeValue);}else{node.setAttribute(attributeName,attributeValue);}}}// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE=Symbol.for('react.element');var REACT_PORTAL_TYPE=Symbol.for('react.portal');var REACT_FRAGMENT_TYPE=Symbol.for('react.fragment');var REACT_STRICT_MODE_TYPE=Symbol.for('react.strict_mode');var REACT_PROFILER_TYPE=Symbol.for('react.profiler');var REACT_PROVIDER_TYPE=Symbol.for('react.provider');var REACT_CONTEXT_TYPE=Symbol.for('react.context');var REACT_FORWARD_REF_TYPE=Symbol.for('react.forward_ref');var REACT_SUSPENSE_TYPE=Symbol.for('react.suspense');var REACT_SUSPENSE_LIST_TYPE=Symbol.for('react.suspense_list');var REACT_MEMO_TYPE=Symbol.for('react.memo');var REACT_LAZY_TYPE=Symbol.for('react.lazy');var REACT_SCOPE_TYPE=Symbol.for('react.scope');var REACT_DEBUG_TRACING_MODE_TYPE=Symbol.for('react.debug_trace_mode');var REACT_OFFSCREEN_TYPE=Symbol.for('react.offscreen');var REACT_LEGACY_HIDDEN_TYPE=Symbol.for('react.legacy_hidden');var REACT_CACHE_TYPE=Symbol.for('react.cache');var REACT_TRACING_MARKER_TYPE=Symbol.for('react.tracing_marker');var MAYBE_ITERATOR_SYMBOL=Symbol.iterator;var FAUX_ITERATOR_SYMBOL='@@iterator';function getIteratorFn(maybeIterable){if(maybeIterable===null||typeof maybeIterable!=='object'){return null;}var maybeIterator=MAYBE_ITERATOR_SYMBOL&&maybeIterable[MAYBE_ITERATOR_SYMBOL]||maybeIterable[FAUX_ITERATOR_SYMBOL];if(typeof maybeIterator==='function'){return maybeIterator;}return null;}var assign=Object.assign;// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth=0;var prevLog;var prevInfo;var prevWarn;var prevError;var prevGroup;var prevGroupCollapsed;var prevGroupEnd;function disabledLog(){}disabledLog.__reactDisabledLog=true;function disableLogs(){{if(disabledDepth===0){/* eslint-disable react-internal/no-production-logging */prevLog=console.log;prevInfo=console.info;prevWarn=console.warn;prevError=console.error;prevGroup=console.group;prevGroupCollapsed=console.groupCollapsed;prevGroupEnd=console.groupEnd;// https://github.com/facebook/react/issues/19099\nvar props={configurable:true,enumerable:true,value:disabledLog,writable:true};// $FlowFixMe Flow thinks console is immutable.\nObject.defineProperties(console,{info:props,log:props,warn:props,error:props,group:props,groupCollapsed:props,groupEnd:props});/* eslint-enable react-internal/no-production-logging */}disabledDepth++;}}function reenableLogs(){{disabledDepth--;if(disabledDepth===0){/* eslint-disable react-internal/no-production-logging */var props={configurable:true,enumerable:true,writable:true};// $FlowFixMe Flow thinks console is immutable.\nObject.defineProperties(console,{log:assign({},props,{value:prevLog}),info:assign({},props,{value:prevInfo}),warn:assign({},props,{value:prevWarn}),error:assign({},props,{value:prevError}),group:assign({},props,{value:prevGroup}),groupCollapsed:assign({},props,{value:prevGroupCollapsed}),groupEnd:assign({},props,{value:prevGroupEnd})});/* eslint-enable react-internal/no-production-logging */}if(disabledDepth<0){error('disabledDepth fell below zero. '+'This is a bug in React. Please file an issue.');}}}var ReactCurrentDispatcher=ReactSharedInternals.ReactCurrentDispatcher;var prefix;function describeBuiltInComponentFrame(name,source,ownerFn){{if(prefix===undefined){// Extract the VM specific prefix used by each line.\ntry{throw Error();}catch(x){var match=x.stack.trim().match(/\\n( *(at )?)/);prefix=match&&match[1]||'';}}// We use the prefix to ensure our stacks line up with native stack frames.\nreturn'\\n'+prefix+name;}}var reentry=false;var componentFrameCache;{var PossiblyWeakMap=typeof WeakMap==='function'?WeakMap:Map;componentFrameCache=new PossiblyWeakMap();}function describeNativeComponentFrame(fn,construct){// If something asked for a stack inside a fake render, it should get ignored.\nif(!fn||reentry){return'';}{var frame=componentFrameCache.get(fn);if(frame!==undefined){return frame;}}var control;reentry=true;var previousPrepareStackTrace=Error.prepareStackTrace;// $FlowFixMe It does accept undefined.\nError.prepareStackTrace=undefined;var previousDispatcher;{previousDispatcher=ReactCurrentDispatcher.current;// Set the dispatcher in DEV because this might be call in the render function\n// for warnings.\nReactCurrentDispatcher.current=null;disableLogs();}try{// This should throw.\nif(construct){// Something should be setting the props in the constructor.\nvar Fake=function(){throw Error();};// $FlowFixMe\nObject.defineProperty(Fake.prototype,'props',{set:function(){// We use a throwing setter instead of frozen or non-writable props\n// because that won't throw in a non-strict mode function.\nthrow Error();}});if(typeof Reflect==='object'&&Reflect.construct){// We construct a different control for this case to include any extra\n// frames added by the construct call.\ntry{Reflect.construct(Fake,[]);}catch(x){control=x;}Reflect.construct(fn,[],Fake);}else{try{Fake.call();}catch(x){control=x;}fn.call(Fake.prototype);}}else{try{throw Error();}catch(x){control=x;}fn();}}catch(sample){// This is inlined manually because closure doesn't do it for us.\nif(sample&&control&&typeof sample.stack==='string'){// This extracts the first frame from the sample that isn't also in the control.\n// Skipping one frame that we assume is the frame that calls the two.\nvar sampleLines=sample.stack.split('\\n');var controlLines=control.stack.split('\\n');var s=sampleLines.length-1;var c=controlLines.length-1;while(s>=1&&c>=0&&sampleLines[s]!==controlLines[c]){// We expect at least one stack frame to be shared.\n// Typically this will be the root most one. However, stack frames may be\n// cut off due to maximum stack limits. In this case, one maybe cut off\n// earlier than the other. We assume that the sample is longer or the same\n// and there for cut off earlier. So we should find the root most frame in\n// the sample somewhere in the control.\nc--;}for(;s>=1&&c>=0;s--,c--){// Next we find the first one that isn't the same which should be the\n// frame that called our sample function and the control.\nif(sampleLines[s]!==controlLines[c]){// In V8, the first line is describing the message but other VMs don't.\n// If we're about to return the first line, and the control is also on the same\n// line, that's a pretty good indicator that our sample threw at same line as\n// the control. I.e. before we entered the sample frame. So we ignore this result.\n// This can happen if you passed a class to function component, or non-function.\nif(s!==1||c!==1){do{s--;c--;// We may still have similar intermediate frames from the construct call.\n// The next one that isn't the same should be our match though.\nif(c<0||sampleLines[s]!==controlLines[c]){// V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\nvar _frame='\\n'+sampleLines[s].replace(' at new ',' at ');// If our component frame is labeled \"<anonymous>\"\n// but we have a user-provided \"displayName\"\n// splice it in to make the stack more readable.\nif(fn.displayName&&_frame.includes('<anonymous>')){_frame=_frame.replace('<anonymous>',fn.displayName);}{if(typeof fn==='function'){componentFrameCache.set(fn,_frame);}}// Return the line we found.\nreturn _frame;}}while(s>=1&&c>=0);}break;}}}}finally{reentry=false;{ReactCurrentDispatcher.current=previousDispatcher;reenableLogs();}Error.prepareStackTrace=previousPrepareStackTrace;}// Fallback to just using the name if we couldn't make it throw.\nvar name=fn?fn.displayName||fn.name:'';var syntheticFrame=name?describeBuiltInComponentFrame(name):'';{if(typeof fn==='function'){componentFrameCache.set(fn,syntheticFrame);}}return syntheticFrame;}function describeClassComponentFrame(ctor,source,ownerFn){{return describeNativeComponentFrame(ctor,true);}}function describeFunctionComponentFrame(fn,source,ownerFn){{return describeNativeComponentFrame(fn,false);}}function shouldConstruct(Component){var prototype=Component.prototype;return!!(prototype&&prototype.isReactComponent);}function describeUnknownElementTypeFrameInDEV(type,source,ownerFn){if(type==null){return'';}if(typeof type==='function'){{return describeNativeComponentFrame(type,shouldConstruct(type));}}if(typeof type==='string'){return describeBuiltInComponentFrame(type);}switch(type){case REACT_SUSPENSE_TYPE:return describeBuiltInComponentFrame('Suspense');case REACT_SUSPENSE_LIST_TYPE:return describeBuiltInComponentFrame('SuspenseList');}if(typeof type==='object'){switch(type.$$typeof){case REACT_FORWARD_REF_TYPE:return describeFunctionComponentFrame(type.render);case REACT_MEMO_TYPE:// Memo may contain any component type so we recursively resolve it.\nreturn describeUnknownElementTypeFrameInDEV(type.type,source,ownerFn);case REACT_LAZY_TYPE:{var lazyComponent=type;var payload=lazyComponent._payload;var init=lazyComponent._init;try{// Lazy may contain any component type so we recursively resolve it.\nreturn describeUnknownElementTypeFrameInDEV(init(payload),source,ownerFn);}catch(x){}}}}return'';}function describeFiber(fiber){var owner=fiber._debugOwner?fiber._debugOwner.type:null;var source=fiber._debugSource;switch(fiber.tag){case HostComponent:return describeBuiltInComponentFrame(fiber.type);case LazyComponent:return describeBuiltInComponentFrame('Lazy');case SuspenseComponent:return describeBuiltInComponentFrame('Suspense');case SuspenseListComponent:return describeBuiltInComponentFrame('SuspenseList');case FunctionComponent:case IndeterminateComponent:case SimpleMemoComponent:return describeFunctionComponentFrame(fiber.type);case ForwardRef:return describeFunctionComponentFrame(fiber.type.render);case ClassComponent:return describeClassComponentFrame(fiber.type);default:return'';}}function getStackByFiberInDevAndProd(workInProgress){try{var info='';var node=workInProgress;do{info+=describeFiber(node);node=node.return;}while(node);return info;}catch(x){return'\\nError generating stack: '+x.message+'\\n'+x.stack;}}function getWrappedName(outerType,innerType,wrapperName){var displayName=outerType.displayName;if(displayName){return displayName;}var functionName=innerType.displayName||innerType.name||'';return functionName!==''?wrapperName+\"(\"+functionName+\")\":wrapperName;}// Keep in sync with react-reconciler/getComponentNameFromFiber\nfunction getContextName(type){return type.displayName||'Context';}// Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\nfunction getComponentNameFromType(type){if(type==null){// Host root, text node or just invalid type.\nreturn null;}{if(typeof type.tag==='number'){error('Received an unexpected object in getComponentNameFromType(). '+'This is likely a bug in React. Please file an issue.');}}if(typeof type==='function'){return type.displayName||type.name||null;}if(typeof type==='string'){return type;}switch(type){case REACT_FRAGMENT_TYPE:return'Fragment';case REACT_PORTAL_TYPE:return'Portal';case REACT_PROFILER_TYPE:return'Profiler';case REACT_STRICT_MODE_TYPE:return'StrictMode';case REACT_SUSPENSE_TYPE:return'Suspense';case REACT_SUSPENSE_LIST_TYPE:return'SuspenseList';}if(typeof type==='object'){switch(type.$$typeof){case REACT_CONTEXT_TYPE:var context=type;return getContextName(context)+'.Consumer';case REACT_PROVIDER_TYPE:var provider=type;return getContextName(provider._context)+'.Provider';case REACT_FORWARD_REF_TYPE:return getWrappedName(type,type.render,'ForwardRef');case REACT_MEMO_TYPE:var outerName=type.displayName||null;if(outerName!==null){return outerName;}return getComponentNameFromType(type.type)||'Memo';case REACT_LAZY_TYPE:{var lazyComponent=type;var payload=lazyComponent._payload;var init=lazyComponent._init;try{return getComponentNameFromType(init(payload));}catch(x){return null;}}// eslint-disable-next-line no-fallthrough\n}}return null;}function getWrappedName$1(outerType,innerType,wrapperName){var functionName=innerType.displayName||innerType.name||'';return outerType.displayName||(functionName!==''?wrapperName+\"(\"+functionName+\")\":wrapperName);}// Keep in sync with shared/getComponentNameFromType\nfunction getContextName$1(type){return type.displayName||'Context';}function getComponentNameFromFiber(fiber){var tag=fiber.tag,type=fiber.type;switch(tag){case CacheComponent:return'Cache';case ContextConsumer:var context=type;return getContextName$1(context)+'.Consumer';case ContextProvider:var provider=type;return getContextName$1(provider._context)+'.Provider';case DehydratedFragment:return'DehydratedFragment';case ForwardRef:return getWrappedName$1(type,type.render,'ForwardRef');case Fragment:return'Fragment';case HostComponent:// Host component type is the display name (e.g. \"div\", \"View\")\nreturn type;case HostPortal:return'Portal';case HostRoot:return'Root';case HostText:return'Text';case LazyComponent:// Name comes from the type in this case; we don't have a tag.\nreturn getComponentNameFromType(type);case Mode:if(type===REACT_STRICT_MODE_TYPE){// Don't be less specific than shared/getComponentNameFromType\nreturn'StrictMode';}return'Mode';case OffscreenComponent:return'Offscreen';case Profiler:return'Profiler';case ScopeComponent:return'Scope';case SuspenseComponent:return'Suspense';case SuspenseListComponent:return'SuspenseList';case TracingMarkerComponent:return'TracingMarker';// The display name for this tags come from the user-provided type:\ncase ClassComponent:case FunctionComponent:case IncompleteClassComponent:case IndeterminateComponent:case MemoComponent:case SimpleMemoComponent:if(typeof type==='function'){return type.displayName||type.name||null;}if(typeof type==='string'){return type;}break;}return null;}var ReactDebugCurrentFrame=ReactSharedInternals.ReactDebugCurrentFrame;var current=null;var isRendering=false;function getCurrentFiberOwnerNameInDevOrNull(){{if(current===null){return null;}var owner=current._debugOwner;if(owner!==null&&typeof owner!=='undefined'){return getComponentNameFromFiber(owner);}}return null;}function getCurrentFiberStackInDev(){{if(current===null){return'';}// Safe because if current fiber exists, we are reconciling,\n// and it is guaranteed to be the work-in-progress version.\nreturn getStackByFiberInDevAndProd(current);}}function resetCurrentFiber(){{ReactDebugCurrentFrame.getCurrentStack=null;current=null;isRendering=false;}}function setCurrentFiber(fiber){{ReactDebugCurrentFrame.getCurrentStack=fiber===null?null:getCurrentFiberStackInDev;current=fiber;isRendering=false;}}function getCurrentFiber(){{return current;}}function setIsRendering(rendering){{isRendering=rendering;}}// Flow does not allow string concatenation of most non-string types. To work\n// around this limitation, we use an opaque type that can only be obtained by\n// passing the value through getToStringValue first.\nfunction toString(value){// The coercion safety check is performed in getToStringValue().\n// eslint-disable-next-line react-internal/safe-string-coercion\nreturn''+value;}function getToStringValue(value){switch(typeof value){case'boolean':case'number':case'string':case'undefined':return value;case'object':{checkFormFieldValueStringCoercion(value);}return value;default:// function, symbol are assigned as empty strings\nreturn'';}}var hasReadOnlyValue={button:true,checkbox:true,image:true,hidden:true,radio:true,reset:true,submit:true};function checkControlledValueProps(tagName,props){{if(!(hasReadOnlyValue[props.type]||props.onChange||props.onInput||props.readOnly||props.disabled||props.value==null)){error('You provided a `value` prop to a form field without an '+'`onChange` handler. This will render a read-only field. If '+'the field should be mutable use `defaultValue`. Otherwise, '+'set either `onChange` or `readOnly`.');}if(!(props.onChange||props.readOnly||props.disabled||props.checked==null)){error('You provided a `checked` prop to a form field without an '+'`onChange` handler. This will render a read-only field. If '+'the field should be mutable use `defaultChecked`. Otherwise, '+'set either `onChange` or `readOnly`.');}}}function isCheckable(elem){var type=elem.type;var nodeName=elem.nodeName;return nodeName&&nodeName.toLowerCase()==='input'&&(type==='checkbox'||type==='radio');}function getTracker(node){return node._valueTracker;}function detachTracker(node){node._valueTracker=null;}function getValueFromNode(node){var value='';if(!node){return value;}if(isCheckable(node)){value=node.checked?'true':'false';}else{value=node.value;}return value;}function trackValueOnNode(node){var valueField=isCheckable(node)?'checked':'value';var descriptor=Object.getOwnPropertyDescriptor(node.constructor.prototype,valueField);{checkFormFieldValueStringCoercion(node[valueField]);}var currentValue=''+node[valueField];// if someone has already defined a value or Safari, then bail\n// and don't track value will cause over reporting of changes,\n// but it's better then a hard failure\n// (needed for certain tests that spyOn input values and Safari)\nif(node.hasOwnProperty(valueField)||typeof descriptor==='undefined'||typeof descriptor.get!=='function'||typeof descriptor.set!=='function'){return;}var get=descriptor.get,set=descriptor.set;Object.defineProperty(node,valueField,{configurable:true,get:function(){return get.call(this);},set:function(value){{checkFormFieldValueStringCoercion(value);}currentValue=''+value;set.call(this,value);}});// We could've passed this the first time\n// but it triggers a bug in IE11 and Edge 14/15.\n// Calling defineProperty() again should be equivalent.\n// https://github.com/facebook/react/issues/11768\nObject.defineProperty(node,valueField,{enumerable:descriptor.enumerable});var tracker={getValue:function(){return currentValue;},setValue:function(value){{checkFormFieldValueStringCoercion(value);}currentValue=''+value;},stopTracking:function(){detachTracker(node);delete node[valueField];}};return tracker;}function track(node){if(getTracker(node)){return;}// TODO: Once it's just Fiber we can move this to node._wrapperState\nnode._valueTracker=trackValueOnNode(node);}function updateValueIfChanged(node){if(!node){return false;}var tracker=getTracker(node);// if there is no tracker at this point it's unlikely\n// that trying again will succeed\nif(!tracker){return true;}var lastValue=tracker.getValue();var nextValue=getValueFromNode(node);if(nextValue!==lastValue){tracker.setValue(nextValue);return true;}return false;}function getActiveElement(doc){doc=doc||(typeof document!=='undefined'?document:undefined);if(typeof doc==='undefined'){return null;}try{return doc.activeElement||doc.body;}catch(e){return doc.body;}}var didWarnValueDefaultValue=false;var didWarnCheckedDefaultChecked=false;var didWarnControlledToUncontrolled=false;var didWarnUncontrolledToControlled=false;function isControlled(props){var usesChecked=props.type==='checkbox'||props.type==='radio';return usesChecked?props.checked!=null:props.value!=null;}/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */function getHostProps(element,props){var node=element;var checked=props.checked;var hostProps=assign({},props,{defaultChecked:undefined,defaultValue:undefined,value:undefined,checked:checked!=null?checked:node._wrapperState.initialChecked});return hostProps;}function initWrapperState(element,props){{checkControlledValueProps('input',props);if(props.checked!==undefined&&props.defaultChecked!==undefined&&!didWarnCheckedDefaultChecked){error('%s contains an input of type %s with both checked and defaultChecked props. '+'Input elements must be either controlled or uncontrolled '+'(specify either the checked prop, or the defaultChecked prop, but not '+'both). Decide between using a controlled or uncontrolled input '+'element and remove one of these props. More info: '+'https://reactjs.org/link/controlled-components',getCurrentFiberOwnerNameInDevOrNull()||'A component',props.type);didWarnCheckedDefaultChecked=true;}if(props.value!==undefined&&props.defaultValue!==undefined&&!didWarnValueDefaultValue){error('%s contains an input of type %s with both value and defaultValue props. '+'Input elements must be either controlled or uncontrolled '+'(specify either the value prop, or the defaultValue prop, but not '+'both). Decide between using a controlled or uncontrolled input '+'element and remove one of these props. More info: '+'https://reactjs.org/link/controlled-components',getCurrentFiberOwnerNameInDevOrNull()||'A component',props.type);didWarnValueDefaultValue=true;}}var node=element;var defaultValue=props.defaultValue==null?'':props.defaultValue;node._wrapperState={initialChecked:props.checked!=null?props.checked:props.defaultChecked,initialValue:getToStringValue(props.value!=null?props.value:defaultValue),controlled:isControlled(props)};}function updateChecked(element,props){var node=element;var checked=props.checked;if(checked!=null){setValueForProperty(node,'checked',checked,false);}}function updateWrapper(element,props){var node=element;{var controlled=isControlled(props);if(!node._wrapperState.controlled&&controlled&&!didWarnUncontrolledToControlled){error('A component is changing an uncontrolled input to be controlled. '+'This is likely caused by the value changing from undefined to '+'a defined value, which should not happen. '+'Decide between using a controlled or uncontrolled input '+'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');didWarnUncontrolledToControlled=true;}if(node._wrapperState.controlled&&!controlled&&!didWarnControlledToUncontrolled){error('A component is changing a controlled input to be uncontrolled. '+'This is likely caused by the value changing from a defined to '+'undefined, which should not happen. '+'Decide between using a controlled or uncontrolled input '+'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');didWarnControlledToUncontrolled=true;}}updateChecked(element,props);var value=getToStringValue(props.value);var type=props.type;if(value!=null){if(type==='number'){if(value===0&&node.value===''||// We explicitly want to coerce to number here if possible.\n// eslint-disable-next-line\nnode.value!=value){node.value=toString(value);}}else if(node.value!==toString(value)){node.value=toString(value);}}else if(type==='submit'||type==='reset'){// Submit/reset inputs need the attribute removed completely to avoid\n// blank-text buttons.\nnode.removeAttribute('value');return;}{// When syncing the value attribute, the value comes from a cascade of\n// properties:\n//  1. The value React property\n//  2. The defaultValue React property\n//  3. Otherwise there should be no change\nif(props.hasOwnProperty('value')){setDefaultValue(node,props.type,value);}else if(props.hasOwnProperty('defaultValue')){setDefaultValue(node,props.type,getToStringValue(props.defaultValue));}}{// When syncing the checked attribute, it only changes when it needs\n// to be removed, such as transitioning from a checkbox into a text input\nif(props.checked==null&&props.defaultChecked!=null){node.defaultChecked=!!props.defaultChecked;}}}function postMountWrapper(element,props,isHydrating){var node=element;// Do not assign value if it is already set. This prevents user text input\n// from being lost during SSR hydration.\nif(props.hasOwnProperty('value')||props.hasOwnProperty('defaultValue')){var type=props.type;var isButton=type==='submit'||type==='reset';// Avoid setting value attribute on submit/reset inputs as it overrides the\n// default value provided by the browser. See: #12872\nif(isButton&&(props.value===undefined||props.value===null)){return;}var initialValue=toString(node._wrapperState.initialValue);// Do not assign value if it is already set. This prevents user text input\n// from being lost during SSR hydration.\nif(!isHydrating){{// When syncing the value attribute, the value property should use\n// the wrapperState._initialValue property. This uses:\n//\n//   1. The value React property when present\n//   2. The defaultValue React property when present\n//   3. An empty string\nif(initialValue!==node.value){node.value=initialValue;}}}{// Otherwise, the value attribute is synchronized to the property,\n// so we assign defaultValue to the same thing as the value property\n// assignment step above.\nnode.defaultValue=initialValue;}}// Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n// this is needed to work around a chrome bug where setting defaultChecked\n// will sometimes influence the value of checked (even after detachment).\n// Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n// We need to temporarily unset name to avoid disrupting radio button groups.\nvar name=node.name;if(name!==''){node.name='';}{// When syncing the checked attribute, both the checked property and\n// attribute are assigned at the same time using defaultChecked. This uses:\n//\n//   1. The checked React property when present\n//   2. The defaultChecked React property when present\n//   3. Otherwise, false\nnode.defaultChecked=!node.defaultChecked;node.defaultChecked=!!node._wrapperState.initialChecked;}if(name!==''){node.name=name;}}function restoreControlledState(element,props){var node=element;updateWrapper(node,props);updateNamedCousins(node,props);}function updateNamedCousins(rootNode,props){var name=props.name;if(props.type==='radio'&&name!=null){var queryRoot=rootNode;while(queryRoot.parentNode){queryRoot=queryRoot.parentNode;}// If `rootNode.form` was non-null, then we could try `form.elements`,\n// but that sometimes behaves strangely in IE8. We could also try using\n// `form.getElementsByName`, but that will only return direct children\n// and won't include inputs that use the HTML5 `form=` attribute. Since\n// the input might not even be in a form. It might not even be in the\n// document. Let's just use the local `querySelectorAll` to ensure we don't\n// miss anything.\n{checkAttributeStringCoercion(name,'name');}var group=queryRoot.querySelectorAll('input[name='+JSON.stringify(''+name)+'][type=\"radio\"]');for(var i=0;i<group.length;i++){var otherNode=group[i];if(otherNode===rootNode||otherNode.form!==rootNode.form){continue;}// This will throw if radio buttons rendered by different copies of React\n// and the same name are rendered into the same form (same as #1939).\n// That's probably okay; we don't support it just as we don't support\n// mixing React radio buttons with non-React ones.\nvar otherProps=getFiberCurrentPropsFromNode(otherNode);if(!otherProps){throw new Error('ReactDOMInput: Mixing React and non-React radio inputs with the '+'same `name` is not supported.');}// We need update the tracked value on the named cousin since the value\n// was changed but the input saw no event or value set\nupdateValueIfChanged(otherNode);// If this is a controlled radio button group, forcing the input that\n// was previously checked to update will cause it to be come re-checked\n// as appropriate.\nupdateWrapper(otherNode,otherProps);}}}// In Chrome, assigning defaultValue to certain input types triggers input validation.\n// For number inputs, the display value loses trailing decimal points. For email inputs,\n// Chrome raises \"The specified value <x> is not a valid email address\".\n//\n// Here we check to see if the defaultValue has actually changed, avoiding these problems\n// when the user is inputting text\n//\n// https://github.com/facebook/react/issues/7253\nfunction setDefaultValue(node,type,value){if(// Focused number inputs synchronize on blur. See ChangeEventPlugin.js\ntype!=='number'||getActiveElement(node.ownerDocument)!==node){if(value==null){node.defaultValue=toString(node._wrapperState.initialValue);}else if(node.defaultValue!==toString(value)){node.defaultValue=toString(value);}}}var didWarnSelectedSetOnOption=false;var didWarnInvalidChild=false;var didWarnInvalidInnerHTML=false;/**\n * Implements an <option> host component that warns when `selected` is set.\n */function validateProps(element,props){{// If a value is not provided, then the children must be simple.\nif(props.value==null){if(typeof props.children==='object'&&props.children!==null){React.Children.forEach(props.children,function(child){if(child==null){return;}if(typeof child==='string'||typeof child==='number'){return;}if(!didWarnInvalidChild){didWarnInvalidChild=true;error('Cannot infer the option value of complex children. '+'Pass a `value` prop or use a plain string as children to <option>.');}});}else if(props.dangerouslySetInnerHTML!=null){if(!didWarnInvalidInnerHTML){didWarnInvalidInnerHTML=true;error('Pass a `value` prop if you set dangerouslyInnerHTML so React knows '+'which value should be selected.');}}}// TODO: Remove support for `selected` in <option>.\nif(props.selected!=null&&!didWarnSelectedSetOnOption){error('Use the `defaultValue` or `value` props on <select> instead of '+'setting `selected` on <option>.');didWarnSelectedSetOnOption=true;}}}function postMountWrapper$1(element,props){// value=\"\" should make a value attribute (#6219)\nif(props.value!=null){element.setAttribute('value',toString(getToStringValue(props.value)));}}var isArrayImpl=Array.isArray;// eslint-disable-next-line no-redeclare\nfunction isArray(a){return isArrayImpl(a);}var didWarnValueDefaultValue$1;{didWarnValueDefaultValue$1=false;}function getDeclarationErrorAddendum(){var ownerName=getCurrentFiberOwnerNameInDevOrNull();if(ownerName){return'\\n\\nCheck the render method of `'+ownerName+'`.';}return'';}var valuePropNames=['value','defaultValue'];/**\n * Validation function for `value` and `defaultValue`.\n */function checkSelectPropTypes(props){{checkControlledValueProps('select',props);for(var i=0;i<valuePropNames.length;i++){var propName=valuePropNames[i];if(props[propName]==null){continue;}var propNameIsArray=isArray(props[propName]);if(props.multiple&&!propNameIsArray){error('The `%s` prop supplied to <select> must be an array if '+'`multiple` is true.%s',propName,getDeclarationErrorAddendum());}else if(!props.multiple&&propNameIsArray){error('The `%s` prop supplied to <select> must be a scalar '+'value if `multiple` is false.%s',propName,getDeclarationErrorAddendum());}}}}function updateOptions(node,multiple,propValue,setDefaultSelected){var options=node.options;if(multiple){var selectedValues=propValue;var selectedValue={};for(var i=0;i<selectedValues.length;i++){// Prefix to avoid chaos with special keys.\nselectedValue['$'+selectedValues[i]]=true;}for(var _i=0;_i<options.length;_i++){var selected=selectedValue.hasOwnProperty('$'+options[_i].value);if(options[_i].selected!==selected){options[_i].selected=selected;}if(selected&&setDefaultSelected){options[_i].defaultSelected=true;}}}else{// Do not set `select.value` as exact behavior isn't consistent across all\n// browsers for all cases.\nvar _selectedValue=toString(getToStringValue(propValue));var defaultSelected=null;for(var _i2=0;_i2<options.length;_i2++){if(options[_i2].value===_selectedValue){options[_i2].selected=true;if(setDefaultSelected){options[_i2].defaultSelected=true;}return;}if(defaultSelected===null&&!options[_i2].disabled){defaultSelected=options[_i2];}}if(defaultSelected!==null){defaultSelected.selected=true;}}}/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */function getHostProps$1(element,props){return assign({},props,{value:undefined});}function initWrapperState$1(element,props){var node=element;{checkSelectPropTypes(props);}node._wrapperState={wasMultiple:!!props.multiple};{if(props.value!==undefined&&props.defaultValue!==undefined&&!didWarnValueDefaultValue$1){error('Select elements must be either controlled or uncontrolled '+'(specify either the value prop, or the defaultValue prop, but not '+'both). Decide between using a controlled or uncontrolled select '+'element and remove one of these props. More info: '+'https://reactjs.org/link/controlled-components');didWarnValueDefaultValue$1=true;}}}function postMountWrapper$2(element,props){var node=element;node.multiple=!!props.multiple;var value=props.value;if(value!=null){updateOptions(node,!!props.multiple,value,false);}else if(props.defaultValue!=null){updateOptions(node,!!props.multiple,props.defaultValue,true);}}function postUpdateWrapper(element,props){var node=element;var wasMultiple=node._wrapperState.wasMultiple;node._wrapperState.wasMultiple=!!props.multiple;var value=props.value;if(value!=null){updateOptions(node,!!props.multiple,value,false);}else if(wasMultiple!==!!props.multiple){// For simplicity, reapply `defaultValue` if `multiple` is toggled.\nif(props.defaultValue!=null){updateOptions(node,!!props.multiple,props.defaultValue,true);}else{// Revert the select back to its default unselected state.\nupdateOptions(node,!!props.multiple,props.multiple?[]:'',false);}}}function restoreControlledState$1(element,props){var node=element;var value=props.value;if(value!=null){updateOptions(node,!!props.multiple,value,false);}}var didWarnValDefaultVal=false;/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */function getHostProps$2(element,props){var node=element;if(props.dangerouslySetInnerHTML!=null){throw new Error('`dangerouslySetInnerHTML` does not make sense on <textarea>.');}// Always set children to the same thing. In IE9, the selection range will\n// get reset if `textContent` is mutated.  We could add a check in setTextContent\n// to only set the value if/when the value differs from the node value (which would\n// completely solve this IE9 bug), but Sebastian+Sophie seemed to like this\n// solution. The value can be a boolean or object so that's why it's forced\n// to be a string.\nvar hostProps=assign({},props,{value:undefined,defaultValue:undefined,children:toString(node._wrapperState.initialValue)});return hostProps;}function initWrapperState$2(element,props){var node=element;{checkControlledValueProps('textarea',props);if(props.value!==undefined&&props.defaultValue!==undefined&&!didWarnValDefaultVal){error('%s contains a textarea with both value and defaultValue props. '+'Textarea elements must be either controlled or uncontrolled '+'(specify either the value prop, or the defaultValue prop, but not '+'both). Decide between using a controlled or uncontrolled textarea '+'and remove one of these props. More info: '+'https://reactjs.org/link/controlled-components',getCurrentFiberOwnerNameInDevOrNull()||'A component');didWarnValDefaultVal=true;}}var initialValue=props.value;// Only bother fetching default value if we're going to use it\nif(initialValue==null){var children=props.children,defaultValue=props.defaultValue;if(children!=null){{error('Use the `defaultValue` or `value` props instead of setting '+'children on <textarea>.');}{if(defaultValue!=null){throw new Error('If you supply `defaultValue` on a <textarea>, do not pass children.');}if(isArray(children)){if(children.length>1){throw new Error('<textarea> can only have at most one child.');}children=children[0];}defaultValue=children;}}if(defaultValue==null){defaultValue='';}initialValue=defaultValue;}node._wrapperState={initialValue:getToStringValue(initialValue)};}function updateWrapper$1(element,props){var node=element;var value=getToStringValue(props.value);var defaultValue=getToStringValue(props.defaultValue);if(value!=null){// Cast `value` to a string to ensure the value is set correctly. While\n// browsers typically do this as necessary, jsdom doesn't.\nvar newValue=toString(value);// To avoid side effects (such as losing text selection), only set value if changed\nif(newValue!==node.value){node.value=newValue;}if(props.defaultValue==null&&node.defaultValue!==newValue){node.defaultValue=newValue;}}if(defaultValue!=null){node.defaultValue=toString(defaultValue);}}function postMountWrapper$3(element,props){var node=element;// This is in postMount because we need access to the DOM node, which is not\n// available until after the component has mounted.\nvar textContent=node.textContent;// Only set node.value if textContent is equal to the expected\n// initial value. In IE10/IE11 there is a bug where the placeholder attribute\n// will populate textContent as well.\n// https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\nif(textContent===node._wrapperState.initialValue){if(textContent!==''&&textContent!==null){node.value=textContent;}}}function restoreControlledState$2(element,props){// DOM component is still mounted; update\nupdateWrapper$1(element,props);}var HTML_NAMESPACE='http://www.w3.org/1999/xhtml';var MATH_NAMESPACE='http://www.w3.org/1998/Math/MathML';var SVG_NAMESPACE='http://www.w3.org/2000/svg';// Assumes there is no parent namespace.\nfunction getIntrinsicNamespace(type){switch(type){case'svg':return SVG_NAMESPACE;case'math':return MATH_NAMESPACE;default:return HTML_NAMESPACE;}}function getChildNamespace(parentNamespace,type){if(parentNamespace==null||parentNamespace===HTML_NAMESPACE){// No (or default) parent namespace: potential entry point.\nreturn getIntrinsicNamespace(type);}if(parentNamespace===SVG_NAMESPACE&&type==='foreignObject'){// We're leaving SVG.\nreturn HTML_NAMESPACE;}// By default, pass namespace below.\nreturn parentNamespace;}/* globals MSApp *//**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */var createMicrosoftUnsafeLocalFunction=function(func){if(typeof MSApp!=='undefined'&&MSApp.execUnsafeLocalFunction){return function(arg0,arg1,arg2,arg3){MSApp.execUnsafeLocalFunction(function(){return func(arg0,arg1,arg2,arg3);});};}else{return func;}};var reusableSVGContainer;/**\n * Set the innerHTML property of a node\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */var setInnerHTML=createMicrosoftUnsafeLocalFunction(function(node,html){if(node.namespaceURI===SVG_NAMESPACE){if(!('innerHTML'in node)){// IE does not have innerHTML for SVG nodes, so instead we inject the\n// new markup in a temp node and then move the child nodes across into\n// the target node\nreusableSVGContainer=reusableSVGContainer||document.createElement('div');reusableSVGContainer.innerHTML='<svg>'+html.valueOf().toString()+'</svg>';var svgNode=reusableSVGContainer.firstChild;while(node.firstChild){node.removeChild(node.firstChild);}while(svgNode.firstChild){node.appendChild(svgNode.firstChild);}return;}}node.innerHTML=html;});/**\n * HTML nodeType values that represent the type of the node\n */var ELEMENT_NODE=1;var TEXT_NODE=3;var COMMENT_NODE=8;var DOCUMENT_NODE=9;var DOCUMENT_FRAGMENT_NODE=11;/**\n * Set the textContent property of a node. For text updates, it's faster\n * to set the `nodeValue` of the Text node directly instead of using\n * `.textContent` which will remove the existing node and create a new one.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */var setTextContent=function(node,text){if(text){var firstChild=node.firstChild;if(firstChild&&firstChild===node.lastChild&&firstChild.nodeType===TEXT_NODE){firstChild.nodeValue=text;return;}}node.textContent=text;};// List derived from Gecko source code:\n// https://github.com/mozilla/gecko-dev/blob/4e638efc71/layout/style/test/property_database.js\nvar shorthandToLonghand={animation:['animationDelay','animationDirection','animationDuration','animationFillMode','animationIterationCount','animationName','animationPlayState','animationTimingFunction'],background:['backgroundAttachment','backgroundClip','backgroundColor','backgroundImage','backgroundOrigin','backgroundPositionX','backgroundPositionY','backgroundRepeat','backgroundSize'],backgroundPosition:['backgroundPositionX','backgroundPositionY'],border:['borderBottomColor','borderBottomStyle','borderBottomWidth','borderImageOutset','borderImageRepeat','borderImageSlice','borderImageSource','borderImageWidth','borderLeftColor','borderLeftStyle','borderLeftWidth','borderRightColor','borderRightStyle','borderRightWidth','borderTopColor','borderTopStyle','borderTopWidth'],borderBlockEnd:['borderBlockEndColor','borderBlockEndStyle','borderBlockEndWidth'],borderBlockStart:['borderBlockStartColor','borderBlockStartStyle','borderBlockStartWidth'],borderBottom:['borderBottomColor','borderBottomStyle','borderBottomWidth'],borderColor:['borderBottomColor','borderLeftColor','borderRightColor','borderTopColor'],borderImage:['borderImageOutset','borderImageRepeat','borderImageSlice','borderImageSource','borderImageWidth'],borderInlineEnd:['borderInlineEndColor','borderInlineEndStyle','borderInlineEndWidth'],borderInlineStart:['borderInlineStartColor','borderInlineStartStyle','borderInlineStartWidth'],borderLeft:['borderLeftColor','borderLeftStyle','borderLeftWidth'],borderRadius:['borderBottomLeftRadius','borderBottomRightRadius','borderTopLeftRadius','borderTopRightRadius'],borderRight:['borderRightColor','borderRightStyle','borderRightWidth'],borderStyle:['borderBottomStyle','borderLeftStyle','borderRightStyle','borderTopStyle'],borderTop:['borderTopColor','borderTopStyle','borderTopWidth'],borderWidth:['borderBottomWidth','borderLeftWidth','borderRightWidth','borderTopWidth'],columnRule:['columnRuleColor','columnRuleStyle','columnRuleWidth'],columns:['columnCount','columnWidth'],flex:['flexBasis','flexGrow','flexShrink'],flexFlow:['flexDirection','flexWrap'],font:['fontFamily','fontFeatureSettings','fontKerning','fontLanguageOverride','fontSize','fontSizeAdjust','fontStretch','fontStyle','fontVariant','fontVariantAlternates','fontVariantCaps','fontVariantEastAsian','fontVariantLigatures','fontVariantNumeric','fontVariantPosition','fontWeight','lineHeight'],fontVariant:['fontVariantAlternates','fontVariantCaps','fontVariantEastAsian','fontVariantLigatures','fontVariantNumeric','fontVariantPosition'],gap:['columnGap','rowGap'],grid:['gridAutoColumns','gridAutoFlow','gridAutoRows','gridTemplateAreas','gridTemplateColumns','gridTemplateRows'],gridArea:['gridColumnEnd','gridColumnStart','gridRowEnd','gridRowStart'],gridColumn:['gridColumnEnd','gridColumnStart'],gridColumnGap:['columnGap'],gridGap:['columnGap','rowGap'],gridRow:['gridRowEnd','gridRowStart'],gridRowGap:['rowGap'],gridTemplate:['gridTemplateAreas','gridTemplateColumns','gridTemplateRows'],listStyle:['listStyleImage','listStylePosition','listStyleType'],margin:['marginBottom','marginLeft','marginRight','marginTop'],marker:['markerEnd','markerMid','markerStart'],mask:['maskClip','maskComposite','maskImage','maskMode','maskOrigin','maskPositionX','maskPositionY','maskRepeat','maskSize'],maskPosition:['maskPositionX','maskPositionY'],outline:['outlineColor','outlineStyle','outlineWidth'],overflow:['overflowX','overflowY'],padding:['paddingBottom','paddingLeft','paddingRight','paddingTop'],placeContent:['alignContent','justifyContent'],placeItems:['alignItems','justifyItems'],placeSelf:['alignSelf','justifySelf'],textDecoration:['textDecorationColor','textDecorationLine','textDecorationStyle'],textEmphasis:['textEmphasisColor','textEmphasisStyle'],transition:['transitionDelay','transitionDuration','transitionProperty','transitionTimingFunction'],wordWrap:['overflowWrap']};/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */var isUnitlessNumber={animationIterationCount:true,aspectRatio:true,borderImageOutset:true,borderImageSlice:true,borderImageWidth:true,boxFlex:true,boxFlexGroup:true,boxOrdinalGroup:true,columnCount:true,columns:true,flex:true,flexGrow:true,flexPositive:true,flexShrink:true,flexNegative:true,flexOrder:true,gridArea:true,gridRow:true,gridRowEnd:true,gridRowSpan:true,gridRowStart:true,gridColumn:true,gridColumnEnd:true,gridColumnSpan:true,gridColumnStart:true,fontWeight:true,lineClamp:true,lineHeight:true,opacity:true,order:true,orphans:true,tabSize:true,widows:true,zIndex:true,zoom:true,// SVG-related properties\nfillOpacity:true,floodOpacity:true,stopOpacity:true,strokeDasharray:true,strokeDashoffset:true,strokeMiterlimit:true,strokeOpacity:true,strokeWidth:true};/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */function prefixKey(prefix,key){return prefix+key.charAt(0).toUpperCase()+key.substring(1);}/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */var prefixes=['Webkit','ms','Moz','O'];// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function(prop){prefixes.forEach(function(prefix){isUnitlessNumber[prefixKey(prefix,prop)]=isUnitlessNumber[prop];});});/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */function dangerousStyleValue(name,value,isCustomProperty){// Note that we've removed escapeTextForBrowser() calls here since the\n// whole string will be escaped when the attribute is injected into\n// the markup. If you provide unsafe user data here they can inject\n// arbitrary CSS which may be problematic (I couldn't repro this):\n// https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n// http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n// This is not an XSS hole but instead a potential CSS injection issue\n// which has lead to a greater discussion about how we're going to\n// trust URLs moving forward. See #2115901\nvar isEmpty=value==null||typeof value==='boolean'||value==='';if(isEmpty){return'';}if(!isCustomProperty&&typeof value==='number'&&value!==0&&!(isUnitlessNumber.hasOwnProperty(name)&&isUnitlessNumber[name])){return value+'px';// Presumes implicit 'px' suffix for unitless numbers\n}{checkCSSPropertyStringCoercion(value,name);}return(''+value).trim();}var uppercasePattern=/([A-Z])/g;var msPattern=/^ms-/;/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n *   > hyphenateStyleName('backgroundColor')\n *   < \"background-color\"\n *   > hyphenateStyleName('MozTransition')\n *   < \"-moz-transition\"\n *   > hyphenateStyleName('msTransition')\n *   < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */function hyphenateStyleName(name){return name.replace(uppercasePattern,'-$1').toLowerCase().replace(msPattern,'-ms-');}var warnValidStyle=function(){};{// 'msTransform' is correct, but the other prefixes should be capitalized\nvar badVendoredStyleNamePattern=/^(?:webkit|moz|o)[A-Z]/;var msPattern$1=/^-ms-/;var hyphenPattern=/-(.)/g;// style values shouldn't contain a semicolon\nvar badStyleValueWithSemicolonPattern=/;\\s*$/;var warnedStyleNames={};var warnedStyleValues={};var warnedForNaNValue=false;var warnedForInfinityValue=false;var camelize=function(string){return string.replace(hyphenPattern,function(_,character){return character.toUpperCase();});};var warnHyphenatedStyleName=function(name){if(warnedStyleNames.hasOwnProperty(name)&&warnedStyleNames[name]){return;}warnedStyleNames[name]=true;error('Unsupported style property %s. Did you mean %s?',name,// As Andi Smith suggests\n// (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n// is converted to lowercase `ms`.\ncamelize(name.replace(msPattern$1,'ms-')));};var warnBadVendoredStyleName=function(name){if(warnedStyleNames.hasOwnProperty(name)&&warnedStyleNames[name]){return;}warnedStyleNames[name]=true;error('Unsupported vendor-prefixed style property %s. Did you mean %s?',name,name.charAt(0).toUpperCase()+name.slice(1));};var warnStyleValueWithSemicolon=function(name,value){if(warnedStyleValues.hasOwnProperty(value)&&warnedStyleValues[value]){return;}warnedStyleValues[value]=true;error(\"Style property values shouldn't contain a semicolon. \"+'Try \"%s: %s\" instead.',name,value.replace(badStyleValueWithSemicolonPattern,''));};var warnStyleValueIsNaN=function(name,value){if(warnedForNaNValue){return;}warnedForNaNValue=true;error('`NaN` is an invalid value for the `%s` css style property.',name);};var warnStyleValueIsInfinity=function(name,value){if(warnedForInfinityValue){return;}warnedForInfinityValue=true;error('`Infinity` is an invalid value for the `%s` css style property.',name);};warnValidStyle=function(name,value){if(name.indexOf('-')>-1){warnHyphenatedStyleName(name);}else if(badVendoredStyleNamePattern.test(name)){warnBadVendoredStyleName(name);}else if(badStyleValueWithSemicolonPattern.test(value)){warnStyleValueWithSemicolon(name,value);}if(typeof value==='number'){if(isNaN(value)){warnStyleValueIsNaN(name,value);}else if(!isFinite(value)){warnStyleValueIsInfinity(name,value);}}};}var warnValidStyle$1=warnValidStyle;/**\n * Operations for dealing with CSS properties.\n *//**\n * This creates a string that is expected to be equivalent to the style\n * attribute generated by server-side rendering. It by-passes warnings and\n * security checks so it's not safe to use this value for anything other than\n * comparison. It is only used in DEV for SSR validation.\n */function createDangerousStringForStyles(styles){{var serialized='';var delimiter='';for(var styleName in styles){if(!styles.hasOwnProperty(styleName)){continue;}var styleValue=styles[styleName];if(styleValue!=null){var isCustomProperty=styleName.indexOf('--')===0;serialized+=delimiter+(isCustomProperty?styleName:hyphenateStyleName(styleName))+':';serialized+=dangerousStyleValue(styleName,styleValue,isCustomProperty);delimiter=';';}}return serialized||null;}}/**\n * Sets the value for multiple styles on a node.  If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */function setValueForStyles(node,styles){var style=node.style;for(var styleName in styles){if(!styles.hasOwnProperty(styleName)){continue;}var isCustomProperty=styleName.indexOf('--')===0;{if(!isCustomProperty){warnValidStyle$1(styleName,styles[styleName]);}}var styleValue=dangerousStyleValue(styleName,styles[styleName],isCustomProperty);if(styleName==='float'){styleName='cssFloat';}if(isCustomProperty){style.setProperty(styleName,styleValue);}else{style[styleName]=styleValue;}}}function isValueEmpty(value){return value==null||typeof value==='boolean'||value==='';}/**\n * Given {color: 'red', overflow: 'hidden'} returns {\n *   color: 'color',\n *   overflowX: 'overflow',\n *   overflowY: 'overflow',\n * }. This can be read as \"the overflowY property was set by the overflow\n * shorthand\". That is, the values are the property that each was derived from.\n */function expandShorthandMap(styles){var expanded={};for(var key in styles){var longhands=shorthandToLonghand[key]||[key];for(var i=0;i<longhands.length;i++){expanded[longhands[i]]=key;}}return expanded;}/**\n * When mixing shorthand and longhand property names, we warn during updates if\n * we expect an incorrect result to occur. In particular, we warn for:\n *\n * Updating a shorthand property (longhand gets overwritten):\n *   {font: 'foo', fontVariant: 'bar'} -> {font: 'baz', fontVariant: 'bar'}\n *   becomes .style.font = 'baz'\n * Removing a shorthand property (longhand gets lost too):\n *   {font: 'foo', fontVariant: 'bar'} -> {fontVariant: 'bar'}\n *   becomes .style.font = ''\n * Removing a longhand property (should revert to shorthand; doesn't):\n *   {font: 'foo', fontVariant: 'bar'} -> {font: 'foo'}\n *   becomes .style.fontVariant = ''\n */function validateShorthandPropertyCollisionInDev(styleUpdates,nextStyles){{if(!nextStyles){return;}var expandedUpdates=expandShorthandMap(styleUpdates);var expandedStyles=expandShorthandMap(nextStyles);var warnedAbout={};for(var key in expandedUpdates){var originalKey=expandedUpdates[key];var correctOriginalKey=expandedStyles[key];if(correctOriginalKey&&originalKey!==correctOriginalKey){var warningKey=originalKey+','+correctOriginalKey;if(warnedAbout[warningKey]){continue;}warnedAbout[warningKey]=true;error('%s a style property during rerender (%s) when a '+'conflicting property is set (%s) can lead to styling bugs. To '+\"avoid this, don't mix shorthand and non-shorthand properties \"+'for the same value; instead, replace the shorthand with '+'separate values.',isValueEmpty(styleUpdates[originalKey])?'Removing':'Updating',originalKey,correctOriginalKey);}}}}// For HTML, certain tags should omit their close tag. We keep a list for\n// those special-case tags.\nvar omittedCloseTags={area:true,base:true,br:true,col:true,embed:true,hr:true,img:true,input:true,keygen:true,link:true,meta:true,param:true,source:true,track:true,wbr:true// NOTE: menuitem's close tag should be omitted, but that causes problems.\n};// `omittedCloseTags` except that `menuitem` should still have its closing tag.\nvar voidElementTags=assign({menuitem:true},omittedCloseTags);var HTML='__html';function assertValidProps(tag,props){if(!props){return;}// Note the use of `==` which checks for null or undefined.\nif(voidElementTags[tag]){if(props.children!=null||props.dangerouslySetInnerHTML!=null){throw new Error(tag+\" is a void element tag and must neither have `children` nor \"+'use `dangerouslySetInnerHTML`.');}}if(props.dangerouslySetInnerHTML!=null){if(props.children!=null){throw new Error('Can only set one of `children` or `props.dangerouslySetInnerHTML`.');}if(typeof props.dangerouslySetInnerHTML!=='object'||!(HTML in props.dangerouslySetInnerHTML)){throw new Error('`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. '+'Please visit https://reactjs.org/link/dangerously-set-inner-html '+'for more information.');}}{if(!props.suppressContentEditableWarning&&props.contentEditable&&props.children!=null){error('A component is `contentEditable` and contains `children` managed by '+'React. It is now your responsibility to guarantee that none of '+'those nodes are unexpectedly modified or duplicated. This is '+'probably not intentional.');}}if(props.style!=null&&typeof props.style!=='object'){throw new Error('The `style` prop expects a mapping from style properties to values, '+\"not a string. For example, style={{marginRight: spacing + 'em'}} when \"+'using JSX.');}}function isCustomComponent(tagName,props){if(tagName.indexOf('-')===-1){return typeof props.is==='string';}switch(tagName){// These are reserved SVG and MathML elements.\n// We don't mind this list too much because we expect it to never grow.\n// The alternative is to track the namespace in a few places which is convoluted.\n// https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\ncase'annotation-xml':case'color-profile':case'font-face':case'font-face-src':case'font-face-uri':case'font-face-format':case'font-face-name':case'missing-glyph':return false;default:return true;}}// When adding attributes to the HTML or SVG allowed attribute list, be sure to\n// also add them to this module to ensure casing and incorrect name\n// warnings.\nvar possibleStandardNames={// HTML\naccept:'accept',acceptcharset:'acceptCharset','accept-charset':'acceptCharset',accesskey:'accessKey',action:'action',allowfullscreen:'allowFullScreen',alt:'alt',as:'as',async:'async',autocapitalize:'autoCapitalize',autocomplete:'autoComplete',autocorrect:'autoCorrect',autofocus:'autoFocus',autoplay:'autoPlay',autosave:'autoSave',capture:'capture',cellpadding:'cellPadding',cellspacing:'cellSpacing',challenge:'challenge',charset:'charSet',checked:'checked',children:'children',cite:'cite',class:'className',classid:'classID',classname:'className',cols:'cols',colspan:'colSpan',content:'content',contenteditable:'contentEditable',contextmenu:'contextMenu',controls:'controls',controlslist:'controlsList',coords:'coords',crossorigin:'crossOrigin',dangerouslysetinnerhtml:'dangerouslySetInnerHTML',data:'data',datetime:'dateTime',default:'default',defaultchecked:'defaultChecked',defaultvalue:'defaultValue',defer:'defer',dir:'dir',disabled:'disabled',disablepictureinpicture:'disablePictureInPicture',disableremoteplayback:'disableRemotePlayback',download:'download',draggable:'draggable',enctype:'encType',enterkeyhint:'enterKeyHint',for:'htmlFor',form:'form',formmethod:'formMethod',formaction:'formAction',formenctype:'formEncType',formnovalidate:'formNoValidate',formtarget:'formTarget',frameborder:'frameBorder',headers:'headers',height:'height',hidden:'hidden',high:'high',href:'href',hreflang:'hrefLang',htmlfor:'htmlFor',httpequiv:'httpEquiv','http-equiv':'httpEquiv',icon:'icon',id:'id',imagesizes:'imageSizes',imagesrcset:'imageSrcSet',innerhtml:'innerHTML',inputmode:'inputMode',integrity:'integrity',is:'is',itemid:'itemID',itemprop:'itemProp',itemref:'itemRef',itemscope:'itemScope',itemtype:'itemType',keyparams:'keyParams',keytype:'keyType',kind:'kind',label:'label',lang:'lang',list:'list',loop:'loop',low:'low',manifest:'manifest',marginwidth:'marginWidth',marginheight:'marginHeight',max:'max',maxlength:'maxLength',media:'media',mediagroup:'mediaGroup',method:'method',min:'min',minlength:'minLength',multiple:'multiple',muted:'muted',name:'name',nomodule:'noModule',nonce:'nonce',novalidate:'noValidate',open:'open',optimum:'optimum',pattern:'pattern',placeholder:'placeholder',playsinline:'playsInline',poster:'poster',preload:'preload',profile:'profile',radiogroup:'radioGroup',readonly:'readOnly',referrerpolicy:'referrerPolicy',rel:'rel',required:'required',reversed:'reversed',role:'role',rows:'rows',rowspan:'rowSpan',sandbox:'sandbox',scope:'scope',scoped:'scoped',scrolling:'scrolling',seamless:'seamless',selected:'selected',shape:'shape',size:'size',sizes:'sizes',span:'span',spellcheck:'spellCheck',src:'src',srcdoc:'srcDoc',srclang:'srcLang',srcset:'srcSet',start:'start',step:'step',style:'style',summary:'summary',tabindex:'tabIndex',target:'target',title:'title',type:'type',usemap:'useMap',value:'value',width:'width',wmode:'wmode',wrap:'wrap',// SVG\nabout:'about',accentheight:'accentHeight','accent-height':'accentHeight',accumulate:'accumulate',additive:'additive',alignmentbaseline:'alignmentBaseline','alignment-baseline':'alignmentBaseline',allowreorder:'allowReorder',alphabetic:'alphabetic',amplitude:'amplitude',arabicform:'arabicForm','arabic-form':'arabicForm',ascent:'ascent',attributename:'attributeName',attributetype:'attributeType',autoreverse:'autoReverse',azimuth:'azimuth',basefrequency:'baseFrequency',baselineshift:'baselineShift','baseline-shift':'baselineShift',baseprofile:'baseProfile',bbox:'bbox',begin:'begin',bias:'bias',by:'by',calcmode:'calcMode',capheight:'capHeight','cap-height':'capHeight',clip:'clip',clippath:'clipPath','clip-path':'clipPath',clippathunits:'clipPathUnits',cliprule:'clipRule','clip-rule':'clipRule',color:'color',colorinterpolation:'colorInterpolation','color-interpolation':'colorInterpolation',colorinterpolationfilters:'colorInterpolationFilters','color-interpolation-filters':'colorInterpolationFilters',colorprofile:'colorProfile','color-profile':'colorProfile',colorrendering:'colorRendering','color-rendering':'colorRendering',contentscripttype:'contentScriptType',contentstyletype:'contentStyleType',cursor:'cursor',cx:'cx',cy:'cy',d:'d',datatype:'datatype',decelerate:'decelerate',descent:'descent',diffuseconstant:'diffuseConstant',direction:'direction',display:'display',divisor:'divisor',dominantbaseline:'dominantBaseline','dominant-baseline':'dominantBaseline',dur:'dur',dx:'dx',dy:'dy',edgemode:'edgeMode',elevation:'elevation',enablebackground:'enableBackground','enable-background':'enableBackground',end:'end',exponent:'exponent',externalresourcesrequired:'externalResourcesRequired',fill:'fill',fillopacity:'fillOpacity','fill-opacity':'fillOpacity',fillrule:'fillRule','fill-rule':'fillRule',filter:'filter',filterres:'filterRes',filterunits:'filterUnits',floodopacity:'floodOpacity','flood-opacity':'floodOpacity',floodcolor:'floodColor','flood-color':'floodColor',focusable:'focusable',fontfamily:'fontFamily','font-family':'fontFamily',fontsize:'fontSize','font-size':'fontSize',fontsizeadjust:'fontSizeAdjust','font-size-adjust':'fontSizeAdjust',fontstretch:'fontStretch','font-stretch':'fontStretch',fontstyle:'fontStyle','font-style':'fontStyle',fontvariant:'fontVariant','font-variant':'fontVariant',fontweight:'fontWeight','font-weight':'fontWeight',format:'format',from:'from',fx:'fx',fy:'fy',g1:'g1',g2:'g2',glyphname:'glyphName','glyph-name':'glyphName',glyphorientationhorizontal:'glyphOrientationHorizontal','glyph-orientation-horizontal':'glyphOrientationHorizontal',glyphorientationvertical:'glyphOrientationVertical','glyph-orientation-vertical':'glyphOrientationVertical',glyphref:'glyphRef',gradienttransform:'gradientTransform',gradientunits:'gradientUnits',hanging:'hanging',horizadvx:'horizAdvX','horiz-adv-x':'horizAdvX',horizoriginx:'horizOriginX','horiz-origin-x':'horizOriginX',ideographic:'ideographic',imagerendering:'imageRendering','image-rendering':'imageRendering',in2:'in2',in:'in',inlist:'inlist',intercept:'intercept',k1:'k1',k2:'k2',k3:'k3',k4:'k4',k:'k',kernelmatrix:'kernelMatrix',kernelunitlength:'kernelUnitLength',kerning:'kerning',keypoints:'keyPoints',keysplines:'keySplines',keytimes:'keyTimes',lengthadjust:'lengthAdjust',letterspacing:'letterSpacing','letter-spacing':'letterSpacing',lightingcolor:'lightingColor','lighting-color':'lightingColor',limitingconeangle:'limitingConeAngle',local:'local',markerend:'markerEnd','marker-end':'markerEnd',markerheight:'markerHeight',markermid:'markerMid','marker-mid':'markerMid',markerstart:'markerStart','marker-start':'markerStart',markerunits:'markerUnits',markerwidth:'markerWidth',mask:'mask',maskcontentunits:'maskContentUnits',maskunits:'maskUnits',mathematical:'mathematical',mode:'mode',numoctaves:'numOctaves',offset:'offset',opacity:'opacity',operator:'operator',order:'order',orient:'orient',orientation:'orientation',origin:'origin',overflow:'overflow',overlineposition:'overlinePosition','overline-position':'overlinePosition',overlinethickness:'overlineThickness','overline-thickness':'overlineThickness',paintorder:'paintOrder','paint-order':'paintOrder',panose1:'panose1','panose-1':'panose1',pathlength:'pathLength',patterncontentunits:'patternContentUnits',patterntransform:'patternTransform',patternunits:'patternUnits',pointerevents:'pointerEvents','pointer-events':'pointerEvents',points:'points',pointsatx:'pointsAtX',pointsaty:'pointsAtY',pointsatz:'pointsAtZ',prefix:'prefix',preservealpha:'preserveAlpha',preserveaspectratio:'preserveAspectRatio',primitiveunits:'primitiveUnits',property:'property',r:'r',radius:'radius',refx:'refX',refy:'refY',renderingintent:'renderingIntent','rendering-intent':'renderingIntent',repeatcount:'repeatCount',repeatdur:'repeatDur',requiredextensions:'requiredExtensions',requiredfeatures:'requiredFeatures',resource:'resource',restart:'restart',result:'result',results:'results',rotate:'rotate',rx:'rx',ry:'ry',scale:'scale',security:'security',seed:'seed',shaperendering:'shapeRendering','shape-rendering':'shapeRendering',slope:'slope',spacing:'spacing',specularconstant:'specularConstant',specularexponent:'specularExponent',speed:'speed',spreadmethod:'spreadMethod',startoffset:'startOffset',stddeviation:'stdDeviation',stemh:'stemh',stemv:'stemv',stitchtiles:'stitchTiles',stopcolor:'stopColor','stop-color':'stopColor',stopopacity:'stopOpacity','stop-opacity':'stopOpacity',strikethroughposition:'strikethroughPosition','strikethrough-position':'strikethroughPosition',strikethroughthickness:'strikethroughThickness','strikethrough-thickness':'strikethroughThickness',string:'string',stroke:'stroke',strokedasharray:'strokeDasharray','stroke-dasharray':'strokeDasharray',strokedashoffset:'strokeDashoffset','stroke-dashoffset':'strokeDashoffset',strokelinecap:'strokeLinecap','stroke-linecap':'strokeLinecap',strokelinejoin:'strokeLinejoin','stroke-linejoin':'strokeLinejoin',strokemiterlimit:'strokeMiterlimit','stroke-miterlimit':'strokeMiterlimit',strokewidth:'strokeWidth','stroke-width':'strokeWidth',strokeopacity:'strokeOpacity','stroke-opacity':'strokeOpacity',suppresscontenteditablewarning:'suppressContentEditableWarning',suppresshydrationwarning:'suppressHydrationWarning',surfacescale:'surfaceScale',systemlanguage:'systemLanguage',tablevalues:'tableValues',targetx:'targetX',targety:'targetY',textanchor:'textAnchor','text-anchor':'textAnchor',textdecoration:'textDecoration','text-decoration':'textDecoration',textlength:'textLength',textrendering:'textRendering','text-rendering':'textRendering',to:'to',transform:'transform',typeof:'typeof',u1:'u1',u2:'u2',underlineposition:'underlinePosition','underline-position':'underlinePosition',underlinethickness:'underlineThickness','underline-thickness':'underlineThickness',unicode:'unicode',unicodebidi:'unicodeBidi','unicode-bidi':'unicodeBidi',unicoderange:'unicodeRange','unicode-range':'unicodeRange',unitsperem:'unitsPerEm','units-per-em':'unitsPerEm',unselectable:'unselectable',valphabetic:'vAlphabetic','v-alphabetic':'vAlphabetic',values:'values',vectoreffect:'vectorEffect','vector-effect':'vectorEffect',version:'version',vertadvy:'vertAdvY','vert-adv-y':'vertAdvY',vertoriginx:'vertOriginX','vert-origin-x':'vertOriginX',vertoriginy:'vertOriginY','vert-origin-y':'vertOriginY',vhanging:'vHanging','v-hanging':'vHanging',videographic:'vIdeographic','v-ideographic':'vIdeographic',viewbox:'viewBox',viewtarget:'viewTarget',visibility:'visibility',vmathematical:'vMathematical','v-mathematical':'vMathematical',vocab:'vocab',widths:'widths',wordspacing:'wordSpacing','word-spacing':'wordSpacing',writingmode:'writingMode','writing-mode':'writingMode',x1:'x1',x2:'x2',x:'x',xchannelselector:'xChannelSelector',xheight:'xHeight','x-height':'xHeight',xlinkactuate:'xlinkActuate','xlink:actuate':'xlinkActuate',xlinkarcrole:'xlinkArcrole','xlink:arcrole':'xlinkArcrole',xlinkhref:'xlinkHref','xlink:href':'xlinkHref',xlinkrole:'xlinkRole','xlink:role':'xlinkRole',xlinkshow:'xlinkShow','xlink:show':'xlinkShow',xlinktitle:'xlinkTitle','xlink:title':'xlinkTitle',xlinktype:'xlinkType','xlink:type':'xlinkType',xmlbase:'xmlBase','xml:base':'xmlBase',xmllang:'xmlLang','xml:lang':'xmlLang',xmlns:'xmlns','xml:space':'xmlSpace',xmlnsxlink:'xmlnsXlink','xmlns:xlink':'xmlnsXlink',xmlspace:'xmlSpace',y1:'y1',y2:'y2',y:'y',ychannelselector:'yChannelSelector',z:'z',zoomandpan:'zoomAndPan'};var ariaProperties={'aria-current':0,// state\n'aria-description':0,'aria-details':0,'aria-disabled':0,// state\n'aria-hidden':0,// state\n'aria-invalid':0,// state\n'aria-keyshortcuts':0,'aria-label':0,'aria-roledescription':0,// Widget Attributes\n'aria-autocomplete':0,'aria-checked':0,'aria-expanded':0,'aria-haspopup':0,'aria-level':0,'aria-modal':0,'aria-multiline':0,'aria-multiselectable':0,'aria-orientation':0,'aria-placeholder':0,'aria-pressed':0,'aria-readonly':0,'aria-required':0,'aria-selected':0,'aria-sort':0,'aria-valuemax':0,'aria-valuemin':0,'aria-valuenow':0,'aria-valuetext':0,// Live Region Attributes\n'aria-atomic':0,'aria-busy':0,'aria-live':0,'aria-relevant':0,// Drag-and-Drop Attributes\n'aria-dropeffect':0,'aria-grabbed':0,// Relationship Attributes\n'aria-activedescendant':0,'aria-colcount':0,'aria-colindex':0,'aria-colspan':0,'aria-controls':0,'aria-describedby':0,'aria-errormessage':0,'aria-flowto':0,'aria-labelledby':0,'aria-owns':0,'aria-posinset':0,'aria-rowcount':0,'aria-rowindex':0,'aria-rowspan':0,'aria-setsize':0};var warnedProperties={};var rARIA=new RegExp('^(aria)-['+ATTRIBUTE_NAME_CHAR+']*$');var rARIACamel=new RegExp('^(aria)[A-Z]['+ATTRIBUTE_NAME_CHAR+']*$');function validateProperty(tagName,name){{if(hasOwnProperty.call(warnedProperties,name)&&warnedProperties[name]){return true;}if(rARIACamel.test(name)){var ariaName='aria-'+name.slice(4).toLowerCase();var correctName=ariaProperties.hasOwnProperty(ariaName)?ariaName:null;// If this is an aria-* attribute, but is not listed in the known DOM\n// DOM properties, then it is an invalid aria-* attribute.\nif(correctName==null){error('Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.',name);warnedProperties[name]=true;return true;}// aria-* attributes should be lowercase; suggest the lowercase version.\nif(name!==correctName){error('Invalid ARIA attribute `%s`. Did you mean `%s`?',name,correctName);warnedProperties[name]=true;return true;}}if(rARIA.test(name)){var lowerCasedName=name.toLowerCase();var standardName=ariaProperties.hasOwnProperty(lowerCasedName)?lowerCasedName:null;// If this is an aria-* attribute, but is not listed in the known DOM\n// DOM properties, then it is an invalid aria-* attribute.\nif(standardName==null){warnedProperties[name]=true;return false;}// aria-* attributes should be lowercase; suggest the lowercase version.\nif(name!==standardName){error('Unknown ARIA attribute `%s`. Did you mean `%s`?',name,standardName);warnedProperties[name]=true;return true;}}}return true;}function warnInvalidARIAProps(type,props){{var invalidProps=[];for(var key in props){var isValid=validateProperty(type,key);if(!isValid){invalidProps.push(key);}}var unknownPropString=invalidProps.map(function(prop){return'`'+prop+'`';}).join(', ');if(invalidProps.length===1){error('Invalid aria prop %s on <%s> tag. '+'For details, see https://reactjs.org/link/invalid-aria-props',unknownPropString,type);}else if(invalidProps.length>1){error('Invalid aria props %s on <%s> tag. '+'For details, see https://reactjs.org/link/invalid-aria-props',unknownPropString,type);}}}function validateProperties(type,props){if(isCustomComponent(type,props)){return;}warnInvalidARIAProps(type,props);}var didWarnValueNull=false;function validateProperties$1(type,props){{if(type!=='input'&&type!=='textarea'&&type!=='select'){return;}if(props!=null&&props.value===null&&!didWarnValueNull){didWarnValueNull=true;if(type==='select'&&props.multiple){error('`value` prop on `%s` should not be null. '+'Consider using an empty array when `multiple` is set to `true` '+'to clear the component or `undefined` for uncontrolled components.',type);}else{error('`value` prop on `%s` should not be null. '+'Consider using an empty string to clear the component or `undefined` '+'for uncontrolled components.',type);}}}}var validateProperty$1=function(){};{var warnedProperties$1={};var EVENT_NAME_REGEX=/^on./;var INVALID_EVENT_NAME_REGEX=/^on[^A-Z]/;var rARIA$1=new RegExp('^(aria)-['+ATTRIBUTE_NAME_CHAR+']*$');var rARIACamel$1=new RegExp('^(aria)[A-Z]['+ATTRIBUTE_NAME_CHAR+']*$');validateProperty$1=function(tagName,name,value,eventRegistry){if(hasOwnProperty.call(warnedProperties$1,name)&&warnedProperties$1[name]){return true;}var lowerCasedName=name.toLowerCase();if(lowerCasedName==='onfocusin'||lowerCasedName==='onfocusout'){error('React uses onFocus and onBlur instead of onFocusIn and onFocusOut. '+'All React events are normalized to bubble, so onFocusIn and onFocusOut '+'are not needed/supported by React.');warnedProperties$1[name]=true;return true;}// We can't rely on the event system being injected on the server.\nif(eventRegistry!=null){var registrationNameDependencies=eventRegistry.registrationNameDependencies,possibleRegistrationNames=eventRegistry.possibleRegistrationNames;if(registrationNameDependencies.hasOwnProperty(name)){return true;}var registrationName=possibleRegistrationNames.hasOwnProperty(lowerCasedName)?possibleRegistrationNames[lowerCasedName]:null;if(registrationName!=null){error('Invalid event handler property `%s`. Did you mean `%s`?',name,registrationName);warnedProperties$1[name]=true;return true;}if(EVENT_NAME_REGEX.test(name)){error('Unknown event handler property `%s`. It will be ignored.',name);warnedProperties$1[name]=true;return true;}}else if(EVENT_NAME_REGEX.test(name)){// If no event plugins have been injected, we are in a server environment.\n// So we can't tell if the event name is correct for sure, but we can filter\n// out known bad ones like `onclick`. We can't suggest a specific replacement though.\nif(INVALID_EVENT_NAME_REGEX.test(name)){error('Invalid event handler property `%s`. '+'React events use the camelCase naming convention, for example `onClick`.',name);}warnedProperties$1[name]=true;return true;}// Let the ARIA attribute hook validate ARIA attributes\nif(rARIA$1.test(name)||rARIACamel$1.test(name)){return true;}if(lowerCasedName==='innerhtml'){error('Directly setting property `innerHTML` is not permitted. '+'For more information, lookup documentation on `dangerouslySetInnerHTML`.');warnedProperties$1[name]=true;return true;}if(lowerCasedName==='aria'){error('The `aria` attribute is reserved for future use in React. '+'Pass individual `aria-` attributes instead.');warnedProperties$1[name]=true;return true;}if(lowerCasedName==='is'&&value!==null&&value!==undefined&&typeof value!=='string'){error('Received a `%s` for a string attribute `is`. If this is expected, cast '+'the value to a string.',typeof value);warnedProperties$1[name]=true;return true;}if(typeof value==='number'&&isNaN(value)){error('Received NaN for the `%s` attribute. If this is expected, cast '+'the value to a string.',name);warnedProperties$1[name]=true;return true;}var propertyInfo=getPropertyInfo(name);var isReserved=propertyInfo!==null&&propertyInfo.type===RESERVED;// Known attributes should match the casing specified in the property config.\nif(possibleStandardNames.hasOwnProperty(lowerCasedName)){var standardName=possibleStandardNames[lowerCasedName];if(standardName!==name){error('Invalid DOM property `%s`. Did you mean `%s`?',name,standardName);warnedProperties$1[name]=true;return true;}}else if(!isReserved&&name!==lowerCasedName){// Unknown attributes should have lowercase casing since that's how they\n// will be cased anyway with server rendering.\nerror('React does not recognize the `%s` prop on a DOM element. If you '+'intentionally want it to appear in the DOM as a custom '+'attribute, spell it as lowercase `%s` instead. '+'If you accidentally passed it from a parent component, remove '+'it from the DOM element.',name,lowerCasedName);warnedProperties$1[name]=true;return true;}if(typeof value==='boolean'&&shouldRemoveAttributeWithWarning(name,value,propertyInfo,false)){if(value){error('Received `%s` for a non-boolean attribute `%s`.\\n\\n'+'If you want to write it to the DOM, pass a string instead: '+'%s=\"%s\" or %s={value.toString()}.',value,name,name,value,name);}else{error('Received `%s` for a non-boolean attribute `%s`.\\n\\n'+'If you want to write it to the DOM, pass a string instead: '+'%s=\"%s\" or %s={value.toString()}.\\n\\n'+'If you used to conditionally omit it with %s={condition && value}, '+'pass %s={condition ? value : undefined} instead.',value,name,name,value,name,name,name);}warnedProperties$1[name]=true;return true;}// Now that we've validated casing, do not validate\n// data types for reserved props\nif(isReserved){return true;}// Warn when a known attribute is a bad type\nif(shouldRemoveAttributeWithWarning(name,value,propertyInfo,false)){warnedProperties$1[name]=true;return false;}// Warn when passing the strings 'false' or 'true' into a boolean prop\nif((value==='false'||value==='true')&&propertyInfo!==null&&propertyInfo.type===BOOLEAN){error('Received the string `%s` for the boolean attribute `%s`. '+'%s '+'Did you mean %s={%s}?',value,name,value==='false'?'The browser will interpret it as a truthy value.':'Although this works, it will not work as expected if you pass the string \"false\".',name,value);warnedProperties$1[name]=true;return true;}return true;};}var warnUnknownProperties=function(type,props,eventRegistry){{var unknownProps=[];for(var key in props){var isValid=validateProperty$1(type,key,props[key],eventRegistry);if(!isValid){unknownProps.push(key);}}var unknownPropString=unknownProps.map(function(prop){return'`'+prop+'`';}).join(', ');if(unknownProps.length===1){error('Invalid value for prop %s on <%s> tag. Either remove it from the element, '+'or pass a string or number value to keep it in the DOM. '+'For details, see https://reactjs.org/link/attribute-behavior ',unknownPropString,type);}else if(unknownProps.length>1){error('Invalid values for props %s on <%s> tag. Either remove them from the element, '+'or pass a string or number value to keep them in the DOM. '+'For details, see https://reactjs.org/link/attribute-behavior ',unknownPropString,type);}}};function validateProperties$2(type,props,eventRegistry){if(isCustomComponent(type,props)){return;}warnUnknownProperties(type,props,eventRegistry);}var IS_EVENT_HANDLE_NON_MANAGED_NODE=1;var IS_NON_DELEGATED=1<<1;var IS_CAPTURE_PHASE=1<<2;// set to LEGACY_FB_SUPPORT. LEGACY_FB_SUPPORT only gets set when\n// we call willDeferLaterForLegacyFBSupport, thus not bailing out\n// will result in endless cycles like an infinite loop.\n// We also don't want to defer during event replaying.\nvar SHOULD_NOT_PROCESS_POLYFILL_EVENT_PLUGINS=IS_EVENT_HANDLE_NON_MANAGED_NODE|IS_NON_DELEGATED|IS_CAPTURE_PHASE;// This exists to avoid circular dependency between ReactDOMEventReplaying\n// and DOMPluginEventSystem.\nvar currentReplayingEvent=null;function setReplayingEvent(event){{if(currentReplayingEvent!==null){error('Expected currently replaying event to be null. This error '+'is likely caused by a bug in React. Please file an issue.');}}currentReplayingEvent=event;}function resetReplayingEvent(){{if(currentReplayingEvent===null){error('Expected currently replaying event to not be null. This error '+'is likely caused by a bug in React. Please file an issue.');}}currentReplayingEvent=null;}function isReplayingEvent(event){return event===currentReplayingEvent;}/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */function getEventTarget(nativeEvent){// Fallback to nativeEvent.srcElement for IE9\n// https://github.com/facebook/react/issues/12506\nvar target=nativeEvent.target||nativeEvent.srcElement||window;// Normalize SVG <use> element events #4963\nif(target.correspondingUseElement){target=target.correspondingUseElement;}// Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n// @see http://www.quirksmode.org/js/events_properties.html\nreturn target.nodeType===TEXT_NODE?target.parentNode:target;}var restoreImpl=null;var restoreTarget=null;var restoreQueue=null;function restoreStateOfTarget(target){// We perform this translation at the end of the event loop so that we\n// always receive the correct fiber here\nvar internalInstance=getInstanceFromNode(target);if(!internalInstance){// Unmounted\nreturn;}if(typeof restoreImpl!=='function'){throw new Error('setRestoreImplementation() needs to be called to handle a target for controlled '+'events. This error is likely caused by a bug in React. Please file an issue.');}var stateNode=internalInstance.stateNode;// Guard against Fiber being unmounted.\nif(stateNode){var _props=getFiberCurrentPropsFromNode(stateNode);restoreImpl(internalInstance.stateNode,internalInstance.type,_props);}}function setRestoreImplementation(impl){restoreImpl=impl;}function enqueueStateRestore(target){if(restoreTarget){if(restoreQueue){restoreQueue.push(target);}else{restoreQueue=[target];}}else{restoreTarget=target;}}function needsStateRestore(){return restoreTarget!==null||restoreQueue!==null;}function restoreStateIfNeeded(){if(!restoreTarget){return;}var target=restoreTarget;var queuedTargets=restoreQueue;restoreTarget=null;restoreQueue=null;restoreStateOfTarget(target);if(queuedTargets){for(var i=0;i<queuedTargets.length;i++){restoreStateOfTarget(queuedTargets[i]);}}}// the renderer. Such as when we're dispatching events or if third party\n// libraries need to call batchedUpdates. Eventually, this API will go away when\n// everything is batched by default. We'll then have a similar API to opt-out of\n// scheduled work and instead do synchronous work.\n// Defaults\nvar batchedUpdatesImpl=function(fn,bookkeeping){return fn(bookkeeping);};var flushSyncImpl=function(){};var isInsideEventHandler=false;function finishEventHandler(){// Here we wait until all updates have propagated, which is important\n// when using controlled components within layers:\n// https://github.com/facebook/react/issues/1698\n// Then we restore state of any controlled component.\nvar controlledComponentsHavePendingUpdates=needsStateRestore();if(controlledComponentsHavePendingUpdates){// If a controlled event was fired, we may need to restore the state of\n// the DOM node back to the controlled value. This is necessary when React\n// bails out of the update without touching the DOM.\n// TODO: Restore state in the microtask, after the discrete updates flush,\n// instead of early flushing them here.\nflushSyncImpl();restoreStateIfNeeded();}}function batchedUpdates(fn,a,b){if(isInsideEventHandler){// If we are currently inside another batch, we need to wait until it\n// fully completes before restoring state.\nreturn fn(a,b);}isInsideEventHandler=true;try{return batchedUpdatesImpl(fn,a,b);}finally{isInsideEventHandler=false;finishEventHandler();}}// TODO: Replace with flushSync\nfunction setBatchingImplementation(_batchedUpdatesImpl,_discreteUpdatesImpl,_flushSyncImpl){batchedUpdatesImpl=_batchedUpdatesImpl;flushSyncImpl=_flushSyncImpl;}function isInteractive(tag){return tag==='button'||tag==='input'||tag==='select'||tag==='textarea';}function shouldPreventMouseEvent(name,type,props){switch(name){case'onClick':case'onClickCapture':case'onDoubleClick':case'onDoubleClickCapture':case'onMouseDown':case'onMouseDownCapture':case'onMouseMove':case'onMouseMoveCapture':case'onMouseUp':case'onMouseUpCapture':case'onMouseEnter':return!!(props.disabled&&isInteractive(type));default:return false;}}/**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */function getListener(inst,registrationName){var stateNode=inst.stateNode;if(stateNode===null){// Work in progress (ex: onload events in incremental mode).\nreturn null;}var props=getFiberCurrentPropsFromNode(stateNode);if(props===null){// Work in progress.\nreturn null;}var listener=props[registrationName];if(shouldPreventMouseEvent(registrationName,inst.type,props)){return null;}if(listener&&typeof listener!=='function'){throw new Error(\"Expected `\"+registrationName+\"` listener to be a function, instead got a value of `\"+typeof listener+\"` type.\");}return listener;}var passiveBrowserEventsSupported=false;// Check if browser support events with passive listeners\n// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\nif(canUseDOM){try{var options={};// $FlowFixMe: Ignore Flow complaining about needing a value\nObject.defineProperty(options,'passive',{get:function(){passiveBrowserEventsSupported=true;}});window.addEventListener('test',options,options);window.removeEventListener('test',options,options);}catch(e){passiveBrowserEventsSupported=false;}}function invokeGuardedCallbackProd(name,func,context,a,b,c,d,e,f){var funcArgs=Array.prototype.slice.call(arguments,3);try{func.apply(context,funcArgs);}catch(error){this.onError(error);}}var invokeGuardedCallbackImpl=invokeGuardedCallbackProd;{// In DEV mode, we swap out invokeGuardedCallback for a special version\n// that plays more nicely with the browser's DevTools. The idea is to preserve\n// \"Pause on exceptions\" behavior. Because React wraps all user-provided\n// functions in invokeGuardedCallback, and the production version of\n// invokeGuardedCallback uses a try-catch, all user exceptions are treated\n// like caught exceptions, and the DevTools won't pause unless the developer\n// takes the extra step of enabling pause on caught exceptions. This is\n// unintuitive, though, because even though React has caught the error, from\n// the developer's perspective, the error is uncaught.\n//\n// To preserve the expected \"Pause on exceptions\" behavior, we don't use a\n// try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake\n// DOM node, and call the user-provided callback from inside an event handler\n// for that fake event. If the callback throws, the error is \"captured\" using\n// a global event handler. But because the error happens in a different\n// event loop context, it does not interrupt the normal program flow.\n// Effectively, this gives us try-catch behavior without actually using\n// try-catch. Neat!\n// Check that the browser supports the APIs we need to implement our special\n// DEV version of invokeGuardedCallback\nif(typeof window!=='undefined'&&typeof window.dispatchEvent==='function'&&typeof document!=='undefined'&&typeof document.createEvent==='function'){var fakeNode=document.createElement('react');invokeGuardedCallbackImpl=function invokeGuardedCallbackDev(name,func,context,a,b,c,d,e,f){// If document doesn't exist we know for sure we will crash in this method\n// when we call document.createEvent(). However this can cause confusing\n// errors: https://github.com/facebook/create-react-app/issues/3482\n// So we preemptively throw with a better message instead.\nif(typeof document==='undefined'||document===null){throw new Error('The `document` global was defined when React was initialized, but is not '+'defined anymore. This can happen in a test environment if a component '+'schedules an update from an asynchronous callback, but the test has already '+'finished running. To solve this, you can either unmount the component at '+'the end of your test (and ensure that any asynchronous operations get '+'canceled in `componentWillUnmount`), or you can change the test itself '+'to be asynchronous.');}var evt=document.createEvent('Event');var didCall=false;// Keeps track of whether the user-provided callback threw an error. We\n// set this to true at the beginning, then set it to false right after\n// calling the function. If the function errors, `didError` will never be\n// set to false. This strategy works even if the browser is flaky and\n// fails to call our global error handler, because it doesn't rely on\n// the error event at all.\nvar didError=true;// Keeps track of the value of window.event so that we can reset it\n// during the callback to let user code access window.event in the\n// browsers that support it.\nvar windowEvent=window.event;// Keeps track of the descriptor of window.event to restore it after event\n// dispatching: https://github.com/facebook/react/issues/13688\nvar windowEventDescriptor=Object.getOwnPropertyDescriptor(window,'event');function restoreAfterDispatch(){// We immediately remove the callback from event listeners so that\n// nested `invokeGuardedCallback` calls do not clash. Otherwise, a\n// nested call would trigger the fake event handlers of any call higher\n// in the stack.\nfakeNode.removeEventListener(evtType,callCallback,false);// We check for window.hasOwnProperty('event') to prevent the\n// window.event assignment in both IE <= 10 as they throw an error\n// \"Member not found\" in strict mode, and in Firefox which does not\n// support window.event.\nif(typeof window.event!=='undefined'&&window.hasOwnProperty('event')){window.event=windowEvent;}}// Create an event handler for our fake event. We will synchronously\n// dispatch our fake event using `dispatchEvent`. Inside the handler, we\n// call the user-provided callback.\nvar funcArgs=Array.prototype.slice.call(arguments,3);function callCallback(){didCall=true;restoreAfterDispatch();func.apply(context,funcArgs);didError=false;}// Create a global error event handler. We use this to capture the value\n// that was thrown. It's possible that this error handler will fire more\n// than once; for example, if non-React code also calls `dispatchEvent`\n// and a handler for that event throws. We should be resilient to most of\n// those cases. Even if our error event handler fires more than once, the\n// last error event is always used. If the callback actually does error,\n// we know that the last error event is the correct one, because it's not\n// possible for anything else to have happened in between our callback\n// erroring and the code that follows the `dispatchEvent` call below. If\n// the callback doesn't error, but the error event was fired, we know to\n// ignore it because `didError` will be false, as described above.\nvar error;// Use this to track whether the error event is ever called.\nvar didSetError=false;var isCrossOriginError=false;function handleWindowError(event){error=event.error;didSetError=true;if(error===null&&event.colno===0&&event.lineno===0){isCrossOriginError=true;}if(event.defaultPrevented){// Some other error handler has prevented default.\n// Browsers silence the error report if this happens.\n// We'll remember this to later decide whether to log it or not.\nif(error!=null&&typeof error==='object'){try{error._suppressLogging=true;}catch(inner){// Ignore.\n}}}}// Create a fake event type.\nvar evtType=\"react-\"+(name?name:'invokeguardedcallback');// Attach our event handlers\nwindow.addEventListener('error',handleWindowError);fakeNode.addEventListener(evtType,callCallback,false);// Synchronously dispatch our fake event. If the user-provided function\n// errors, it will trigger our global error handler.\nevt.initEvent(evtType,false,false);fakeNode.dispatchEvent(evt);if(windowEventDescriptor){Object.defineProperty(window,'event',windowEventDescriptor);}if(didCall&&didError){if(!didSetError){// The callback errored, but the error event never fired.\n// eslint-disable-next-line react-internal/prod-error-codes\nerror=new Error('An error was thrown inside one of your components, but React '+\"doesn't know what it was. This is likely due to browser \"+'flakiness. React does its best to preserve the \"Pause on '+'exceptions\" behavior of the DevTools, which requires some '+\"DEV-mode only tricks. It's possible that these don't work in \"+'your browser. Try triggering the error in production mode, '+'or switching to a modern browser. If you suspect that this is '+'actually an issue with React, please file an issue.');}else if(isCrossOriginError){// eslint-disable-next-line react-internal/prod-error-codes\nerror=new Error(\"A cross-origin error was thrown. React doesn't have access to \"+'the actual error object in development. '+'See https://reactjs.org/link/crossorigin-error for more information.');}this.onError(error);}// Remove our event listeners\nwindow.removeEventListener('error',handleWindowError);if(!didCall){// Something went really wrong, and our event was not dispatched.\n// https://github.com/facebook/react/issues/16734\n// https://github.com/facebook/react/issues/16585\n// Fall back to the production implementation.\nrestoreAfterDispatch();return invokeGuardedCallbackProd.apply(this,arguments);}};}}var invokeGuardedCallbackImpl$1=invokeGuardedCallbackImpl;var hasError=false;var caughtError=null;// Used by event system to capture/rethrow the first error.\nvar hasRethrowError=false;var rethrowError=null;var reporter={onError:function(error){hasError=true;caughtError=error;}};/**\n * Call a function while guarding against errors that happens within it.\n * Returns an error if it throws, otherwise null.\n *\n * In production, this is implemented using a try-catch. The reason we don't\n * use a try-catch directly is so that we can swap out a different\n * implementation in DEV mode.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */function invokeGuardedCallback(name,func,context,a,b,c,d,e,f){hasError=false;caughtError=null;invokeGuardedCallbackImpl$1.apply(reporter,arguments);}/**\n * Same as invokeGuardedCallback, but instead of returning an error, it stores\n * it in a global so it can be rethrown by `rethrowCaughtError` later.\n * TODO: See if caughtError and rethrowError can be unified.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */function invokeGuardedCallbackAndCatchFirstError(name,func,context,a,b,c,d,e,f){invokeGuardedCallback.apply(this,arguments);if(hasError){var error=clearCaughtError();if(!hasRethrowError){hasRethrowError=true;rethrowError=error;}}}/**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */function rethrowCaughtError(){if(hasRethrowError){var error=rethrowError;hasRethrowError=false;rethrowError=null;throw error;}}function hasCaughtError(){return hasError;}function clearCaughtError(){if(hasError){var error=caughtError;hasError=false;caughtError=null;return error;}else{throw new Error('clearCaughtError was called but no error was captured. This error '+'is likely caused by a bug in React. Please file an issue.');}}/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n *\n * Note that this module is currently shared and assumed to be stateless.\n * If this becomes an actual Map, that will break.\n */function get(key){return key._reactInternals;}function has(key){return key._reactInternals!==undefined;}function set(key,value){key._reactInternals=value;}// Don't change these two values. They're used by React Dev Tools.\nvar NoFlags=/*                      */0;var PerformedWork=/*                */1;// You can change the rest (and add more).\nvar Placement=/*                    */2;var Update=/*                       */4;var ChildDeletion=/*                */16;var ContentReset=/*                 */32;var Callback=/*                     */64;var DidCapture=/*                   */128;var ForceClientRender=/*            */256;var Ref=/*                          */512;var Snapshot=/*                     */1024;var Passive=/*                      */2048;var Hydrating=/*                    */4096;var Visibility=/*                   */8192;var StoreConsistency=/*             */16384;var LifecycleEffectMask=Passive|Update|Callback|Ref|Snapshot|StoreConsistency;// Union of all commit flags (flags with the lifetime of a particular commit)\nvar HostEffectMask=/*               */32767;// These are not really side effects, but we still reuse this field.\nvar Incomplete=/*                   */32768;var ShouldCapture=/*                */65536;var ForceUpdateForLegacySuspense=/* */131072;var Forked=/*                       */1048576;// Static tags describe aspects of a fiber that are not specific to a render,\n// e.g. a fiber uses a passive effect (even if there are no updates on this particular render).\n// This enables us to defer more work in the unmount case,\n// since we can defer traversing the tree during layout to look for Passive effects,\n// and instead rely on the static flag as a signal that there may be cleanup work.\nvar RefStatic=/*                    */2097152;var LayoutStatic=/*                 */4194304;var PassiveStatic=/*                */8388608;// These flags allow us to traverse to fibers that have effects on mount\n// without traversing the entire tree after every commit for\n// double invoking\nvar MountLayoutDev=/*               */16777216;var MountPassiveDev=/*              */33554432;// Groups of flags that are used in the commit phase to skip over trees that\n// don't contain effects, by checking subtreeFlags.\nvar BeforeMutationMask=// TODO: Remove Update flag from before mutation phase by re-landing Visibility\n// flag logic (see #20043)\nUpdate|Snapshot|0;var MutationMask=Placement|Update|ChildDeletion|ContentReset|Ref|Hydrating|Visibility;var LayoutMask=Update|Callback|Ref|Visibility;// TODO: Split into PassiveMountMask and PassiveUnmountMask\nvar PassiveMask=Passive|ChildDeletion;// Union of tags that don't get reset on clones.\n// This allows certain concepts to persist without recalculating them,\n// e.g. whether a subtree contains passive effects or portals.\nvar StaticMask=LayoutStatic|PassiveStatic|RefStatic;var ReactCurrentOwner=ReactSharedInternals.ReactCurrentOwner;function getNearestMountedFiber(fiber){var node=fiber;var nearestMounted=fiber;if(!fiber.alternate){// If there is no alternate, this might be a new tree that isn't inserted\n// yet. If it is, then it will have a pending insertion effect on it.\nvar nextNode=node;do{node=nextNode;if((node.flags&(Placement|Hydrating))!==NoFlags){// This is an insertion or in-progress hydration. The nearest possible\n// mounted fiber is the parent but we need to continue to figure out\n// if that one is still mounted.\nnearestMounted=node.return;}nextNode=node.return;}while(nextNode);}else{while(node.return){node=node.return;}}if(node.tag===HostRoot){// TODO: Check if this was a nested HostRoot when used with\n// renderContainerIntoSubtree.\nreturn nearestMounted;}// If we didn't hit the root, that means that we're in an disconnected tree\n// that has been unmounted.\nreturn null;}function getSuspenseInstanceFromFiber(fiber){if(fiber.tag===SuspenseComponent){var suspenseState=fiber.memoizedState;if(suspenseState===null){var current=fiber.alternate;if(current!==null){suspenseState=current.memoizedState;}}if(suspenseState!==null){return suspenseState.dehydrated;}}return null;}function getContainerFromFiber(fiber){return fiber.tag===HostRoot?fiber.stateNode.containerInfo:null;}function isFiberMounted(fiber){return getNearestMountedFiber(fiber)===fiber;}function isMounted(component){{var owner=ReactCurrentOwner.current;if(owner!==null&&owner.tag===ClassComponent){var ownerFiber=owner;var instance=ownerFiber.stateNode;if(!instance._warnedAboutRefsInRender){error('%s is accessing isMounted inside its render() function. '+'render() should be a pure function of props and state. It should '+'never access something that requires stale data from the previous '+'render, such as refs. Move this logic to componentDidMount and '+'componentDidUpdate instead.',getComponentNameFromFiber(ownerFiber)||'A component');}instance._warnedAboutRefsInRender=true;}}var fiber=get(component);if(!fiber){return false;}return getNearestMountedFiber(fiber)===fiber;}function assertIsMounted(fiber){if(getNearestMountedFiber(fiber)!==fiber){throw new Error('Unable to find node on an unmounted component.');}}function findCurrentFiberUsingSlowPath(fiber){var alternate=fiber.alternate;if(!alternate){// If there is no alternate, then we only need to check if it is mounted.\nvar nearestMounted=getNearestMountedFiber(fiber);if(nearestMounted===null){throw new Error('Unable to find node on an unmounted component.');}if(nearestMounted!==fiber){return null;}return fiber;}// If we have two possible branches, we'll walk backwards up to the root\n// to see what path the root points to. On the way we may hit one of the\n// special cases and we'll deal with them.\nvar a=fiber;var b=alternate;while(true){var parentA=a.return;if(parentA===null){// We're at the root.\nbreak;}var parentB=parentA.alternate;if(parentB===null){// There is no alternate. This is an unusual case. Currently, it only\n// happens when a Suspense component is hidden. An extra fragment fiber\n// is inserted in between the Suspense fiber and its children. Skip\n// over this extra fragment fiber and proceed to the next parent.\nvar nextParent=parentA.return;if(nextParent!==null){a=b=nextParent;continue;}// If there's no parent, we're at the root.\nbreak;}// If both copies of the parent fiber point to the same child, we can\n// assume that the child is current. This happens when we bailout on low\n// priority: the bailed out fiber's child reuses the current child.\nif(parentA.child===parentB.child){var child=parentA.child;while(child){if(child===a){// We've determined that A is the current branch.\nassertIsMounted(parentA);return fiber;}if(child===b){// We've determined that B is the current branch.\nassertIsMounted(parentA);return alternate;}child=child.sibling;}// We should never have an alternate for any mounting node. So the only\n// way this could possibly happen is if this was unmounted, if at all.\nthrow new Error('Unable to find node on an unmounted component.');}if(a.return!==b.return){// The return pointer of A and the return pointer of B point to different\n// fibers. We assume that return pointers never criss-cross, so A must\n// belong to the child set of A.return, and B must belong to the child\n// set of B.return.\na=parentA;b=parentB;}else{// The return pointers point to the same fiber. We'll have to use the\n// default, slow path: scan the child sets of each parent alternate to see\n// which child belongs to which set.\n//\n// Search parent A's child set\nvar didFindChild=false;var _child=parentA.child;while(_child){if(_child===a){didFindChild=true;a=parentA;b=parentB;break;}if(_child===b){didFindChild=true;b=parentA;a=parentB;break;}_child=_child.sibling;}if(!didFindChild){// Search parent B's child set\n_child=parentB.child;while(_child){if(_child===a){didFindChild=true;a=parentB;b=parentA;break;}if(_child===b){didFindChild=true;b=parentB;a=parentA;break;}_child=_child.sibling;}if(!didFindChild){throw new Error('Child was not found in either parent set. This indicates a bug '+'in React related to the return pointer. Please file an issue.');}}}if(a.alternate!==b){throw new Error(\"Return fibers should always be each others' alternates. \"+'This error is likely caused by a bug in React. Please file an issue.');}}// If the root is not a host container, we're in a disconnected tree. I.e.\n// unmounted.\nif(a.tag!==HostRoot){throw new Error('Unable to find node on an unmounted component.');}if(a.stateNode.current===a){// We've determined that A is the current branch.\nreturn fiber;}// Otherwise B has to be current branch.\nreturn alternate;}function findCurrentHostFiber(parent){var currentParent=findCurrentFiberUsingSlowPath(parent);return currentParent!==null?findCurrentHostFiberImpl(currentParent):null;}function findCurrentHostFiberImpl(node){// Next we'll drill down this component to find the first HostComponent/Text.\nif(node.tag===HostComponent||node.tag===HostText){return node;}var child=node.child;while(child!==null){var match=findCurrentHostFiberImpl(child);if(match!==null){return match;}child=child.sibling;}return null;}function findCurrentHostFiberWithNoPortals(parent){var currentParent=findCurrentFiberUsingSlowPath(parent);return currentParent!==null?findCurrentHostFiberWithNoPortalsImpl(currentParent):null;}function findCurrentHostFiberWithNoPortalsImpl(node){// Next we'll drill down this component to find the first HostComponent/Text.\nif(node.tag===HostComponent||node.tag===HostText){return node;}var child=node.child;while(child!==null){if(child.tag!==HostPortal){var match=findCurrentHostFiberWithNoPortalsImpl(child);if(match!==null){return match;}}child=child.sibling;}return null;}// This module only exists as an ESM wrapper around the external CommonJS\nvar scheduleCallback=Scheduler.unstable_scheduleCallback;var cancelCallback=Scheduler.unstable_cancelCallback;var shouldYield=Scheduler.unstable_shouldYield;var requestPaint=Scheduler.unstable_requestPaint;var now=Scheduler.unstable_now;var getCurrentPriorityLevel=Scheduler.unstable_getCurrentPriorityLevel;var ImmediatePriority=Scheduler.unstable_ImmediatePriority;var UserBlockingPriority=Scheduler.unstable_UserBlockingPriority;var NormalPriority=Scheduler.unstable_NormalPriority;var LowPriority=Scheduler.unstable_LowPriority;var IdlePriority=Scheduler.unstable_IdlePriority;// this doesn't actually exist on the scheduler, but it *does*\n// on scheduler/unstable_mock, which we'll need for internal testing\nvar unstable_yieldValue=Scheduler.unstable_yieldValue;var unstable_setDisableYieldValue=Scheduler.unstable_setDisableYieldValue;var rendererID=null;var injectedHook=null;var injectedProfilingHooks=null;var hasLoggedError=false;var isDevToolsPresent=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__!=='undefined';function injectInternals(internals){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__==='undefined'){// No DevTools\nreturn false;}var hook=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(hook.isDisabled){// This isn't a real property on the hook, but it can be set to opt out\n// of DevTools integration and associated warnings and logs.\n// https://github.com/facebook/react/issues/3877\nreturn true;}if(!hook.supportsFiber){{error('The installed version of React DevTools is too old and will not work '+'with the current version of React. Please update React DevTools. '+'https://reactjs.org/link/react-devtools');}// DevTools exists, even though it doesn't support Fiber.\nreturn true;}try{if(enableSchedulingProfiler){// Conditionally inject these hooks only if Timeline profiler is supported by this build.\n// This gives DevTools a way to feature detect that isn't tied to version number\n// (since profiling and timeline are controlled by different feature flags).\ninternals=assign({},internals,{getLaneLabelMap:getLaneLabelMap,injectProfilingHooks:injectProfilingHooks});}rendererID=hook.inject(internals);// We have successfully injected, so now it is safe to set up hooks.\ninjectedHook=hook;}catch(err){// Catch all errors because it is unsafe to throw during initialization.\n{error('React instrumentation encountered an error: %s.',err);}}if(hook.checkDCE){// This is the real DevTools.\nreturn true;}else{// This is likely a hook installed by Fast Refresh runtime.\nreturn false;}}function onScheduleRoot(root,children){{if(injectedHook&&typeof injectedHook.onScheduleFiberRoot==='function'){try{injectedHook.onScheduleFiberRoot(rendererID,root,children);}catch(err){if(!hasLoggedError){hasLoggedError=true;error('React instrumentation encountered an error: %s',err);}}}}}function onCommitRoot(root,eventPriority){if(injectedHook&&typeof injectedHook.onCommitFiberRoot==='function'){try{var didError=(root.current.flags&DidCapture)===DidCapture;if(enableProfilerTimer){var schedulerPriority;switch(eventPriority){case DiscreteEventPriority:schedulerPriority=ImmediatePriority;break;case ContinuousEventPriority:schedulerPriority=UserBlockingPriority;break;case DefaultEventPriority:schedulerPriority=NormalPriority;break;case IdleEventPriority:schedulerPriority=IdlePriority;break;default:schedulerPriority=NormalPriority;break;}injectedHook.onCommitFiberRoot(rendererID,root,schedulerPriority,didError);}else{injectedHook.onCommitFiberRoot(rendererID,root,undefined,didError);}}catch(err){{if(!hasLoggedError){hasLoggedError=true;error('React instrumentation encountered an error: %s',err);}}}}}function onPostCommitRoot(root){if(injectedHook&&typeof injectedHook.onPostCommitFiberRoot==='function'){try{injectedHook.onPostCommitFiberRoot(rendererID,root);}catch(err){{if(!hasLoggedError){hasLoggedError=true;error('React instrumentation encountered an error: %s',err);}}}}}function onCommitUnmount(fiber){if(injectedHook&&typeof injectedHook.onCommitFiberUnmount==='function'){try{injectedHook.onCommitFiberUnmount(rendererID,fiber);}catch(err){{if(!hasLoggedError){hasLoggedError=true;error('React instrumentation encountered an error: %s',err);}}}}}function setIsStrictModeForDevtools(newIsStrictMode){{if(typeof unstable_yieldValue==='function'){// We're in a test because Scheduler.unstable_yieldValue only exists\n// in SchedulerMock. To reduce the noise in strict mode tests,\n// suppress warnings and disable scheduler yielding during the double render\nunstable_setDisableYieldValue(newIsStrictMode);setSuppressWarning(newIsStrictMode);}if(injectedHook&&typeof injectedHook.setStrictMode==='function'){try{injectedHook.setStrictMode(rendererID,newIsStrictMode);}catch(err){{if(!hasLoggedError){hasLoggedError=true;error('React instrumentation encountered an error: %s',err);}}}}}}// Profiler API hooks\nfunction injectProfilingHooks(profilingHooks){injectedProfilingHooks=profilingHooks;}function getLaneLabelMap(){{var map=new Map();var lane=1;for(var index=0;index<TotalLanes;index++){var label=getLabelForLane(lane);map.set(lane,label);lane*=2;}return map;}}function markCommitStarted(lanes){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markCommitStarted==='function'){injectedProfilingHooks.markCommitStarted(lanes);}}}function markCommitStopped(){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markCommitStopped==='function'){injectedProfilingHooks.markCommitStopped();}}}function markComponentRenderStarted(fiber){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markComponentRenderStarted==='function'){injectedProfilingHooks.markComponentRenderStarted(fiber);}}}function markComponentRenderStopped(){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markComponentRenderStopped==='function'){injectedProfilingHooks.markComponentRenderStopped();}}}function markComponentPassiveEffectMountStarted(fiber){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markComponentPassiveEffectMountStarted==='function'){injectedProfilingHooks.markComponentPassiveEffectMountStarted(fiber);}}}function markComponentPassiveEffectMountStopped(){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markComponentPassiveEffectMountStopped==='function'){injectedProfilingHooks.markComponentPassiveEffectMountStopped();}}}function markComponentPassiveEffectUnmountStarted(fiber){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markComponentPassiveEffectUnmountStarted==='function'){injectedProfilingHooks.markComponentPassiveEffectUnmountStarted(fiber);}}}function markComponentPassiveEffectUnmountStopped(){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markComponentPassiveEffectUnmountStopped==='function'){injectedProfilingHooks.markComponentPassiveEffectUnmountStopped();}}}function markComponentLayoutEffectMountStarted(fiber){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markComponentLayoutEffectMountStarted==='function'){injectedProfilingHooks.markComponentLayoutEffectMountStarted(fiber);}}}function markComponentLayoutEffectMountStopped(){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markComponentLayoutEffectMountStopped==='function'){injectedProfilingHooks.markComponentLayoutEffectMountStopped();}}}function markComponentLayoutEffectUnmountStarted(fiber){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markComponentLayoutEffectUnmountStarted==='function'){injectedProfilingHooks.markComponentLayoutEffectUnmountStarted(fiber);}}}function markComponentLayoutEffectUnmountStopped(){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markComponentLayoutEffectUnmountStopped==='function'){injectedProfilingHooks.markComponentLayoutEffectUnmountStopped();}}}function markComponentErrored(fiber,thrownValue,lanes){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markComponentErrored==='function'){injectedProfilingHooks.markComponentErrored(fiber,thrownValue,lanes);}}}function markComponentSuspended(fiber,wakeable,lanes){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markComponentSuspended==='function'){injectedProfilingHooks.markComponentSuspended(fiber,wakeable,lanes);}}}function markLayoutEffectsStarted(lanes){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markLayoutEffectsStarted==='function'){injectedProfilingHooks.markLayoutEffectsStarted(lanes);}}}function markLayoutEffectsStopped(){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markLayoutEffectsStopped==='function'){injectedProfilingHooks.markLayoutEffectsStopped();}}}function markPassiveEffectsStarted(lanes){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markPassiveEffectsStarted==='function'){injectedProfilingHooks.markPassiveEffectsStarted(lanes);}}}function markPassiveEffectsStopped(){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markPassiveEffectsStopped==='function'){injectedProfilingHooks.markPassiveEffectsStopped();}}}function markRenderStarted(lanes){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markRenderStarted==='function'){injectedProfilingHooks.markRenderStarted(lanes);}}}function markRenderYielded(){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markRenderYielded==='function'){injectedProfilingHooks.markRenderYielded();}}}function markRenderStopped(){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markRenderStopped==='function'){injectedProfilingHooks.markRenderStopped();}}}function markRenderScheduled(lane){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markRenderScheduled==='function'){injectedProfilingHooks.markRenderScheduled(lane);}}}function markForceUpdateScheduled(fiber,lane){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markForceUpdateScheduled==='function'){injectedProfilingHooks.markForceUpdateScheduled(fiber,lane);}}}function markStateUpdateScheduled(fiber,lane){{if(injectedProfilingHooks!==null&&typeof injectedProfilingHooks.markStateUpdateScheduled==='function'){injectedProfilingHooks.markStateUpdateScheduled(fiber,lane);}}}var NoMode=/*                         */0;// TODO: Remove ConcurrentMode by reading from the root tag instead\nvar ConcurrentMode=/*                 */1;var ProfileMode=/*                    */2;var StrictLegacyMode=/*               */8;var StrictEffectsMode=/*              */16;// TODO: This is pretty well supported by browsers. Maybe we can drop it.\nvar clz32=Math.clz32?Math.clz32:clz32Fallback;// Count leading zeros.\n// Based on:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32\nvar log=Math.log;var LN2=Math.LN2;function clz32Fallback(x){var asUint=x>>>0;if(asUint===0){return 32;}return 31-(log(asUint)/LN2|0)|0;}// If those values are changed that package should be rebuilt and redeployed.\nvar TotalLanes=31;var NoLanes=/*                        */0;var NoLane=/*                          */0;var SyncLane=/*                        */1;var InputContinuousHydrationLane=/*    */2;var InputContinuousLane=/*             */4;var DefaultHydrationLane=/*            */8;var DefaultLane=/*                     */16;var TransitionHydrationLane=/*                */32;var TransitionLanes=/*                       */4194240;var TransitionLane1=/*                        */64;var TransitionLane2=/*                        */128;var TransitionLane3=/*                        */256;var TransitionLane4=/*                        */512;var TransitionLane5=/*                        */1024;var TransitionLane6=/*                        */2048;var TransitionLane7=/*                        */4096;var TransitionLane8=/*                        */8192;var TransitionLane9=/*                        */16384;var TransitionLane10=/*                       */32768;var TransitionLane11=/*                       */65536;var TransitionLane12=/*                       */131072;var TransitionLane13=/*                       */262144;var TransitionLane14=/*                       */524288;var TransitionLane15=/*                       */1048576;var TransitionLane16=/*                       */2097152;var RetryLanes=/*                            */130023424;var RetryLane1=/*                             */4194304;var RetryLane2=/*                             */8388608;var RetryLane3=/*                             */16777216;var RetryLane4=/*                             */33554432;var RetryLane5=/*                             */67108864;var SomeRetryLane=RetryLane1;var SelectiveHydrationLane=/*          */134217728;var NonIdleLanes=/*                          */268435455;var IdleHydrationLane=/*               */268435456;var IdleLane=/*                        */536870912;var OffscreenLane=/*                   */1073741824;// This function is used for the experimental timeline (react-devtools-timeline)\n// It should be kept in sync with the Lanes values above.\nfunction getLabelForLane(lane){{if(lane&SyncLane){return'Sync';}if(lane&InputContinuousHydrationLane){return'InputContinuousHydration';}if(lane&InputContinuousLane){return'InputContinuous';}if(lane&DefaultHydrationLane){return'DefaultHydration';}if(lane&DefaultLane){return'Default';}if(lane&TransitionHydrationLane){return'TransitionHydration';}if(lane&TransitionLanes){return'Transition';}if(lane&RetryLanes){return'Retry';}if(lane&SelectiveHydrationLane){return'SelectiveHydration';}if(lane&IdleHydrationLane){return'IdleHydration';}if(lane&IdleLane){return'Idle';}if(lane&OffscreenLane){return'Offscreen';}}}var NoTimestamp=-1;var nextTransitionLane=TransitionLane1;var nextRetryLane=RetryLane1;function getHighestPriorityLanes(lanes){switch(getHighestPriorityLane(lanes)){case SyncLane:return SyncLane;case InputContinuousHydrationLane:return InputContinuousHydrationLane;case InputContinuousLane:return InputContinuousLane;case DefaultHydrationLane:return DefaultHydrationLane;case DefaultLane:return DefaultLane;case TransitionHydrationLane:return TransitionHydrationLane;case TransitionLane1:case TransitionLane2:case TransitionLane3:case TransitionLane4:case TransitionLane5:case TransitionLane6:case TransitionLane7:case TransitionLane8:case TransitionLane9:case TransitionLane10:case TransitionLane11:case TransitionLane12:case TransitionLane13:case TransitionLane14:case TransitionLane15:case TransitionLane16:return lanes&TransitionLanes;case RetryLane1:case RetryLane2:case RetryLane3:case RetryLane4:case RetryLane5:return lanes&RetryLanes;case SelectiveHydrationLane:return SelectiveHydrationLane;case IdleHydrationLane:return IdleHydrationLane;case IdleLane:return IdleLane;case OffscreenLane:return OffscreenLane;default:{error('Should have found matching lanes. This is a bug in React.');}// This shouldn't be reachable, but as a fallback, return the entire bitmask.\nreturn lanes;}}function getNextLanes(root,wipLanes){// Early bailout if there's no pending work left.\nvar pendingLanes=root.pendingLanes;if(pendingLanes===NoLanes){return NoLanes;}var nextLanes=NoLanes;var suspendedLanes=root.suspendedLanes;var pingedLanes=root.pingedLanes;// Do not work on any idle work until all the non-idle work has finished,\n// even if the work is suspended.\nvar nonIdlePendingLanes=pendingLanes&NonIdleLanes;if(nonIdlePendingLanes!==NoLanes){var nonIdleUnblockedLanes=nonIdlePendingLanes&~suspendedLanes;if(nonIdleUnblockedLanes!==NoLanes){nextLanes=getHighestPriorityLanes(nonIdleUnblockedLanes);}else{var nonIdlePingedLanes=nonIdlePendingLanes&pingedLanes;if(nonIdlePingedLanes!==NoLanes){nextLanes=getHighestPriorityLanes(nonIdlePingedLanes);}}}else{// The only remaining work is Idle.\nvar unblockedLanes=pendingLanes&~suspendedLanes;if(unblockedLanes!==NoLanes){nextLanes=getHighestPriorityLanes(unblockedLanes);}else{if(pingedLanes!==NoLanes){nextLanes=getHighestPriorityLanes(pingedLanes);}}}if(nextLanes===NoLanes){// This should only be reachable if we're suspended\n// TODO: Consider warning in this path if a fallback timer is not scheduled.\nreturn NoLanes;}// If we're already in the middle of a render, switching lanes will interrupt\n// it and we'll lose our progress. We should only do this if the new lanes are\n// higher priority.\nif(wipLanes!==NoLanes&&wipLanes!==nextLanes&&// If we already suspended with a delay, then interrupting is fine. Don't\n// bother waiting until the root is complete.\n(wipLanes&suspendedLanes)===NoLanes){var nextLane=getHighestPriorityLane(nextLanes);var wipLane=getHighestPriorityLane(wipLanes);if(// Tests whether the next lane is equal or lower priority than the wip\n// one. This works because the bits decrease in priority as you go left.\nnextLane>=wipLane||// Default priority updates should not interrupt transition updates. The\n// only difference between default updates and transition updates is that\n// default updates do not support refresh transitions.\nnextLane===DefaultLane&&(wipLane&TransitionLanes)!==NoLanes){// Keep working on the existing in-progress tree. Do not interrupt.\nreturn wipLanes;}}if((nextLanes&InputContinuousLane)!==NoLanes){// When updates are sync by default, we entangle continuous priority updates\n// and default updates, so they render in the same batch. The only reason\n// they use separate lanes is because continuous updates should interrupt\n// transitions, but default updates should not.\nnextLanes|=pendingLanes&DefaultLane;}// Check for entangled lanes and add them to the batch.\n//\n// A lane is said to be entangled with another when it's not allowed to render\n// in a batch that does not also include the other lane. Typically we do this\n// when multiple updates have the same source, and we only want to respond to\n// the most recent event from that source.\n//\n// Note that we apply entanglements *after* checking for partial work above.\n// This means that if a lane is entangled during an interleaved event while\n// it's already rendering, we won't interrupt it. This is intentional, since\n// entanglement is usually \"best effort\": we'll try our best to render the\n// lanes in the same batch, but it's not worth throwing out partially\n// completed work in order to do it.\n// TODO: Reconsider this. The counter-argument is that the partial work\n// represents an intermediate state, which we don't want to show to the user.\n// And by spending extra time finishing it, we're increasing the amount of\n// time it takes to show the final state, which is what they are actually\n// waiting for.\n//\n// For those exceptions where entanglement is semantically important, like\n// useMutableSource, we should ensure that there is no partial work at the\n// time we apply the entanglement.\nvar entangledLanes=root.entangledLanes;if(entangledLanes!==NoLanes){var entanglements=root.entanglements;var lanes=nextLanes&entangledLanes;while(lanes>0){var index=pickArbitraryLaneIndex(lanes);var lane=1<<index;nextLanes|=entanglements[index];lanes&=~lane;}}return nextLanes;}function getMostRecentEventTime(root,lanes){var eventTimes=root.eventTimes;var mostRecentEventTime=NoTimestamp;while(lanes>0){var index=pickArbitraryLaneIndex(lanes);var lane=1<<index;var eventTime=eventTimes[index];if(eventTime>mostRecentEventTime){mostRecentEventTime=eventTime;}lanes&=~lane;}return mostRecentEventTime;}function computeExpirationTime(lane,currentTime){switch(lane){case SyncLane:case InputContinuousHydrationLane:case InputContinuousLane:// User interactions should expire slightly more quickly.\n//\n// NOTE: This is set to the corresponding constant as in Scheduler.js.\n// When we made it larger, a product metric in www regressed, suggesting\n// there's a user interaction that's being starved by a series of\n// synchronous updates. If that theory is correct, the proper solution is\n// to fix the starvation. However, this scenario supports the idea that\n// expiration times are an important safeguard when starvation\n// does happen.\nreturn currentTime+250;case DefaultHydrationLane:case DefaultLane:case TransitionHydrationLane:case TransitionLane1:case TransitionLane2:case TransitionLane3:case TransitionLane4:case TransitionLane5:case TransitionLane6:case TransitionLane7:case TransitionLane8:case TransitionLane9:case TransitionLane10:case TransitionLane11:case TransitionLane12:case TransitionLane13:case TransitionLane14:case TransitionLane15:case TransitionLane16:return currentTime+5000;case RetryLane1:case RetryLane2:case RetryLane3:case RetryLane4:case RetryLane5:// TODO: Retries should be allowed to expire if they are CPU bound for\n// too long, but when I made this change it caused a spike in browser\n// crashes. There must be some other underlying bug; not super urgent but\n// ideally should figure out why and fix it. Unfortunately we don't have\n// a repro for the crashes, only detected via production metrics.\nreturn NoTimestamp;case SelectiveHydrationLane:case IdleHydrationLane:case IdleLane:case OffscreenLane:// Anything idle priority or lower should never expire.\nreturn NoTimestamp;default:{error('Should have found matching lanes. This is a bug in React.');}return NoTimestamp;}}function markStarvedLanesAsExpired(root,currentTime){// TODO: This gets called every time we yield. We can optimize by storing\n// the earliest expiration time on the root. Then use that to quickly bail out\n// of this function.\nvar pendingLanes=root.pendingLanes;var suspendedLanes=root.suspendedLanes;var pingedLanes=root.pingedLanes;var expirationTimes=root.expirationTimes;// Iterate through the pending lanes and check if we've reached their\n// expiration time. If so, we'll assume the update is being starved and mark\n// it as expired to force it to finish.\nvar lanes=pendingLanes;while(lanes>0){var index=pickArbitraryLaneIndex(lanes);var lane=1<<index;var expirationTime=expirationTimes[index];if(expirationTime===NoTimestamp){// Found a pending lane with no expiration time. If it's not suspended, or\n// if it's pinged, assume it's CPU-bound. Compute a new expiration time\n// using the current time.\nif((lane&suspendedLanes)===NoLanes||(lane&pingedLanes)!==NoLanes){// Assumes timestamps are monotonically increasing.\nexpirationTimes[index]=computeExpirationTime(lane,currentTime);}}else if(expirationTime<=currentTime){// This lane expired\nroot.expiredLanes|=lane;}lanes&=~lane;}}// This returns the highest priority pending lanes regardless of whether they\n// are suspended.\nfunction getHighestPriorityPendingLanes(root){return getHighestPriorityLanes(root.pendingLanes);}function getLanesToRetrySynchronouslyOnError(root){var everythingButOffscreen=root.pendingLanes&~OffscreenLane;if(everythingButOffscreen!==NoLanes){return everythingButOffscreen;}if(everythingButOffscreen&OffscreenLane){return OffscreenLane;}return NoLanes;}function includesSyncLane(lanes){return(lanes&SyncLane)!==NoLanes;}function includesNonIdleWork(lanes){return(lanes&NonIdleLanes)!==NoLanes;}function includesOnlyRetries(lanes){return(lanes&RetryLanes)===lanes;}function includesOnlyNonUrgentLanes(lanes){var UrgentLanes=SyncLane|InputContinuousLane|DefaultLane;return(lanes&UrgentLanes)===NoLanes;}function includesOnlyTransitions(lanes){return(lanes&TransitionLanes)===lanes;}function includesBlockingLane(root,lanes){var SyncDefaultLanes=InputContinuousHydrationLane|InputContinuousLane|DefaultHydrationLane|DefaultLane;return(lanes&SyncDefaultLanes)!==NoLanes;}function includesExpiredLane(root,lanes){// This is a separate check from includesBlockingLane because a lane can\n// expire after a render has already started.\nreturn(lanes&root.expiredLanes)!==NoLanes;}function isTransitionLane(lane){return(lane&TransitionLanes)!==NoLanes;}function claimNextTransitionLane(){// Cycle through the lanes, assigning each new transition to the next lane.\n// In most cases, this means every transition gets its own lane, until we\n// run out of lanes and cycle back to the beginning.\nvar lane=nextTransitionLane;nextTransitionLane<<=1;if((nextTransitionLane&TransitionLanes)===NoLanes){nextTransitionLane=TransitionLane1;}return lane;}function claimNextRetryLane(){var lane=nextRetryLane;nextRetryLane<<=1;if((nextRetryLane&RetryLanes)===NoLanes){nextRetryLane=RetryLane1;}return lane;}function getHighestPriorityLane(lanes){return lanes&-lanes;}function pickArbitraryLane(lanes){// This wrapper function gets inlined. Only exists so to communicate that it\n// doesn't matter which bit is selected; you can pick any bit without\n// affecting the algorithms where its used. Here I'm using\n// getHighestPriorityLane because it requires the fewest operations.\nreturn getHighestPriorityLane(lanes);}function pickArbitraryLaneIndex(lanes){return 31-clz32(lanes);}function laneToIndex(lane){return pickArbitraryLaneIndex(lane);}function includesSomeLane(a,b){return(a&b)!==NoLanes;}function isSubsetOfLanes(set,subset){return(set&subset)===subset;}function mergeLanes(a,b){return a|b;}function removeLanes(set,subset){return set&~subset;}function intersectLanes(a,b){return a&b;}// Seems redundant, but it changes the type from a single lane (used for\n// updates) to a group of lanes (used for flushing work).\nfunction laneToLanes(lane){return lane;}function higherPriorityLane(a,b){// This works because the bit ranges decrease in priority as you go left.\nreturn a!==NoLane&&a<b?a:b;}function createLaneMap(initial){// Intentionally pushing one by one.\n// https://v8.dev/blog/elements-kinds#avoid-creating-holes\nvar laneMap=[];for(var i=0;i<TotalLanes;i++){laneMap.push(initial);}return laneMap;}function markRootUpdated(root,updateLane,eventTime){root.pendingLanes|=updateLane;// If there are any suspended transitions, it's possible this new update\n// could unblock them. Clear the suspended lanes so that we can try rendering\n// them again.\n//\n// TODO: We really only need to unsuspend only lanes that are in the\n// `subtreeLanes` of the updated fiber, or the update lanes of the return\n// path. This would exclude suspended updates in an unrelated sibling tree,\n// since there's no way for this update to unblock it.\n//\n// We don't do this if the incoming update is idle, because we never process\n// idle updates until after all the regular updates have finished; there's no\n// way it could unblock a transition.\nif(updateLane!==IdleLane){root.suspendedLanes=NoLanes;root.pingedLanes=NoLanes;}var eventTimes=root.eventTimes;var index=laneToIndex(updateLane);// We can always overwrite an existing timestamp because we prefer the most\n// recent event, and we assume time is monotonically increasing.\neventTimes[index]=eventTime;}function markRootSuspended(root,suspendedLanes){root.suspendedLanes|=suspendedLanes;root.pingedLanes&=~suspendedLanes;// The suspended lanes are no longer CPU-bound. Clear their expiration times.\nvar expirationTimes=root.expirationTimes;var lanes=suspendedLanes;while(lanes>0){var index=pickArbitraryLaneIndex(lanes);var lane=1<<index;expirationTimes[index]=NoTimestamp;lanes&=~lane;}}function markRootPinged(root,pingedLanes,eventTime){root.pingedLanes|=root.suspendedLanes&pingedLanes;}function markRootFinished(root,remainingLanes){var noLongerPendingLanes=root.pendingLanes&~remainingLanes;root.pendingLanes=remainingLanes;// Let's try everything again\nroot.suspendedLanes=NoLanes;root.pingedLanes=NoLanes;root.expiredLanes&=remainingLanes;root.mutableReadLanes&=remainingLanes;root.entangledLanes&=remainingLanes;var entanglements=root.entanglements;var eventTimes=root.eventTimes;var expirationTimes=root.expirationTimes;// Clear the lanes that no longer have pending work\nvar lanes=noLongerPendingLanes;while(lanes>0){var index=pickArbitraryLaneIndex(lanes);var lane=1<<index;entanglements[index]=NoLanes;eventTimes[index]=NoTimestamp;expirationTimes[index]=NoTimestamp;lanes&=~lane;}}function markRootEntangled(root,entangledLanes){// In addition to entangling each of the given lanes with each other, we also\n// have to consider _transitive_ entanglements. For each lane that is already\n// entangled with *any* of the given lanes, that lane is now transitively\n// entangled with *all* the given lanes.\n//\n// Translated: If C is entangled with A, then entangling A with B also\n// entangles C with B.\n//\n// If this is hard to grasp, it might help to intentionally break this\n// function and look at the tests that fail in ReactTransition-test.js. Try\n// commenting out one of the conditions below.\nvar rootEntangledLanes=root.entangledLanes|=entangledLanes;var entanglements=root.entanglements;var lanes=rootEntangledLanes;while(lanes){var index=pickArbitraryLaneIndex(lanes);var lane=1<<index;if(// Is this one of the newly entangled lanes?\nlane&entangledLanes|// Is this lane transitively entangled with the newly entangled lanes?\nentanglements[index]&entangledLanes){entanglements[index]|=entangledLanes;}lanes&=~lane;}}function getBumpedLaneForHydration(root,renderLanes){var renderLane=getHighestPriorityLane(renderLanes);var lane;switch(renderLane){case InputContinuousLane:lane=InputContinuousHydrationLane;break;case DefaultLane:lane=DefaultHydrationLane;break;case TransitionLane1:case TransitionLane2:case TransitionLane3:case TransitionLane4:case TransitionLane5:case TransitionLane6:case TransitionLane7:case TransitionLane8:case TransitionLane9:case TransitionLane10:case TransitionLane11:case TransitionLane12:case TransitionLane13:case TransitionLane14:case TransitionLane15:case TransitionLane16:case RetryLane1:case RetryLane2:case RetryLane3:case RetryLane4:case RetryLane5:lane=TransitionHydrationLane;break;case IdleLane:lane=IdleHydrationLane;break;default:// Everything else is already either a hydration lane, or shouldn't\n// be retried at a hydration lane.\nlane=NoLane;break;}// Check if the lane we chose is suspended. If so, that indicates that we\n// already attempted and failed to hydrate at that level. Also check if we're\n// already rendering that lane, which is rare but could happen.\nif((lane&(root.suspendedLanes|renderLanes))!==NoLane){// Give up trying to hydrate and fall back to client render.\nreturn NoLane;}return lane;}function addFiberToLanesMap(root,fiber,lanes){if(!isDevToolsPresent){return;}var pendingUpdatersLaneMap=root.pendingUpdatersLaneMap;while(lanes>0){var index=laneToIndex(lanes);var lane=1<<index;var updaters=pendingUpdatersLaneMap[index];updaters.add(fiber);lanes&=~lane;}}function movePendingFibersToMemoized(root,lanes){if(!isDevToolsPresent){return;}var pendingUpdatersLaneMap=root.pendingUpdatersLaneMap;var memoizedUpdaters=root.memoizedUpdaters;while(lanes>0){var index=laneToIndex(lanes);var lane=1<<index;var updaters=pendingUpdatersLaneMap[index];if(updaters.size>0){updaters.forEach(function(fiber){var alternate=fiber.alternate;if(alternate===null||!memoizedUpdaters.has(alternate)){memoizedUpdaters.add(fiber);}});updaters.clear();}lanes&=~lane;}}function getTransitionsForLanes(root,lanes){{return null;}}var DiscreteEventPriority=SyncLane;var ContinuousEventPriority=InputContinuousLane;var DefaultEventPriority=DefaultLane;var IdleEventPriority=IdleLane;var currentUpdatePriority=NoLane;function getCurrentUpdatePriority(){return currentUpdatePriority;}function setCurrentUpdatePriority(newPriority){currentUpdatePriority=newPriority;}function runWithPriority(priority,fn){var previousPriority=currentUpdatePriority;try{currentUpdatePriority=priority;return fn();}finally{currentUpdatePriority=previousPriority;}}function higherEventPriority(a,b){return a!==0&&a<b?a:b;}function lowerEventPriority(a,b){return a===0||a>b?a:b;}function isHigherEventPriority(a,b){return a!==0&&a<b;}function lanesToEventPriority(lanes){var lane=getHighestPriorityLane(lanes);if(!isHigherEventPriority(DiscreteEventPriority,lane)){return DiscreteEventPriority;}if(!isHigherEventPriority(ContinuousEventPriority,lane)){return ContinuousEventPriority;}if(includesNonIdleWork(lane)){return DefaultEventPriority;}return IdleEventPriority;}// This is imported by the event replaying implementation in React DOM. It's\n// in a separate file to break a circular dependency between the renderer and\n// the reconciler.\nfunction isRootDehydrated(root){var currentState=root.current.memoizedState;return currentState.isDehydrated;}var _attemptSynchronousHydration;function setAttemptSynchronousHydration(fn){_attemptSynchronousHydration=fn;}function attemptSynchronousHydration(fiber){_attemptSynchronousHydration(fiber);}var attemptContinuousHydration;function setAttemptContinuousHydration(fn){attemptContinuousHydration=fn;}var attemptHydrationAtCurrentPriority;function setAttemptHydrationAtCurrentPriority(fn){attemptHydrationAtCurrentPriority=fn;}var getCurrentUpdatePriority$1;function setGetCurrentUpdatePriority(fn){getCurrentUpdatePriority$1=fn;}var attemptHydrationAtPriority;function setAttemptHydrationAtPriority(fn){attemptHydrationAtPriority=fn;}// TODO: Upgrade this definition once we're on a newer version of Flow that\n// has this definition built-in.\nvar hasScheduledReplayAttempt=false;// The queue of discrete events to be replayed.\nvar queuedDiscreteEvents=[];// Indicates if any continuous event targets are non-null for early bailout.\n// if the last target was dehydrated.\nvar queuedFocus=null;var queuedDrag=null;var queuedMouse=null;// For pointer events there can be one latest event per pointerId.\nvar queuedPointers=new Map();var queuedPointerCaptures=new Map();// We could consider replaying selectionchange and touchmoves too.\nvar queuedExplicitHydrationTargets=[];var discreteReplayableEvents=['mousedown','mouseup','touchcancel','touchend','touchstart','auxclick','dblclick','pointercancel','pointerdown','pointerup','dragend','dragstart','drop','compositionend','compositionstart','keydown','keypress','keyup','input','textInput',// Intentionally camelCase\n'copy','cut','paste','click','change','contextmenu','reset','submit'];function isDiscreteEventThatRequiresHydration(eventType){return discreteReplayableEvents.indexOf(eventType)>-1;}function createQueuedReplayableEvent(blockedOn,domEventName,eventSystemFlags,targetContainer,nativeEvent){return{blockedOn:blockedOn,domEventName:domEventName,eventSystemFlags:eventSystemFlags,nativeEvent:nativeEvent,targetContainers:[targetContainer]};}function clearIfContinuousEvent(domEventName,nativeEvent){switch(domEventName){case'focusin':case'focusout':queuedFocus=null;break;case'dragenter':case'dragleave':queuedDrag=null;break;case'mouseover':case'mouseout':queuedMouse=null;break;case'pointerover':case'pointerout':{var pointerId=nativeEvent.pointerId;queuedPointers.delete(pointerId);break;}case'gotpointercapture':case'lostpointercapture':{var _pointerId=nativeEvent.pointerId;queuedPointerCaptures.delete(_pointerId);break;}}}function accumulateOrCreateContinuousQueuedReplayableEvent(existingQueuedEvent,blockedOn,domEventName,eventSystemFlags,targetContainer,nativeEvent){if(existingQueuedEvent===null||existingQueuedEvent.nativeEvent!==nativeEvent){var queuedEvent=createQueuedReplayableEvent(blockedOn,domEventName,eventSystemFlags,targetContainer,nativeEvent);if(blockedOn!==null){var _fiber2=getInstanceFromNode(blockedOn);if(_fiber2!==null){// Attempt to increase the priority of this target.\nattemptContinuousHydration(_fiber2);}}return queuedEvent;}// If we have already queued this exact event, then it's because\n// the different event systems have different DOM event listeners.\n// We can accumulate the flags, and the targetContainers, and\n// store a single event to be replayed.\nexistingQueuedEvent.eventSystemFlags|=eventSystemFlags;var targetContainers=existingQueuedEvent.targetContainers;if(targetContainer!==null&&targetContainers.indexOf(targetContainer)===-1){targetContainers.push(targetContainer);}return existingQueuedEvent;}function queueIfContinuousEvent(blockedOn,domEventName,eventSystemFlags,targetContainer,nativeEvent){// These set relatedTarget to null because the replayed event will be treated as if we\n// moved from outside the window (no target) onto the target once it hydrates.\n// Instead of mutating we could clone the event.\nswitch(domEventName){case'focusin':{var focusEvent=nativeEvent;queuedFocus=accumulateOrCreateContinuousQueuedReplayableEvent(queuedFocus,blockedOn,domEventName,eventSystemFlags,targetContainer,focusEvent);return true;}case'dragenter':{var dragEvent=nativeEvent;queuedDrag=accumulateOrCreateContinuousQueuedReplayableEvent(queuedDrag,blockedOn,domEventName,eventSystemFlags,targetContainer,dragEvent);return true;}case'mouseover':{var mouseEvent=nativeEvent;queuedMouse=accumulateOrCreateContinuousQueuedReplayableEvent(queuedMouse,blockedOn,domEventName,eventSystemFlags,targetContainer,mouseEvent);return true;}case'pointerover':{var pointerEvent=nativeEvent;var pointerId=pointerEvent.pointerId;queuedPointers.set(pointerId,accumulateOrCreateContinuousQueuedReplayableEvent(queuedPointers.get(pointerId)||null,blockedOn,domEventName,eventSystemFlags,targetContainer,pointerEvent));return true;}case'gotpointercapture':{var _pointerEvent=nativeEvent;var _pointerId2=_pointerEvent.pointerId;queuedPointerCaptures.set(_pointerId2,accumulateOrCreateContinuousQueuedReplayableEvent(queuedPointerCaptures.get(_pointerId2)||null,blockedOn,domEventName,eventSystemFlags,targetContainer,_pointerEvent));return true;}}return false;}// Check if this target is unblocked. Returns true if it's unblocked.\nfunction attemptExplicitHydrationTarget(queuedTarget){// TODO: This function shares a lot of logic with findInstanceBlockingEvent.\n// Try to unify them. It's a bit tricky since it would require two return\n// values.\nvar targetInst=getClosestInstanceFromNode(queuedTarget.target);if(targetInst!==null){var nearestMounted=getNearestMountedFiber(targetInst);if(nearestMounted!==null){var tag=nearestMounted.tag;if(tag===SuspenseComponent){var instance=getSuspenseInstanceFromFiber(nearestMounted);if(instance!==null){// We're blocked on hydrating this boundary.\n// Increase its priority.\nqueuedTarget.blockedOn=instance;attemptHydrationAtPriority(queuedTarget.priority,function(){attemptHydrationAtCurrentPriority(nearestMounted);});return;}}else if(tag===HostRoot){var root=nearestMounted.stateNode;if(isRootDehydrated(root)){queuedTarget.blockedOn=getContainerFromFiber(nearestMounted);// We don't currently have a way to increase the priority of\n// a root other than sync.\nreturn;}}}}queuedTarget.blockedOn=null;}function queueExplicitHydrationTarget(target){// TODO: This will read the priority if it's dispatched by the React\n// event system but not native events. Should read window.event.type, like\n// we do for updates (getCurrentEventPriority).\nvar updatePriority=getCurrentUpdatePriority$1();var queuedTarget={blockedOn:null,target:target,priority:updatePriority};var i=0;for(;i<queuedExplicitHydrationTargets.length;i++){// Stop once we hit the first target with lower priority than\nif(!isHigherEventPriority(updatePriority,queuedExplicitHydrationTargets[i].priority)){break;}}queuedExplicitHydrationTargets.splice(i,0,queuedTarget);if(i===0){attemptExplicitHydrationTarget(queuedTarget);}}function attemptReplayContinuousQueuedEvent(queuedEvent){if(queuedEvent.blockedOn!==null){return false;}var targetContainers=queuedEvent.targetContainers;while(targetContainers.length>0){var targetContainer=targetContainers[0];var nextBlockedOn=findInstanceBlockingEvent(queuedEvent.domEventName,queuedEvent.eventSystemFlags,targetContainer,queuedEvent.nativeEvent);if(nextBlockedOn===null){{var nativeEvent=queuedEvent.nativeEvent;var nativeEventClone=new nativeEvent.constructor(nativeEvent.type,nativeEvent);setReplayingEvent(nativeEventClone);nativeEvent.target.dispatchEvent(nativeEventClone);resetReplayingEvent();}}else{// We're still blocked. Try again later.\nvar _fiber3=getInstanceFromNode(nextBlockedOn);if(_fiber3!==null){attemptContinuousHydration(_fiber3);}queuedEvent.blockedOn=nextBlockedOn;return false;}// This target container was successfully dispatched. Try the next.\ntargetContainers.shift();}return true;}function attemptReplayContinuousQueuedEventInMap(queuedEvent,key,map){if(attemptReplayContinuousQueuedEvent(queuedEvent)){map.delete(key);}}function replayUnblockedEvents(){hasScheduledReplayAttempt=false;if(queuedFocus!==null&&attemptReplayContinuousQueuedEvent(queuedFocus)){queuedFocus=null;}if(queuedDrag!==null&&attemptReplayContinuousQueuedEvent(queuedDrag)){queuedDrag=null;}if(queuedMouse!==null&&attemptReplayContinuousQueuedEvent(queuedMouse)){queuedMouse=null;}queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);}function scheduleCallbackIfUnblocked(queuedEvent,unblocked){if(queuedEvent.blockedOn===unblocked){queuedEvent.blockedOn=null;if(!hasScheduledReplayAttempt){hasScheduledReplayAttempt=true;// Schedule a callback to attempt replaying as many events as are\n// now unblocked. This first might not actually be unblocked yet.\n// We could check it early to avoid scheduling an unnecessary callback.\nScheduler.unstable_scheduleCallback(Scheduler.unstable_NormalPriority,replayUnblockedEvents);}}}function retryIfBlockedOn(unblocked){// Mark anything that was blocked on this as no longer blocked\n// and eligible for a replay.\nif(queuedDiscreteEvents.length>0){scheduleCallbackIfUnblocked(queuedDiscreteEvents[0],unblocked);// This is a exponential search for each boundary that commits. I think it's\n// worth it because we expect very few discrete events to queue up and once\n// we are actually fully unblocked it will be fast to replay them.\nfor(var i=1;i<queuedDiscreteEvents.length;i++){var queuedEvent=queuedDiscreteEvents[i];if(queuedEvent.blockedOn===unblocked){queuedEvent.blockedOn=null;}}}if(queuedFocus!==null){scheduleCallbackIfUnblocked(queuedFocus,unblocked);}if(queuedDrag!==null){scheduleCallbackIfUnblocked(queuedDrag,unblocked);}if(queuedMouse!==null){scheduleCallbackIfUnblocked(queuedMouse,unblocked);}var unblock=function(queuedEvent){return scheduleCallbackIfUnblocked(queuedEvent,unblocked);};queuedPointers.forEach(unblock);queuedPointerCaptures.forEach(unblock);for(var _i=0;_i<queuedExplicitHydrationTargets.length;_i++){var queuedTarget=queuedExplicitHydrationTargets[_i];if(queuedTarget.blockedOn===unblocked){queuedTarget.blockedOn=null;}}while(queuedExplicitHydrationTargets.length>0){var nextExplicitTarget=queuedExplicitHydrationTargets[0];if(nextExplicitTarget.blockedOn!==null){// We're still blocked.\nbreak;}else{attemptExplicitHydrationTarget(nextExplicitTarget);if(nextExplicitTarget.blockedOn===null){// We're unblocked.\nqueuedExplicitHydrationTargets.shift();}}}}var ReactCurrentBatchConfig=ReactSharedInternals.ReactCurrentBatchConfig;// TODO: can we stop exporting these?\nvar _enabled=true;// This is exported in FB builds for use by legacy FB layer infra.\n// We'd like to remove this but it's not clear if this is safe.\nfunction setEnabled(enabled){_enabled=!!enabled;}function isEnabled(){return _enabled;}function createEventListenerWrapperWithPriority(targetContainer,domEventName,eventSystemFlags){var eventPriority=getEventPriority(domEventName);var listenerWrapper;switch(eventPriority){case DiscreteEventPriority:listenerWrapper=dispatchDiscreteEvent;break;case ContinuousEventPriority:listenerWrapper=dispatchContinuousEvent;break;case DefaultEventPriority:default:listenerWrapper=dispatchEvent;break;}return listenerWrapper.bind(null,domEventName,eventSystemFlags,targetContainer);}function dispatchDiscreteEvent(domEventName,eventSystemFlags,container,nativeEvent){var previousPriority=getCurrentUpdatePriority();var prevTransition=ReactCurrentBatchConfig.transition;ReactCurrentBatchConfig.transition=null;try{setCurrentUpdatePriority(DiscreteEventPriority);dispatchEvent(domEventName,eventSystemFlags,container,nativeEvent);}finally{setCurrentUpdatePriority(previousPriority);ReactCurrentBatchConfig.transition=prevTransition;}}function dispatchContinuousEvent(domEventName,eventSystemFlags,container,nativeEvent){var previousPriority=getCurrentUpdatePriority();var prevTransition=ReactCurrentBatchConfig.transition;ReactCurrentBatchConfig.transition=null;try{setCurrentUpdatePriority(ContinuousEventPriority);dispatchEvent(domEventName,eventSystemFlags,container,nativeEvent);}finally{setCurrentUpdatePriority(previousPriority);ReactCurrentBatchConfig.transition=prevTransition;}}function dispatchEvent(domEventName,eventSystemFlags,targetContainer,nativeEvent){if(!_enabled){return;}{dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay(domEventName,eventSystemFlags,targetContainer,nativeEvent);}}function dispatchEventWithEnableCapturePhaseSelectiveHydrationWithoutDiscreteEventReplay(domEventName,eventSystemFlags,targetContainer,nativeEvent){var blockedOn=findInstanceBlockingEvent(domEventName,eventSystemFlags,targetContainer,nativeEvent);if(blockedOn===null){dispatchEventForPluginEventSystem(domEventName,eventSystemFlags,nativeEvent,return_targetInst,targetContainer);clearIfContinuousEvent(domEventName,nativeEvent);return;}if(queueIfContinuousEvent(blockedOn,domEventName,eventSystemFlags,targetContainer,nativeEvent)){nativeEvent.stopPropagation();return;}// We need to clear only if we didn't queue because\n// queueing is accumulative.\nclearIfContinuousEvent(domEventName,nativeEvent);if(eventSystemFlags&IS_CAPTURE_PHASE&&isDiscreteEventThatRequiresHydration(domEventName)){while(blockedOn!==null){var fiber=getInstanceFromNode(blockedOn);if(fiber!==null){attemptSynchronousHydration(fiber);}var nextBlockedOn=findInstanceBlockingEvent(domEventName,eventSystemFlags,targetContainer,nativeEvent);if(nextBlockedOn===null){dispatchEventForPluginEventSystem(domEventName,eventSystemFlags,nativeEvent,return_targetInst,targetContainer);}if(nextBlockedOn===blockedOn){break;}blockedOn=nextBlockedOn;}if(blockedOn!==null){nativeEvent.stopPropagation();}return;}// This is not replayable so we'll invoke it but without a target,\n// in case the event system needs to trace it.\ndispatchEventForPluginEventSystem(domEventName,eventSystemFlags,nativeEvent,null,targetContainer);}var return_targetInst=null;// Returns a SuspenseInstance or Container if it's blocked.\n// The return_targetInst field above is conceptually part of the return value.\nfunction findInstanceBlockingEvent(domEventName,eventSystemFlags,targetContainer,nativeEvent){// TODO: Warn if _enabled is false.\nreturn_targetInst=null;var nativeEventTarget=getEventTarget(nativeEvent);var targetInst=getClosestInstanceFromNode(nativeEventTarget);if(targetInst!==null){var nearestMounted=getNearestMountedFiber(targetInst);if(nearestMounted===null){// This tree has been unmounted already. Dispatch without a target.\ntargetInst=null;}else{var tag=nearestMounted.tag;if(tag===SuspenseComponent){var instance=getSuspenseInstanceFromFiber(nearestMounted);if(instance!==null){// Queue the event to be replayed later. Abort dispatching since we\n// don't want this event dispatched twice through the event system.\n// TODO: If this is the first discrete event in the queue. Schedule an increased\n// priority for this boundary.\nreturn instance;}// This shouldn't happen, something went wrong but to avoid blocking\n// the whole system, dispatch the event without a target.\n// TODO: Warn.\ntargetInst=null;}else if(tag===HostRoot){var root=nearestMounted.stateNode;if(isRootDehydrated(root)){// If this happens during a replay something went wrong and it might block\n// the whole system.\nreturn getContainerFromFiber(nearestMounted);}targetInst=null;}else if(nearestMounted!==targetInst){// If we get an event (ex: img onload) before committing that\n// component's mount, ignore it for now (that is, treat it as if it was an\n// event on a non-React tree). We might also consider queueing events and\n// dispatching them after the mount.\ntargetInst=null;}}}return_targetInst=targetInst;// We're not blocked on anything.\nreturn null;}function getEventPriority(domEventName){switch(domEventName){// Used by SimpleEventPlugin:\ncase'cancel':case'click':case'close':case'contextmenu':case'copy':case'cut':case'auxclick':case'dblclick':case'dragend':case'dragstart':case'drop':case'focusin':case'focusout':case'input':case'invalid':case'keydown':case'keypress':case'keyup':case'mousedown':case'mouseup':case'paste':case'pause':case'play':case'pointercancel':case'pointerdown':case'pointerup':case'ratechange':case'reset':case'resize':case'seeked':case'submit':case'touchcancel':case'touchend':case'touchstart':case'volumechange':// Used by polyfills:\n// eslint-disable-next-line no-fallthrough\ncase'change':case'selectionchange':case'textInput':case'compositionstart':case'compositionend':case'compositionupdate':// Only enableCreateEventHandleAPI:\n// eslint-disable-next-line no-fallthrough\ncase'beforeblur':case'afterblur':// Not used by React but could be by user code:\n// eslint-disable-next-line no-fallthrough\ncase'beforeinput':case'blur':case'fullscreenchange':case'focus':case'hashchange':case'popstate':case'select':case'selectstart':return DiscreteEventPriority;case'drag':case'dragenter':case'dragexit':case'dragleave':case'dragover':case'mousemove':case'mouseout':case'mouseover':case'pointermove':case'pointerout':case'pointerover':case'scroll':case'toggle':case'touchmove':case'wheel':// Not used by React but could be by user code:\n// eslint-disable-next-line no-fallthrough\ncase'mouseenter':case'mouseleave':case'pointerenter':case'pointerleave':return ContinuousEventPriority;case'message':{// We might be in the Scheduler callback.\n// Eventually this mechanism will be replaced by a check\n// of the current priority on the native scheduler.\nvar schedulerPriority=getCurrentPriorityLevel();switch(schedulerPriority){case ImmediatePriority:return DiscreteEventPriority;case UserBlockingPriority:return ContinuousEventPriority;case NormalPriority:case LowPriority:// TODO: Handle LowSchedulerPriority, somehow. Maybe the same lane as hydration.\nreturn DefaultEventPriority;case IdlePriority:return IdleEventPriority;default:return DefaultEventPriority;}}default:return DefaultEventPriority;}}function addEventBubbleListener(target,eventType,listener){target.addEventListener(eventType,listener,false);return listener;}function addEventCaptureListener(target,eventType,listener){target.addEventListener(eventType,listener,true);return listener;}function addEventCaptureListenerWithPassiveFlag(target,eventType,listener,passive){target.addEventListener(eventType,listener,{capture:true,passive:passive});return listener;}function addEventBubbleListenerWithPassiveFlag(target,eventType,listener,passive){target.addEventListener(eventType,listener,{passive:passive});return listener;}/**\n * These variables store information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n *\n */var root=null;var startText=null;var fallbackText=null;function initialize(nativeEventTarget){root=nativeEventTarget;startText=getText();return true;}function reset(){root=null;startText=null;fallbackText=null;}function getData(){if(fallbackText){return fallbackText;}var start;var startValue=startText;var startLength=startValue.length;var end;var endValue=getText();var endLength=endValue.length;for(start=0;start<startLength;start++){if(startValue[start]!==endValue[start]){break;}}var minEnd=startLength-start;for(end=1;end<=minEnd;end++){if(startValue[startLength-end]!==endValue[endLength-end]){break;}}var sliceTail=end>1?1-end:undefined;fallbackText=endValue.slice(start,sliceTail);return fallbackText;}function getText(){if('value'in root){return root.value;}return root.textContent;}/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */function getEventCharCode(nativeEvent){var charCode;var keyCode=nativeEvent.keyCode;if('charCode'in nativeEvent){charCode=nativeEvent.charCode;// FF does not set `charCode` for the Enter-key, check against `keyCode`.\nif(charCode===0&&keyCode===13){charCode=13;}}else{// IE8 does not implement `charCode`, but `keyCode` has the correct value.\ncharCode=keyCode;}// IE and Edge (on Windows) and Chrome / Safari (on Windows and Linux)\n// report Enter as charCode 10 when ctrl is pressed.\nif(charCode===10){charCode=13;}// Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n// Must not discard the (non-)printable Enter-key.\nif(charCode>=32||charCode===13){return charCode;}return 0;}function functionThatReturnsTrue(){return true;}function functionThatReturnsFalse(){return false;}// This is intentionally a factory so that we have different returned constructors.\n// If we had a single constructor, it would be megamorphic and engines would deopt.\nfunction createSyntheticEvent(Interface){/**\n   * Synthetic events are dispatched by event plugins, typically in response to a\n   * top-level event delegation handler.\n   *\n   * These systems should generally use pooling to reduce the frequency of garbage\n   * collection. The system should check `isPersistent` to determine whether the\n   * event should be released into the pool after being dispatched. Users that\n   * need a persisted event should invoke `persist`.\n   *\n   * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n   * normalizing browser quirks. Subclasses do not necessarily have to implement a\n   * DOM interface; custom application-specific events can also subclass this.\n   */function SyntheticBaseEvent(reactName,reactEventType,targetInst,nativeEvent,nativeEventTarget){this._reactName=reactName;this._targetInst=targetInst;this.type=reactEventType;this.nativeEvent=nativeEvent;this.target=nativeEventTarget;this.currentTarget=null;for(var _propName in Interface){if(!Interface.hasOwnProperty(_propName)){continue;}var normalize=Interface[_propName];if(normalize){this[_propName]=normalize(nativeEvent);}else{this[_propName]=nativeEvent[_propName];}}var defaultPrevented=nativeEvent.defaultPrevented!=null?nativeEvent.defaultPrevented:nativeEvent.returnValue===false;if(defaultPrevented){this.isDefaultPrevented=functionThatReturnsTrue;}else{this.isDefaultPrevented=functionThatReturnsFalse;}this.isPropagationStopped=functionThatReturnsFalse;return this;}assign(SyntheticBaseEvent.prototype,{preventDefault:function(){this.defaultPrevented=true;var event=this.nativeEvent;if(!event){return;}if(event.preventDefault){event.preventDefault();// $FlowFixMe - flow is not aware of `unknown` in IE\n}else if(typeof event.returnValue!=='unknown'){event.returnValue=false;}this.isDefaultPrevented=functionThatReturnsTrue;},stopPropagation:function(){var event=this.nativeEvent;if(!event){return;}if(event.stopPropagation){event.stopPropagation();// $FlowFixMe - flow is not aware of `unknown` in IE\n}else if(typeof event.cancelBubble!=='unknown'){// The ChangeEventPlugin registers a \"propertychange\" event for\n// IE. This event does not support bubbling or cancelling, and\n// any references to cancelBubble throw \"Member not found\".  A\n// typeof check of \"unknown\" circumvents this issue (and is also\n// IE specific).\nevent.cancelBubble=true;}this.isPropagationStopped=functionThatReturnsTrue;},/**\n     * We release all dispatched `SyntheticEvent`s after each event loop, adding\n     * them back into the pool. This allows a way to hold onto a reference that\n     * won't be added back into the pool.\n     */persist:function(){// Modern event system doesn't use pooling.\n},/**\n     * Checks if this event should be released back into the pool.\n     *\n     * @return {boolean} True if this should not be released, false otherwise.\n     */isPersistent:functionThatReturnsTrue});return SyntheticBaseEvent;}/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */var EventInterface={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(event){return event.timeStamp||Date.now();},defaultPrevented:0,isTrusted:0};var SyntheticEvent=createSyntheticEvent(EventInterface);var UIEventInterface=assign({},EventInterface,{view:0,detail:0});var SyntheticUIEvent=createSyntheticEvent(UIEventInterface);var lastMovementX;var lastMovementY;var lastMouseEvent;function updateMouseMovementPolyfillState(event){if(event!==lastMouseEvent){if(lastMouseEvent&&event.type==='mousemove'){lastMovementX=event.screenX-lastMouseEvent.screenX;lastMovementY=event.screenY-lastMouseEvent.screenY;}else{lastMovementX=0;lastMovementY=0;}lastMouseEvent=event;}}/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */var MouseEventInterface=assign({},UIEventInterface,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:getEventModifierState,button:0,buttons:0,relatedTarget:function(event){if(event.relatedTarget===undefined)return event.fromElement===event.srcElement?event.toElement:event.fromElement;return event.relatedTarget;},movementX:function(event){if('movementX'in event){return event.movementX;}updateMouseMovementPolyfillState(event);return lastMovementX;},movementY:function(event){if('movementY'in event){return event.movementY;}// Don't need to call updateMouseMovementPolyfillState() here\n// because it's guaranteed to have already run when movementX\n// was copied.\nreturn lastMovementY;}});var SyntheticMouseEvent=createSyntheticEvent(MouseEventInterface);/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */var DragEventInterface=assign({},MouseEventInterface,{dataTransfer:0});var SyntheticDragEvent=createSyntheticEvent(DragEventInterface);/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */var FocusEventInterface=assign({},UIEventInterface,{relatedTarget:0});var SyntheticFocusEvent=createSyntheticEvent(FocusEventInterface);/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */var AnimationEventInterface=assign({},EventInterface,{animationName:0,elapsedTime:0,pseudoElement:0});var SyntheticAnimationEvent=createSyntheticEvent(AnimationEventInterface);/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */var ClipboardEventInterface=assign({},EventInterface,{clipboardData:function(event){return'clipboardData'in event?event.clipboardData:window.clipboardData;}});var SyntheticClipboardEvent=createSyntheticEvent(ClipboardEventInterface);/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */var CompositionEventInterface=assign({},EventInterface,{data:0});var SyntheticCompositionEvent=createSyntheticEvent(CompositionEventInterface);/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n *      /#events-inputevents\n */// Happens to share the same list for now.\nvar SyntheticInputEvent=SyntheticCompositionEvent;/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */var normalizeKey={Esc:'Escape',Spacebar:' ',Left:'ArrowLeft',Up:'ArrowUp',Right:'ArrowRight',Down:'ArrowDown',Del:'Delete',Win:'OS',Menu:'ContextMenu',Apps:'ContextMenu',Scroll:'ScrollLock',MozPrintableKey:'Unidentified'};/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */var translateToKey={'8':'Backspace','9':'Tab','12':'Clear','13':'Enter','16':'Shift','17':'Control','18':'Alt','19':'Pause','20':'CapsLock','27':'Escape','32':' ','33':'PageUp','34':'PageDown','35':'End','36':'Home','37':'ArrowLeft','38':'ArrowUp','39':'ArrowRight','40':'ArrowDown','45':'Insert','46':'Delete','112':'F1','113':'F2','114':'F3','115':'F4','116':'F5','117':'F6','118':'F7','119':'F8','120':'F9','121':'F10','122':'F11','123':'F12','144':'NumLock','145':'ScrollLock','224':'Meta'};/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */function getEventKey(nativeEvent){if(nativeEvent.key){// Normalize inconsistent values reported by browsers due to\n// implementations of a working draft specification.\n// FireFox implements `key` but returns `MozPrintableKey` for all\n// printable characters (normalized to `Unidentified`), ignore it.\nvar key=normalizeKey[nativeEvent.key]||nativeEvent.key;if(key!=='Unidentified'){return key;}}// Browser does not implement `key`, polyfill as much of it as we can.\nif(nativeEvent.type==='keypress'){var charCode=getEventCharCode(nativeEvent);// The enter-key is technically both printable and non-printable and can\n// thus be captured by `keypress`, no other non-printable key should.\nreturn charCode===13?'Enter':String.fromCharCode(charCode);}if(nativeEvent.type==='keydown'||nativeEvent.type==='keyup'){// While user keyboard layout determines the actual meaning of each\n// `keyCode` value, almost all function keys have a universal value.\nreturn translateToKey[nativeEvent.keyCode]||'Unidentified';}return'';}/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */var modifierKeyToProp={Alt:'altKey',Control:'ctrlKey',Meta:'metaKey',Shift:'shiftKey'};// Older browsers (Safari <= 10, iOS Safari <= 10.2) do not support\n// getModifierState. If getModifierState is not supported, we map it to a set of\n// modifier keys exposed by the event. In this case, Lock-keys are not supported.\nfunction modifierStateGetter(keyArg){var syntheticEvent=this;var nativeEvent=syntheticEvent.nativeEvent;if(nativeEvent.getModifierState){return nativeEvent.getModifierState(keyArg);}var keyProp=modifierKeyToProp[keyArg];return keyProp?!!nativeEvent[keyProp]:false;}function getEventModifierState(nativeEvent){return modifierStateGetter;}/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */var KeyboardEventInterface=assign({},UIEventInterface,{key:getEventKey,code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:getEventModifierState,// Legacy Interface\ncharCode:function(event){// `charCode` is the result of a KeyPress event and represents the value of\n// the actual printable character.\n// KeyPress is deprecated, but its replacement is not yet final and not\n// implemented in any major browser. Only KeyPress has charCode.\nif(event.type==='keypress'){return getEventCharCode(event);}return 0;},keyCode:function(event){// `keyCode` is the result of a KeyDown/Up event and represents the value of\n// physical keyboard key.\n// The actual meaning of the value depends on the users' keyboard layout\n// which cannot be detected. Assuming that it is a US keyboard layout\n// provides a surprisingly accurate mapping for US and European users.\n// Due to this, it is left to the user to implement at this time.\nif(event.type==='keydown'||event.type==='keyup'){return event.keyCode;}return 0;},which:function(event){// `which` is an alias for either `keyCode` or `charCode` depending on the\n// type of the event.\nif(event.type==='keypress'){return getEventCharCode(event);}if(event.type==='keydown'||event.type==='keyup'){return event.keyCode;}return 0;}});var SyntheticKeyboardEvent=createSyntheticEvent(KeyboardEventInterface);/**\n * @interface PointerEvent\n * @see http://www.w3.org/TR/pointerevents/\n */var PointerEventInterface=assign({},MouseEventInterface,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0});var SyntheticPointerEvent=createSyntheticEvent(PointerEventInterface);/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */var TouchEventInterface=assign({},UIEventInterface,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:getEventModifierState});var SyntheticTouchEvent=createSyntheticEvent(TouchEventInterface);/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */var TransitionEventInterface=assign({},EventInterface,{propertyName:0,elapsedTime:0,pseudoElement:0});var SyntheticTransitionEvent=createSyntheticEvent(TransitionEventInterface);/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */var WheelEventInterface=assign({},MouseEventInterface,{deltaX:function(event){return'deltaX'in event?event.deltaX:// Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n'wheelDeltaX'in event?-event.wheelDeltaX:0;},deltaY:function(event){return'deltaY'in event?event.deltaY:// Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n'wheelDeltaY'in event?-event.wheelDeltaY:// Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n'wheelDelta'in event?-event.wheelDelta:0;},deltaZ:0,// Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n// notch on the scroll is always +/- 120, roughly equivalent to pixels.\n// A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n// ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\ndeltaMode:0});var SyntheticWheelEvent=createSyntheticEvent(WheelEventInterface);var END_KEYCODES=[9,13,27,32];// Tab, Return, Esc, Space\nvar START_KEYCODE=229;var canUseCompositionEvent=canUseDOM&&'CompositionEvent'in window;var documentMode=null;if(canUseDOM&&'documentMode'in document){documentMode=document.documentMode;}// Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\nvar canUseTextInputEvent=canUseDOM&&'TextEvent'in window&&!documentMode;// In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\nvar useFallbackCompositionData=canUseDOM&&(!canUseCompositionEvent||documentMode&&documentMode>8&&documentMode<=11);var SPACEBAR_CODE=32;var SPACEBAR_CHAR=String.fromCharCode(SPACEBAR_CODE);function registerEvents(){registerTwoPhaseEvent('onBeforeInput',['compositionend','keypress','textInput','paste']);registerTwoPhaseEvent('onCompositionEnd',['compositionend','focusout','keydown','keypress','keyup','mousedown']);registerTwoPhaseEvent('onCompositionStart',['compositionstart','focusout','keydown','keypress','keyup','mousedown']);registerTwoPhaseEvent('onCompositionUpdate',['compositionupdate','focusout','keydown','keypress','keyup','mousedown']);}// Track whether we've ever handled a keypress on the space key.\nvar hasSpaceKeypress=false;/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */function isKeypressCommand(nativeEvent){return(nativeEvent.ctrlKey||nativeEvent.altKey||nativeEvent.metaKey)&&// ctrlKey && altKey is equivalent to AltGr, and is not a command.\n!(nativeEvent.ctrlKey&&nativeEvent.altKey);}/**\n * Translate native top level events into event types.\n */function getCompositionEventType(domEventName){switch(domEventName){case'compositionstart':return'onCompositionStart';case'compositionend':return'onCompositionEnd';case'compositionupdate':return'onCompositionUpdate';}}/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n */function isFallbackCompositionStart(domEventName,nativeEvent){return domEventName==='keydown'&&nativeEvent.keyCode===START_KEYCODE;}/**\n * Does our fallback mode think that this event is the end of composition?\n */function isFallbackCompositionEnd(domEventName,nativeEvent){switch(domEventName){case'keyup':// Command keys insert or clear IME input.\nreturn END_KEYCODES.indexOf(nativeEvent.keyCode)!==-1;case'keydown':// Expect IME keyCode on each keydown. If we get any other\n// code we must have exited earlier.\nreturn nativeEvent.keyCode!==START_KEYCODE;case'keypress':case'mousedown':case'focusout':// Events are not possible without cancelling IME.\nreturn true;default:return false;}}/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */function getDataFromCustomEvent(nativeEvent){var detail=nativeEvent.detail;if(typeof detail==='object'&&'data'in detail){return detail.data;}return null;}/**\n * Check if a composition event was triggered by Korean IME.\n * Our fallback mode does not work well with IE's Korean IME,\n * so just use native composition events when Korean IME is used.\n * Although CompositionEvent.locale property is deprecated,\n * it is available in IE, where our fallback mode is enabled.\n *\n * @param {object} nativeEvent\n * @return {boolean}\n */function isUsingKoreanIME(nativeEvent){return nativeEvent.locale==='ko';}// Track the current IME composition status, if any.\nvar isComposing=false;/**\n * @return {?object} A SyntheticCompositionEvent.\n */function extractCompositionEvent(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget){var eventType;var fallbackData;if(canUseCompositionEvent){eventType=getCompositionEventType(domEventName);}else if(!isComposing){if(isFallbackCompositionStart(domEventName,nativeEvent)){eventType='onCompositionStart';}}else if(isFallbackCompositionEnd(domEventName,nativeEvent)){eventType='onCompositionEnd';}if(!eventType){return null;}if(useFallbackCompositionData&&!isUsingKoreanIME(nativeEvent)){// The current composition is stored statically and must not be\n// overwritten while composition continues.\nif(!isComposing&&eventType==='onCompositionStart'){isComposing=initialize(nativeEventTarget);}else if(eventType==='onCompositionEnd'){if(isComposing){fallbackData=getData();}}}var listeners=accumulateTwoPhaseListeners(targetInst,eventType);if(listeners.length>0){var event=new SyntheticCompositionEvent(eventType,domEventName,null,nativeEvent,nativeEventTarget);dispatchQueue.push({event:event,listeners:listeners});if(fallbackData){// Inject data generated from fallback path into the synthetic event.\n// This matches the property of native CompositionEventInterface.\nevent.data=fallbackData;}else{var customData=getDataFromCustomEvent(nativeEvent);if(customData!==null){event.data=customData;}}}}function getNativeBeforeInputChars(domEventName,nativeEvent){switch(domEventName){case'compositionend':return getDataFromCustomEvent(nativeEvent);case'keypress':/**\n       * If native `textInput` events are available, our goal is to make\n       * use of them. However, there is a special case: the spacebar key.\n       * In Webkit, preventing default on a spacebar `textInput` event\n       * cancels character insertion, but it *also* causes the browser\n       * to fall back to its default spacebar behavior of scrolling the\n       * page.\n       *\n       * Tracking at:\n       * https://code.google.com/p/chromium/issues/detail?id=355103\n       *\n       * To avoid this issue, use the keypress event as if no `textInput`\n       * event is available.\n       */var which=nativeEvent.which;if(which!==SPACEBAR_CODE){return null;}hasSpaceKeypress=true;return SPACEBAR_CHAR;case'textInput':// Record the characters to be added to the DOM.\nvar chars=nativeEvent.data;// If it's a spacebar character, assume that we have already handled\n// it at the keypress level and bail immediately. Android Chrome\n// doesn't give us keycodes, so we need to ignore it.\nif(chars===SPACEBAR_CHAR&&hasSpaceKeypress){return null;}return chars;default:// For other native event types, do nothing.\nreturn null;}}/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n */function getFallbackBeforeInputChars(domEventName,nativeEvent){// If we are currently composing (IME) and using a fallback to do so,\n// try to extract the composed characters from the fallback object.\n// If composition event is available, we extract a string only at\n// compositionevent, otherwise extract it at fallback events.\nif(isComposing){if(domEventName==='compositionend'||!canUseCompositionEvent&&isFallbackCompositionEnd(domEventName,nativeEvent)){var chars=getData();reset();isComposing=false;return chars;}return null;}switch(domEventName){case'paste':// If a paste event occurs after a keypress, throw out the input\n// chars. Paste events should not lead to BeforeInput events.\nreturn null;case'keypress':/**\n       * As of v27, Firefox may fire keypress events even when no character\n       * will be inserted. A few possibilities:\n       *\n       * - `which` is `0`. Arrow keys, Esc key, etc.\n       *\n       * - `which` is the pressed key code, but no char is available.\n       *   Ex: 'AltGr + d` in Polish. There is no modified character for\n       *   this key combination and no character is inserted into the\n       *   document, but FF fires the keypress for char code `100` anyway.\n       *   No `input` event will occur.\n       *\n       * - `which` is the pressed key code, but a command combination is\n       *   being used. Ex: `Cmd+C`. No character is inserted, and no\n       *   `input` event will occur.\n       */if(!isKeypressCommand(nativeEvent)){// IE fires the `keypress` event when a user types an emoji via\n// Touch keyboard of Windows.  In such a case, the `char` property\n// holds an emoji character like `\\uD83D\\uDE0A`.  Because its length\n// is 2, the property `which` does not represent an emoji correctly.\n// In such a case, we directly return the `char` property instead of\n// using `which`.\nif(nativeEvent.char&&nativeEvent.char.length>1){return nativeEvent.char;}else if(nativeEvent.which){return String.fromCharCode(nativeEvent.which);}}return null;case'compositionend':return useFallbackCompositionData&&!isUsingKoreanIME(nativeEvent)?null:nativeEvent.data;default:return null;}}/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @return {?object} A SyntheticInputEvent.\n */function extractBeforeInputEvent(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget){var chars;if(canUseTextInputEvent){chars=getNativeBeforeInputChars(domEventName,nativeEvent);}else{chars=getFallbackBeforeInputChars(domEventName,nativeEvent);}// If no characters are being inserted, no BeforeInput event should\n// be fired.\nif(!chars){return null;}var listeners=accumulateTwoPhaseListeners(targetInst,'onBeforeInput');if(listeners.length>0){var event=new SyntheticInputEvent('onBeforeInput','beforeinput',null,nativeEvent,nativeEventTarget);dispatchQueue.push({event:event,listeners:listeners});event.data=chars;}}/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */function extractEvents(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget,eventSystemFlags,targetContainer){extractCompositionEvent(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget);extractBeforeInputEvent(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget);}/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */var supportedInputTypes={color:true,date:true,datetime:true,'datetime-local':true,email:true,month:true,number:true,password:true,range:true,search:true,tel:true,text:true,time:true,url:true,week:true};function isTextInputElement(elem){var nodeName=elem&&elem.nodeName&&elem.nodeName.toLowerCase();if(nodeName==='input'){return!!supportedInputTypes[elem.type];}if(nodeName==='textarea'){return true;}return false;}/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */function isEventSupported(eventNameSuffix){if(!canUseDOM){return false;}var eventName='on'+eventNameSuffix;var isSupported=eventName in document;if(!isSupported){var element=document.createElement('div');element.setAttribute(eventName,'return;');isSupported=typeof element[eventName]==='function';}return isSupported;}function registerEvents$1(){registerTwoPhaseEvent('onChange',['change','click','focusin','focusout','input','keydown','keyup','selectionchange']);}function createAndAccumulateChangeEvent(dispatchQueue,inst,nativeEvent,target){// Flag this event loop as needing state restore.\nenqueueStateRestore(target);var listeners=accumulateTwoPhaseListeners(inst,'onChange');if(listeners.length>0){var event=new SyntheticEvent('onChange','change',null,nativeEvent,target);dispatchQueue.push({event:event,listeners:listeners});}}/**\n * For IE shims\n */var activeElement=null;var activeElementInst=null;/**\n * SECTION: handle `change` event\n */function shouldUseChangeEvent(elem){var nodeName=elem.nodeName&&elem.nodeName.toLowerCase();return nodeName==='select'||nodeName==='input'&&elem.type==='file';}function manualDispatchChangeEvent(nativeEvent){var dispatchQueue=[];createAndAccumulateChangeEvent(dispatchQueue,activeElementInst,nativeEvent,getEventTarget(nativeEvent));// If change and propertychange bubbled, we'd just bind to it like all the\n// other events and have it go through ReactBrowserEventEmitter. Since it\n// doesn't, we manually listen for the events and so we have to enqueue and\n// process the abstract event manually.\n//\n// Batching is necessary here in order to ensure that all event handlers run\n// before the next rerender (including event handlers attached to ancestor\n// elements instead of directly on the input). Without this, controlled\n// components don't work properly in conjunction with event bubbling because\n// the component is rerendered and the value reverted before all the event\n// handlers can run. See https://github.com/facebook/react/issues/708.\nbatchedUpdates(runEventInBatch,dispatchQueue);}function runEventInBatch(dispatchQueue){processDispatchQueue(dispatchQueue,0);}function getInstIfValueChanged(targetInst){var targetNode=getNodeFromInstance(targetInst);if(updateValueIfChanged(targetNode)){return targetInst;}}function getTargetInstForChangeEvent(domEventName,targetInst){if(domEventName==='change'){return targetInst;}}/**\n * SECTION: handle `input` event\n */var isInputEventSupported=false;if(canUseDOM){// IE9 claims to support the input event but fails to trigger it when\n// deleting text, so we ignore its input events.\nisInputEventSupported=isEventSupported('input')&&(!document.documentMode||document.documentMode>9);}/**\n * (For IE <=9) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */function startWatchingForValueChange(target,targetInst){activeElement=target;activeElementInst=targetInst;activeElement.attachEvent('onpropertychange',handlePropertyChange);}/**\n * (For IE <=9) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */function stopWatchingForValueChange(){if(!activeElement){return;}activeElement.detachEvent('onpropertychange',handlePropertyChange);activeElement=null;activeElementInst=null;}/**\n * (For IE <=9) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */function handlePropertyChange(nativeEvent){if(nativeEvent.propertyName!=='value'){return;}if(getInstIfValueChanged(activeElementInst)){manualDispatchChangeEvent(nativeEvent);}}function handleEventsForInputEventPolyfill(domEventName,target,targetInst){if(domEventName==='focusin'){// In IE9, propertychange fires for most input events but is buggy and\n// doesn't fire when text is deleted, but conveniently, selectionchange\n// appears to fire in all of the remaining cases so we catch those and\n// forward the event if the value has changed\n// In either case, we don't want to call the event handler if the value\n// is changed from JS so we redefine a setter for `.value` that updates\n// our activeElementValue variable, allowing us to ignore those changes\n//\n// stopWatching() should be a noop here but we call it just in case we\n// missed a blur event somehow.\nstopWatchingForValueChange();startWatchingForValueChange(target,targetInst);}else if(domEventName==='focusout'){stopWatchingForValueChange();}}// For IE8 and IE9.\nfunction getTargetInstForInputEventPolyfill(domEventName,targetInst){if(domEventName==='selectionchange'||domEventName==='keyup'||domEventName==='keydown'){// On the selectionchange event, the target is just document which isn't\n// helpful for us so just check activeElement instead.\n//\n// 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n// propertychange on the first input event after setting `value` from a\n// script and fires only keydown, keypress, keyup. Catching keyup usually\n// gets it and catching keydown lets us fire an event for the first\n// keystroke if user does a key repeat (it'll be a little delayed: right\n// before the second keystroke). Other input methods (e.g., paste) seem to\n// fire selectionchange normally.\nreturn getInstIfValueChanged(activeElementInst);}}/**\n * SECTION: handle `click` event\n */function shouldUseClickEvent(elem){// Use the `click` event to detect changes to checkbox and radio inputs.\n// This approach works across all browsers, whereas `change` does not fire\n// until `blur` in IE8.\nvar nodeName=elem.nodeName;return nodeName&&nodeName.toLowerCase()==='input'&&(elem.type==='checkbox'||elem.type==='radio');}function getTargetInstForClickEvent(domEventName,targetInst){if(domEventName==='click'){return getInstIfValueChanged(targetInst);}}function getTargetInstForInputOrChangeEvent(domEventName,targetInst){if(domEventName==='input'||domEventName==='change'){return getInstIfValueChanged(targetInst);}}function handleControlledInputBlur(node){var state=node._wrapperState;if(!state||!state.controlled||node.type!=='number'){return;}{// If controlled, assign the value attribute to the current value on blur\nsetDefaultValue(node,'number',node.value);}}/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */function extractEvents$1(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget,eventSystemFlags,targetContainer){var targetNode=targetInst?getNodeFromInstance(targetInst):window;var getTargetInstFunc,handleEventFunc;if(shouldUseChangeEvent(targetNode)){getTargetInstFunc=getTargetInstForChangeEvent;}else if(isTextInputElement(targetNode)){if(isInputEventSupported){getTargetInstFunc=getTargetInstForInputOrChangeEvent;}else{getTargetInstFunc=getTargetInstForInputEventPolyfill;handleEventFunc=handleEventsForInputEventPolyfill;}}else if(shouldUseClickEvent(targetNode)){getTargetInstFunc=getTargetInstForClickEvent;}if(getTargetInstFunc){var inst=getTargetInstFunc(domEventName,targetInst);if(inst){createAndAccumulateChangeEvent(dispatchQueue,inst,nativeEvent,nativeEventTarget);return;}}if(handleEventFunc){handleEventFunc(domEventName,targetNode,targetInst);}// When blurring, set the value attribute for number inputs\nif(domEventName==='focusout'){handleControlledInputBlur(targetNode);}}function registerEvents$2(){registerDirectEvent('onMouseEnter',['mouseout','mouseover']);registerDirectEvent('onMouseLeave',['mouseout','mouseover']);registerDirectEvent('onPointerEnter',['pointerout','pointerover']);registerDirectEvent('onPointerLeave',['pointerout','pointerover']);}/**\n * For almost every interaction we care about, there will be both a top-level\n * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n * we do not extract duplicate events. However, moving the mouse into the\n * browser from outside will not fire a `mouseout` event. In this case, we use\n * the `mouseover` top-level event.\n */function extractEvents$2(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget,eventSystemFlags,targetContainer){var isOverEvent=domEventName==='mouseover'||domEventName==='pointerover';var isOutEvent=domEventName==='mouseout'||domEventName==='pointerout';if(isOverEvent&&!isReplayingEvent(nativeEvent)){// If this is an over event with a target, we might have already dispatched\n// the event in the out event of the other target. If this is replayed,\n// then it's because we couldn't dispatch against this target previously\n// so we have to do it now instead.\nvar related=nativeEvent.relatedTarget||nativeEvent.fromElement;if(related){// If the related node is managed by React, we can assume that we have\n// already dispatched the corresponding events during its mouseout.\nif(getClosestInstanceFromNode(related)||isContainerMarkedAsRoot(related)){return;}}}if(!isOutEvent&&!isOverEvent){// Must not be a mouse or pointer in or out - ignoring.\nreturn;}var win;// TODO: why is this nullable in the types but we read from it?\nif(nativeEventTarget.window===nativeEventTarget){// `nativeEventTarget` is probably a window object.\nwin=nativeEventTarget;}else{// TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\nvar doc=nativeEventTarget.ownerDocument;if(doc){win=doc.defaultView||doc.parentWindow;}else{win=window;}}var from;var to;if(isOutEvent){var _related=nativeEvent.relatedTarget||nativeEvent.toElement;from=targetInst;to=_related?getClosestInstanceFromNode(_related):null;if(to!==null){var nearestMounted=getNearestMountedFiber(to);if(to!==nearestMounted||to.tag!==HostComponent&&to.tag!==HostText){to=null;}}}else{// Moving to a node from outside the window.\nfrom=null;to=targetInst;}if(from===to){// Nothing pertains to our managed components.\nreturn;}var SyntheticEventCtor=SyntheticMouseEvent;var leaveEventType='onMouseLeave';var enterEventType='onMouseEnter';var eventTypePrefix='mouse';if(domEventName==='pointerout'||domEventName==='pointerover'){SyntheticEventCtor=SyntheticPointerEvent;leaveEventType='onPointerLeave';enterEventType='onPointerEnter';eventTypePrefix='pointer';}var fromNode=from==null?win:getNodeFromInstance(from);var toNode=to==null?win:getNodeFromInstance(to);var leave=new SyntheticEventCtor(leaveEventType,eventTypePrefix+'leave',from,nativeEvent,nativeEventTarget);leave.target=fromNode;leave.relatedTarget=toNode;var enter=null;// We should only process this nativeEvent if we are processing\n// the first ancestor. Next time, we will ignore the event.\nvar nativeTargetInst=getClosestInstanceFromNode(nativeEventTarget);if(nativeTargetInst===targetInst){var enterEvent=new SyntheticEventCtor(enterEventType,eventTypePrefix+'enter',to,nativeEvent,nativeEventTarget);enterEvent.target=toNode;enterEvent.relatedTarget=fromNode;enter=enterEvent;}accumulateEnterLeaveTwoPhaseListeners(dispatchQueue,leave,enter,from,to);}/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */function is(x,y){return x===y&&(x!==0||1/x===1/y)||x!==x&&y!==y// eslint-disable-line no-self-compare\n;}var objectIs=typeof Object.is==='function'?Object.is:is;/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */function shallowEqual(objA,objB){if(objectIs(objA,objB)){return true;}if(typeof objA!=='object'||objA===null||typeof objB!=='object'||objB===null){return false;}var keysA=Object.keys(objA);var keysB=Object.keys(objB);if(keysA.length!==keysB.length){return false;}// Test for A's keys different from B.\nfor(var i=0;i<keysA.length;i++){var currentKey=keysA[i];if(!hasOwnProperty.call(objB,currentKey)||!objectIs(objA[currentKey],objB[currentKey])){return false;}}return true;}/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */function getLeafNode(node){while(node&&node.firstChild){node=node.firstChild;}return node;}/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */function getSiblingNode(node){while(node){if(node.nextSibling){return node.nextSibling;}node=node.parentNode;}}/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */function getNodeForCharacterOffset(root,offset){var node=getLeafNode(root);var nodeStart=0;var nodeEnd=0;while(node){if(node.nodeType===TEXT_NODE){nodeEnd=nodeStart+node.textContent.length;if(nodeStart<=offset&&nodeEnd>=offset){return{node:node,offset:offset-nodeStart};}nodeStart=nodeEnd;}node=getLeafNode(getSiblingNode(node));}}/**\n * @param {DOMElement} outerNode\n * @return {?object}\n */function getOffsets(outerNode){var ownerDocument=outerNode.ownerDocument;var win=ownerDocument&&ownerDocument.defaultView||window;var selection=win.getSelection&&win.getSelection();if(!selection||selection.rangeCount===0){return null;}var anchorNode=selection.anchorNode,anchorOffset=selection.anchorOffset,focusNode=selection.focusNode,focusOffset=selection.focusOffset;// In Firefox, anchorNode and focusNode can be \"anonymous divs\", e.g. the\n// up/down buttons on an <input type=\"number\">. Anonymous divs do not seem to\n// expose properties, triggering a \"Permission denied error\" if any of its\n// properties are accessed. The only seemingly possible way to avoid erroring\n// is to access a property that typically works for non-anonymous divs and\n// catch any error that may otherwise arise. See\n// https://bugzilla.mozilla.org/show_bug.cgi?id=208427\ntry{/* eslint-disable no-unused-expressions */anchorNode.nodeType;focusNode.nodeType;/* eslint-enable no-unused-expressions */}catch(e){return null;}return getModernOffsetsFromPoints(outerNode,anchorNode,anchorOffset,focusNode,focusOffset);}/**\n * Returns {start, end} where `start` is the character/codepoint index of\n * (anchorNode, anchorOffset) within the textContent of `outerNode`, and\n * `end` is the index of (focusNode, focusOffset).\n *\n * Returns null if you pass in garbage input but we should probably just crash.\n *\n * Exported only for testing.\n */function getModernOffsetsFromPoints(outerNode,anchorNode,anchorOffset,focusNode,focusOffset){var length=0;var start=-1;var end=-1;var indexWithinAnchor=0;var indexWithinFocus=0;var node=outerNode;var parentNode=null;outer:while(true){var next=null;while(true){if(node===anchorNode&&(anchorOffset===0||node.nodeType===TEXT_NODE)){start=length+anchorOffset;}if(node===focusNode&&(focusOffset===0||node.nodeType===TEXT_NODE)){end=length+focusOffset;}if(node.nodeType===TEXT_NODE){length+=node.nodeValue.length;}if((next=node.firstChild)===null){break;}// Moving from `node` to its first child `next`.\nparentNode=node;node=next;}while(true){if(node===outerNode){// If `outerNode` has children, this is always the second time visiting\n// it. If it has no children, this is still the first loop, and the only\n// valid selection is anchorNode and focusNode both equal to this node\n// and both offsets 0, in which case we will have handled above.\nbreak outer;}if(parentNode===anchorNode&&++indexWithinAnchor===anchorOffset){start=length;}if(parentNode===focusNode&&++indexWithinFocus===focusOffset){end=length;}if((next=node.nextSibling)!==null){break;}node=parentNode;parentNode=node.parentNode;}// Moving from `node` to its next sibling `next`.\nnode=next;}if(start===-1||end===-1){// This should never happen. (Would happen if the anchor/focus nodes aren't\n// actually inside the passed-in node.)\nreturn null;}return{start:start,end:end};}/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programmatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */function setOffsets(node,offsets){var doc=node.ownerDocument||document;var win=doc&&doc.defaultView||window;// Edge fails with \"Object expected\" in some scenarios.\n// (For instance: TinyMCE editor used in a list component that supports pasting to add more,\n// fails when pasting 100+ items)\nif(!win.getSelection){return;}var selection=win.getSelection();var length=node.textContent.length;var start=Math.min(offsets.start,length);var end=offsets.end===undefined?start:Math.min(offsets.end,length);// IE 11 uses modern selection, but doesn't support the extend method.\n// Flip backward selections, so we can set with a single range.\nif(!selection.extend&&start>end){var temp=end;end=start;start=temp;}var startMarker=getNodeForCharacterOffset(node,start);var endMarker=getNodeForCharacterOffset(node,end);if(startMarker&&endMarker){if(selection.rangeCount===1&&selection.anchorNode===startMarker.node&&selection.anchorOffset===startMarker.offset&&selection.focusNode===endMarker.node&&selection.focusOffset===endMarker.offset){return;}var range=doc.createRange();range.setStart(startMarker.node,startMarker.offset);selection.removeAllRanges();if(start>end){selection.addRange(range);selection.extend(endMarker.node,endMarker.offset);}else{range.setEnd(endMarker.node,endMarker.offset);selection.addRange(range);}}}function isTextNode(node){return node&&node.nodeType===TEXT_NODE;}function containsNode(outerNode,innerNode){if(!outerNode||!innerNode){return false;}else if(outerNode===innerNode){return true;}else if(isTextNode(outerNode)){return false;}else if(isTextNode(innerNode)){return containsNode(outerNode,innerNode.parentNode);}else if('contains'in outerNode){return outerNode.contains(innerNode);}else if(outerNode.compareDocumentPosition){return!!(outerNode.compareDocumentPosition(innerNode)&16);}else{return false;}}function isInDocument(node){return node&&node.ownerDocument&&containsNode(node.ownerDocument.documentElement,node);}function isSameOriginFrame(iframe){try{// Accessing the contentDocument of a HTMLIframeElement can cause the browser\n// to throw, e.g. if it has a cross-origin src attribute.\n// Safari will show an error in the console when the access results in \"Blocked a frame with origin\". e.g:\n// iframe.contentDocument.defaultView;\n// A safety way is to access one of the cross origin properties: Window or Location\n// Which might result in \"SecurityError\" DOM Exception and it is compatible to Safari.\n// https://html.spec.whatwg.org/multipage/browsers.html#integration-with-idl\nreturn typeof iframe.contentWindow.location.href==='string';}catch(err){return false;}}function getActiveElementDeep(){var win=window;var element=getActiveElement();while(element instanceof win.HTMLIFrameElement){if(isSameOriginFrame(element)){win=element.contentWindow;}else{return element;}element=getActiveElement(win.document);}return element;}/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n *//**\n * @hasSelectionCapabilities: we get the element types that support selection\n * from https://html.spec.whatwg.org/#do-not-apply, looking at `selectionStart`\n * and `selectionEnd` rows.\n */function hasSelectionCapabilities(elem){var nodeName=elem&&elem.nodeName&&elem.nodeName.toLowerCase();return nodeName&&(nodeName==='input'&&(elem.type==='text'||elem.type==='search'||elem.type==='tel'||elem.type==='url'||elem.type==='password')||nodeName==='textarea'||elem.contentEditable==='true');}function getSelectionInformation(){var focusedElem=getActiveElementDeep();return{focusedElem:focusedElem,selectionRange:hasSelectionCapabilities(focusedElem)?getSelection(focusedElem):null};}/**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */function restoreSelection(priorSelectionInformation){var curFocusedElem=getActiveElementDeep();var priorFocusedElem=priorSelectionInformation.focusedElem;var priorSelectionRange=priorSelectionInformation.selectionRange;if(curFocusedElem!==priorFocusedElem&&isInDocument(priorFocusedElem)){if(priorSelectionRange!==null&&hasSelectionCapabilities(priorFocusedElem)){setSelection(priorFocusedElem,priorSelectionRange);}// Focusing a node can change the scroll position, which is undesirable\nvar ancestors=[];var ancestor=priorFocusedElem;while(ancestor=ancestor.parentNode){if(ancestor.nodeType===ELEMENT_NODE){ancestors.push({element:ancestor,left:ancestor.scrollLeft,top:ancestor.scrollTop});}}if(typeof priorFocusedElem.focus==='function'){priorFocusedElem.focus();}for(var i=0;i<ancestors.length;i++){var info=ancestors[i];info.element.scrollLeft=info.left;info.element.scrollTop=info.top;}}}/**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */function getSelection(input){var selection;if('selectionStart'in input){// Modern browser with input or textarea.\nselection={start:input.selectionStart,end:input.selectionEnd};}else{// Content editable or old IE textarea.\nselection=getOffsets(input);}return selection||{start:0,end:0};}/**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input     Set selection bounds of this input or textarea\n * -@offsets   Object of same form that is returned from get*\n */function setSelection(input,offsets){var start=offsets.start;var end=offsets.end;if(end===undefined){end=start;}if('selectionStart'in input){input.selectionStart=start;input.selectionEnd=Math.min(end,input.value.length);}else{setOffsets(input,offsets);}}var skipSelectionChangeEvent=canUseDOM&&'documentMode'in document&&document.documentMode<=11;function registerEvents$3(){registerTwoPhaseEvent('onSelect',['focusout','contextmenu','dragend','focusin','keydown','keyup','mousedown','mouseup','selectionchange']);}var activeElement$1=null;var activeElementInst$1=null;var lastSelection=null;var mouseDown=false;/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n */function getSelection$1(node){if('selectionStart'in node&&hasSelectionCapabilities(node)){return{start:node.selectionStart,end:node.selectionEnd};}else{var win=node.ownerDocument&&node.ownerDocument.defaultView||window;var selection=win.getSelection();return{anchorNode:selection.anchorNode,anchorOffset:selection.anchorOffset,focusNode:selection.focusNode,focusOffset:selection.focusOffset};}}/**\n * Get document associated with the event target.\n */function getEventTargetDocument(eventTarget){return eventTarget.window===eventTarget?eventTarget.document:eventTarget.nodeType===DOCUMENT_NODE?eventTarget:eventTarget.ownerDocument;}/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @param {object} nativeEventTarget\n * @return {?SyntheticEvent}\n */function constructSelectEvent(dispatchQueue,nativeEvent,nativeEventTarget){// Ensure we have the right element, and that the user is not dragging a\n// selection (this matches native `select` event behavior). In HTML5, select\n// fires only on input and textarea thus if there's no focused element we\n// won't dispatch.\nvar doc=getEventTargetDocument(nativeEventTarget);if(mouseDown||activeElement$1==null||activeElement$1!==getActiveElement(doc)){return;}// Only fire when selection has actually changed.\nvar currentSelection=getSelection$1(activeElement$1);if(!lastSelection||!shallowEqual(lastSelection,currentSelection)){lastSelection=currentSelection;var listeners=accumulateTwoPhaseListeners(activeElementInst$1,'onSelect');if(listeners.length>0){var event=new SyntheticEvent('onSelect','select',null,nativeEvent,nativeEventTarget);dispatchQueue.push({event:event,listeners:listeners});event.target=activeElement$1;}}}/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */function extractEvents$3(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget,eventSystemFlags,targetContainer){var targetNode=targetInst?getNodeFromInstance(targetInst):window;switch(domEventName){// Track the input node that has focus.\ncase'focusin':if(isTextInputElement(targetNode)||targetNode.contentEditable==='true'){activeElement$1=targetNode;activeElementInst$1=targetInst;lastSelection=null;}break;case'focusout':activeElement$1=null;activeElementInst$1=null;lastSelection=null;break;// Don't fire the event while the user is dragging. This matches the\n// semantics of the native select event.\ncase'mousedown':mouseDown=true;break;case'contextmenu':case'mouseup':case'dragend':mouseDown=false;constructSelectEvent(dispatchQueue,nativeEvent,nativeEventTarget);break;// Chrome and IE fire non-standard event when selection is changed (and\n// sometimes when it hasn't). IE's event fires out of order with respect\n// to key and input events on deletion, so we discard it.\n//\n// Firefox doesn't support selectionchange, so check selection status\n// after each key entry. The selection changes after keydown and before\n// keyup, but we check on keydown as well in the case of holding down a\n// key, when multiple keydown events are fired but only one keyup is.\n// This is also our approach for IE handling, for the reason above.\ncase'selectionchange':if(skipSelectionChangeEvent){break;}// falls through\ncase'keydown':case'keyup':constructSelectEvent(dispatchQueue,nativeEvent,nativeEventTarget);}}/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */function makePrefixMap(styleProp,eventName){var prefixes={};prefixes[styleProp.toLowerCase()]=eventName.toLowerCase();prefixes['Webkit'+styleProp]='webkit'+eventName;prefixes['Moz'+styleProp]='moz'+eventName;return prefixes;}/**\n * A list of event names to a configurable list of vendor prefixes.\n */var vendorPrefixes={animationend:makePrefixMap('Animation','AnimationEnd'),animationiteration:makePrefixMap('Animation','AnimationIteration'),animationstart:makePrefixMap('Animation','AnimationStart'),transitionend:makePrefixMap('Transition','TransitionEnd')};/**\n * Event names that have already been detected and prefixed (if applicable).\n */var prefixedEventNames={};/**\n * Element to check for prefixes on.\n */var style={};/**\n * Bootstrap if a DOM exists.\n */if(canUseDOM){style=document.createElement('div').style;// On some platforms, in particular some releases of Android 4.x,\n// the un-prefixed \"animation\" and \"transition\" properties are defined on the\n// style object but the events that fire will still be prefixed, so we need\n// to check if the un-prefixed events are usable, and if not remove them from the map.\nif(!('AnimationEvent'in window)){delete vendorPrefixes.animationend.animation;delete vendorPrefixes.animationiteration.animation;delete vendorPrefixes.animationstart.animation;}// Same as above\nif(!('TransitionEvent'in window)){delete vendorPrefixes.transitionend.transition;}}/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */function getVendorPrefixedEventName(eventName){if(prefixedEventNames[eventName]){return prefixedEventNames[eventName];}else if(!vendorPrefixes[eventName]){return eventName;}var prefixMap=vendorPrefixes[eventName];for(var styleProp in prefixMap){if(prefixMap.hasOwnProperty(styleProp)&&styleProp in style){return prefixedEventNames[eventName]=prefixMap[styleProp];}}return eventName;}var ANIMATION_END=getVendorPrefixedEventName('animationend');var ANIMATION_ITERATION=getVendorPrefixedEventName('animationiteration');var ANIMATION_START=getVendorPrefixedEventName('animationstart');var TRANSITION_END=getVendorPrefixedEventName('transitionend');var topLevelEventsToReactNames=new Map();// NOTE: Capitalization is important in this list!\n//\n// E.g. it needs \"pointerDown\", not \"pointerdown\".\n// This is because we derive both React name (\"onPointerDown\")\n// and DOM name (\"pointerdown\") from the same list.\n//\n// Exceptions that don't match this convention are listed separately.\n//\n// prettier-ignore\nvar simpleEventPluginEvents=['abort','auxClick','cancel','canPlay','canPlayThrough','click','close','contextMenu','copy','cut','drag','dragEnd','dragEnter','dragExit','dragLeave','dragOver','dragStart','drop','durationChange','emptied','encrypted','ended','error','gotPointerCapture','input','invalid','keyDown','keyPress','keyUp','load','loadedData','loadedMetadata','loadStart','lostPointerCapture','mouseDown','mouseMove','mouseOut','mouseOver','mouseUp','paste','pause','play','playing','pointerCancel','pointerDown','pointerMove','pointerOut','pointerOver','pointerUp','progress','rateChange','reset','resize','seeked','seeking','stalled','submit','suspend','timeUpdate','touchCancel','touchEnd','touchStart','volumeChange','scroll','toggle','touchMove','waiting','wheel'];function registerSimpleEvent(domEventName,reactName){topLevelEventsToReactNames.set(domEventName,reactName);registerTwoPhaseEvent(reactName,[domEventName]);}function registerSimpleEvents(){for(var i=0;i<simpleEventPluginEvents.length;i++){var eventName=simpleEventPluginEvents[i];var domEventName=eventName.toLowerCase();var capitalizedEvent=eventName[0].toUpperCase()+eventName.slice(1);registerSimpleEvent(domEventName,'on'+capitalizedEvent);}// Special cases where event names don't match.\nregisterSimpleEvent(ANIMATION_END,'onAnimationEnd');registerSimpleEvent(ANIMATION_ITERATION,'onAnimationIteration');registerSimpleEvent(ANIMATION_START,'onAnimationStart');registerSimpleEvent('dblclick','onDoubleClick');registerSimpleEvent('focusin','onFocus');registerSimpleEvent('focusout','onBlur');registerSimpleEvent(TRANSITION_END,'onTransitionEnd');}function extractEvents$4(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget,eventSystemFlags,targetContainer){var reactName=topLevelEventsToReactNames.get(domEventName);if(reactName===undefined){return;}var SyntheticEventCtor=SyntheticEvent;var reactEventType=domEventName;switch(domEventName){case'keypress':// Firefox creates a keypress event for function keys too. This removes\n// the unwanted keypress events. Enter is however both printable and\n// non-printable. One would expect Tab to be as well (but it isn't).\nif(getEventCharCode(nativeEvent)===0){return;}/* falls through */case'keydown':case'keyup':SyntheticEventCtor=SyntheticKeyboardEvent;break;case'focusin':reactEventType='focus';SyntheticEventCtor=SyntheticFocusEvent;break;case'focusout':reactEventType='blur';SyntheticEventCtor=SyntheticFocusEvent;break;case'beforeblur':case'afterblur':SyntheticEventCtor=SyntheticFocusEvent;break;case'click':// Firefox creates a click event on right mouse clicks. This removes the\n// unwanted click events.\nif(nativeEvent.button===2){return;}/* falls through */case'auxclick':case'dblclick':case'mousedown':case'mousemove':case'mouseup':// TODO: Disabled elements should not respond to mouse events\n/* falls through */case'mouseout':case'mouseover':case'contextmenu':SyntheticEventCtor=SyntheticMouseEvent;break;case'drag':case'dragend':case'dragenter':case'dragexit':case'dragleave':case'dragover':case'dragstart':case'drop':SyntheticEventCtor=SyntheticDragEvent;break;case'touchcancel':case'touchend':case'touchmove':case'touchstart':SyntheticEventCtor=SyntheticTouchEvent;break;case ANIMATION_END:case ANIMATION_ITERATION:case ANIMATION_START:SyntheticEventCtor=SyntheticAnimationEvent;break;case TRANSITION_END:SyntheticEventCtor=SyntheticTransitionEvent;break;case'scroll':SyntheticEventCtor=SyntheticUIEvent;break;case'wheel':SyntheticEventCtor=SyntheticWheelEvent;break;case'copy':case'cut':case'paste':SyntheticEventCtor=SyntheticClipboardEvent;break;case'gotpointercapture':case'lostpointercapture':case'pointercancel':case'pointerdown':case'pointermove':case'pointerout':case'pointerover':case'pointerup':SyntheticEventCtor=SyntheticPointerEvent;break;}var inCapturePhase=(eventSystemFlags&IS_CAPTURE_PHASE)!==0;{// Some events don't bubble in the browser.\n// In the past, React has always bubbled them, but this can be surprising.\n// We're going to try aligning closer to the browser behavior by not bubbling\n// them in React either. We'll start by not bubbling onScroll, and then expand.\nvar accumulateTargetOnly=!inCapturePhase&&// TODO: ideally, we'd eventually add all events from\n// nonDelegatedEvents list in DOMPluginEventSystem.\n// Then we can remove this special list.\n// This is a breaking change that can wait until React 18.\ndomEventName==='scroll';var _listeners=accumulateSinglePhaseListeners(targetInst,reactName,nativeEvent.type,inCapturePhase,accumulateTargetOnly);if(_listeners.length>0){// Intentionally create event lazily.\nvar _event=new SyntheticEventCtor(reactName,reactEventType,null,nativeEvent,nativeEventTarget);dispatchQueue.push({event:_event,listeners:_listeners});}}}// TODO: remove top-level side effect.\nregisterSimpleEvents();registerEvents$2();registerEvents$1();registerEvents$3();registerEvents();function extractEvents$5(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget,eventSystemFlags,targetContainer){// TODO: we should remove the concept of a \"SimpleEventPlugin\".\n// This is the basic functionality of the event system. All\n// the other plugins are essentially polyfills. So the plugin\n// should probably be inlined somewhere and have its logic\n// be core the to event system. This would potentially allow\n// us to ship builds of React without the polyfilled plugins below.\nextractEvents$4(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget,eventSystemFlags);var shouldProcessPolyfillPlugins=(eventSystemFlags&SHOULD_NOT_PROCESS_POLYFILL_EVENT_PLUGINS)===0;// We don't process these events unless we are in the\n// event's native \"bubble\" phase, which means that we're\n// not in the capture phase. That's because we emulate\n// the capture phase here still. This is a trade-off,\n// because in an ideal world we would not emulate and use\n// the phases properly, like we do with the SimpleEvent\n// plugin. However, the plugins below either expect\n// emulation (EnterLeave) or use state localized to that\n// plugin (BeforeInput, Change, Select). The state in\n// these modules complicates things, as you'll essentially\n// get the case where the capture phase event might change\n// state, only for the following bubble event to come in\n// later and not trigger anything as the state now\n// invalidates the heuristics of the event plugin. We\n// could alter all these plugins to work in such ways, but\n// that might cause other unknown side-effects that we\n// can't foresee right now.\nif(shouldProcessPolyfillPlugins){extractEvents$2(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget);extractEvents$1(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget);extractEvents$3(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget);extractEvents(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget);}}// List of events that need to be individually attached to media elements.\nvar mediaEventTypes=['abort','canplay','canplaythrough','durationchange','emptied','encrypted','ended','error','loadeddata','loadedmetadata','loadstart','pause','play','playing','progress','ratechange','resize','seeked','seeking','stalled','suspend','timeupdate','volumechange','waiting'];// We should not delegate these events to the container, but rather\n// set them on the actual target element itself. This is primarily\n// because these events do not consistently bubble in the DOM.\nvar nonDelegatedEvents=new Set(['cancel','close','invalid','load','scroll','toggle'].concat(mediaEventTypes));function executeDispatch(event,listener,currentTarget){var type=event.type||'unknown-event';event.currentTarget=currentTarget;invokeGuardedCallbackAndCatchFirstError(type,listener,undefined,event);event.currentTarget=null;}function processDispatchQueueItemsInOrder(event,dispatchListeners,inCapturePhase){var previousInstance;if(inCapturePhase){for(var i=dispatchListeners.length-1;i>=0;i--){var _dispatchListeners$i=dispatchListeners[i],instance=_dispatchListeners$i.instance,currentTarget=_dispatchListeners$i.currentTarget,listener=_dispatchListeners$i.listener;if(instance!==previousInstance&&event.isPropagationStopped()){return;}executeDispatch(event,listener,currentTarget);previousInstance=instance;}}else{for(var _i=0;_i<dispatchListeners.length;_i++){var _dispatchListeners$_i=dispatchListeners[_i],_instance=_dispatchListeners$_i.instance,_currentTarget=_dispatchListeners$_i.currentTarget,_listener=_dispatchListeners$_i.listener;if(_instance!==previousInstance&&event.isPropagationStopped()){return;}executeDispatch(event,_listener,_currentTarget);previousInstance=_instance;}}}function processDispatchQueue(dispatchQueue,eventSystemFlags){var inCapturePhase=(eventSystemFlags&IS_CAPTURE_PHASE)!==0;for(var i=0;i<dispatchQueue.length;i++){var _dispatchQueue$i=dispatchQueue[i],event=_dispatchQueue$i.event,listeners=_dispatchQueue$i.listeners;processDispatchQueueItemsInOrder(event,listeners,inCapturePhase);//  event system doesn't use pooling.\n}// This would be a good time to rethrow if any of the event handlers threw.\nrethrowCaughtError();}function dispatchEventsForPlugins(domEventName,eventSystemFlags,nativeEvent,targetInst,targetContainer){var nativeEventTarget=getEventTarget(nativeEvent);var dispatchQueue=[];extractEvents$5(dispatchQueue,domEventName,targetInst,nativeEvent,nativeEventTarget,eventSystemFlags);processDispatchQueue(dispatchQueue,eventSystemFlags);}function listenToNonDelegatedEvent(domEventName,targetElement){{if(!nonDelegatedEvents.has(domEventName)){error('Did not expect a listenToNonDelegatedEvent() call for \"%s\". '+'This is a bug in React. Please file an issue.',domEventName);}}var isCapturePhaseListener=false;var listenerSet=getEventListenerSet(targetElement);var listenerSetKey=getListenerSetKey(domEventName,isCapturePhaseListener);if(!listenerSet.has(listenerSetKey)){addTrappedEventListener(targetElement,domEventName,IS_NON_DELEGATED,isCapturePhaseListener);listenerSet.add(listenerSetKey);}}function listenToNativeEvent(domEventName,isCapturePhaseListener,target){{if(nonDelegatedEvents.has(domEventName)&&!isCapturePhaseListener){error('Did not expect a listenToNativeEvent() call for \"%s\" in the bubble phase. '+'This is a bug in React. Please file an issue.',domEventName);}}var eventSystemFlags=0;if(isCapturePhaseListener){eventSystemFlags|=IS_CAPTURE_PHASE;}addTrappedEventListener(target,domEventName,eventSystemFlags,isCapturePhaseListener);}// This is only used by createEventHandle when the\nvar listeningMarker='_reactListening'+Math.random().toString(36).slice(2);function listenToAllSupportedEvents(rootContainerElement){if(!rootContainerElement[listeningMarker]){rootContainerElement[listeningMarker]=true;allNativeEvents.forEach(function(domEventName){// We handle selectionchange separately because it\n// doesn't bubble and needs to be on the document.\nif(domEventName!=='selectionchange'){if(!nonDelegatedEvents.has(domEventName)){listenToNativeEvent(domEventName,false,rootContainerElement);}listenToNativeEvent(domEventName,true,rootContainerElement);}});var ownerDocument=rootContainerElement.nodeType===DOCUMENT_NODE?rootContainerElement:rootContainerElement.ownerDocument;if(ownerDocument!==null){// The selectionchange event also needs deduplication\n// but it is attached to the document.\nif(!ownerDocument[listeningMarker]){ownerDocument[listeningMarker]=true;listenToNativeEvent('selectionchange',false,ownerDocument);}}}}function addTrappedEventListener(targetContainer,domEventName,eventSystemFlags,isCapturePhaseListener,isDeferredListenerForLegacyFBSupport){var listener=createEventListenerWrapperWithPriority(targetContainer,domEventName,eventSystemFlags);// If passive option is not supported, then the event will be\n// active and not passive.\nvar isPassiveListener=undefined;if(passiveBrowserEventsSupported){// Browsers introduced an intervention, making these events\n// passive by default on document. React doesn't bind them\n// to document anymore, but changing this now would undo\n// the performance wins from the change. So we emulate\n// the existing behavior manually on the roots now.\n// https://github.com/facebook/react/issues/19651\nif(domEventName==='touchstart'||domEventName==='touchmove'||domEventName==='wheel'){isPassiveListener=true;}}targetContainer=targetContainer;var unsubscribeListener;// When legacyFBSupport is enabled, it's for when we\nif(isCapturePhaseListener){if(isPassiveListener!==undefined){unsubscribeListener=addEventCaptureListenerWithPassiveFlag(targetContainer,domEventName,listener,isPassiveListener);}else{unsubscribeListener=addEventCaptureListener(targetContainer,domEventName,listener);}}else{if(isPassiveListener!==undefined){unsubscribeListener=addEventBubbleListenerWithPassiveFlag(targetContainer,domEventName,listener,isPassiveListener);}else{unsubscribeListener=addEventBubbleListener(targetContainer,domEventName,listener);}}}function isMatchingRootContainer(grandContainer,targetContainer){return grandContainer===targetContainer||grandContainer.nodeType===COMMENT_NODE&&grandContainer.parentNode===targetContainer;}function dispatchEventForPluginEventSystem(domEventName,eventSystemFlags,nativeEvent,targetInst,targetContainer){var ancestorInst=targetInst;if((eventSystemFlags&IS_EVENT_HANDLE_NON_MANAGED_NODE)===0&&(eventSystemFlags&IS_NON_DELEGATED)===0){var targetContainerNode=targetContainer;// If we are using the legacy FB support flag, we\nif(targetInst!==null){// The below logic attempts to work out if we need to change\n// the target fiber to a different ancestor. We had similar logic\n// in the legacy event system, except the big difference between\n// systems is that the modern event system now has an event listener\n// attached to each React Root and React Portal Root. Together,\n// the DOM nodes representing these roots are the \"rootContainer\".\n// To figure out which ancestor instance we should use, we traverse\n// up the fiber tree from the target instance and attempt to find\n// root boundaries that match that of our current \"rootContainer\".\n// If we find that \"rootContainer\", we find the parent fiber\n// sub-tree for that root and make that our ancestor instance.\nvar node=targetInst;mainLoop:while(true){if(node===null){return;}var nodeTag=node.tag;if(nodeTag===HostRoot||nodeTag===HostPortal){var container=node.stateNode.containerInfo;if(isMatchingRootContainer(container,targetContainerNode)){break;}if(nodeTag===HostPortal){// The target is a portal, but it's not the rootContainer we're looking for.\n// Normally portals handle their own events all the way down to the root.\n// So we should be able to stop now. However, we don't know if this portal\n// was part of *our* root.\nvar grandNode=node.return;while(grandNode!==null){var grandTag=grandNode.tag;if(grandTag===HostRoot||grandTag===HostPortal){var grandContainer=grandNode.stateNode.containerInfo;if(isMatchingRootContainer(grandContainer,targetContainerNode)){// This is the rootContainer we're looking for and we found it as\n// a parent of the Portal. That means we can ignore it because the\n// Portal will bubble through to us.\nreturn;}}grandNode=grandNode.return;}}// Now we need to find it's corresponding host fiber in the other\n// tree. To do this we can use getClosestInstanceFromNode, but we\n// need to validate that the fiber is a host instance, otherwise\n// we need to traverse up through the DOM till we find the correct\n// node that is from the other tree.\nwhile(container!==null){var parentNode=getClosestInstanceFromNode(container);if(parentNode===null){return;}var parentTag=parentNode.tag;if(parentTag===HostComponent||parentTag===HostText){node=ancestorInst=parentNode;continue mainLoop;}container=container.parentNode;}}node=node.return;}}}batchedUpdates(function(){return dispatchEventsForPlugins(domEventName,eventSystemFlags,nativeEvent,ancestorInst);});}function createDispatchListener(instance,listener,currentTarget){return{instance:instance,listener:listener,currentTarget:currentTarget};}function accumulateSinglePhaseListeners(targetFiber,reactName,nativeEventType,inCapturePhase,accumulateTargetOnly,nativeEvent){var captureName=reactName!==null?reactName+'Capture':null;var reactEventName=inCapturePhase?captureName:reactName;var listeners=[];var instance=targetFiber;var lastHostComponent=null;// Accumulate all instances and listeners via the target -> root path.\nwhile(instance!==null){var _instance2=instance,stateNode=_instance2.stateNode,tag=_instance2.tag;// Handle listeners that are on HostComponents (i.e. <div>)\nif(tag===HostComponent&&stateNode!==null){lastHostComponent=stateNode;// createEventHandle listeners\nif(reactEventName!==null){var listener=getListener(instance,reactEventName);if(listener!=null){listeners.push(createDispatchListener(instance,listener,lastHostComponent));}}}// If we are only accumulating events for the target, then we don't\n// continue to propagate through the React fiber tree to find other\n// listeners.\nif(accumulateTargetOnly){break;}// If we are processing the onBeforeBlur event, then we need to take\ninstance=instance.return;}return listeners;}// We should only use this function for:\n// - BeforeInputEventPlugin\n// - ChangeEventPlugin\n// - SelectEventPlugin\n// This is because we only process these plugins\n// in the bubble phase, so we need to accumulate two\n// phase event listeners (via emulation).\nfunction accumulateTwoPhaseListeners(targetFiber,reactName){var captureName=reactName+'Capture';var listeners=[];var instance=targetFiber;// Accumulate all instances and listeners via the target -> root path.\nwhile(instance!==null){var _instance3=instance,stateNode=_instance3.stateNode,tag=_instance3.tag;// Handle listeners that are on HostComponents (i.e. <div>)\nif(tag===HostComponent&&stateNode!==null){var currentTarget=stateNode;var captureListener=getListener(instance,captureName);if(captureListener!=null){listeners.unshift(createDispatchListener(instance,captureListener,currentTarget));}var bubbleListener=getListener(instance,reactName);if(bubbleListener!=null){listeners.push(createDispatchListener(instance,bubbleListener,currentTarget));}}instance=instance.return;}return listeners;}function getParent(inst){if(inst===null){return null;}do{inst=inst.return;// TODO: If this is a HostRoot we might want to bail out.\n// That is depending on if we want nested subtrees (layers) to bubble\n// events to their parent. We could also go through parentNode on the\n// host node but that wouldn't work for React Native and doesn't let us\n// do the portal feature.\n}while(inst&&inst.tag!==HostComponent);if(inst){return inst;}return null;}/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */function getLowestCommonAncestor(instA,instB){var nodeA=instA;var nodeB=instB;var depthA=0;for(var tempA=nodeA;tempA;tempA=getParent(tempA)){depthA++;}var depthB=0;for(var tempB=nodeB;tempB;tempB=getParent(tempB)){depthB++;}// If A is deeper, crawl up.\nwhile(depthA-depthB>0){nodeA=getParent(nodeA);depthA--;}// If B is deeper, crawl up.\nwhile(depthB-depthA>0){nodeB=getParent(nodeB);depthB--;}// Walk in lockstep until we find a match.\nvar depth=depthA;while(depth--){if(nodeA===nodeB||nodeB!==null&&nodeA===nodeB.alternate){return nodeA;}nodeA=getParent(nodeA);nodeB=getParent(nodeB);}return null;}function accumulateEnterLeaveListenersForEvent(dispatchQueue,event,target,common,inCapturePhase){var registrationName=event._reactName;var listeners=[];var instance=target;while(instance!==null){if(instance===common){break;}var _instance4=instance,alternate=_instance4.alternate,stateNode=_instance4.stateNode,tag=_instance4.tag;if(alternate!==null&&alternate===common){break;}if(tag===HostComponent&&stateNode!==null){var currentTarget=stateNode;if(inCapturePhase){var captureListener=getListener(instance,registrationName);if(captureListener!=null){listeners.unshift(createDispatchListener(instance,captureListener,currentTarget));}}else if(!inCapturePhase){var bubbleListener=getListener(instance,registrationName);if(bubbleListener!=null){listeners.push(createDispatchListener(instance,bubbleListener,currentTarget));}}}instance=instance.return;}if(listeners.length!==0){dispatchQueue.push({event:event,listeners:listeners});}}// We should only use this function for:\n// - EnterLeaveEventPlugin\n// This is because we only process this plugin\n// in the bubble phase, so we need to accumulate two\n// phase event listeners.\nfunction accumulateEnterLeaveTwoPhaseListeners(dispatchQueue,leaveEvent,enterEvent,from,to){var common=from&&to?getLowestCommonAncestor(from,to):null;if(from!==null){accumulateEnterLeaveListenersForEvent(dispatchQueue,leaveEvent,from,common,false);}if(to!==null&&enterEvent!==null){accumulateEnterLeaveListenersForEvent(dispatchQueue,enterEvent,to,common,true);}}function getListenerSetKey(domEventName,capture){return domEventName+\"__\"+(capture?'capture':'bubble');}var didWarnInvalidHydration=false;var DANGEROUSLY_SET_INNER_HTML='dangerouslySetInnerHTML';var SUPPRESS_CONTENT_EDITABLE_WARNING='suppressContentEditableWarning';var SUPPRESS_HYDRATION_WARNING='suppressHydrationWarning';var AUTOFOCUS='autoFocus';var CHILDREN='children';var STYLE='style';var HTML$1='__html';var warnedUnknownTags;var validatePropertiesInDevelopment;var warnForPropDifference;var warnForExtraAttributes;var warnForInvalidEventListener;var canDiffStyleForHydrationWarning;var normalizeHTML;{warnedUnknownTags={// There are working polyfills for <dialog>. Let people use it.\ndialog:true,// Electron ships a custom <webview> tag to display external web content in\n// an isolated frame and process.\n// This tag is not present in non Electron environments such as JSDom which\n// is often used for testing purposes.\n// @see https://electronjs.org/docs/api/webview-tag\nwebview:true};validatePropertiesInDevelopment=function(type,props){validateProperties(type,props);validateProperties$1(type,props);validateProperties$2(type,props,{registrationNameDependencies:registrationNameDependencies,possibleRegistrationNames:possibleRegistrationNames});};// IE 11 parses & normalizes the style attribute as opposed to other\n// browsers. It adds spaces and sorts the properties in some\n// non-alphabetical order. Handling that would require sorting CSS\n// properties in the client & server versions or applying\n// `expectedStyle` to a temporary DOM node to read its `style` attribute\n// normalized. Since it only affects IE, we're skipping style warnings\n// in that browser completely in favor of doing all that work.\n// See https://github.com/facebook/react/issues/11807\ncanDiffStyleForHydrationWarning=canUseDOM&&!document.documentMode;warnForPropDifference=function(propName,serverValue,clientValue){if(didWarnInvalidHydration){return;}var normalizedClientValue=normalizeMarkupForTextOrAttribute(clientValue);var normalizedServerValue=normalizeMarkupForTextOrAttribute(serverValue);if(normalizedServerValue===normalizedClientValue){return;}didWarnInvalidHydration=true;error('Prop `%s` did not match. Server: %s Client: %s',propName,JSON.stringify(normalizedServerValue),JSON.stringify(normalizedClientValue));};warnForExtraAttributes=function(attributeNames){if(didWarnInvalidHydration){return;}didWarnInvalidHydration=true;var names=[];attributeNames.forEach(function(name){names.push(name);});error('Extra attributes from the server: %s',names);};warnForInvalidEventListener=function(registrationName,listener){if(listener===false){error('Expected `%s` listener to be a function, instead got `false`.\\n\\n'+'If you used to conditionally omit it with %s={condition && value}, '+'pass %s={condition ? value : undefined} instead.',registrationName,registrationName,registrationName);}else{error('Expected `%s` listener to be a function, instead got a value of `%s` type.',registrationName,typeof listener);}};// Parse the HTML and read it back to normalize the HTML string so that it\n// can be used for comparison.\nnormalizeHTML=function(parent,html){// We could have created a separate document here to avoid\n// re-initializing custom elements if they exist. But this breaks\n// how <noscript> is being handled. So we use the same document.\n// See the discussion in https://github.com/facebook/react/pull/11157.\nvar testElement=parent.namespaceURI===HTML_NAMESPACE?parent.ownerDocument.createElement(parent.tagName):parent.ownerDocument.createElementNS(parent.namespaceURI,parent.tagName);testElement.innerHTML=html;return testElement.innerHTML;};}// HTML parsing normalizes CR and CRLF to LF.\n// It also can turn \\u0000 into \\uFFFD inside attributes.\n// https://www.w3.org/TR/html5/single-page.html#preprocessing-the-input-stream\n// If we have a mismatch, it might be caused by that.\n// We will still patch up in this case but not fire the warning.\nvar NORMALIZE_NEWLINES_REGEX=/\\r\\n?/g;var NORMALIZE_NULL_AND_REPLACEMENT_REGEX=/\\u0000|\\uFFFD/g;function normalizeMarkupForTextOrAttribute(markup){{checkHtmlStringCoercion(markup);}var markupString=typeof markup==='string'?markup:''+markup;return markupString.replace(NORMALIZE_NEWLINES_REGEX,'\\n').replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX,'');}function checkForUnmatchedText(serverText,clientText,isConcurrentMode,shouldWarnDev){var normalizedClientText=normalizeMarkupForTextOrAttribute(clientText);var normalizedServerText=normalizeMarkupForTextOrAttribute(serverText);if(normalizedServerText===normalizedClientText){return;}if(shouldWarnDev){{if(!didWarnInvalidHydration){didWarnInvalidHydration=true;error('Text content did not match. Server: \"%s\" Client: \"%s\"',normalizedServerText,normalizedClientText);}}}if(isConcurrentMode&&enableClientRenderFallbackOnTextMismatch){// In concurrent roots, we throw when there's a text mismatch and revert to\n// client rendering, up to the nearest Suspense boundary.\nthrow new Error('Text content does not match server-rendered HTML.');}}function getOwnerDocumentFromRootContainer(rootContainerElement){return rootContainerElement.nodeType===DOCUMENT_NODE?rootContainerElement:rootContainerElement.ownerDocument;}function noop(){}function trapClickOnNonInteractiveElement(node){// Mobile Safari does not fire properly bubble click events on\n// non-interactive elements, which means delegated click listeners do not\n// fire. The workaround for this bug involves attaching an empty click\n// listener on the target node.\n// https://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n// Just set it using the onclick property so that we don't have to manage any\n// bookkeeping for it. Not sure if we need to clear it when the listener is\n// removed.\n// TODO: Only do this for the relevant Safaris maybe?\nnode.onclick=noop;}function setInitialDOMProperties(tag,domElement,rootContainerElement,nextProps,isCustomComponentTag){for(var propKey in nextProps){if(!nextProps.hasOwnProperty(propKey)){continue;}var nextProp=nextProps[propKey];if(propKey===STYLE){{if(nextProp){// Freeze the next style object so that we can assume it won't be\n// mutated. We have already warned for this in the past.\nObject.freeze(nextProp);}}// Relies on `updateStylesByID` not mutating `styleUpdates`.\nsetValueForStyles(domElement,nextProp);}else if(propKey===DANGEROUSLY_SET_INNER_HTML){var nextHtml=nextProp?nextProp[HTML$1]:undefined;if(nextHtml!=null){setInnerHTML(domElement,nextHtml);}}else if(propKey===CHILDREN){if(typeof nextProp==='string'){// Avoid setting initial textContent when the text is empty. In IE11 setting\n// textContent on a <textarea> will cause the placeholder to not\n// show within the <textarea> until it has been focused and blurred again.\n// https://github.com/facebook/react/issues/6731#issuecomment-254874553\nvar canSetTextContent=tag!=='textarea'||nextProp!=='';if(canSetTextContent){setTextContent(domElement,nextProp);}}else if(typeof nextProp==='number'){setTextContent(domElement,''+nextProp);}}else if(propKey===SUPPRESS_CONTENT_EDITABLE_WARNING||propKey===SUPPRESS_HYDRATION_WARNING);else if(propKey===AUTOFOCUS);else if(registrationNameDependencies.hasOwnProperty(propKey)){if(nextProp!=null){if(typeof nextProp!=='function'){warnForInvalidEventListener(propKey,nextProp);}if(propKey==='onScroll'){listenToNonDelegatedEvent('scroll',domElement);}}}else if(nextProp!=null){setValueForProperty(domElement,propKey,nextProp,isCustomComponentTag);}}}function updateDOMProperties(domElement,updatePayload,wasCustomComponentTag,isCustomComponentTag){// TODO: Handle wasCustomComponentTag\nfor(var i=0;i<updatePayload.length;i+=2){var propKey=updatePayload[i];var propValue=updatePayload[i+1];if(propKey===STYLE){setValueForStyles(domElement,propValue);}else if(propKey===DANGEROUSLY_SET_INNER_HTML){setInnerHTML(domElement,propValue);}else if(propKey===CHILDREN){setTextContent(domElement,propValue);}else{setValueForProperty(domElement,propKey,propValue,isCustomComponentTag);}}}function createElement(type,props,rootContainerElement,parentNamespace){var isCustomComponentTag;// We create tags in the namespace of their parent container, except HTML\n// tags get no namespace.\nvar ownerDocument=getOwnerDocumentFromRootContainer(rootContainerElement);var domElement;var namespaceURI=parentNamespace;if(namespaceURI===HTML_NAMESPACE){namespaceURI=getIntrinsicNamespace(type);}if(namespaceURI===HTML_NAMESPACE){{isCustomComponentTag=isCustomComponent(type,props);// Should this check be gated by parent namespace? Not sure we want to\n// allow <SVG> or <mATH>.\nif(!isCustomComponentTag&&type!==type.toLowerCase()){error('<%s /> is using incorrect casing. '+'Use PascalCase for React components, '+'or lowercase for HTML elements.',type);}}if(type==='script'){// Create the script via .innerHTML so its \"parser-inserted\" flag is\n// set to true and it does not execute\nvar div=ownerDocument.createElement('div');div.innerHTML='<script><'+'/script>';// eslint-disable-line\n// This is guaranteed to yield a script element.\nvar firstChild=div.firstChild;domElement=div.removeChild(firstChild);}else if(typeof props.is==='string'){// $FlowIssue `createElement` should be updated for Web Components\ndomElement=ownerDocument.createElement(type,{is:props.is});}else{// Separate else branch instead of using `props.is || undefined` above because of a Firefox bug.\n// See discussion in https://github.com/facebook/react/pull/6896\n// and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\ndomElement=ownerDocument.createElement(type);// Normally attributes are assigned in `setInitialDOMProperties`, however the `multiple` and `size`\n// attributes on `select`s needs to be added before `option`s are inserted.\n// This prevents:\n// - a bug where the `select` does not scroll to the correct option because singular\n//  `select` elements automatically pick the first item #13222\n// - a bug where the `select` set the first item as selected despite the `size` attribute #14239\n// See https://github.com/facebook/react/issues/13222\n// and https://github.com/facebook/react/issues/14239\nif(type==='select'){var node=domElement;if(props.multiple){node.multiple=true;}else if(props.size){// Setting a size greater than 1 causes a select to behave like `multiple=true`, where\n// it is possible that no option is selected.\n//\n// This is only necessary when a select in \"single selection mode\".\nnode.size=props.size;}}}}else{domElement=ownerDocument.createElementNS(namespaceURI,type);}{if(namespaceURI===HTML_NAMESPACE){if(!isCustomComponentTag&&Object.prototype.toString.call(domElement)==='[object HTMLUnknownElement]'&&!hasOwnProperty.call(warnedUnknownTags,type)){warnedUnknownTags[type]=true;error('The tag <%s> is unrecognized in this browser. '+'If you meant to render a React component, start its name with '+'an uppercase letter.',type);}}}return domElement;}function createTextNode(text,rootContainerElement){return getOwnerDocumentFromRootContainer(rootContainerElement).createTextNode(text);}function setInitialProperties(domElement,tag,rawProps,rootContainerElement){var isCustomComponentTag=isCustomComponent(tag,rawProps);{validatePropertiesInDevelopment(tag,rawProps);}// TODO: Make sure that we check isMounted before firing any of these events.\nvar props;switch(tag){case'dialog':listenToNonDelegatedEvent('cancel',domElement);listenToNonDelegatedEvent('close',domElement);props=rawProps;break;case'iframe':case'object':case'embed':// We listen to this event in case to ensure emulated bubble\n// listeners still fire for the load event.\nlistenToNonDelegatedEvent('load',domElement);props=rawProps;break;case'video':case'audio':// We listen to these events in case to ensure emulated bubble\n// listeners still fire for all the media events.\nfor(var i=0;i<mediaEventTypes.length;i++){listenToNonDelegatedEvent(mediaEventTypes[i],domElement);}props=rawProps;break;case'source':// We listen to this event in case to ensure emulated bubble\n// listeners still fire for the error event.\nlistenToNonDelegatedEvent('error',domElement);props=rawProps;break;case'img':case'image':case'link':// We listen to these events in case to ensure emulated bubble\n// listeners still fire for error and load events.\nlistenToNonDelegatedEvent('error',domElement);listenToNonDelegatedEvent('load',domElement);props=rawProps;break;case'details':// We listen to this event in case to ensure emulated bubble\n// listeners still fire for the toggle event.\nlistenToNonDelegatedEvent('toggle',domElement);props=rawProps;break;case'input':initWrapperState(domElement,rawProps);props=getHostProps(domElement,rawProps);// We listen to this event in case to ensure emulated bubble\n// listeners still fire for the invalid event.\nlistenToNonDelegatedEvent('invalid',domElement);break;case'option':validateProps(domElement,rawProps);props=rawProps;break;case'select':initWrapperState$1(domElement,rawProps);props=getHostProps$1(domElement,rawProps);// We listen to this event in case to ensure emulated bubble\n// listeners still fire for the invalid event.\nlistenToNonDelegatedEvent('invalid',domElement);break;case'textarea':initWrapperState$2(domElement,rawProps);props=getHostProps$2(domElement,rawProps);// We listen to this event in case to ensure emulated bubble\n// listeners still fire for the invalid event.\nlistenToNonDelegatedEvent('invalid',domElement);break;default:props=rawProps;}assertValidProps(tag,props);setInitialDOMProperties(tag,domElement,rootContainerElement,props,isCustomComponentTag);switch(tag){case'input':// TODO: Make sure we check if this is still unmounted or do any clean\n// up necessary since we never stop tracking anymore.\ntrack(domElement);postMountWrapper(domElement,rawProps,false);break;case'textarea':// TODO: Make sure we check if this is still unmounted or do any clean\n// up necessary since we never stop tracking anymore.\ntrack(domElement);postMountWrapper$3(domElement);break;case'option':postMountWrapper$1(domElement,rawProps);break;case'select':postMountWrapper$2(domElement,rawProps);break;default:if(typeof props.onClick==='function'){// TODO: This cast may not be sound for SVG, MathML or custom elements.\ntrapClickOnNonInteractiveElement(domElement);}break;}}// Calculate the diff between the two objects.\nfunction diffProperties(domElement,tag,lastRawProps,nextRawProps,rootContainerElement){{validatePropertiesInDevelopment(tag,nextRawProps);}var updatePayload=null;var lastProps;var nextProps;switch(tag){case'input':lastProps=getHostProps(domElement,lastRawProps);nextProps=getHostProps(domElement,nextRawProps);updatePayload=[];break;case'select':lastProps=getHostProps$1(domElement,lastRawProps);nextProps=getHostProps$1(domElement,nextRawProps);updatePayload=[];break;case'textarea':lastProps=getHostProps$2(domElement,lastRawProps);nextProps=getHostProps$2(domElement,nextRawProps);updatePayload=[];break;default:lastProps=lastRawProps;nextProps=nextRawProps;if(typeof lastProps.onClick!=='function'&&typeof nextProps.onClick==='function'){// TODO: This cast may not be sound for SVG, MathML or custom elements.\ntrapClickOnNonInteractiveElement(domElement);}break;}assertValidProps(tag,nextProps);var propKey;var styleName;var styleUpdates=null;for(propKey in lastProps){if(nextProps.hasOwnProperty(propKey)||!lastProps.hasOwnProperty(propKey)||lastProps[propKey]==null){continue;}if(propKey===STYLE){var lastStyle=lastProps[propKey];for(styleName in lastStyle){if(lastStyle.hasOwnProperty(styleName)){if(!styleUpdates){styleUpdates={};}styleUpdates[styleName]='';}}}else if(propKey===DANGEROUSLY_SET_INNER_HTML||propKey===CHILDREN);else if(propKey===SUPPRESS_CONTENT_EDITABLE_WARNING||propKey===SUPPRESS_HYDRATION_WARNING);else if(propKey===AUTOFOCUS);else if(registrationNameDependencies.hasOwnProperty(propKey)){// This is a special case. If any listener updates we need to ensure\n// that the \"current\" fiber pointer gets updated so we need a commit\n// to update this element.\nif(!updatePayload){updatePayload=[];}}else{// For all other deleted properties we add it to the queue. We use\n// the allowed property list in the commit phase instead.\n(updatePayload=updatePayload||[]).push(propKey,null);}}for(propKey in nextProps){var nextProp=nextProps[propKey];var lastProp=lastProps!=null?lastProps[propKey]:undefined;if(!nextProps.hasOwnProperty(propKey)||nextProp===lastProp||nextProp==null&&lastProp==null){continue;}if(propKey===STYLE){{if(nextProp){// Freeze the next style object so that we can assume it won't be\n// mutated. We have already warned for this in the past.\nObject.freeze(nextProp);}}if(lastProp){// Unset styles on `lastProp` but not on `nextProp`.\nfor(styleName in lastProp){if(lastProp.hasOwnProperty(styleName)&&(!nextProp||!nextProp.hasOwnProperty(styleName))){if(!styleUpdates){styleUpdates={};}styleUpdates[styleName]='';}}// Update styles that changed since `lastProp`.\nfor(styleName in nextProp){if(nextProp.hasOwnProperty(styleName)&&lastProp[styleName]!==nextProp[styleName]){if(!styleUpdates){styleUpdates={};}styleUpdates[styleName]=nextProp[styleName];}}}else{// Relies on `updateStylesByID` not mutating `styleUpdates`.\nif(!styleUpdates){if(!updatePayload){updatePayload=[];}updatePayload.push(propKey,styleUpdates);}styleUpdates=nextProp;}}else if(propKey===DANGEROUSLY_SET_INNER_HTML){var nextHtml=nextProp?nextProp[HTML$1]:undefined;var lastHtml=lastProp?lastProp[HTML$1]:undefined;if(nextHtml!=null){if(lastHtml!==nextHtml){(updatePayload=updatePayload||[]).push(propKey,nextHtml);}}}else if(propKey===CHILDREN){if(typeof nextProp==='string'||typeof nextProp==='number'){(updatePayload=updatePayload||[]).push(propKey,''+nextProp);}}else if(propKey===SUPPRESS_CONTENT_EDITABLE_WARNING||propKey===SUPPRESS_HYDRATION_WARNING);else if(registrationNameDependencies.hasOwnProperty(propKey)){if(nextProp!=null){// We eagerly listen to this even though we haven't committed yet.\nif(typeof nextProp!=='function'){warnForInvalidEventListener(propKey,nextProp);}if(propKey==='onScroll'){listenToNonDelegatedEvent('scroll',domElement);}}if(!updatePayload&&lastProp!==nextProp){// This is a special case. If any listener updates we need to ensure\n// that the \"current\" props pointer gets updated so we need a commit\n// to update this element.\nupdatePayload=[];}}else{// For any other property we always add it to the queue and then we\n// filter it out using the allowed property list during the commit.\n(updatePayload=updatePayload||[]).push(propKey,nextProp);}}if(styleUpdates){{validateShorthandPropertyCollisionInDev(styleUpdates,nextProps[STYLE]);}(updatePayload=updatePayload||[]).push(STYLE,styleUpdates);}return updatePayload;}// Apply the diff.\nfunction updateProperties(domElement,updatePayload,tag,lastRawProps,nextRawProps){// Update checked *before* name.\n// In the middle of an update, it is possible to have multiple checked.\n// When a checked radio tries to change name, browser makes another radio's checked false.\nif(tag==='input'&&nextRawProps.type==='radio'&&nextRawProps.name!=null){updateChecked(domElement,nextRawProps);}var wasCustomComponentTag=isCustomComponent(tag,lastRawProps);var isCustomComponentTag=isCustomComponent(tag,nextRawProps);// Apply the diff.\nupdateDOMProperties(domElement,updatePayload,wasCustomComponentTag,isCustomComponentTag);// TODO: Ensure that an update gets scheduled if any of the special props\n// changed.\nswitch(tag){case'input':// Update the wrapper around inputs *after* updating props. This has to\n// happen after `updateDOMProperties`. Otherwise HTML5 input validations\n// raise warnings and prevent the new value from being assigned.\nupdateWrapper(domElement,nextRawProps);break;case'textarea':updateWrapper$1(domElement,nextRawProps);break;case'select':// <select> value update needs to occur after <option> children\n// reconciliation\npostUpdateWrapper(domElement,nextRawProps);break;}}function getPossibleStandardName(propName){{var lowerCasedName=propName.toLowerCase();if(!possibleStandardNames.hasOwnProperty(lowerCasedName)){return null;}return possibleStandardNames[lowerCasedName]||null;}}function diffHydratedProperties(domElement,tag,rawProps,parentNamespace,rootContainerElement,isConcurrentMode,shouldWarnDev){var isCustomComponentTag;var extraAttributeNames;{isCustomComponentTag=isCustomComponent(tag,rawProps);validatePropertiesInDevelopment(tag,rawProps);}// TODO: Make sure that we check isMounted before firing any of these events.\nswitch(tag){case'dialog':listenToNonDelegatedEvent('cancel',domElement);listenToNonDelegatedEvent('close',domElement);break;case'iframe':case'object':case'embed':// We listen to this event in case to ensure emulated bubble\n// listeners still fire for the load event.\nlistenToNonDelegatedEvent('load',domElement);break;case'video':case'audio':// We listen to these events in case to ensure emulated bubble\n// listeners still fire for all the media events.\nfor(var i=0;i<mediaEventTypes.length;i++){listenToNonDelegatedEvent(mediaEventTypes[i],domElement);}break;case'source':// We listen to this event in case to ensure emulated bubble\n// listeners still fire for the error event.\nlistenToNonDelegatedEvent('error',domElement);break;case'img':case'image':case'link':// We listen to these events in case to ensure emulated bubble\n// listeners still fire for error and load events.\nlistenToNonDelegatedEvent('error',domElement);listenToNonDelegatedEvent('load',domElement);break;case'details':// We listen to this event in case to ensure emulated bubble\n// listeners still fire for the toggle event.\nlistenToNonDelegatedEvent('toggle',domElement);break;case'input':initWrapperState(domElement,rawProps);// We listen to this event in case to ensure emulated bubble\n// listeners still fire for the invalid event.\nlistenToNonDelegatedEvent('invalid',domElement);break;case'option':validateProps(domElement,rawProps);break;case'select':initWrapperState$1(domElement,rawProps);// We listen to this event in case to ensure emulated bubble\n// listeners still fire for the invalid event.\nlistenToNonDelegatedEvent('invalid',domElement);break;case'textarea':initWrapperState$2(domElement,rawProps);// We listen to this event in case to ensure emulated bubble\n// listeners still fire for the invalid event.\nlistenToNonDelegatedEvent('invalid',domElement);break;}assertValidProps(tag,rawProps);{extraAttributeNames=new Set();var attributes=domElement.attributes;for(var _i=0;_i<attributes.length;_i++){var name=attributes[_i].name.toLowerCase();switch(name){// Controlled attributes are not validated\n// TODO: Only ignore them on controlled tags.\ncase'value':break;case'checked':break;case'selected':break;default:// Intentionally use the original name.\n// See discussion in https://github.com/facebook/react/pull/10676.\nextraAttributeNames.add(attributes[_i].name);}}}var updatePayload=null;for(var propKey in rawProps){if(!rawProps.hasOwnProperty(propKey)){continue;}var nextProp=rawProps[propKey];if(propKey===CHILDREN){// For text content children we compare against textContent. This\n// might match additional HTML that is hidden when we read it using\n// textContent. E.g. \"foo\" will match \"f<span>oo</span>\" but that still\n// satisfies our requirement. Our requirement is not to produce perfect\n// HTML and attributes. Ideally we should preserve structure but it's\n// ok not to if the visible content is still enough to indicate what\n// even listeners these nodes might be wired up to.\n// TODO: Warn if there is more than a single textNode as a child.\n// TODO: Should we use domElement.firstChild.nodeValue to compare?\nif(typeof nextProp==='string'){if(domElement.textContent!==nextProp){if(rawProps[SUPPRESS_HYDRATION_WARNING]!==true){checkForUnmatchedText(domElement.textContent,nextProp,isConcurrentMode,shouldWarnDev);}updatePayload=[CHILDREN,nextProp];}}else if(typeof nextProp==='number'){if(domElement.textContent!==''+nextProp){if(rawProps[SUPPRESS_HYDRATION_WARNING]!==true){checkForUnmatchedText(domElement.textContent,nextProp,isConcurrentMode,shouldWarnDev);}updatePayload=[CHILDREN,''+nextProp];}}}else if(registrationNameDependencies.hasOwnProperty(propKey)){if(nextProp!=null){if(typeof nextProp!=='function'){warnForInvalidEventListener(propKey,nextProp);}if(propKey==='onScroll'){listenToNonDelegatedEvent('scroll',domElement);}}}else if(shouldWarnDev&&true&&// Convince Flow we've calculated it (it's DEV-only in this method.)\ntypeof isCustomComponentTag==='boolean'){// Validate that the properties correspond to their expected values.\nvar serverValue=void 0;var propertyInfo=isCustomComponentTag&&enableCustomElementPropertySupport?null:getPropertyInfo(propKey);if(rawProps[SUPPRESS_HYDRATION_WARNING]===true);else if(propKey===SUPPRESS_CONTENT_EDITABLE_WARNING||propKey===SUPPRESS_HYDRATION_WARNING||// Controlled attributes are not validated\n// TODO: Only ignore them on controlled tags.\npropKey==='value'||propKey==='checked'||propKey==='selected');else if(propKey===DANGEROUSLY_SET_INNER_HTML){var serverHTML=domElement.innerHTML;var nextHtml=nextProp?nextProp[HTML$1]:undefined;if(nextHtml!=null){var expectedHTML=normalizeHTML(domElement,nextHtml);if(expectedHTML!==serverHTML){warnForPropDifference(propKey,serverHTML,expectedHTML);}}}else if(propKey===STYLE){// $FlowFixMe - Should be inferred as not undefined.\nextraAttributeNames.delete(propKey);if(canDiffStyleForHydrationWarning){var expectedStyle=createDangerousStringForStyles(nextProp);serverValue=domElement.getAttribute('style');if(expectedStyle!==serverValue){warnForPropDifference(propKey,serverValue,expectedStyle);}}}else if(isCustomComponentTag&&!enableCustomElementPropertySupport){// $FlowFixMe - Should be inferred as not undefined.\nextraAttributeNames.delete(propKey.toLowerCase());serverValue=getValueForAttribute(domElement,propKey,nextProp);if(nextProp!==serverValue){warnForPropDifference(propKey,serverValue,nextProp);}}else if(!shouldIgnoreAttribute(propKey,propertyInfo,isCustomComponentTag)&&!shouldRemoveAttribute(propKey,nextProp,propertyInfo,isCustomComponentTag)){var isMismatchDueToBadCasing=false;if(propertyInfo!==null){// $FlowFixMe - Should be inferred as not undefined.\nextraAttributeNames.delete(propertyInfo.attributeName);serverValue=getValueForProperty(domElement,propKey,nextProp,propertyInfo);}else{var ownNamespace=parentNamespace;if(ownNamespace===HTML_NAMESPACE){ownNamespace=getIntrinsicNamespace(tag);}if(ownNamespace===HTML_NAMESPACE){// $FlowFixMe - Should be inferred as not undefined.\nextraAttributeNames.delete(propKey.toLowerCase());}else{var standardName=getPossibleStandardName(propKey);if(standardName!==null&&standardName!==propKey){// If an SVG prop is supplied with bad casing, it will\n// be successfully parsed from HTML, but will produce a mismatch\n// (and would be incorrectly rendered on the client).\n// However, we already warn about bad casing elsewhere.\n// So we'll skip the misleading extra mismatch warning in this case.\nisMismatchDueToBadCasing=true;// $FlowFixMe - Should be inferred as not undefined.\nextraAttributeNames.delete(standardName);}// $FlowFixMe - Should be inferred as not undefined.\nextraAttributeNames.delete(propKey);}serverValue=getValueForAttribute(domElement,propKey,nextProp);}var dontWarnCustomElement=enableCustomElementPropertySupport;if(!dontWarnCustomElement&&nextProp!==serverValue&&!isMismatchDueToBadCasing){warnForPropDifference(propKey,serverValue,nextProp);}}}}{if(shouldWarnDev){if(// $FlowFixMe - Should be inferred as not undefined.\nextraAttributeNames.size>0&&rawProps[SUPPRESS_HYDRATION_WARNING]!==true){// $FlowFixMe - Should be inferred as not undefined.\nwarnForExtraAttributes(extraAttributeNames);}}}switch(tag){case'input':// TODO: Make sure we check if this is still unmounted or do any clean\n// up necessary since we never stop tracking anymore.\ntrack(domElement);postMountWrapper(domElement,rawProps,true);break;case'textarea':// TODO: Make sure we check if this is still unmounted or do any clean\n// up necessary since we never stop tracking anymore.\ntrack(domElement);postMountWrapper$3(domElement);break;case'select':case'option':// For input and textarea we current always set the value property at\n// post mount to force it to diverge from attributes. However, for\n// option and select we don't quite do the same thing and select\n// is not resilient to the DOM state changing so we don't do that here.\n// TODO: Consider not doing this for input and textarea.\nbreak;default:if(typeof rawProps.onClick==='function'){// TODO: This cast may not be sound for SVG, MathML or custom elements.\ntrapClickOnNonInteractiveElement(domElement);}break;}return updatePayload;}function diffHydratedText(textNode,text,isConcurrentMode){var isDifferent=textNode.nodeValue!==text;return isDifferent;}function warnForDeletedHydratableElement(parentNode,child){{if(didWarnInvalidHydration){return;}didWarnInvalidHydration=true;error('Did not expect server HTML to contain a <%s> in <%s>.',child.nodeName.toLowerCase(),parentNode.nodeName.toLowerCase());}}function warnForDeletedHydratableText(parentNode,child){{if(didWarnInvalidHydration){return;}didWarnInvalidHydration=true;error('Did not expect server HTML to contain the text node \"%s\" in <%s>.',child.nodeValue,parentNode.nodeName.toLowerCase());}}function warnForInsertedHydratedElement(parentNode,tag,props){{if(didWarnInvalidHydration){return;}didWarnInvalidHydration=true;error('Expected server HTML to contain a matching <%s> in <%s>.',tag,parentNode.nodeName.toLowerCase());}}function warnForInsertedHydratedText(parentNode,text){{if(text===''){// We expect to insert empty text nodes since they're not represented in\n// the HTML.\n// TODO: Remove this special case if we can just avoid inserting empty\n// text nodes.\nreturn;}if(didWarnInvalidHydration){return;}didWarnInvalidHydration=true;error('Expected server HTML to contain a matching text node for \"%s\" in <%s>.',text,parentNode.nodeName.toLowerCase());}}function restoreControlledState$3(domElement,tag,props){switch(tag){case'input':restoreControlledState(domElement,props);return;case'textarea':restoreControlledState$2(domElement,props);return;case'select':restoreControlledState$1(domElement,props);return;}}var validateDOMNesting=function(){};var updatedAncestorInfo=function(){};{// This validation code was written based on the HTML5 parsing spec:\n// https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n//\n// Note: this does not catch all invalid nesting, nor does it try to (as it's\n// not clear what practical benefit doing so provides); instead, we warn only\n// for cases where the parser will give a parse tree differing from what React\n// intended. For example, <b><div></div></b> is invalid but we don't warn\n// because it still parses correctly; we do warn for other cases like nested\n// <p> tags where the beginning of the second element implicitly closes the\n// first, causing a confusing mess.\n// https://html.spec.whatwg.org/multipage/syntax.html#special\nvar specialTags=['address','applet','area','article','aside','base','basefont','bgsound','blockquote','body','br','button','caption','center','col','colgroup','dd','details','dir','div','dl','dt','embed','fieldset','figcaption','figure','footer','form','frame','frameset','h1','h2','h3','h4','h5','h6','head','header','hgroup','hr','html','iframe','img','input','isindex','li','link','listing','main','marquee','menu','menuitem','meta','nav','noembed','noframes','noscript','object','ol','p','param','plaintext','pre','script','section','select','source','style','summary','table','tbody','td','template','textarea','tfoot','th','thead','title','tr','track','ul','wbr','xmp'];// https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\nvar inScopeTags=['applet','caption','html','table','td','th','marquee','object','template',// https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n// TODO: Distinguish by namespace here -- for <title>, including it here\n// errs on the side of fewer warnings\n'foreignObject','desc','title'];// https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\nvar buttonScopeTags=inScopeTags.concat(['button']);// https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\nvar impliedEndTags=['dd','dt','li','option','optgroup','p','rp','rt'];var emptyAncestorInfo={current:null,formTag:null,aTagInScope:null,buttonTagInScope:null,nobrTagInScope:null,pTagInButtonScope:null,listItemTagAutoclosing:null,dlItemTagAutoclosing:null};updatedAncestorInfo=function(oldInfo,tag){var ancestorInfo=assign({},oldInfo||emptyAncestorInfo);var info={tag:tag};if(inScopeTags.indexOf(tag)!==-1){ancestorInfo.aTagInScope=null;ancestorInfo.buttonTagInScope=null;ancestorInfo.nobrTagInScope=null;}if(buttonScopeTags.indexOf(tag)!==-1){ancestorInfo.pTagInButtonScope=null;}// See rules for 'li', 'dd', 'dt' start tags in\n// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\nif(specialTags.indexOf(tag)!==-1&&tag!=='address'&&tag!=='div'&&tag!=='p'){ancestorInfo.listItemTagAutoclosing=null;ancestorInfo.dlItemTagAutoclosing=null;}ancestorInfo.current=info;if(tag==='form'){ancestorInfo.formTag=info;}if(tag==='a'){ancestorInfo.aTagInScope=info;}if(tag==='button'){ancestorInfo.buttonTagInScope=info;}if(tag==='nobr'){ancestorInfo.nobrTagInScope=info;}if(tag==='p'){ancestorInfo.pTagInButtonScope=info;}if(tag==='li'){ancestorInfo.listItemTagAutoclosing=info;}if(tag==='dd'||tag==='dt'){ancestorInfo.dlItemTagAutoclosing=info;}return ancestorInfo;};/**\n   * Returns whether\n   */var isTagValidWithParent=function(tag,parentTag){// First, let's check if we're in an unusual parsing mode...\nswitch(parentTag){// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\ncase'select':return tag==='option'||tag==='optgroup'||tag==='#text';case'optgroup':return tag==='option'||tag==='#text';// Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n// but\ncase'option':return tag==='#text';// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n// No special behavior since these rules fall back to \"in body\" mode for\n// all except special table nodes which cause bad parsing behavior anyway.\n// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\ncase'tr':return tag==='th'||tag==='td'||tag==='style'||tag==='script'||tag==='template';// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\ncase'tbody':case'thead':case'tfoot':return tag==='tr'||tag==='style'||tag==='script'||tag==='template';// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\ncase'colgroup':return tag==='col'||tag==='template';// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\ncase'table':return tag==='caption'||tag==='colgroup'||tag==='tbody'||tag==='tfoot'||tag==='thead'||tag==='style'||tag==='script'||tag==='template';// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\ncase'head':return tag==='base'||tag==='basefont'||tag==='bgsound'||tag==='link'||tag==='meta'||tag==='title'||tag==='noscript'||tag==='noframes'||tag==='style'||tag==='script'||tag==='template';// https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\ncase'html':return tag==='head'||tag==='body'||tag==='frameset';case'frameset':return tag==='frame';case'#document':return tag==='html';}// Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n// where the parsing rules cause implicit opens or closes to be added.\n// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\nswitch(tag){case'h1':case'h2':case'h3':case'h4':case'h5':case'h6':return parentTag!=='h1'&&parentTag!=='h2'&&parentTag!=='h3'&&parentTag!=='h4'&&parentTag!=='h5'&&parentTag!=='h6';case'rp':case'rt':return impliedEndTags.indexOf(parentTag)===-1;case'body':case'caption':case'col':case'colgroup':case'frameset':case'frame':case'head':case'html':case'tbody':case'td':case'tfoot':case'th':case'thead':case'tr':// These tags are only valid with a few parents that have special child\n// parsing rules -- if we're down here, then none of those matched and\n// so we allow it only if we don't know what the parent is, as all other\n// cases are invalid.\nreturn parentTag==null;}return true;};/**\n   * Returns whether\n   */var findInvalidAncestorForTag=function(tag,ancestorInfo){switch(tag){case'address':case'article':case'aside':case'blockquote':case'center':case'details':case'dialog':case'dir':case'div':case'dl':case'fieldset':case'figcaption':case'figure':case'footer':case'header':case'hgroup':case'main':case'menu':case'nav':case'ol':case'p':case'section':case'summary':case'ul':case'pre':case'listing':case'table':case'hr':case'xmp':case'h1':case'h2':case'h3':case'h4':case'h5':case'h6':return ancestorInfo.pTagInButtonScope;case'form':return ancestorInfo.formTag||ancestorInfo.pTagInButtonScope;case'li':return ancestorInfo.listItemTagAutoclosing;case'dd':case'dt':return ancestorInfo.dlItemTagAutoclosing;case'button':return ancestorInfo.buttonTagInScope;case'a':// Spec says something about storing a list of markers, but it sounds\n// equivalent to this check.\nreturn ancestorInfo.aTagInScope;case'nobr':return ancestorInfo.nobrTagInScope;}return null;};var didWarn$1={};validateDOMNesting=function(childTag,childText,ancestorInfo){ancestorInfo=ancestorInfo||emptyAncestorInfo;var parentInfo=ancestorInfo.current;var parentTag=parentInfo&&parentInfo.tag;if(childText!=null){if(childTag!=null){error('validateDOMNesting: when childText is passed, childTag should be null');}childTag='#text';}var invalidParent=isTagValidWithParent(childTag,parentTag)?null:parentInfo;var invalidAncestor=invalidParent?null:findInvalidAncestorForTag(childTag,ancestorInfo);var invalidParentOrAncestor=invalidParent||invalidAncestor;if(!invalidParentOrAncestor){return;}var ancestorTag=invalidParentOrAncestor.tag;var warnKey=!!invalidParent+'|'+childTag+'|'+ancestorTag;if(didWarn$1[warnKey]){return;}didWarn$1[warnKey]=true;var tagDisplayName=childTag;var whitespaceInfo='';if(childTag==='#text'){if(/\\S/.test(childText)){tagDisplayName='Text nodes';}else{tagDisplayName='Whitespace text nodes';whitespaceInfo=\" Make sure you don't have any extra whitespace between tags on \"+'each line of your source code.';}}else{tagDisplayName='<'+childTag+'>';}if(invalidParent){var info='';if(ancestorTag==='table'&&childTag==='tr'){info+=' Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by '+'the browser.';}error('validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s',tagDisplayName,ancestorTag,whitespaceInfo,info);}else{error('validateDOMNesting(...): %s cannot appear as a descendant of '+'<%s>.',tagDisplayName,ancestorTag);}};}var SUPPRESS_HYDRATION_WARNING$1='suppressHydrationWarning';var SUSPENSE_START_DATA='$';var SUSPENSE_END_DATA='/$';var SUSPENSE_PENDING_START_DATA='$?';var SUSPENSE_FALLBACK_START_DATA='$!';var STYLE$1='style';var eventsEnabled=null;var selectionInformation=null;function getRootHostContext(rootContainerInstance){var type;var namespace;var nodeType=rootContainerInstance.nodeType;switch(nodeType){case DOCUMENT_NODE:case DOCUMENT_FRAGMENT_NODE:{type=nodeType===DOCUMENT_NODE?'#document':'#fragment';var root=rootContainerInstance.documentElement;namespace=root?root.namespaceURI:getChildNamespace(null,'');break;}default:{var container=nodeType===COMMENT_NODE?rootContainerInstance.parentNode:rootContainerInstance;var ownNamespace=container.namespaceURI||null;type=container.tagName;namespace=getChildNamespace(ownNamespace,type);break;}}{var validatedTag=type.toLowerCase();var ancestorInfo=updatedAncestorInfo(null,validatedTag);return{namespace:namespace,ancestorInfo:ancestorInfo};}}function getChildHostContext(parentHostContext,type,rootContainerInstance){{var parentHostContextDev=parentHostContext;var namespace=getChildNamespace(parentHostContextDev.namespace,type);var ancestorInfo=updatedAncestorInfo(parentHostContextDev.ancestorInfo,type);return{namespace:namespace,ancestorInfo:ancestorInfo};}}function getPublicInstance(instance){return instance;}function prepareForCommit(containerInfo){eventsEnabled=isEnabled();selectionInformation=getSelectionInformation();var activeInstance=null;setEnabled(false);return activeInstance;}function resetAfterCommit(containerInfo){restoreSelection(selectionInformation);setEnabled(eventsEnabled);eventsEnabled=null;selectionInformation=null;}function createInstance(type,props,rootContainerInstance,hostContext,internalInstanceHandle){var parentNamespace;{// TODO: take namespace into account when validating.\nvar hostContextDev=hostContext;validateDOMNesting(type,null,hostContextDev.ancestorInfo);if(typeof props.children==='string'||typeof props.children==='number'){var string=''+props.children;var ownAncestorInfo=updatedAncestorInfo(hostContextDev.ancestorInfo,type);validateDOMNesting(null,string,ownAncestorInfo);}parentNamespace=hostContextDev.namespace;}var domElement=createElement(type,props,rootContainerInstance,parentNamespace);precacheFiberNode(internalInstanceHandle,domElement);updateFiberProps(domElement,props);return domElement;}function appendInitialChild(parentInstance,child){parentInstance.appendChild(child);}function finalizeInitialChildren(domElement,type,props,rootContainerInstance,hostContext){setInitialProperties(domElement,type,props,rootContainerInstance);switch(type){case'button':case'input':case'select':case'textarea':return!!props.autoFocus;case'img':return true;default:return false;}}function prepareUpdate(domElement,type,oldProps,newProps,rootContainerInstance,hostContext){{var hostContextDev=hostContext;if(typeof newProps.children!==typeof oldProps.children&&(typeof newProps.children==='string'||typeof newProps.children==='number')){var string=''+newProps.children;var ownAncestorInfo=updatedAncestorInfo(hostContextDev.ancestorInfo,type);validateDOMNesting(null,string,ownAncestorInfo);}}return diffProperties(domElement,type,oldProps,newProps);}function shouldSetTextContent(type,props){return type==='textarea'||type==='noscript'||typeof props.children==='string'||typeof props.children==='number'||typeof props.dangerouslySetInnerHTML==='object'&&props.dangerouslySetInnerHTML!==null&&props.dangerouslySetInnerHTML.__html!=null;}function createTextInstance(text,rootContainerInstance,hostContext,internalInstanceHandle){{var hostContextDev=hostContext;validateDOMNesting(null,text,hostContextDev.ancestorInfo);}var textNode=createTextNode(text,rootContainerInstance);precacheFiberNode(internalInstanceHandle,textNode);return textNode;}function getCurrentEventPriority(){var currentEvent=window.event;if(currentEvent===undefined){return DefaultEventPriority;}return getEventPriority(currentEvent.type);}// if a component just imports ReactDOM (e.g. for findDOMNode).\n// Some environments might not have setTimeout or clearTimeout.\nvar scheduleTimeout=typeof setTimeout==='function'?setTimeout:undefined;var cancelTimeout=typeof clearTimeout==='function'?clearTimeout:undefined;var noTimeout=-1;var localPromise=typeof Promise==='function'?Promise:undefined;// -------------------\nvar scheduleMicrotask=typeof queueMicrotask==='function'?queueMicrotask:typeof localPromise!=='undefined'?function(callback){return localPromise.resolve(null).then(callback).catch(handleErrorInNextTick);}:scheduleTimeout;// TODO: Determine the best fallback here.\nfunction handleErrorInNextTick(error){setTimeout(function(){throw error;});}// -------------------\nfunction commitMount(domElement,type,newProps,internalInstanceHandle){// Despite the naming that might imply otherwise, this method only\n// fires if there is an `Update` effect scheduled during mounting.\n// This happens if `finalizeInitialChildren` returns `true` (which it\n// does to implement the `autoFocus` attribute on the client). But\n// there are also other cases when this might happen (such as patching\n// up text content during hydration mismatch). So we'll check this again.\nswitch(type){case'button':case'input':case'select':case'textarea':if(newProps.autoFocus){domElement.focus();}return;case'img':{if(newProps.src){domElement.src=newProps.src;}return;}}}function commitUpdate(domElement,updatePayload,type,oldProps,newProps,internalInstanceHandle){// Apply the diff to the DOM node.\nupdateProperties(domElement,updatePayload,type,oldProps,newProps);// Update the props handle so that we know which props are the ones with\n// with current event handlers.\nupdateFiberProps(domElement,newProps);}function resetTextContent(domElement){setTextContent(domElement,'');}function commitTextUpdate(textInstance,oldText,newText){textInstance.nodeValue=newText;}function appendChild(parentInstance,child){parentInstance.appendChild(child);}function appendChildToContainer(container,child){var parentNode;if(container.nodeType===COMMENT_NODE){parentNode=container.parentNode;parentNode.insertBefore(child,container);}else{parentNode=container;parentNode.appendChild(child);}// This container might be used for a portal.\n// If something inside a portal is clicked, that click should bubble\n// through the React tree. However, on Mobile Safari the click would\n// never bubble through the *DOM* tree unless an ancestor with onclick\n// event exists. So we wouldn't see it and dispatch it.\n// This is why we ensure that non React root containers have inline onclick\n// defined.\n// https://github.com/facebook/react/issues/11918\nvar reactRootContainer=container._reactRootContainer;if((reactRootContainer===null||reactRootContainer===undefined)&&parentNode.onclick===null){// TODO: This cast may not be sound for SVG, MathML or custom elements.\ntrapClickOnNonInteractiveElement(parentNode);}}function insertBefore(parentInstance,child,beforeChild){parentInstance.insertBefore(child,beforeChild);}function insertInContainerBefore(container,child,beforeChild){if(container.nodeType===COMMENT_NODE){container.parentNode.insertBefore(child,beforeChild);}else{container.insertBefore(child,beforeChild);}}function removeChild(parentInstance,child){parentInstance.removeChild(child);}function removeChildFromContainer(container,child){if(container.nodeType===COMMENT_NODE){container.parentNode.removeChild(child);}else{container.removeChild(child);}}function clearSuspenseBoundary(parentInstance,suspenseInstance){var node=suspenseInstance;// Delete all nodes within this suspense boundary.\n// There might be nested nodes so we need to keep track of how\n// deep we are and only break out when we're back on top.\nvar depth=0;do{var nextNode=node.nextSibling;parentInstance.removeChild(node);if(nextNode&&nextNode.nodeType===COMMENT_NODE){var data=nextNode.data;if(data===SUSPENSE_END_DATA){if(depth===0){parentInstance.removeChild(nextNode);// Retry if any event replaying was blocked on this.\nretryIfBlockedOn(suspenseInstance);return;}else{depth--;}}else if(data===SUSPENSE_START_DATA||data===SUSPENSE_PENDING_START_DATA||data===SUSPENSE_FALLBACK_START_DATA){depth++;}}node=nextNode;}while(node);// TODO: Warn, we didn't find the end comment boundary.\n// Retry if any event replaying was blocked on this.\nretryIfBlockedOn(suspenseInstance);}function clearSuspenseBoundaryFromContainer(container,suspenseInstance){if(container.nodeType===COMMENT_NODE){clearSuspenseBoundary(container.parentNode,suspenseInstance);}else if(container.nodeType===ELEMENT_NODE){clearSuspenseBoundary(container,suspenseInstance);}// Retry if any event replaying was blocked on this.\nretryIfBlockedOn(container);}function hideInstance(instance){// TODO: Does this work for all element types? What about MathML? Should we\n// pass host context to this method?\ninstance=instance;var style=instance.style;if(typeof style.setProperty==='function'){style.setProperty('display','none','important');}else{style.display='none';}}function hideTextInstance(textInstance){textInstance.nodeValue='';}function unhideInstance(instance,props){instance=instance;var styleProp=props[STYLE$1];var display=styleProp!==undefined&&styleProp!==null&&styleProp.hasOwnProperty('display')?styleProp.display:null;instance.style.display=dangerousStyleValue('display',display);}function unhideTextInstance(textInstance,text){textInstance.nodeValue=text;}function clearContainer(container){if(container.nodeType===ELEMENT_NODE){container.textContent='';}else if(container.nodeType===DOCUMENT_NODE){if(container.documentElement){container.removeChild(container.documentElement);}}}// -------------------\nfunction canHydrateInstance(instance,type,props){if(instance.nodeType!==ELEMENT_NODE||type.toLowerCase()!==instance.nodeName.toLowerCase()){return null;}// This has now been refined to an element node.\nreturn instance;}function canHydrateTextInstance(instance,text){if(text===''||instance.nodeType!==TEXT_NODE){// Empty strings are not parsed by HTML so there won't be a correct match here.\nreturn null;}// This has now been refined to a text node.\nreturn instance;}function canHydrateSuspenseInstance(instance){if(instance.nodeType!==COMMENT_NODE){// Empty strings are not parsed by HTML so there won't be a correct match here.\nreturn null;}// This has now been refined to a suspense node.\nreturn instance;}function isSuspenseInstancePending(instance){return instance.data===SUSPENSE_PENDING_START_DATA;}function isSuspenseInstanceFallback(instance){return instance.data===SUSPENSE_FALLBACK_START_DATA;}function getSuspenseInstanceFallbackErrorDetails(instance){var dataset=instance.nextSibling&&instance.nextSibling.dataset;var digest,message,stack;if(dataset){digest=dataset.dgst;{message=dataset.msg;stack=dataset.stck;}}{return{message:message,digest:digest,stack:stack};}// let value = {message: undefined, hash: undefined};\n// const nextSibling = instance.nextSibling;\n// if (nextSibling) {\n//   const dataset = ((nextSibling: any): HTMLTemplateElement).dataset;\n//   value.message = dataset.msg;\n//   value.hash = dataset.hash;\n//   if (true) {\n//     value.stack = dataset.stack;\n//   }\n// }\n// return value;\n}function registerSuspenseInstanceRetry(instance,callback){instance._reactRetry=callback;}function getNextHydratable(node){// Skip non-hydratable nodes.\nfor(;node!=null;node=node.nextSibling){var nodeType=node.nodeType;if(nodeType===ELEMENT_NODE||nodeType===TEXT_NODE){break;}if(nodeType===COMMENT_NODE){var nodeData=node.data;if(nodeData===SUSPENSE_START_DATA||nodeData===SUSPENSE_FALLBACK_START_DATA||nodeData===SUSPENSE_PENDING_START_DATA){break;}if(nodeData===SUSPENSE_END_DATA){return null;}}}return node;}function getNextHydratableSibling(instance){return getNextHydratable(instance.nextSibling);}function getFirstHydratableChild(parentInstance){return getNextHydratable(parentInstance.firstChild);}function getFirstHydratableChildWithinContainer(parentContainer){return getNextHydratable(parentContainer.firstChild);}function getFirstHydratableChildWithinSuspenseInstance(parentInstance){return getNextHydratable(parentInstance.nextSibling);}function hydrateInstance(instance,type,props,rootContainerInstance,hostContext,internalInstanceHandle,shouldWarnDev){precacheFiberNode(internalInstanceHandle,instance);// TODO: Possibly defer this until the commit phase where all the events\n// get attached.\nupdateFiberProps(instance,props);var parentNamespace;{var hostContextDev=hostContext;parentNamespace=hostContextDev.namespace;}// TODO: Temporary hack to check if we're in a concurrent root. We can delete\n// when the legacy root API is removed.\nvar isConcurrentMode=(internalInstanceHandle.mode&ConcurrentMode)!==NoMode;return diffHydratedProperties(instance,type,props,parentNamespace,rootContainerInstance,isConcurrentMode,shouldWarnDev);}function hydrateTextInstance(textInstance,text,internalInstanceHandle,shouldWarnDev){precacheFiberNode(internalInstanceHandle,textInstance);// TODO: Temporary hack to check if we're in a concurrent root. We can delete\n// when the legacy root API is removed.\nvar isConcurrentMode=(internalInstanceHandle.mode&ConcurrentMode)!==NoMode;return diffHydratedText(textInstance,text);}function hydrateSuspenseInstance(suspenseInstance,internalInstanceHandle){precacheFiberNode(internalInstanceHandle,suspenseInstance);}function getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance){var node=suspenseInstance.nextSibling;// Skip past all nodes within this suspense boundary.\n// There might be nested nodes so we need to keep track of how\n// deep we are and only break out when we're back on top.\nvar depth=0;while(node){if(node.nodeType===COMMENT_NODE){var data=node.data;if(data===SUSPENSE_END_DATA){if(depth===0){return getNextHydratableSibling(node);}else{depth--;}}else if(data===SUSPENSE_START_DATA||data===SUSPENSE_FALLBACK_START_DATA||data===SUSPENSE_PENDING_START_DATA){depth++;}}node=node.nextSibling;}// TODO: Warn, we didn't find the end comment boundary.\nreturn null;}// Returns the SuspenseInstance if this node is a direct child of a\n// SuspenseInstance. I.e. if its previous sibling is a Comment with\n// SUSPENSE_x_START_DATA. Otherwise, null.\nfunction getParentSuspenseInstance(targetInstance){var node=targetInstance.previousSibling;// Skip past all nodes within this suspense boundary.\n// There might be nested nodes so we need to keep track of how\n// deep we are and only break out when we're back on top.\nvar depth=0;while(node){if(node.nodeType===COMMENT_NODE){var data=node.data;if(data===SUSPENSE_START_DATA||data===SUSPENSE_FALLBACK_START_DATA||data===SUSPENSE_PENDING_START_DATA){if(depth===0){return node;}else{depth--;}}else if(data===SUSPENSE_END_DATA){depth++;}}node=node.previousSibling;}return null;}function commitHydratedContainer(container){// Retry if any event replaying was blocked on this.\nretryIfBlockedOn(container);}function commitHydratedSuspenseInstance(suspenseInstance){// Retry if any event replaying was blocked on this.\nretryIfBlockedOn(suspenseInstance);}function shouldDeleteUnhydratedTailInstances(parentType){return parentType!=='head'&&parentType!=='body';}function didNotMatchHydratedContainerTextInstance(parentContainer,textInstance,text,isConcurrentMode){var shouldWarnDev=true;checkForUnmatchedText(textInstance.nodeValue,text,isConcurrentMode,shouldWarnDev);}function didNotMatchHydratedTextInstance(parentType,parentProps,parentInstance,textInstance,text,isConcurrentMode){if(parentProps[SUPPRESS_HYDRATION_WARNING$1]!==true){var shouldWarnDev=true;checkForUnmatchedText(textInstance.nodeValue,text,isConcurrentMode,shouldWarnDev);}}function didNotHydrateInstanceWithinContainer(parentContainer,instance){{if(instance.nodeType===ELEMENT_NODE){warnForDeletedHydratableElement(parentContainer,instance);}else if(instance.nodeType===COMMENT_NODE);else{warnForDeletedHydratableText(parentContainer,instance);}}}function didNotHydrateInstanceWithinSuspenseInstance(parentInstance,instance){{// $FlowFixMe: Only Element or Document can be parent nodes.\nvar parentNode=parentInstance.parentNode;if(parentNode!==null){if(instance.nodeType===ELEMENT_NODE){warnForDeletedHydratableElement(parentNode,instance);}else if(instance.nodeType===COMMENT_NODE);else{warnForDeletedHydratableText(parentNode,instance);}}}}function didNotHydrateInstance(parentType,parentProps,parentInstance,instance,isConcurrentMode){{if(isConcurrentMode||parentProps[SUPPRESS_HYDRATION_WARNING$1]!==true){if(instance.nodeType===ELEMENT_NODE){warnForDeletedHydratableElement(parentInstance,instance);}else if(instance.nodeType===COMMENT_NODE);else{warnForDeletedHydratableText(parentInstance,instance);}}}}function didNotFindHydratableInstanceWithinContainer(parentContainer,type,props){{warnForInsertedHydratedElement(parentContainer,type);}}function didNotFindHydratableTextInstanceWithinContainer(parentContainer,text){{warnForInsertedHydratedText(parentContainer,text);}}function didNotFindHydratableInstanceWithinSuspenseInstance(parentInstance,type,props){{// $FlowFixMe: Only Element or Document can be parent nodes.\nvar parentNode=parentInstance.parentNode;if(parentNode!==null)warnForInsertedHydratedElement(parentNode,type);}}function didNotFindHydratableTextInstanceWithinSuspenseInstance(parentInstance,text){{// $FlowFixMe: Only Element or Document can be parent nodes.\nvar parentNode=parentInstance.parentNode;if(parentNode!==null)warnForInsertedHydratedText(parentNode,text);}}function didNotFindHydratableInstance(parentType,parentProps,parentInstance,type,props,isConcurrentMode){{if(isConcurrentMode||parentProps[SUPPRESS_HYDRATION_WARNING$1]!==true){warnForInsertedHydratedElement(parentInstance,type);}}}function didNotFindHydratableTextInstance(parentType,parentProps,parentInstance,text,isConcurrentMode){{if(isConcurrentMode||parentProps[SUPPRESS_HYDRATION_WARNING$1]!==true){warnForInsertedHydratedText(parentInstance,text);}}}function errorHydratingContainer(parentContainer){{// TODO: This gets logged by onRecoverableError, too, so we should be\n// able to remove it.\nerror('An error occurred during hydration. The server HTML was replaced with client content in <%s>.',parentContainer.nodeName.toLowerCase());}}function preparePortalMount(portalInstance){listenToAllSupportedEvents(portalInstance);}var randomKey=Math.random().toString(36).slice(2);var internalInstanceKey='__reactFiber$'+randomKey;var internalPropsKey='__reactProps$'+randomKey;var internalContainerInstanceKey='__reactContainer$'+randomKey;var internalEventHandlersKey='__reactEvents$'+randomKey;var internalEventHandlerListenersKey='__reactListeners$'+randomKey;var internalEventHandlesSetKey='__reactHandles$'+randomKey;function detachDeletedInstance(node){// TODO: This function is only called on host components. I don't think all of\n// these fields are relevant.\ndelete node[internalInstanceKey];delete node[internalPropsKey];delete node[internalEventHandlersKey];delete node[internalEventHandlerListenersKey];delete node[internalEventHandlesSetKey];}function precacheFiberNode(hostInst,node){node[internalInstanceKey]=hostInst;}function markContainerAsRoot(hostRoot,node){node[internalContainerInstanceKey]=hostRoot;}function unmarkContainerAsRoot(node){node[internalContainerInstanceKey]=null;}function isContainerMarkedAsRoot(node){return!!node[internalContainerInstanceKey];}// Given a DOM node, return the closest HostComponent or HostText fiber ancestor.\n// If the target node is part of a hydrated or not yet rendered subtree, then\n// this may also return a SuspenseComponent or HostRoot to indicate that.\n// Conceptually the HostRoot fiber is a child of the Container node. So if you\n// pass the Container node as the targetNode, you will not actually get the\n// HostRoot back. To get to the HostRoot, you need to pass a child of it.\n// The same thing applies to Suspense boundaries.\nfunction getClosestInstanceFromNode(targetNode){var targetInst=targetNode[internalInstanceKey];if(targetInst){// Don't return HostRoot or SuspenseComponent here.\nreturn targetInst;}// If the direct event target isn't a React owned DOM node, we need to look\n// to see if one of its parents is a React owned DOM node.\nvar parentNode=targetNode.parentNode;while(parentNode){// We'll check if this is a container root that could include\n// React nodes in the future. We need to check this first because\n// if we're a child of a dehydrated container, we need to first\n// find that inner container before moving on to finding the parent\n// instance. Note that we don't check this field on  the targetNode\n// itself because the fibers are conceptually between the container\n// node and the first child. It isn't surrounding the container node.\n// If it's not a container, we check if it's an instance.\ntargetInst=parentNode[internalContainerInstanceKey]||parentNode[internalInstanceKey];if(targetInst){// Since this wasn't the direct target of the event, we might have\n// stepped past dehydrated DOM nodes to get here. However they could\n// also have been non-React nodes. We need to answer which one.\n// If we the instance doesn't have any children, then there can't be\n// a nested suspense boundary within it. So we can use this as a fast\n// bailout. Most of the time, when people add non-React children to\n// the tree, it is using a ref to a child-less DOM node.\n// Normally we'd only need to check one of the fibers because if it\n// has ever gone from having children to deleting them or vice versa\n// it would have deleted the dehydrated boundary nested inside already.\n// However, since the HostRoot starts out with an alternate it might\n// have one on the alternate so we need to check in case this was a\n// root.\nvar alternate=targetInst.alternate;if(targetInst.child!==null||alternate!==null&&alternate.child!==null){// Next we need to figure out if the node that skipped past is\n// nested within a dehydrated boundary and if so, which one.\nvar suspenseInstance=getParentSuspenseInstance(targetNode);while(suspenseInstance!==null){// We found a suspense instance. That means that we haven't\n// hydrated it yet. Even though we leave the comments in the\n// DOM after hydrating, and there are boundaries in the DOM\n// that could already be hydrated, we wouldn't have found them\n// through this pass since if the target is hydrated it would\n// have had an internalInstanceKey on it.\n// Let's get the fiber associated with the SuspenseComponent\n// as the deepest instance.\nvar targetSuspenseInst=suspenseInstance[internalInstanceKey];if(targetSuspenseInst){return targetSuspenseInst;}// If we don't find a Fiber on the comment, it might be because\n// we haven't gotten to hydrate it yet. There might still be a\n// parent boundary that hasn't above this one so we need to find\n// the outer most that is known.\nsuspenseInstance=getParentSuspenseInstance(suspenseInstance);// If we don't find one, then that should mean that the parent\n// host component also hasn't hydrated yet. We can return it\n// below since it will bail out on the isMounted check later.\n}}return targetInst;}targetNode=parentNode;parentNode=targetNode.parentNode;}return null;}/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */function getInstanceFromNode(node){var inst=node[internalInstanceKey]||node[internalContainerInstanceKey];if(inst){if(inst.tag===HostComponent||inst.tag===HostText||inst.tag===SuspenseComponent||inst.tag===HostRoot){return inst;}else{return null;}}return null;}/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */function getNodeFromInstance(inst){if(inst.tag===HostComponent||inst.tag===HostText){// In Fiber this, is just the state node right now. We assume it will be\n// a host component or host text.\nreturn inst.stateNode;}// Without this first invariant, passing a non-DOM-component triggers the next\n// invariant for a missing parent, which is super confusing.\nthrow new Error('getNodeFromInstance: Invalid argument.');}function getFiberCurrentPropsFromNode(node){return node[internalPropsKey]||null;}function updateFiberProps(node,props){node[internalPropsKey]=props;}function getEventListenerSet(node){var elementListenerSet=node[internalEventHandlersKey];if(elementListenerSet===undefined){elementListenerSet=node[internalEventHandlersKey]=new Set();}return elementListenerSet;}var loggedTypeFailures={};var ReactDebugCurrentFrame$1=ReactSharedInternals.ReactDebugCurrentFrame;function setCurrentlyValidatingElement(element){{if(element){var owner=element._owner;var stack=describeUnknownElementTypeFrameInDEV(element.type,element._source,owner?owner.type:null);ReactDebugCurrentFrame$1.setExtraStackFrame(stack);}else{ReactDebugCurrentFrame$1.setExtraStackFrame(null);}}}function checkPropTypes(typeSpecs,values,location,componentName,element){{// $FlowFixMe This is okay but Flow doesn't know it.\nvar has=Function.call.bind(hasOwnProperty);for(var typeSpecName in typeSpecs){if(has(typeSpecs,typeSpecName)){var error$1=void 0;// Prop type validation may throw. In case they do, we don't want to\n// fail the render phase where it didn't fail before. So we log it.\n// After these have been cleaned up, we'll let them throw.\ntry{// This is intentionally an invariant that gets caught. It's the same\n// behavior as without this statement except with a better message.\nif(typeof typeSpecs[typeSpecName]!=='function'){// eslint-disable-next-line react-internal/prod-error-codes\nvar err=Error((componentName||'React class')+': '+location+' type `'+typeSpecName+'` is invalid; '+'it must be a function, usually from the `prop-types` package, but received `'+typeof typeSpecs[typeSpecName]+'`.'+'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');err.name='Invariant Violation';throw err;}error$1=typeSpecs[typeSpecName](values,typeSpecName,componentName,location,null,'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');}catch(ex){error$1=ex;}if(error$1&&!(error$1 instanceof Error)){setCurrentlyValidatingElement(element);error('%s: type specification of %s'+' `%s` is invalid; the type checker '+'function must return `null` or an `Error` but returned a %s. '+'You may have forgotten to pass an argument to the type checker '+'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and '+'shape all require an argument).',componentName||'React class',location,typeSpecName,typeof error$1);setCurrentlyValidatingElement(null);}if(error$1 instanceof Error&&!(error$1.message in loggedTypeFailures)){// Only monitor this failure once because there tends to be a lot of the\n// same error.\nloggedTypeFailures[error$1.message]=true;setCurrentlyValidatingElement(element);error('Failed %s type: %s',location,error$1.message);setCurrentlyValidatingElement(null);}}}}}var valueStack=[];var fiberStack;{fiberStack=[];}var index=-1;function createCursor(defaultValue){return{current:defaultValue};}function pop(cursor,fiber){if(index<0){{error('Unexpected pop.');}return;}{if(fiber!==fiberStack[index]){error('Unexpected Fiber popped.');}}cursor.current=valueStack[index];valueStack[index]=null;{fiberStack[index]=null;}index--;}function push(cursor,value,fiber){index++;valueStack[index]=cursor.current;{fiberStack[index]=fiber;}cursor.current=value;}var warnedAboutMissingGetChildContext;{warnedAboutMissingGetChildContext={};}var emptyContextObject={};{Object.freeze(emptyContextObject);}// A cursor to the current merged context object on the stack.\nvar contextStackCursor=createCursor(emptyContextObject);// A cursor to a boolean indicating whether the context has changed.\nvar didPerformWorkStackCursor=createCursor(false);// Keep track of the previous context object that was on the stack.\n// We use this to get access to the parent context after we have already\n// pushed the next context provider, and now need to merge their contexts.\nvar previousContext=emptyContextObject;function getUnmaskedContext(workInProgress,Component,didPushOwnContextIfProvider){{if(didPushOwnContextIfProvider&&isContextProvider(Component)){// If the fiber is a context provider itself, when we read its context\n// we may have already pushed its own child context on the stack. A context\n// provider should not \"see\" its own child context. Therefore we read the\n// previous (parent) context instead for a context provider.\nreturn previousContext;}return contextStackCursor.current;}}function cacheContext(workInProgress,unmaskedContext,maskedContext){{var instance=workInProgress.stateNode;instance.__reactInternalMemoizedUnmaskedChildContext=unmaskedContext;instance.__reactInternalMemoizedMaskedChildContext=maskedContext;}}function getMaskedContext(workInProgress,unmaskedContext){{var type=workInProgress.type;var contextTypes=type.contextTypes;if(!contextTypes){return emptyContextObject;}// Avoid recreating masked context unless unmasked context has changed.\n// Failing to do this will result in unnecessary calls to componentWillReceiveProps.\n// This may trigger infinite loops if componentWillReceiveProps calls setState.\nvar instance=workInProgress.stateNode;if(instance&&instance.__reactInternalMemoizedUnmaskedChildContext===unmaskedContext){return instance.__reactInternalMemoizedMaskedChildContext;}var context={};for(var key in contextTypes){context[key]=unmaskedContext[key];}{var name=getComponentNameFromFiber(workInProgress)||'Unknown';checkPropTypes(contextTypes,context,'context',name);}// Cache unmasked context so we can avoid recreating masked context unless necessary.\n// Context is created before the class component is instantiated so check for instance.\nif(instance){cacheContext(workInProgress,unmaskedContext,context);}return context;}}function hasContextChanged(){{return didPerformWorkStackCursor.current;}}function isContextProvider(type){{var childContextTypes=type.childContextTypes;return childContextTypes!==null&&childContextTypes!==undefined;}}function popContext(fiber){{pop(didPerformWorkStackCursor,fiber);pop(contextStackCursor,fiber);}}function popTopLevelContextObject(fiber){{pop(didPerformWorkStackCursor,fiber);pop(contextStackCursor,fiber);}}function pushTopLevelContextObject(fiber,context,didChange){{if(contextStackCursor.current!==emptyContextObject){throw new Error('Unexpected context found on stack. '+'This error is likely caused by a bug in React. Please file an issue.');}push(contextStackCursor,context,fiber);push(didPerformWorkStackCursor,didChange,fiber);}}function processChildContext(fiber,type,parentContext){{var instance=fiber.stateNode;var childContextTypes=type.childContextTypes;// TODO (bvaughn) Replace this behavior with an invariant() in the future.\n// It has only been added in Fiber to match the (unintentional) behavior in Stack.\nif(typeof instance.getChildContext!=='function'){{var componentName=getComponentNameFromFiber(fiber)||'Unknown';if(!warnedAboutMissingGetChildContext[componentName]){warnedAboutMissingGetChildContext[componentName]=true;error('%s.childContextTypes is specified but there is no getChildContext() method '+'on the instance. You can either define getChildContext() on %s or remove '+'childContextTypes from it.',componentName,componentName);}}return parentContext;}var childContext=instance.getChildContext();for(var contextKey in childContext){if(!(contextKey in childContextTypes)){throw new Error((getComponentNameFromFiber(fiber)||'Unknown')+\".getChildContext(): key \\\"\"+contextKey+\"\\\" is not defined in childContextTypes.\");}}{var name=getComponentNameFromFiber(fiber)||'Unknown';checkPropTypes(childContextTypes,childContext,'child context',name);}return assign({},parentContext,childContext);}}function pushContextProvider(workInProgress){{var instance=workInProgress.stateNode;// We push the context as early as possible to ensure stack integrity.\n// If the instance does not exist yet, we will push null at first,\n// and replace it on the stack later when invalidating the context.\nvar memoizedMergedChildContext=instance&&instance.__reactInternalMemoizedMergedChildContext||emptyContextObject;// Remember the parent context so we can merge with it later.\n// Inherit the parent's did-perform-work value to avoid inadvertently blocking updates.\npreviousContext=contextStackCursor.current;push(contextStackCursor,memoizedMergedChildContext,workInProgress);push(didPerformWorkStackCursor,didPerformWorkStackCursor.current,workInProgress);return true;}}function invalidateContextProvider(workInProgress,type,didChange){{var instance=workInProgress.stateNode;if(!instance){throw new Error('Expected to have an instance by this point. '+'This error is likely caused by a bug in React. Please file an issue.');}if(didChange){// Merge parent and own context.\n// Skip this if we're not updating due to sCU.\n// This avoids unnecessarily recomputing memoized values.\nvar mergedContext=processChildContext(workInProgress,type,previousContext);instance.__reactInternalMemoizedMergedChildContext=mergedContext;// Replace the old (or empty) context with the new one.\n// It is important to unwind the context in the reverse order.\npop(didPerformWorkStackCursor,workInProgress);pop(contextStackCursor,workInProgress);// Now push the new context and mark that it has changed.\npush(contextStackCursor,mergedContext,workInProgress);push(didPerformWorkStackCursor,didChange,workInProgress);}else{pop(didPerformWorkStackCursor,workInProgress);push(didPerformWorkStackCursor,didChange,workInProgress);}}}function findCurrentUnmaskedContext(fiber){{// Currently this is only used with renderSubtreeIntoContainer; not sure if it\n// makes sense elsewhere\nif(!isFiberMounted(fiber)||fiber.tag!==ClassComponent){throw new Error('Expected subtree parent to be a mounted class component. '+'This error is likely caused by a bug in React. Please file an issue.');}var node=fiber;do{switch(node.tag){case HostRoot:return node.stateNode.context;case ClassComponent:{var Component=node.type;if(isContextProvider(Component)){return node.stateNode.__reactInternalMemoizedMergedChildContext;}break;}}node=node.return;}while(node!==null);throw new Error('Found unexpected detached subtree parent. '+'This error is likely caused by a bug in React. Please file an issue.');}}var LegacyRoot=0;var ConcurrentRoot=1;var syncQueue=null;var includesLegacySyncCallbacks=false;var isFlushingSyncQueue=false;function scheduleSyncCallback(callback){// Push this callback into an internal queue. We'll flush these either in\n// the next tick, or earlier if something calls `flushSyncCallbackQueue`.\nif(syncQueue===null){syncQueue=[callback];}else{// Push onto existing queue. Don't need to schedule a callback because\n// we already scheduled one when we created the queue.\nsyncQueue.push(callback);}}function scheduleLegacySyncCallback(callback){includesLegacySyncCallbacks=true;scheduleSyncCallback(callback);}function flushSyncCallbacksOnlyInLegacyMode(){// Only flushes the queue if there's a legacy sync callback scheduled.\n// TODO: There's only a single type of callback: performSyncOnWorkOnRoot. So\n// it might make more sense for the queue to be a list of roots instead of a\n// list of generic callbacks. Then we can have two: one for legacy roots, one\n// for concurrent roots. And this method would only flush the legacy ones.\nif(includesLegacySyncCallbacks){flushSyncCallbacks();}}function flushSyncCallbacks(){if(!isFlushingSyncQueue&&syncQueue!==null){// Prevent re-entrance.\nisFlushingSyncQueue=true;var i=0;var previousUpdatePriority=getCurrentUpdatePriority();try{var isSync=true;var queue=syncQueue;// TODO: Is this necessary anymore? The only user code that runs in this\n// queue is in the render or commit phases.\nsetCurrentUpdatePriority(DiscreteEventPriority);for(;i<queue.length;i++){var callback=queue[i];do{callback=callback(isSync);}while(callback!==null);}syncQueue=null;includesLegacySyncCallbacks=false;}catch(error){// If something throws, leave the remaining callbacks on the queue.\nif(syncQueue!==null){syncQueue=syncQueue.slice(i+1);}// Resume flushing in the next tick\nscheduleCallback(ImmediatePriority,flushSyncCallbacks);throw error;}finally{setCurrentUpdatePriority(previousUpdatePriority);isFlushingSyncQueue=false;}}return null;}// TODO: Use the unified fiber stack module instead of this local one?\n// Intentionally not using it yet to derisk the initial implementation, because\n// the way we push/pop these values is a bit unusual. If there's a mistake, I'd\n// rather the ids be wrong than crash the whole reconciler.\nvar forkStack=[];var forkStackIndex=0;var treeForkProvider=null;var treeForkCount=0;var idStack=[];var idStackIndex=0;var treeContextProvider=null;var treeContextId=1;var treeContextOverflow='';function isForkedChild(workInProgress){warnIfNotHydrating();return(workInProgress.flags&Forked)!==NoFlags;}function getForksAtLevel(workInProgress){warnIfNotHydrating();return treeForkCount;}function getTreeId(){var overflow=treeContextOverflow;var idWithLeadingBit=treeContextId;var id=idWithLeadingBit&~getLeadingBit(idWithLeadingBit);return id.toString(32)+overflow;}function pushTreeFork(workInProgress,totalChildren){// This is called right after we reconcile an array (or iterator) of child\n// fibers, because that's the only place where we know how many children in\n// the whole set without doing extra work later, or storing addtional\n// information on the fiber.\n//\n// That's why this function is separate from pushTreeId — it's called during\n// the render phase of the fork parent, not the child, which is where we push\n// the other context values.\n//\n// In the Fizz implementation this is much simpler because the child is\n// rendered in the same callstack as the parent.\n//\n// It might be better to just add a `forks` field to the Fiber type. It would\n// make this module simpler.\nwarnIfNotHydrating();forkStack[forkStackIndex++]=treeForkCount;forkStack[forkStackIndex++]=treeForkProvider;treeForkProvider=workInProgress;treeForkCount=totalChildren;}function pushTreeId(workInProgress,totalChildren,index){warnIfNotHydrating();idStack[idStackIndex++]=treeContextId;idStack[idStackIndex++]=treeContextOverflow;idStack[idStackIndex++]=treeContextProvider;treeContextProvider=workInProgress;var baseIdWithLeadingBit=treeContextId;var baseOverflow=treeContextOverflow;// The leftmost 1 marks the end of the sequence, non-inclusive. It's not part\n// of the id; we use it to account for leading 0s.\nvar baseLength=getBitLength(baseIdWithLeadingBit)-1;var baseId=baseIdWithLeadingBit&~(1<<baseLength);var slot=index+1;var length=getBitLength(totalChildren)+baseLength;// 30 is the max length we can store without overflowing, taking into\n// consideration the leading 1 we use to mark the end of the sequence.\nif(length>30){// We overflowed the bitwise-safe range. Fall back to slower algorithm.\n// This branch assumes the length of the base id is greater than 5; it won't\n// work for smaller ids, because you need 5 bits per character.\n//\n// We encode the id in multiple steps: first the base id, then the\n// remaining digits.\n//\n// Each 5 bit sequence corresponds to a single base 32 character. So for\n// example, if the current id is 23 bits long, we can convert 20 of those\n// bits into a string of 4 characters, with 3 bits left over.\n//\n// First calculate how many bits in the base id represent a complete\n// sequence of characters.\nvar numberOfOverflowBits=baseLength-baseLength%5;// Then create a bitmask that selects only those bits.\nvar newOverflowBits=(1<<numberOfOverflowBits)-1;// Select the bits, and convert them to a base 32 string.\nvar newOverflow=(baseId&newOverflowBits).toString(32);// Now we can remove those bits from the base id.\nvar restOfBaseId=baseId>>numberOfOverflowBits;var restOfBaseLength=baseLength-numberOfOverflowBits;// Finally, encode the rest of the bits using the normal algorithm. Because\n// we made more room, this time it won't overflow.\nvar restOfLength=getBitLength(totalChildren)+restOfBaseLength;var restOfNewBits=slot<<restOfBaseLength;var id=restOfNewBits|restOfBaseId;var overflow=newOverflow+baseOverflow;treeContextId=1<<restOfLength|id;treeContextOverflow=overflow;}else{// Normal path\nvar newBits=slot<<baseLength;var _id=newBits|baseId;var _overflow=baseOverflow;treeContextId=1<<length|_id;treeContextOverflow=_overflow;}}function pushMaterializedTreeId(workInProgress){warnIfNotHydrating();// This component materialized an id. This will affect any ids that appear\n// in its children.\nvar returnFiber=workInProgress.return;if(returnFiber!==null){var numberOfForks=1;var slotIndex=0;pushTreeFork(workInProgress,numberOfForks);pushTreeId(workInProgress,numberOfForks,slotIndex);}}function getBitLength(number){return 32-clz32(number);}function getLeadingBit(id){return 1<<getBitLength(id)-1;}function popTreeContext(workInProgress){// Restore the previous values.\n// This is a bit more complicated than other context-like modules in Fiber\n// because the same Fiber may appear on the stack multiple times and for\n// different reasons. We have to keep popping until the work-in-progress is\n// no longer at the top of the stack.\nwhile(workInProgress===treeForkProvider){treeForkProvider=forkStack[--forkStackIndex];forkStack[forkStackIndex]=null;treeForkCount=forkStack[--forkStackIndex];forkStack[forkStackIndex]=null;}while(workInProgress===treeContextProvider){treeContextProvider=idStack[--idStackIndex];idStack[idStackIndex]=null;treeContextOverflow=idStack[--idStackIndex];idStack[idStackIndex]=null;treeContextId=idStack[--idStackIndex];idStack[idStackIndex]=null;}}function getSuspendedTreeContext(){warnIfNotHydrating();if(treeContextProvider!==null){return{id:treeContextId,overflow:treeContextOverflow};}else{return null;}}function restoreSuspendedTreeContext(workInProgress,suspendedContext){warnIfNotHydrating();idStack[idStackIndex++]=treeContextId;idStack[idStackIndex++]=treeContextOverflow;idStack[idStackIndex++]=treeContextProvider;treeContextId=suspendedContext.id;treeContextOverflow=suspendedContext.overflow;treeContextProvider=workInProgress;}function warnIfNotHydrating(){{if(!getIsHydrating()){error('Expected to be hydrating. This is a bug in React. Please file '+'an issue.');}}}// This may have been an insertion or a hydration.\nvar hydrationParentFiber=null;var nextHydratableInstance=null;var isHydrating=false;// This flag allows for warning supression when we expect there to be mismatches\n// due to earlier mismatches or a suspended fiber.\nvar didSuspendOrErrorDEV=false;// Hydration errors that were thrown inside this boundary\nvar hydrationErrors=null;function warnIfHydrating(){{if(isHydrating){error('We should not be hydrating here. This is a bug in React. Please file a bug.');}}}function markDidThrowWhileHydratingDEV(){{didSuspendOrErrorDEV=true;}}function didSuspendOrErrorWhileHydratingDEV(){{return didSuspendOrErrorDEV;}}function enterHydrationState(fiber){var parentInstance=fiber.stateNode.containerInfo;nextHydratableInstance=getFirstHydratableChildWithinContainer(parentInstance);hydrationParentFiber=fiber;isHydrating=true;hydrationErrors=null;didSuspendOrErrorDEV=false;return true;}function reenterHydrationStateFromDehydratedSuspenseInstance(fiber,suspenseInstance,treeContext){nextHydratableInstance=getFirstHydratableChildWithinSuspenseInstance(suspenseInstance);hydrationParentFiber=fiber;isHydrating=true;hydrationErrors=null;didSuspendOrErrorDEV=false;if(treeContext!==null){restoreSuspendedTreeContext(fiber,treeContext);}return true;}function warnUnhydratedInstance(returnFiber,instance){{switch(returnFiber.tag){case HostRoot:{didNotHydrateInstanceWithinContainer(returnFiber.stateNode.containerInfo,instance);break;}case HostComponent:{var isConcurrentMode=(returnFiber.mode&ConcurrentMode)!==NoMode;didNotHydrateInstance(returnFiber.type,returnFiber.memoizedProps,returnFiber.stateNode,instance,// TODO: Delete this argument when we remove the legacy root API.\nisConcurrentMode);break;}case SuspenseComponent:{var suspenseState=returnFiber.memoizedState;if(suspenseState.dehydrated!==null)didNotHydrateInstanceWithinSuspenseInstance(suspenseState.dehydrated,instance);break;}}}}function deleteHydratableInstance(returnFiber,instance){warnUnhydratedInstance(returnFiber,instance);var childToDelete=createFiberFromHostInstanceForDeletion();childToDelete.stateNode=instance;childToDelete.return=returnFiber;var deletions=returnFiber.deletions;if(deletions===null){returnFiber.deletions=[childToDelete];returnFiber.flags|=ChildDeletion;}else{deletions.push(childToDelete);}}function warnNonhydratedInstance(returnFiber,fiber){{if(didSuspendOrErrorDEV){// Inside a boundary that already suspended. We're currently rendering the\n// siblings of a suspended node. The mismatch may be due to the missing\n// data, so it's probably a false positive.\nreturn;}switch(returnFiber.tag){case HostRoot:{var parentContainer=returnFiber.stateNode.containerInfo;switch(fiber.tag){case HostComponent:var type=fiber.type;var props=fiber.pendingProps;didNotFindHydratableInstanceWithinContainer(parentContainer,type);break;case HostText:var text=fiber.pendingProps;didNotFindHydratableTextInstanceWithinContainer(parentContainer,text);break;}break;}case HostComponent:{var parentType=returnFiber.type;var parentProps=returnFiber.memoizedProps;var parentInstance=returnFiber.stateNode;switch(fiber.tag){case HostComponent:{var _type=fiber.type;var _props=fiber.pendingProps;var isConcurrentMode=(returnFiber.mode&ConcurrentMode)!==NoMode;didNotFindHydratableInstance(parentType,parentProps,parentInstance,_type,_props,// TODO: Delete this argument when we remove the legacy root API.\nisConcurrentMode);break;}case HostText:{var _text=fiber.pendingProps;var _isConcurrentMode=(returnFiber.mode&ConcurrentMode)!==NoMode;didNotFindHydratableTextInstance(parentType,parentProps,parentInstance,_text,// TODO: Delete this argument when we remove the legacy root API.\n_isConcurrentMode);break;}}break;}case SuspenseComponent:{var suspenseState=returnFiber.memoizedState;var _parentInstance=suspenseState.dehydrated;if(_parentInstance!==null)switch(fiber.tag){case HostComponent:var _type2=fiber.type;var _props2=fiber.pendingProps;didNotFindHydratableInstanceWithinSuspenseInstance(_parentInstance,_type2);break;case HostText:var _text2=fiber.pendingProps;didNotFindHydratableTextInstanceWithinSuspenseInstance(_parentInstance,_text2);break;}break;}default:return;}}}function insertNonHydratedInstance(returnFiber,fiber){fiber.flags=fiber.flags&~Hydrating|Placement;warnNonhydratedInstance(returnFiber,fiber);}function tryHydrate(fiber,nextInstance){switch(fiber.tag){case HostComponent:{var type=fiber.type;var props=fiber.pendingProps;var instance=canHydrateInstance(nextInstance,type);if(instance!==null){fiber.stateNode=instance;hydrationParentFiber=fiber;nextHydratableInstance=getFirstHydratableChild(instance);return true;}return false;}case HostText:{var text=fiber.pendingProps;var textInstance=canHydrateTextInstance(nextInstance,text);if(textInstance!==null){fiber.stateNode=textInstance;hydrationParentFiber=fiber;// Text Instances don't have children so there's nothing to hydrate.\nnextHydratableInstance=null;return true;}return false;}case SuspenseComponent:{var suspenseInstance=canHydrateSuspenseInstance(nextInstance);if(suspenseInstance!==null){var suspenseState={dehydrated:suspenseInstance,treeContext:getSuspendedTreeContext(),retryLane:OffscreenLane};fiber.memoizedState=suspenseState;// Store the dehydrated fragment as a child fiber.\n// This simplifies the code for getHostSibling and deleting nodes,\n// since it doesn't have to consider all Suspense boundaries and\n// check if they're dehydrated ones or not.\nvar dehydratedFragment=createFiberFromDehydratedFragment(suspenseInstance);dehydratedFragment.return=fiber;fiber.child=dehydratedFragment;hydrationParentFiber=fiber;// While a Suspense Instance does have children, we won't step into\n// it during the first pass. Instead, we'll reenter it later.\nnextHydratableInstance=null;return true;}return false;}default:return false;}}function shouldClientRenderOnMismatch(fiber){return(fiber.mode&ConcurrentMode)!==NoMode&&(fiber.flags&DidCapture)===NoFlags;}function throwOnHydrationMismatch(fiber){throw new Error('Hydration failed because the initial UI does not match what was '+'rendered on the server.');}function tryToClaimNextHydratableInstance(fiber){if(!isHydrating){return;}var nextInstance=nextHydratableInstance;if(!nextInstance){if(shouldClientRenderOnMismatch(fiber)){warnNonhydratedInstance(hydrationParentFiber,fiber);throwOnHydrationMismatch();}// Nothing to hydrate. Make it an insertion.\ninsertNonHydratedInstance(hydrationParentFiber,fiber);isHydrating=false;hydrationParentFiber=fiber;return;}var firstAttemptedInstance=nextInstance;if(!tryHydrate(fiber,nextInstance)){if(shouldClientRenderOnMismatch(fiber)){warnNonhydratedInstance(hydrationParentFiber,fiber);throwOnHydrationMismatch();}// If we can't hydrate this instance let's try the next one.\n// We use this as a heuristic. It's based on intuition and not data so it\n// might be flawed or unnecessary.\nnextInstance=getNextHydratableSibling(firstAttemptedInstance);var prevHydrationParentFiber=hydrationParentFiber;if(!nextInstance||!tryHydrate(fiber,nextInstance)){// Nothing to hydrate. Make it an insertion.\ninsertNonHydratedInstance(hydrationParentFiber,fiber);isHydrating=false;hydrationParentFiber=fiber;return;}// We matched the next one, we'll now assume that the first one was\n// superfluous and we'll delete it. Since we can't eagerly delete it\n// we'll have to schedule a deletion. To do that, this node needs a dummy\n// fiber associated with it.\ndeleteHydratableInstance(prevHydrationParentFiber,firstAttemptedInstance);}}function prepareToHydrateHostInstance(fiber,rootContainerInstance,hostContext){var instance=fiber.stateNode;var shouldWarnIfMismatchDev=!didSuspendOrErrorDEV;var updatePayload=hydrateInstance(instance,fiber.type,fiber.memoizedProps,rootContainerInstance,hostContext,fiber,shouldWarnIfMismatchDev);// TODO: Type this specific to this type of component.\nfiber.updateQueue=updatePayload;// If the update payload indicates that there is a change or if there\n// is a new ref we mark this as an update.\nif(updatePayload!==null){return true;}return false;}function prepareToHydrateHostTextInstance(fiber){var textInstance=fiber.stateNode;var textContent=fiber.memoizedProps;var shouldUpdate=hydrateTextInstance(textInstance,textContent,fiber);if(shouldUpdate){// We assume that prepareToHydrateHostTextInstance is called in a context where the\n// hydration parent is the parent host component of this host text.\nvar returnFiber=hydrationParentFiber;if(returnFiber!==null){switch(returnFiber.tag){case HostRoot:{var parentContainer=returnFiber.stateNode.containerInfo;var isConcurrentMode=(returnFiber.mode&ConcurrentMode)!==NoMode;didNotMatchHydratedContainerTextInstance(parentContainer,textInstance,textContent,// TODO: Delete this argument when we remove the legacy root API.\nisConcurrentMode);break;}case HostComponent:{var parentType=returnFiber.type;var parentProps=returnFiber.memoizedProps;var parentInstance=returnFiber.stateNode;var _isConcurrentMode2=(returnFiber.mode&ConcurrentMode)!==NoMode;didNotMatchHydratedTextInstance(parentType,parentProps,parentInstance,textInstance,textContent,// TODO: Delete this argument when we remove the legacy root API.\n_isConcurrentMode2);break;}}}}return shouldUpdate;}function prepareToHydrateHostSuspenseInstance(fiber){var suspenseState=fiber.memoizedState;var suspenseInstance=suspenseState!==null?suspenseState.dehydrated:null;if(!suspenseInstance){throw new Error('Expected to have a hydrated suspense instance. '+'This error is likely caused by a bug in React. Please file an issue.');}hydrateSuspenseInstance(suspenseInstance,fiber);}function skipPastDehydratedSuspenseInstance(fiber){var suspenseState=fiber.memoizedState;var suspenseInstance=suspenseState!==null?suspenseState.dehydrated:null;if(!suspenseInstance){throw new Error('Expected to have a hydrated suspense instance. '+'This error is likely caused by a bug in React. Please file an issue.');}return getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance);}function popToNextHostParent(fiber){var parent=fiber.return;while(parent!==null&&parent.tag!==HostComponent&&parent.tag!==HostRoot&&parent.tag!==SuspenseComponent){parent=parent.return;}hydrationParentFiber=parent;}function popHydrationState(fiber){if(fiber!==hydrationParentFiber){// We're deeper than the current hydration context, inside an inserted\n// tree.\nreturn false;}if(!isHydrating){// If we're not currently hydrating but we're in a hydration context, then\n// we were an insertion and now need to pop up reenter hydration of our\n// siblings.\npopToNextHostParent(fiber);isHydrating=true;return false;}// If we have any remaining hydratable nodes, we need to delete them now.\n// We only do this deeper than head and body since they tend to have random\n// other nodes in them. We also ignore components with pure text content in\n// side of them. We also don't delete anything inside the root container.\nif(fiber.tag!==HostRoot&&(fiber.tag!==HostComponent||shouldDeleteUnhydratedTailInstances(fiber.type)&&!shouldSetTextContent(fiber.type,fiber.memoizedProps))){var nextInstance=nextHydratableInstance;if(nextInstance){if(shouldClientRenderOnMismatch(fiber)){warnIfUnhydratedTailNodes(fiber);throwOnHydrationMismatch();}else{while(nextInstance){deleteHydratableInstance(fiber,nextInstance);nextInstance=getNextHydratableSibling(nextInstance);}}}}popToNextHostParent(fiber);if(fiber.tag===SuspenseComponent){nextHydratableInstance=skipPastDehydratedSuspenseInstance(fiber);}else{nextHydratableInstance=hydrationParentFiber?getNextHydratableSibling(fiber.stateNode):null;}return true;}function hasUnhydratedTailNodes(){return isHydrating&&nextHydratableInstance!==null;}function warnIfUnhydratedTailNodes(fiber){var nextInstance=nextHydratableInstance;while(nextInstance){warnUnhydratedInstance(fiber,nextInstance);nextInstance=getNextHydratableSibling(nextInstance);}}function resetHydrationState(){hydrationParentFiber=null;nextHydratableInstance=null;isHydrating=false;didSuspendOrErrorDEV=false;}function upgradeHydrationErrorsToRecoverable(){if(hydrationErrors!==null){// Successfully completed a forced client render. The errors that occurred\n// during the hydration attempt are now recovered. We will log them in\n// commit phase, once the entire tree has finished.\nqueueRecoverableErrors(hydrationErrors);hydrationErrors=null;}}function getIsHydrating(){return isHydrating;}function queueHydrationError(error){if(hydrationErrors===null){hydrationErrors=[error];}else{hydrationErrors.push(error);}}var ReactCurrentBatchConfig$1=ReactSharedInternals.ReactCurrentBatchConfig;var NoTransition=null;function requestCurrentTransition(){return ReactCurrentBatchConfig$1.transition;}var ReactStrictModeWarnings={recordUnsafeLifecycleWarnings:function(fiber,instance){},flushPendingUnsafeLifecycleWarnings:function(){},recordLegacyContextWarning:function(fiber,instance){},flushLegacyContextWarning:function(){},discardPendingWarnings:function(){}};{var findStrictRoot=function(fiber){var maybeStrictRoot=null;var node=fiber;while(node!==null){if(node.mode&StrictLegacyMode){maybeStrictRoot=node;}node=node.return;}return maybeStrictRoot;};var setToSortedString=function(set){var array=[];set.forEach(function(value){array.push(value);});return array.sort().join(', ');};var pendingComponentWillMountWarnings=[];var pendingUNSAFE_ComponentWillMountWarnings=[];var pendingComponentWillReceivePropsWarnings=[];var pendingUNSAFE_ComponentWillReceivePropsWarnings=[];var pendingComponentWillUpdateWarnings=[];var pendingUNSAFE_ComponentWillUpdateWarnings=[];// Tracks components we have already warned about.\nvar didWarnAboutUnsafeLifecycles=new Set();ReactStrictModeWarnings.recordUnsafeLifecycleWarnings=function(fiber,instance){// Dedupe strategy: Warn once per component.\nif(didWarnAboutUnsafeLifecycles.has(fiber.type)){return;}if(typeof instance.componentWillMount==='function'&&// Don't warn about react-lifecycles-compat polyfilled components.\ninstance.componentWillMount.__suppressDeprecationWarning!==true){pendingComponentWillMountWarnings.push(fiber);}if(fiber.mode&StrictLegacyMode&&typeof instance.UNSAFE_componentWillMount==='function'){pendingUNSAFE_ComponentWillMountWarnings.push(fiber);}if(typeof instance.componentWillReceiveProps==='function'&&instance.componentWillReceiveProps.__suppressDeprecationWarning!==true){pendingComponentWillReceivePropsWarnings.push(fiber);}if(fiber.mode&StrictLegacyMode&&typeof instance.UNSAFE_componentWillReceiveProps==='function'){pendingUNSAFE_ComponentWillReceivePropsWarnings.push(fiber);}if(typeof instance.componentWillUpdate==='function'&&instance.componentWillUpdate.__suppressDeprecationWarning!==true){pendingComponentWillUpdateWarnings.push(fiber);}if(fiber.mode&StrictLegacyMode&&typeof instance.UNSAFE_componentWillUpdate==='function'){pendingUNSAFE_ComponentWillUpdateWarnings.push(fiber);}};ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings=function(){// We do an initial pass to gather component names\nvar componentWillMountUniqueNames=new Set();if(pendingComponentWillMountWarnings.length>0){pendingComponentWillMountWarnings.forEach(function(fiber){componentWillMountUniqueNames.add(getComponentNameFromFiber(fiber)||'Component');didWarnAboutUnsafeLifecycles.add(fiber.type);});pendingComponentWillMountWarnings=[];}var UNSAFE_componentWillMountUniqueNames=new Set();if(pendingUNSAFE_ComponentWillMountWarnings.length>0){pendingUNSAFE_ComponentWillMountWarnings.forEach(function(fiber){UNSAFE_componentWillMountUniqueNames.add(getComponentNameFromFiber(fiber)||'Component');didWarnAboutUnsafeLifecycles.add(fiber.type);});pendingUNSAFE_ComponentWillMountWarnings=[];}var componentWillReceivePropsUniqueNames=new Set();if(pendingComponentWillReceivePropsWarnings.length>0){pendingComponentWillReceivePropsWarnings.forEach(function(fiber){componentWillReceivePropsUniqueNames.add(getComponentNameFromFiber(fiber)||'Component');didWarnAboutUnsafeLifecycles.add(fiber.type);});pendingComponentWillReceivePropsWarnings=[];}var UNSAFE_componentWillReceivePropsUniqueNames=new Set();if(pendingUNSAFE_ComponentWillReceivePropsWarnings.length>0){pendingUNSAFE_ComponentWillReceivePropsWarnings.forEach(function(fiber){UNSAFE_componentWillReceivePropsUniqueNames.add(getComponentNameFromFiber(fiber)||'Component');didWarnAboutUnsafeLifecycles.add(fiber.type);});pendingUNSAFE_ComponentWillReceivePropsWarnings=[];}var componentWillUpdateUniqueNames=new Set();if(pendingComponentWillUpdateWarnings.length>0){pendingComponentWillUpdateWarnings.forEach(function(fiber){componentWillUpdateUniqueNames.add(getComponentNameFromFiber(fiber)||'Component');didWarnAboutUnsafeLifecycles.add(fiber.type);});pendingComponentWillUpdateWarnings=[];}var UNSAFE_componentWillUpdateUniqueNames=new Set();if(pendingUNSAFE_ComponentWillUpdateWarnings.length>0){pendingUNSAFE_ComponentWillUpdateWarnings.forEach(function(fiber){UNSAFE_componentWillUpdateUniqueNames.add(getComponentNameFromFiber(fiber)||'Component');didWarnAboutUnsafeLifecycles.add(fiber.type);});pendingUNSAFE_ComponentWillUpdateWarnings=[];}// Finally, we flush all the warnings\n// UNSAFE_ ones before the deprecated ones, since they'll be 'louder'\nif(UNSAFE_componentWillMountUniqueNames.size>0){var sortedNames=setToSortedString(UNSAFE_componentWillMountUniqueNames);error('Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. '+'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n'+'* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n'+'\\nPlease update the following components: %s',sortedNames);}if(UNSAFE_componentWillReceivePropsUniqueNames.size>0){var _sortedNames=setToSortedString(UNSAFE_componentWillReceivePropsUniqueNames);error('Using UNSAFE_componentWillReceiveProps in strict mode is not recommended '+'and may indicate bugs in your code. '+'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n'+'* Move data fetching code or side effects to componentDidUpdate.\\n'+\"* If you're updating state whenever props change, \"+'refactor your code to use memoization techniques or move it to '+'static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state\\n'+'\\nPlease update the following components: %s',_sortedNames);}if(UNSAFE_componentWillUpdateUniqueNames.size>0){var _sortedNames2=setToSortedString(UNSAFE_componentWillUpdateUniqueNames);error('Using UNSAFE_componentWillUpdate in strict mode is not recommended '+'and may indicate bugs in your code. '+'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n'+'* Move data fetching code or side effects to componentDidUpdate.\\n'+'\\nPlease update the following components: %s',_sortedNames2);}if(componentWillMountUniqueNames.size>0){var _sortedNames3=setToSortedString(componentWillMountUniqueNames);warn('componentWillMount has been renamed, and is not recommended for use. '+'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n'+'* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n'+'* Rename componentWillMount to UNSAFE_componentWillMount to suppress '+'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. '+'To rename all deprecated lifecycles to their new names, you can run '+'`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n'+'\\nPlease update the following components: %s',_sortedNames3);}if(componentWillReceivePropsUniqueNames.size>0){var _sortedNames4=setToSortedString(componentWillReceivePropsUniqueNames);warn('componentWillReceiveProps has been renamed, and is not recommended for use. '+'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n'+'* Move data fetching code or side effects to componentDidUpdate.\\n'+\"* If you're updating state whenever props change, refactor your \"+'code to use memoization techniques or move it to '+'static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state\\n'+'* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress '+'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. '+'To rename all deprecated lifecycles to their new names, you can run '+'`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n'+'\\nPlease update the following components: %s',_sortedNames4);}if(componentWillUpdateUniqueNames.size>0){var _sortedNames5=setToSortedString(componentWillUpdateUniqueNames);warn('componentWillUpdate has been renamed, and is not recommended for use. '+'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n'+'* Move data fetching code or side effects to componentDidUpdate.\\n'+'* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress '+'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. '+'To rename all deprecated lifecycles to their new names, you can run '+'`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n'+'\\nPlease update the following components: %s',_sortedNames5);}};var pendingLegacyContextWarning=new Map();// Tracks components we have already warned about.\nvar didWarnAboutLegacyContext=new Set();ReactStrictModeWarnings.recordLegacyContextWarning=function(fiber,instance){var strictRoot=findStrictRoot(fiber);if(strictRoot===null){error('Expected to find a StrictMode component in a strict mode tree. '+'This error is likely caused by a bug in React. Please file an issue.');return;}// Dedup strategy: Warn once per component.\nif(didWarnAboutLegacyContext.has(fiber.type)){return;}var warningsForRoot=pendingLegacyContextWarning.get(strictRoot);if(fiber.type.contextTypes!=null||fiber.type.childContextTypes!=null||instance!==null&&typeof instance.getChildContext==='function'){if(warningsForRoot===undefined){warningsForRoot=[];pendingLegacyContextWarning.set(strictRoot,warningsForRoot);}warningsForRoot.push(fiber);}};ReactStrictModeWarnings.flushLegacyContextWarning=function(){pendingLegacyContextWarning.forEach(function(fiberArray,strictRoot){if(fiberArray.length===0){return;}var firstFiber=fiberArray[0];var uniqueNames=new Set();fiberArray.forEach(function(fiber){uniqueNames.add(getComponentNameFromFiber(fiber)||'Component');didWarnAboutLegacyContext.add(fiber.type);});var sortedNames=setToSortedString(uniqueNames);try{setCurrentFiber(firstFiber);error('Legacy context API has been detected within a strict-mode tree.'+'\\n\\nThe old API will be supported in all 16.x releases, but applications '+'using it should migrate to the new version.'+'\\n\\nPlease update the following components: %s'+'\\n\\nLearn more about this warning here: https://reactjs.org/link/legacy-context',sortedNames);}finally{resetCurrentFiber();}});};ReactStrictModeWarnings.discardPendingWarnings=function(){pendingComponentWillMountWarnings=[];pendingUNSAFE_ComponentWillMountWarnings=[];pendingComponentWillReceivePropsWarnings=[];pendingUNSAFE_ComponentWillReceivePropsWarnings=[];pendingComponentWillUpdateWarnings=[];pendingUNSAFE_ComponentWillUpdateWarnings=[];pendingLegacyContextWarning=new Map();};}var didWarnAboutMaps;var didWarnAboutGenerators;var didWarnAboutStringRefs;var ownerHasKeyUseWarning;var ownerHasFunctionTypeWarning;var warnForMissingKey=function(child,returnFiber){};{didWarnAboutMaps=false;didWarnAboutGenerators=false;didWarnAboutStringRefs={};/**\n   * Warn if there's no key explicitly set on dynamic arrays of children or\n   * object keys are not valid. This allows us to keep track of children between\n   * updates.\n   */ownerHasKeyUseWarning={};ownerHasFunctionTypeWarning={};warnForMissingKey=function(child,returnFiber){if(child===null||typeof child!=='object'){return;}if(!child._store||child._store.validated||child.key!=null){return;}if(typeof child._store!=='object'){throw new Error('React Component in warnForMissingKey should have a _store. '+'This error is likely caused by a bug in React. Please file an issue.');}child._store.validated=true;var componentName=getComponentNameFromFiber(returnFiber)||'Component';if(ownerHasKeyUseWarning[componentName]){return;}ownerHasKeyUseWarning[componentName]=true;error('Each child in a list should have a unique '+'\"key\" prop. See https://reactjs.org/link/warning-keys for '+'more information.');};}function isReactClass(type){return type.prototype&&type.prototype.isReactComponent;}function coerceRef(returnFiber,current,element){var mixedRef=element.ref;if(mixedRef!==null&&typeof mixedRef!=='function'&&typeof mixedRef!=='object'){{// TODO: Clean this up once we turn on the string ref warning for\n// everyone, because the strict mode case will no longer be relevant\nif((returnFiber.mode&StrictLegacyMode||warnAboutStringRefs)&&// We warn in ReactElement.js if owner and self are equal for string refs\n// because these cannot be automatically converted to an arrow function\n// using a codemod. Therefore, we don't have to warn about string refs again.\n!(element._owner&&element._self&&element._owner.stateNode!==element._self)&&// Will already throw with \"Function components cannot have string refs\"\n!(element._owner&&element._owner.tag!==ClassComponent)&&// Will already warn with \"Function components cannot be given refs\"\n!(typeof element.type==='function'&&!isReactClass(element.type))&&// Will already throw with \"Element ref was specified as a string (someStringRef) but no owner was set\"\nelement._owner){var componentName=getComponentNameFromFiber(returnFiber)||'Component';if(!didWarnAboutStringRefs[componentName]){{error('Component \"%s\" contains the string ref \"%s\". Support for string refs '+'will be removed in a future major release. We recommend using '+'useRef() or createRef() instead. '+'Learn more about using refs safely here: '+'https://reactjs.org/link/strict-mode-string-ref',componentName,mixedRef);}didWarnAboutStringRefs[componentName]=true;}}}if(element._owner){var owner=element._owner;var inst;if(owner){var ownerFiber=owner;if(ownerFiber.tag!==ClassComponent){throw new Error('Function components cannot have string refs. '+'We recommend using useRef() instead. '+'Learn more about using refs safely here: '+'https://reactjs.org/link/strict-mode-string-ref');}inst=ownerFiber.stateNode;}if(!inst){throw new Error(\"Missing owner for string ref \"+mixedRef+\". This error is likely caused by a \"+'bug in React. Please file an issue.');}// Assigning this to a const so Flow knows it won't change in the closure\nvar resolvedInst=inst;{checkPropStringCoercion(mixedRef,'ref');}var stringRef=''+mixedRef;// Check if previous string ref matches new string ref\nif(current!==null&&current.ref!==null&&typeof current.ref==='function'&&current.ref._stringRef===stringRef){return current.ref;}var ref=function(value){var refs=resolvedInst.refs;if(value===null){delete refs[stringRef];}else{refs[stringRef]=value;}};ref._stringRef=stringRef;return ref;}else{if(typeof mixedRef!=='string'){throw new Error('Expected ref to be a function, a string, an object returned by React.createRef(), or null.');}if(!element._owner){throw new Error(\"Element ref was specified as a string (\"+mixedRef+\") but no owner was set. This could happen for one of\"+' the following reasons:\\n'+'1. You may be adding a ref to a function component\\n'+\"2. You may be adding a ref to a component that was not created inside a component's render method\\n\"+'3. You have multiple copies of React loaded\\n'+'See https://reactjs.org/link/refs-must-have-owner for more information.');}}}return mixedRef;}function throwOnInvalidObjectType(returnFiber,newChild){var childString=Object.prototype.toString.call(newChild);throw new Error(\"Objects are not valid as a React child (found: \"+(childString==='[object Object]'?'object with keys {'+Object.keys(newChild).join(', ')+'}':childString)+\"). \"+'If you meant to render a collection of children, use an array '+'instead.');}function warnOnFunctionType(returnFiber){{var componentName=getComponentNameFromFiber(returnFiber)||'Component';if(ownerHasFunctionTypeWarning[componentName]){return;}ownerHasFunctionTypeWarning[componentName]=true;error('Functions are not valid as a React child. This may happen if '+'you return a Component instead of <Component /> from render. '+'Or maybe you meant to call this function rather than return it.');}}function resolveLazy(lazyType){var payload=lazyType._payload;var init=lazyType._init;return init(payload);}// This wrapper function exists because I expect to clone the code in each path\n// to be able to optimize each path individually by branching early. This needs\n// a compiler or we can do it manually. Helpers that don't need this branching\n// live outside of this function.\nfunction ChildReconciler(shouldTrackSideEffects){function deleteChild(returnFiber,childToDelete){if(!shouldTrackSideEffects){// Noop.\nreturn;}var deletions=returnFiber.deletions;if(deletions===null){returnFiber.deletions=[childToDelete];returnFiber.flags|=ChildDeletion;}else{deletions.push(childToDelete);}}function deleteRemainingChildren(returnFiber,currentFirstChild){if(!shouldTrackSideEffects){// Noop.\nreturn null;}// TODO: For the shouldClone case, this could be micro-optimized a bit by\n// assuming that after the first child we've already added everything.\nvar childToDelete=currentFirstChild;while(childToDelete!==null){deleteChild(returnFiber,childToDelete);childToDelete=childToDelete.sibling;}return null;}function mapRemainingChildren(returnFiber,currentFirstChild){// Add the remaining children to a temporary map so that we can find them by\n// keys quickly. Implicit (null) keys get added to this set with their index\n// instead.\nvar existingChildren=new Map();var existingChild=currentFirstChild;while(existingChild!==null){if(existingChild.key!==null){existingChildren.set(existingChild.key,existingChild);}else{existingChildren.set(existingChild.index,existingChild);}existingChild=existingChild.sibling;}return existingChildren;}function useFiber(fiber,pendingProps){// We currently set sibling to null and index to 0 here because it is easy\n// to forget to do before returning it. E.g. for the single child case.\nvar clone=createWorkInProgress(fiber,pendingProps);clone.index=0;clone.sibling=null;return clone;}function placeChild(newFiber,lastPlacedIndex,newIndex){newFiber.index=newIndex;if(!shouldTrackSideEffects){// During hydration, the useId algorithm needs to know which fibers are\n// part of a list of children (arrays, iterators).\nnewFiber.flags|=Forked;return lastPlacedIndex;}var current=newFiber.alternate;if(current!==null){var oldIndex=current.index;if(oldIndex<lastPlacedIndex){// This is a move.\nnewFiber.flags|=Placement;return lastPlacedIndex;}else{// This item can stay in place.\nreturn oldIndex;}}else{// This is an insertion.\nnewFiber.flags|=Placement;return lastPlacedIndex;}}function placeSingleChild(newFiber){// This is simpler for the single child case. We only need to do a\n// placement for inserting new children.\nif(shouldTrackSideEffects&&newFiber.alternate===null){newFiber.flags|=Placement;}return newFiber;}function updateTextNode(returnFiber,current,textContent,lanes){if(current===null||current.tag!==HostText){// Insert\nvar created=createFiberFromText(textContent,returnFiber.mode,lanes);created.return=returnFiber;return created;}else{// Update\nvar existing=useFiber(current,textContent);existing.return=returnFiber;return existing;}}function updateElement(returnFiber,current,element,lanes){var elementType=element.type;if(elementType===REACT_FRAGMENT_TYPE){return updateFragment(returnFiber,current,element.props.children,lanes,element.key);}if(current!==null){if(current.elementType===elementType||// Keep this check inline so it only runs on the false path:\nisCompatibleFamilyForHotReloading(current,element)||// Lazy types should reconcile their resolved type.\n// We need to do this after the Hot Reloading check above,\n// because hot reloading has different semantics than prod because\n// it doesn't resuspend. So we can't let the call below suspend.\ntypeof elementType==='object'&&elementType!==null&&elementType.$$typeof===REACT_LAZY_TYPE&&resolveLazy(elementType)===current.type){// Move based on index\nvar existing=useFiber(current,element.props);existing.ref=coerceRef(returnFiber,current,element);existing.return=returnFiber;{existing._debugSource=element._source;existing._debugOwner=element._owner;}return existing;}}// Insert\nvar created=createFiberFromElement(element,returnFiber.mode,lanes);created.ref=coerceRef(returnFiber,current,element);created.return=returnFiber;return created;}function updatePortal(returnFiber,current,portal,lanes){if(current===null||current.tag!==HostPortal||current.stateNode.containerInfo!==portal.containerInfo||current.stateNode.implementation!==portal.implementation){// Insert\nvar created=createFiberFromPortal(portal,returnFiber.mode,lanes);created.return=returnFiber;return created;}else{// Update\nvar existing=useFiber(current,portal.children||[]);existing.return=returnFiber;return existing;}}function updateFragment(returnFiber,current,fragment,lanes,key){if(current===null||current.tag!==Fragment){// Insert\nvar created=createFiberFromFragment(fragment,returnFiber.mode,lanes,key);created.return=returnFiber;return created;}else{// Update\nvar existing=useFiber(current,fragment);existing.return=returnFiber;return existing;}}function createChild(returnFiber,newChild,lanes){if(typeof newChild==='string'&&newChild!==''||typeof newChild==='number'){// Text nodes don't have keys. If the previous node is implicitly keyed\n// we can continue to replace it without aborting even if it is not a text\n// node.\nvar created=createFiberFromText(''+newChild,returnFiber.mode,lanes);created.return=returnFiber;return created;}if(typeof newChild==='object'&&newChild!==null){switch(newChild.$$typeof){case REACT_ELEMENT_TYPE:{var _created=createFiberFromElement(newChild,returnFiber.mode,lanes);_created.ref=coerceRef(returnFiber,null,newChild);_created.return=returnFiber;return _created;}case REACT_PORTAL_TYPE:{var _created2=createFiberFromPortal(newChild,returnFiber.mode,lanes);_created2.return=returnFiber;return _created2;}case REACT_LAZY_TYPE:{var payload=newChild._payload;var init=newChild._init;return createChild(returnFiber,init(payload),lanes);}}if(isArray(newChild)||getIteratorFn(newChild)){var _created3=createFiberFromFragment(newChild,returnFiber.mode,lanes,null);_created3.return=returnFiber;return _created3;}throwOnInvalidObjectType(returnFiber,newChild);}{if(typeof newChild==='function'){warnOnFunctionType(returnFiber);}}return null;}function updateSlot(returnFiber,oldFiber,newChild,lanes){// Update the fiber if the keys match, otherwise return null.\nvar key=oldFiber!==null?oldFiber.key:null;if(typeof newChild==='string'&&newChild!==''||typeof newChild==='number'){// Text nodes don't have keys. If the previous node is implicitly keyed\n// we can continue to replace it without aborting even if it is not a text\n// node.\nif(key!==null){return null;}return updateTextNode(returnFiber,oldFiber,''+newChild,lanes);}if(typeof newChild==='object'&&newChild!==null){switch(newChild.$$typeof){case REACT_ELEMENT_TYPE:{if(newChild.key===key){return updateElement(returnFiber,oldFiber,newChild,lanes);}else{return null;}}case REACT_PORTAL_TYPE:{if(newChild.key===key){return updatePortal(returnFiber,oldFiber,newChild,lanes);}else{return null;}}case REACT_LAZY_TYPE:{var payload=newChild._payload;var init=newChild._init;return updateSlot(returnFiber,oldFiber,init(payload),lanes);}}if(isArray(newChild)||getIteratorFn(newChild)){if(key!==null){return null;}return updateFragment(returnFiber,oldFiber,newChild,lanes,null);}throwOnInvalidObjectType(returnFiber,newChild);}{if(typeof newChild==='function'){warnOnFunctionType(returnFiber);}}return null;}function updateFromMap(existingChildren,returnFiber,newIdx,newChild,lanes){if(typeof newChild==='string'&&newChild!==''||typeof newChild==='number'){// Text nodes don't have keys, so we neither have to check the old nor\n// new node for the key. If both are text nodes, they match.\nvar matchedFiber=existingChildren.get(newIdx)||null;return updateTextNode(returnFiber,matchedFiber,''+newChild,lanes);}if(typeof newChild==='object'&&newChild!==null){switch(newChild.$$typeof){case REACT_ELEMENT_TYPE:{var _matchedFiber=existingChildren.get(newChild.key===null?newIdx:newChild.key)||null;return updateElement(returnFiber,_matchedFiber,newChild,lanes);}case REACT_PORTAL_TYPE:{var _matchedFiber2=existingChildren.get(newChild.key===null?newIdx:newChild.key)||null;return updatePortal(returnFiber,_matchedFiber2,newChild,lanes);}case REACT_LAZY_TYPE:var payload=newChild._payload;var init=newChild._init;return updateFromMap(existingChildren,returnFiber,newIdx,init(payload),lanes);}if(isArray(newChild)||getIteratorFn(newChild)){var _matchedFiber3=existingChildren.get(newIdx)||null;return updateFragment(returnFiber,_matchedFiber3,newChild,lanes,null);}throwOnInvalidObjectType(returnFiber,newChild);}{if(typeof newChild==='function'){warnOnFunctionType(returnFiber);}}return null;}/**\n   * Warns if there is a duplicate or missing key\n   */function warnOnInvalidKey(child,knownKeys,returnFiber){{if(typeof child!=='object'||child===null){return knownKeys;}switch(child.$$typeof){case REACT_ELEMENT_TYPE:case REACT_PORTAL_TYPE:warnForMissingKey(child,returnFiber);var key=child.key;if(typeof key!=='string'){break;}if(knownKeys===null){knownKeys=new Set();knownKeys.add(key);break;}if(!knownKeys.has(key)){knownKeys.add(key);break;}error('Encountered two children with the same key, `%s`. '+'Keys should be unique so that components maintain their identity '+'across updates. Non-unique keys may cause children to be '+'duplicated and/or omitted — the behavior is unsupported and '+'could change in a future version.',key);break;case REACT_LAZY_TYPE:var payload=child._payload;var init=child._init;warnOnInvalidKey(init(payload),knownKeys,returnFiber);break;}}return knownKeys;}function reconcileChildrenArray(returnFiber,currentFirstChild,newChildren,lanes){// This algorithm can't optimize by searching from both ends since we\n// don't have backpointers on fibers. I'm trying to see how far we can get\n// with that model. If it ends up not being worth the tradeoffs, we can\n// add it later.\n// Even with a two ended optimization, we'd want to optimize for the case\n// where there are few changes and brute force the comparison instead of\n// going for the Map. It'd like to explore hitting that path first in\n// forward-only mode and only go for the Map once we notice that we need\n// lots of look ahead. This doesn't handle reversal as well as two ended\n// search but that's unusual. Besides, for the two ended optimization to\n// work on Iterables, we'd need to copy the whole set.\n// In this first iteration, we'll just live with hitting the bad case\n// (adding everything to a Map) in for every insert/move.\n// If you change this code, also update reconcileChildrenIterator() which\n// uses the same algorithm.\n{// First, validate keys.\nvar knownKeys=null;for(var i=0;i<newChildren.length;i++){var child=newChildren[i];knownKeys=warnOnInvalidKey(child,knownKeys,returnFiber);}}var resultingFirstChild=null;var previousNewFiber=null;var oldFiber=currentFirstChild;var lastPlacedIndex=0;var newIdx=0;var nextOldFiber=null;for(;oldFiber!==null&&newIdx<newChildren.length;newIdx++){if(oldFiber.index>newIdx){nextOldFiber=oldFiber;oldFiber=null;}else{nextOldFiber=oldFiber.sibling;}var newFiber=updateSlot(returnFiber,oldFiber,newChildren[newIdx],lanes);if(newFiber===null){// TODO: This breaks on empty slots like null children. That's\n// unfortunate because it triggers the slow path all the time. We need\n// a better way to communicate whether this was a miss or null,\n// boolean, undefined, etc.\nif(oldFiber===null){oldFiber=nextOldFiber;}break;}if(shouldTrackSideEffects){if(oldFiber&&newFiber.alternate===null){// We matched the slot, but we didn't reuse the existing fiber, so we\n// need to delete the existing child.\ndeleteChild(returnFiber,oldFiber);}}lastPlacedIndex=placeChild(newFiber,lastPlacedIndex,newIdx);if(previousNewFiber===null){// TODO: Move out of the loop. This only happens for the first run.\nresultingFirstChild=newFiber;}else{// TODO: Defer siblings if we're not at the right index for this slot.\n// I.e. if we had null values before, then we want to defer this\n// for each null value. However, we also don't want to call updateSlot\n// with the previous one.\npreviousNewFiber.sibling=newFiber;}previousNewFiber=newFiber;oldFiber=nextOldFiber;}if(newIdx===newChildren.length){// We've reached the end of the new children. We can delete the rest.\ndeleteRemainingChildren(returnFiber,oldFiber);if(getIsHydrating()){var numberOfForks=newIdx;pushTreeFork(returnFiber,numberOfForks);}return resultingFirstChild;}if(oldFiber===null){// If we don't have any more existing children we can choose a fast path\n// since the rest will all be insertions.\nfor(;newIdx<newChildren.length;newIdx++){var _newFiber=createChild(returnFiber,newChildren[newIdx],lanes);if(_newFiber===null){continue;}lastPlacedIndex=placeChild(_newFiber,lastPlacedIndex,newIdx);if(previousNewFiber===null){// TODO: Move out of the loop. This only happens for the first run.\nresultingFirstChild=_newFiber;}else{previousNewFiber.sibling=_newFiber;}previousNewFiber=_newFiber;}if(getIsHydrating()){var _numberOfForks=newIdx;pushTreeFork(returnFiber,_numberOfForks);}return resultingFirstChild;}// Add all children to a key map for quick lookups.\nvar existingChildren=mapRemainingChildren(returnFiber,oldFiber);// Keep scanning and use the map to restore deleted items as moves.\nfor(;newIdx<newChildren.length;newIdx++){var _newFiber2=updateFromMap(existingChildren,returnFiber,newIdx,newChildren[newIdx],lanes);if(_newFiber2!==null){if(shouldTrackSideEffects){if(_newFiber2.alternate!==null){// The new fiber is a work in progress, but if there exists a\n// current, that means that we reused the fiber. We need to delete\n// it from the child list so that we don't add it to the deletion\n// list.\nexistingChildren.delete(_newFiber2.key===null?newIdx:_newFiber2.key);}}lastPlacedIndex=placeChild(_newFiber2,lastPlacedIndex,newIdx);if(previousNewFiber===null){resultingFirstChild=_newFiber2;}else{previousNewFiber.sibling=_newFiber2;}previousNewFiber=_newFiber2;}}if(shouldTrackSideEffects){// Any existing children that weren't consumed above were deleted. We need\n// to add them to the deletion list.\nexistingChildren.forEach(function(child){return deleteChild(returnFiber,child);});}if(getIsHydrating()){var _numberOfForks2=newIdx;pushTreeFork(returnFiber,_numberOfForks2);}return resultingFirstChild;}function reconcileChildrenIterator(returnFiber,currentFirstChild,newChildrenIterable,lanes){// This is the same implementation as reconcileChildrenArray(),\n// but using the iterator instead.\nvar iteratorFn=getIteratorFn(newChildrenIterable);if(typeof iteratorFn!=='function'){throw new Error('An object is not an iterable. This error is likely caused by a bug in '+'React. Please file an issue.');}{// We don't support rendering Generators because it's a mutation.\n// See https://github.com/facebook/react/issues/12995\nif(typeof Symbol==='function'&&// $FlowFixMe Flow doesn't know about toStringTag\nnewChildrenIterable[Symbol.toStringTag]==='Generator'){if(!didWarnAboutGenerators){error('Using Generators as children is unsupported and will likely yield '+'unexpected results because enumerating a generator mutates it. '+'You may convert it to an array with `Array.from()` or the '+'`[...spread]` operator before rendering. Keep in mind '+'you might need to polyfill these features for older browsers.');}didWarnAboutGenerators=true;}// Warn about using Maps as children\nif(newChildrenIterable.entries===iteratorFn){if(!didWarnAboutMaps){error('Using Maps as children is not supported. '+'Use an array of keyed ReactElements instead.');}didWarnAboutMaps=true;}// First, validate keys.\n// We'll get a different iterator later for the main pass.\nvar _newChildren=iteratorFn.call(newChildrenIterable);if(_newChildren){var knownKeys=null;var _step=_newChildren.next();for(;!_step.done;_step=_newChildren.next()){var child=_step.value;knownKeys=warnOnInvalidKey(child,knownKeys,returnFiber);}}}var newChildren=iteratorFn.call(newChildrenIterable);if(newChildren==null){throw new Error('An iterable object provided no iterator.');}var resultingFirstChild=null;var previousNewFiber=null;var oldFiber=currentFirstChild;var lastPlacedIndex=0;var newIdx=0;var nextOldFiber=null;var step=newChildren.next();for(;oldFiber!==null&&!step.done;newIdx++,step=newChildren.next()){if(oldFiber.index>newIdx){nextOldFiber=oldFiber;oldFiber=null;}else{nextOldFiber=oldFiber.sibling;}var newFiber=updateSlot(returnFiber,oldFiber,step.value,lanes);if(newFiber===null){// TODO: This breaks on empty slots like null children. That's\n// unfortunate because it triggers the slow path all the time. We need\n// a better way to communicate whether this was a miss or null,\n// boolean, undefined, etc.\nif(oldFiber===null){oldFiber=nextOldFiber;}break;}if(shouldTrackSideEffects){if(oldFiber&&newFiber.alternate===null){// We matched the slot, but we didn't reuse the existing fiber, so we\n// need to delete the existing child.\ndeleteChild(returnFiber,oldFiber);}}lastPlacedIndex=placeChild(newFiber,lastPlacedIndex,newIdx);if(previousNewFiber===null){// TODO: Move out of the loop. This only happens for the first run.\nresultingFirstChild=newFiber;}else{// TODO: Defer siblings if we're not at the right index for this slot.\n// I.e. if we had null values before, then we want to defer this\n// for each null value. However, we also don't want to call updateSlot\n// with the previous one.\npreviousNewFiber.sibling=newFiber;}previousNewFiber=newFiber;oldFiber=nextOldFiber;}if(step.done){// We've reached the end of the new children. We can delete the rest.\ndeleteRemainingChildren(returnFiber,oldFiber);if(getIsHydrating()){var numberOfForks=newIdx;pushTreeFork(returnFiber,numberOfForks);}return resultingFirstChild;}if(oldFiber===null){// If we don't have any more existing children we can choose a fast path\n// since the rest will all be insertions.\nfor(;!step.done;newIdx++,step=newChildren.next()){var _newFiber3=createChild(returnFiber,step.value,lanes);if(_newFiber3===null){continue;}lastPlacedIndex=placeChild(_newFiber3,lastPlacedIndex,newIdx);if(previousNewFiber===null){// TODO: Move out of the loop. This only happens for the first run.\nresultingFirstChild=_newFiber3;}else{previousNewFiber.sibling=_newFiber3;}previousNewFiber=_newFiber3;}if(getIsHydrating()){var _numberOfForks3=newIdx;pushTreeFork(returnFiber,_numberOfForks3);}return resultingFirstChild;}// Add all children to a key map for quick lookups.\nvar existingChildren=mapRemainingChildren(returnFiber,oldFiber);// Keep scanning and use the map to restore deleted items as moves.\nfor(;!step.done;newIdx++,step=newChildren.next()){var _newFiber4=updateFromMap(existingChildren,returnFiber,newIdx,step.value,lanes);if(_newFiber4!==null){if(shouldTrackSideEffects){if(_newFiber4.alternate!==null){// The new fiber is a work in progress, but if there exists a\n// current, that means that we reused the fiber. We need to delete\n// it from the child list so that we don't add it to the deletion\n// list.\nexistingChildren.delete(_newFiber4.key===null?newIdx:_newFiber4.key);}}lastPlacedIndex=placeChild(_newFiber4,lastPlacedIndex,newIdx);if(previousNewFiber===null){resultingFirstChild=_newFiber4;}else{previousNewFiber.sibling=_newFiber4;}previousNewFiber=_newFiber4;}}if(shouldTrackSideEffects){// Any existing children that weren't consumed above were deleted. We need\n// to add them to the deletion list.\nexistingChildren.forEach(function(child){return deleteChild(returnFiber,child);});}if(getIsHydrating()){var _numberOfForks4=newIdx;pushTreeFork(returnFiber,_numberOfForks4);}return resultingFirstChild;}function reconcileSingleTextNode(returnFiber,currentFirstChild,textContent,lanes){// There's no need to check for keys on text nodes since we don't have a\n// way to define them.\nif(currentFirstChild!==null&&currentFirstChild.tag===HostText){// We already have an existing node so let's just update it and delete\n// the rest.\ndeleteRemainingChildren(returnFiber,currentFirstChild.sibling);var existing=useFiber(currentFirstChild,textContent);existing.return=returnFiber;return existing;}// The existing first child is not a text node so we need to create one\n// and delete the existing ones.\ndeleteRemainingChildren(returnFiber,currentFirstChild);var created=createFiberFromText(textContent,returnFiber.mode,lanes);created.return=returnFiber;return created;}function reconcileSingleElement(returnFiber,currentFirstChild,element,lanes){var key=element.key;var child=currentFirstChild;while(child!==null){// TODO: If key === null and child.key === null, then this only applies to\n// the first item in the list.\nif(child.key===key){var elementType=element.type;if(elementType===REACT_FRAGMENT_TYPE){if(child.tag===Fragment){deleteRemainingChildren(returnFiber,child.sibling);var existing=useFiber(child,element.props.children);existing.return=returnFiber;{existing._debugSource=element._source;existing._debugOwner=element._owner;}return existing;}}else{if(child.elementType===elementType||// Keep this check inline so it only runs on the false path:\nisCompatibleFamilyForHotReloading(child,element)||// Lazy types should reconcile their resolved type.\n// We need to do this after the Hot Reloading check above,\n// because hot reloading has different semantics than prod because\n// it doesn't resuspend. So we can't let the call below suspend.\ntypeof elementType==='object'&&elementType!==null&&elementType.$$typeof===REACT_LAZY_TYPE&&resolveLazy(elementType)===child.type){deleteRemainingChildren(returnFiber,child.sibling);var _existing=useFiber(child,element.props);_existing.ref=coerceRef(returnFiber,child,element);_existing.return=returnFiber;{_existing._debugSource=element._source;_existing._debugOwner=element._owner;}return _existing;}}// Didn't match.\ndeleteRemainingChildren(returnFiber,child);break;}else{deleteChild(returnFiber,child);}child=child.sibling;}if(element.type===REACT_FRAGMENT_TYPE){var created=createFiberFromFragment(element.props.children,returnFiber.mode,lanes,element.key);created.return=returnFiber;return created;}else{var _created4=createFiberFromElement(element,returnFiber.mode,lanes);_created4.ref=coerceRef(returnFiber,currentFirstChild,element);_created4.return=returnFiber;return _created4;}}function reconcileSinglePortal(returnFiber,currentFirstChild,portal,lanes){var key=portal.key;var child=currentFirstChild;while(child!==null){// TODO: If key === null and child.key === null, then this only applies to\n// the first item in the list.\nif(child.key===key){if(child.tag===HostPortal&&child.stateNode.containerInfo===portal.containerInfo&&child.stateNode.implementation===portal.implementation){deleteRemainingChildren(returnFiber,child.sibling);var existing=useFiber(child,portal.children||[]);existing.return=returnFiber;return existing;}else{deleteRemainingChildren(returnFiber,child);break;}}else{deleteChild(returnFiber,child);}child=child.sibling;}var created=createFiberFromPortal(portal,returnFiber.mode,lanes);created.return=returnFiber;return created;}// This API will tag the children with the side-effect of the reconciliation\n// itself. They will be added to the side-effect list as we pass through the\n// children and the parent.\nfunction reconcileChildFibers(returnFiber,currentFirstChild,newChild,lanes){// This function is not recursive.\n// If the top level item is an array, we treat it as a set of children,\n// not as a fragment. Nested arrays on the other hand will be treated as\n// fragment nodes. Recursion happens at the normal flow.\n// Handle top level unkeyed fragments as if they were arrays.\n// This leads to an ambiguity between <>{[...]}</> and <>...</>.\n// We treat the ambiguous cases above the same.\nvar isUnkeyedTopLevelFragment=typeof newChild==='object'&&newChild!==null&&newChild.type===REACT_FRAGMENT_TYPE&&newChild.key===null;if(isUnkeyedTopLevelFragment){newChild=newChild.props.children;}// Handle object types\nif(typeof newChild==='object'&&newChild!==null){switch(newChild.$$typeof){case REACT_ELEMENT_TYPE:return placeSingleChild(reconcileSingleElement(returnFiber,currentFirstChild,newChild,lanes));case REACT_PORTAL_TYPE:return placeSingleChild(reconcileSinglePortal(returnFiber,currentFirstChild,newChild,lanes));case REACT_LAZY_TYPE:var payload=newChild._payload;var init=newChild._init;// TODO: This function is supposed to be non-recursive.\nreturn reconcileChildFibers(returnFiber,currentFirstChild,init(payload),lanes);}if(isArray(newChild)){return reconcileChildrenArray(returnFiber,currentFirstChild,newChild,lanes);}if(getIteratorFn(newChild)){return reconcileChildrenIterator(returnFiber,currentFirstChild,newChild,lanes);}throwOnInvalidObjectType(returnFiber,newChild);}if(typeof newChild==='string'&&newChild!==''||typeof newChild==='number'){return placeSingleChild(reconcileSingleTextNode(returnFiber,currentFirstChild,''+newChild,lanes));}{if(typeof newChild==='function'){warnOnFunctionType(returnFiber);}}// Remaining cases are all treated as empty.\nreturn deleteRemainingChildren(returnFiber,currentFirstChild);}return reconcileChildFibers;}var reconcileChildFibers=ChildReconciler(true);var mountChildFibers=ChildReconciler(false);function cloneChildFibers(current,workInProgress){if(current!==null&&workInProgress.child!==current.child){throw new Error('Resuming work not yet implemented.');}if(workInProgress.child===null){return;}var currentChild=workInProgress.child;var newChild=createWorkInProgress(currentChild,currentChild.pendingProps);workInProgress.child=newChild;newChild.return=workInProgress;while(currentChild.sibling!==null){currentChild=currentChild.sibling;newChild=newChild.sibling=createWorkInProgress(currentChild,currentChild.pendingProps);newChild.return=workInProgress;}newChild.sibling=null;}// Reset a workInProgress child set to prepare it for a second pass.\nfunction resetChildFibers(workInProgress,lanes){var child=workInProgress.child;while(child!==null){resetWorkInProgress(child,lanes);child=child.sibling;}}var valueCursor=createCursor(null);var rendererSigil;{// Use this to detect multiple renderers using the same context\nrendererSigil={};}var currentlyRenderingFiber=null;var lastContextDependency=null;var lastFullyObservedContext=null;var isDisallowedContextReadInDEV=false;function resetContextDependencies(){// This is called right before React yields execution, to ensure `readContext`\n// cannot be called outside the render phase.\ncurrentlyRenderingFiber=null;lastContextDependency=null;lastFullyObservedContext=null;{isDisallowedContextReadInDEV=false;}}function enterDisallowedContextReadInDEV(){{isDisallowedContextReadInDEV=true;}}function exitDisallowedContextReadInDEV(){{isDisallowedContextReadInDEV=false;}}function pushProvider(providerFiber,context,nextValue){{push(valueCursor,context._currentValue,providerFiber);context._currentValue=nextValue;{if(context._currentRenderer!==undefined&&context._currentRenderer!==null&&context._currentRenderer!==rendererSigil){error('Detected multiple renderers concurrently rendering the '+'same context provider. This is currently unsupported.');}context._currentRenderer=rendererSigil;}}}function popProvider(context,providerFiber){var currentValue=valueCursor.current;pop(valueCursor,providerFiber);{{context._currentValue=currentValue;}}}function scheduleContextWorkOnParentPath(parent,renderLanes,propagationRoot){// Update the child lanes of all the ancestors, including the alternates.\nvar node=parent;while(node!==null){var alternate=node.alternate;if(!isSubsetOfLanes(node.childLanes,renderLanes)){node.childLanes=mergeLanes(node.childLanes,renderLanes);if(alternate!==null){alternate.childLanes=mergeLanes(alternate.childLanes,renderLanes);}}else if(alternate!==null&&!isSubsetOfLanes(alternate.childLanes,renderLanes)){alternate.childLanes=mergeLanes(alternate.childLanes,renderLanes);}if(node===propagationRoot){break;}node=node.return;}{if(node!==propagationRoot){error('Expected to find the propagation root when scheduling context work. '+'This error is likely caused by a bug in React. Please file an issue.');}}}function propagateContextChange(workInProgress,context,renderLanes){{propagateContextChange_eager(workInProgress,context,renderLanes);}}function propagateContextChange_eager(workInProgress,context,renderLanes){var fiber=workInProgress.child;if(fiber!==null){// Set the return pointer of the child to the work-in-progress fiber.\nfiber.return=workInProgress;}while(fiber!==null){var nextFiber=void 0;// Visit this fiber.\nvar list=fiber.dependencies;if(list!==null){nextFiber=fiber.child;var dependency=list.firstContext;while(dependency!==null){// Check if the context matches.\nif(dependency.context===context){// Match! Schedule an update on this fiber.\nif(fiber.tag===ClassComponent){// Schedule a force update on the work-in-progress.\nvar lane=pickArbitraryLane(renderLanes);var update=createUpdate(NoTimestamp,lane);update.tag=ForceUpdate;// TODO: Because we don't have a work-in-progress, this will add the\n// update to the current fiber, too, which means it will persist even if\n// this render is thrown away. Since it's a race condition, not sure it's\n// worth fixing.\n// Inlined `enqueueUpdate` to remove interleaved update check\nvar updateQueue=fiber.updateQueue;if(updateQueue===null);else{var sharedQueue=updateQueue.shared;var pending=sharedQueue.pending;if(pending===null){// This is the first update. Create a circular list.\nupdate.next=update;}else{update.next=pending.next;pending.next=update;}sharedQueue.pending=update;}}fiber.lanes=mergeLanes(fiber.lanes,renderLanes);var alternate=fiber.alternate;if(alternate!==null){alternate.lanes=mergeLanes(alternate.lanes,renderLanes);}scheduleContextWorkOnParentPath(fiber.return,renderLanes,workInProgress);// Mark the updated lanes on the list, too.\nlist.lanes=mergeLanes(list.lanes,renderLanes);// Since we already found a match, we can stop traversing the\n// dependency list.\nbreak;}dependency=dependency.next;}}else if(fiber.tag===ContextProvider){// Don't scan deeper if this is a matching provider\nnextFiber=fiber.type===workInProgress.type?null:fiber.child;}else if(fiber.tag===DehydratedFragment){// If a dehydrated suspense boundary is in this subtree, we don't know\n// if it will have any context consumers in it. The best we can do is\n// mark it as having updates.\nvar parentSuspense=fiber.return;if(parentSuspense===null){throw new Error('We just came from a parent so we must have had a parent. This is a bug in React.');}parentSuspense.lanes=mergeLanes(parentSuspense.lanes,renderLanes);var _alternate=parentSuspense.alternate;if(_alternate!==null){_alternate.lanes=mergeLanes(_alternate.lanes,renderLanes);}// This is intentionally passing this fiber as the parent\n// because we want to schedule this fiber as having work\n// on its children. We'll use the childLanes on\n// this fiber to indicate that a context has changed.\nscheduleContextWorkOnParentPath(parentSuspense,renderLanes,workInProgress);nextFiber=fiber.sibling;}else{// Traverse down.\nnextFiber=fiber.child;}if(nextFiber!==null){// Set the return pointer of the child to the work-in-progress fiber.\nnextFiber.return=fiber;}else{// No child. Traverse to next sibling.\nnextFiber=fiber;while(nextFiber!==null){if(nextFiber===workInProgress){// We're back to the root of this subtree. Exit.\nnextFiber=null;break;}var sibling=nextFiber.sibling;if(sibling!==null){// Set the return pointer of the sibling to the work-in-progress fiber.\nsibling.return=nextFiber.return;nextFiber=sibling;break;}// No more siblings. Traverse up.\nnextFiber=nextFiber.return;}}fiber=nextFiber;}}function prepareToReadContext(workInProgress,renderLanes){currentlyRenderingFiber=workInProgress;lastContextDependency=null;lastFullyObservedContext=null;var dependencies=workInProgress.dependencies;if(dependencies!==null){{var firstContext=dependencies.firstContext;if(firstContext!==null){if(includesSomeLane(dependencies.lanes,renderLanes)){// Context list has a pending update. Mark that this fiber performed work.\nmarkWorkInProgressReceivedUpdate();}// Reset the work-in-progress list\ndependencies.firstContext=null;}}}}function readContext(context){{// This warning would fire if you read context inside a Hook like useMemo.\n// Unlike the class check below, it's not enforced in production for perf.\nif(isDisallowedContextReadInDEV){error('Context can only be read while React is rendering. '+'In classes, you can read it in the render method or getDerivedStateFromProps. '+'In function components, you can read it directly in the function body, but not '+'inside Hooks like useReducer() or useMemo().');}}var value=context._currentValue;if(lastFullyObservedContext===context);else{var contextItem={context:context,memoizedValue:value,next:null};if(lastContextDependency===null){if(currentlyRenderingFiber===null){throw new Error('Context can only be read while React is rendering. '+'In classes, you can read it in the render method or getDerivedStateFromProps. '+'In function components, you can read it directly in the function body, but not '+'inside Hooks like useReducer() or useMemo().');}// This is the first dependency for this component. Create a new list.\nlastContextDependency=contextItem;currentlyRenderingFiber.dependencies={lanes:NoLanes,firstContext:contextItem};}else{// Append a new context item.\nlastContextDependency=lastContextDependency.next=contextItem;}}return value;}// render. When this render exits, either because it finishes or because it is\n// interrupted, the interleaved updates will be transferred onto the main part\n// of the queue.\nvar concurrentQueues=null;function pushConcurrentUpdateQueue(queue){if(concurrentQueues===null){concurrentQueues=[queue];}else{concurrentQueues.push(queue);}}function finishQueueingConcurrentUpdates(){// Transfer the interleaved updates onto the main queue. Each queue has a\n// `pending` field and an `interleaved` field. When they are not null, they\n// point to the last node in a circular linked list. We need to append the\n// interleaved list to the end of the pending list by joining them into a\n// single, circular list.\nif(concurrentQueues!==null){for(var i=0;i<concurrentQueues.length;i++){var queue=concurrentQueues[i];var lastInterleavedUpdate=queue.interleaved;if(lastInterleavedUpdate!==null){queue.interleaved=null;var firstInterleavedUpdate=lastInterleavedUpdate.next;var lastPendingUpdate=queue.pending;if(lastPendingUpdate!==null){var firstPendingUpdate=lastPendingUpdate.next;lastPendingUpdate.next=firstInterleavedUpdate;lastInterleavedUpdate.next=firstPendingUpdate;}queue.pending=lastInterleavedUpdate;}}concurrentQueues=null;}}function enqueueConcurrentHookUpdate(fiber,queue,update,lane){var interleaved=queue.interleaved;if(interleaved===null){// This is the first update. Create a circular list.\nupdate.next=update;// At the end of the current render, this queue's interleaved updates will\n// be transferred to the pending queue.\npushConcurrentUpdateQueue(queue);}else{update.next=interleaved.next;interleaved.next=update;}queue.interleaved=update;return markUpdateLaneFromFiberToRoot(fiber,lane);}function enqueueConcurrentHookUpdateAndEagerlyBailout(fiber,queue,update,lane){var interleaved=queue.interleaved;if(interleaved===null){// This is the first update. Create a circular list.\nupdate.next=update;// At the end of the current render, this queue's interleaved updates will\n// be transferred to the pending queue.\npushConcurrentUpdateQueue(queue);}else{update.next=interleaved.next;interleaved.next=update;}queue.interleaved=update;}function enqueueConcurrentClassUpdate(fiber,queue,update,lane){var interleaved=queue.interleaved;if(interleaved===null){// This is the first update. Create a circular list.\nupdate.next=update;// At the end of the current render, this queue's interleaved updates will\n// be transferred to the pending queue.\npushConcurrentUpdateQueue(queue);}else{update.next=interleaved.next;interleaved.next=update;}queue.interleaved=update;return markUpdateLaneFromFiberToRoot(fiber,lane);}function enqueueConcurrentRenderForLane(fiber,lane){return markUpdateLaneFromFiberToRoot(fiber,lane);}// Calling this function outside this module should only be done for backwards\n// compatibility and should always be accompanied by a warning.\nvar unsafe_markUpdateLaneFromFiberToRoot=markUpdateLaneFromFiberToRoot;function markUpdateLaneFromFiberToRoot(sourceFiber,lane){// Update the source fiber's lanes\nsourceFiber.lanes=mergeLanes(sourceFiber.lanes,lane);var alternate=sourceFiber.alternate;if(alternate!==null){alternate.lanes=mergeLanes(alternate.lanes,lane);}{if(alternate===null&&(sourceFiber.flags&(Placement|Hydrating))!==NoFlags){warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);}}// Walk the parent path to the root and update the child lanes.\nvar node=sourceFiber;var parent=sourceFiber.return;while(parent!==null){parent.childLanes=mergeLanes(parent.childLanes,lane);alternate=parent.alternate;if(alternate!==null){alternate.childLanes=mergeLanes(alternate.childLanes,lane);}else{{if((parent.flags&(Placement|Hydrating))!==NoFlags){warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);}}}node=parent;parent=parent.return;}if(node.tag===HostRoot){var root=node.stateNode;return root;}else{return null;}}var UpdateState=0;var ReplaceState=1;var ForceUpdate=2;var CaptureUpdate=3;// Global state that is reset at the beginning of calling `processUpdateQueue`.\n// It should only be read right after calling `processUpdateQueue`, via\n// `checkHasForceUpdateAfterProcessing`.\nvar hasForceUpdate=false;var didWarnUpdateInsideUpdate;var currentlyProcessingQueue;{didWarnUpdateInsideUpdate=false;currentlyProcessingQueue=null;}function initializeUpdateQueue(fiber){var queue={baseState:fiber.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:NoLanes},effects:null};fiber.updateQueue=queue;}function cloneUpdateQueue(current,workInProgress){// Clone the update queue from current. Unless it's already a clone.\nvar queue=workInProgress.updateQueue;var currentQueue=current.updateQueue;if(queue===currentQueue){var clone={baseState:currentQueue.baseState,firstBaseUpdate:currentQueue.firstBaseUpdate,lastBaseUpdate:currentQueue.lastBaseUpdate,shared:currentQueue.shared,effects:currentQueue.effects};workInProgress.updateQueue=clone;}}function createUpdate(eventTime,lane){var update={eventTime:eventTime,lane:lane,tag:UpdateState,payload:null,callback:null,next:null};return update;}function enqueueUpdate(fiber,update,lane){var updateQueue=fiber.updateQueue;if(updateQueue===null){// Only occurs if the fiber has been unmounted.\nreturn null;}var sharedQueue=updateQueue.shared;{if(currentlyProcessingQueue===sharedQueue&&!didWarnUpdateInsideUpdate){error('An update (setState, replaceState, or forceUpdate) was scheduled '+'from inside an update function. Update functions should be pure, '+'with zero side-effects. Consider using componentDidUpdate or a '+'callback.');didWarnUpdateInsideUpdate=true;}}if(isUnsafeClassRenderPhaseUpdate()){// This is an unsafe render phase update. Add directly to the update\n// queue so we can process it immediately during the current render.\nvar pending=sharedQueue.pending;if(pending===null){// This is the first update. Create a circular list.\nupdate.next=update;}else{update.next=pending.next;pending.next=update;}sharedQueue.pending=update;// Update the childLanes even though we're most likely already rendering\n// this fiber. This is for backwards compatibility in the case where you\n// update a different component during render phase than the one that is\n// currently renderings (a pattern that is accompanied by a warning).\nreturn unsafe_markUpdateLaneFromFiberToRoot(fiber,lane);}else{return enqueueConcurrentClassUpdate(fiber,sharedQueue,update,lane);}}function entangleTransitions(root,fiber,lane){var updateQueue=fiber.updateQueue;if(updateQueue===null){// Only occurs if the fiber has been unmounted.\nreturn;}var sharedQueue=updateQueue.shared;if(isTransitionLane(lane)){var queueLanes=sharedQueue.lanes;// If any entangled lanes are no longer pending on the root, then they must\n// have finished. We can remove them from the shared queue, which represents\n// a superset of the actually pending lanes. In some cases we may entangle\n// more than we need to, but that's OK. In fact it's worse if we *don't*\n// entangle when we should.\nqueueLanes=intersectLanes(queueLanes,root.pendingLanes);// Entangle the new transition lane with the other transition lanes.\nvar newQueueLanes=mergeLanes(queueLanes,lane);sharedQueue.lanes=newQueueLanes;// Even if queue.lanes already include lane, we don't know for certain if\n// the lane finished since the last time we entangled it. So we need to\n// entangle it again, just to be sure.\nmarkRootEntangled(root,newQueueLanes);}}function enqueueCapturedUpdate(workInProgress,capturedUpdate){// Captured updates are updates that are thrown by a child during the render\n// phase. They should be discarded if the render is aborted. Therefore,\n// we should only put them on the work-in-progress queue, not the current one.\nvar queue=workInProgress.updateQueue;// Check if the work-in-progress queue is a clone.\nvar current=workInProgress.alternate;if(current!==null){var currentQueue=current.updateQueue;if(queue===currentQueue){// The work-in-progress queue is the same as current. This happens when\n// we bail out on a parent fiber that then captures an error thrown by\n// a child. Since we want to append the update only to the work-in\n// -progress queue, we need to clone the updates. We usually clone during\n// processUpdateQueue, but that didn't happen in this case because we\n// skipped over the parent when we bailed out.\nvar newFirst=null;var newLast=null;var firstBaseUpdate=queue.firstBaseUpdate;if(firstBaseUpdate!==null){// Loop through the updates and clone them.\nvar update=firstBaseUpdate;do{var clone={eventTime:update.eventTime,lane:update.lane,tag:update.tag,payload:update.payload,callback:update.callback,next:null};if(newLast===null){newFirst=newLast=clone;}else{newLast.next=clone;newLast=clone;}update=update.next;}while(update!==null);// Append the captured update the end of the cloned list.\nif(newLast===null){newFirst=newLast=capturedUpdate;}else{newLast.next=capturedUpdate;newLast=capturedUpdate;}}else{// There are no base updates.\nnewFirst=newLast=capturedUpdate;}queue={baseState:currentQueue.baseState,firstBaseUpdate:newFirst,lastBaseUpdate:newLast,shared:currentQueue.shared,effects:currentQueue.effects};workInProgress.updateQueue=queue;return;}}// Append the update to the end of the list.\nvar lastBaseUpdate=queue.lastBaseUpdate;if(lastBaseUpdate===null){queue.firstBaseUpdate=capturedUpdate;}else{lastBaseUpdate.next=capturedUpdate;}queue.lastBaseUpdate=capturedUpdate;}function getStateFromUpdate(workInProgress,queue,update,prevState,nextProps,instance){switch(update.tag){case ReplaceState:{var payload=update.payload;if(typeof payload==='function'){// Updater function\n{enterDisallowedContextReadInDEV();}var nextState=payload.call(instance,prevState,nextProps);{if(workInProgress.mode&StrictLegacyMode){setIsStrictModeForDevtools(true);try{payload.call(instance,prevState,nextProps);}finally{setIsStrictModeForDevtools(false);}}exitDisallowedContextReadInDEV();}return nextState;}// State object\nreturn payload;}case CaptureUpdate:{workInProgress.flags=workInProgress.flags&~ShouldCapture|DidCapture;}// Intentional fallthrough\ncase UpdateState:{var _payload=update.payload;var partialState;if(typeof _payload==='function'){// Updater function\n{enterDisallowedContextReadInDEV();}partialState=_payload.call(instance,prevState,nextProps);{if(workInProgress.mode&StrictLegacyMode){setIsStrictModeForDevtools(true);try{_payload.call(instance,prevState,nextProps);}finally{setIsStrictModeForDevtools(false);}}exitDisallowedContextReadInDEV();}}else{// Partial state object\npartialState=_payload;}if(partialState===null||partialState===undefined){// Null and undefined are treated as no-ops.\nreturn prevState;}// Merge the partial state and the previous state.\nreturn assign({},prevState,partialState);}case ForceUpdate:{hasForceUpdate=true;return prevState;}}return prevState;}function processUpdateQueue(workInProgress,props,instance,renderLanes){// This is always non-null on a ClassComponent or HostRoot\nvar queue=workInProgress.updateQueue;hasForceUpdate=false;{currentlyProcessingQueue=queue.shared;}var firstBaseUpdate=queue.firstBaseUpdate;var lastBaseUpdate=queue.lastBaseUpdate;// Check if there are pending updates. If so, transfer them to the base queue.\nvar pendingQueue=queue.shared.pending;if(pendingQueue!==null){queue.shared.pending=null;// The pending queue is circular. Disconnect the pointer between first\n// and last so that it's non-circular.\nvar lastPendingUpdate=pendingQueue;var firstPendingUpdate=lastPendingUpdate.next;lastPendingUpdate.next=null;// Append pending updates to base queue\nif(lastBaseUpdate===null){firstBaseUpdate=firstPendingUpdate;}else{lastBaseUpdate.next=firstPendingUpdate;}lastBaseUpdate=lastPendingUpdate;// If there's a current queue, and it's different from the base queue, then\n// we need to transfer the updates to that queue, too. Because the base\n// queue is a singly-linked list with no cycles, we can append to both\n// lists and take advantage of structural sharing.\n// TODO: Pass `current` as argument\nvar current=workInProgress.alternate;if(current!==null){// This is always non-null on a ClassComponent or HostRoot\nvar currentQueue=current.updateQueue;var currentLastBaseUpdate=currentQueue.lastBaseUpdate;if(currentLastBaseUpdate!==lastBaseUpdate){if(currentLastBaseUpdate===null){currentQueue.firstBaseUpdate=firstPendingUpdate;}else{currentLastBaseUpdate.next=firstPendingUpdate;}currentQueue.lastBaseUpdate=lastPendingUpdate;}}}// These values may change as we process the queue.\nif(firstBaseUpdate!==null){// Iterate through the list of updates to compute the result.\nvar newState=queue.baseState;// TODO: Don't need to accumulate this. Instead, we can remove renderLanes\n// from the original lanes.\nvar newLanes=NoLanes;var newBaseState=null;var newFirstBaseUpdate=null;var newLastBaseUpdate=null;var update=firstBaseUpdate;do{var updateLane=update.lane;var updateEventTime=update.eventTime;if(!isSubsetOfLanes(renderLanes,updateLane)){// Priority is insufficient. Skip this update. If this is the first\n// skipped update, the previous update/state is the new base\n// update/state.\nvar clone={eventTime:updateEventTime,lane:updateLane,tag:update.tag,payload:update.payload,callback:update.callback,next:null};if(newLastBaseUpdate===null){newFirstBaseUpdate=newLastBaseUpdate=clone;newBaseState=newState;}else{newLastBaseUpdate=newLastBaseUpdate.next=clone;}// Update the remaining priority in the queue.\nnewLanes=mergeLanes(newLanes,updateLane);}else{// This update does have sufficient priority.\nif(newLastBaseUpdate!==null){var _clone={eventTime:updateEventTime,// This update is going to be committed so we never want uncommit\n// it. Using NoLane works because 0 is a subset of all bitmasks, so\n// this will never be skipped by the check above.\nlane:NoLane,tag:update.tag,payload:update.payload,callback:update.callback,next:null};newLastBaseUpdate=newLastBaseUpdate.next=_clone;}// Process this update.\nnewState=getStateFromUpdate(workInProgress,queue,update,newState,props,instance);var callback=update.callback;if(callback!==null&&// If the update was already committed, we should not queue its\n// callback again.\nupdate.lane!==NoLane){workInProgress.flags|=Callback;var effects=queue.effects;if(effects===null){queue.effects=[update];}else{effects.push(update);}}}update=update.next;if(update===null){pendingQueue=queue.shared.pending;if(pendingQueue===null){break;}else{// An update was scheduled from inside a reducer. Add the new\n// pending updates to the end of the list and keep processing.\nvar _lastPendingUpdate=pendingQueue;// Intentionally unsound. Pending updates form a circular list, but we\n// unravel them when transferring them to the base queue.\nvar _firstPendingUpdate=_lastPendingUpdate.next;_lastPendingUpdate.next=null;update=_firstPendingUpdate;queue.lastBaseUpdate=_lastPendingUpdate;queue.shared.pending=null;}}}while(true);if(newLastBaseUpdate===null){newBaseState=newState;}queue.baseState=newBaseState;queue.firstBaseUpdate=newFirstBaseUpdate;queue.lastBaseUpdate=newLastBaseUpdate;// Interleaved updates are stored on a separate queue. We aren't going to\n// process them during this render, but we do need to track which lanes\n// are remaining.\nvar lastInterleaved=queue.shared.interleaved;if(lastInterleaved!==null){var interleaved=lastInterleaved;do{newLanes=mergeLanes(newLanes,interleaved.lane);interleaved=interleaved.next;}while(interleaved!==lastInterleaved);}else if(firstBaseUpdate===null){// `queue.lanes` is used for entangling transitions. We can set it back to\n// zero once the queue is empty.\nqueue.shared.lanes=NoLanes;}// Set the remaining expiration time to be whatever is remaining in the queue.\n// This should be fine because the only two other things that contribute to\n// expiration time are props and context. We're already in the middle of the\n// begin phase by the time we start processing the queue, so we've already\n// dealt with the props. Context in components that specify\n// shouldComponentUpdate is tricky; but we'll have to account for\n// that regardless.\nmarkSkippedUpdateLanes(newLanes);workInProgress.lanes=newLanes;workInProgress.memoizedState=newState;}{currentlyProcessingQueue=null;}}function callCallback(callback,context){if(typeof callback!=='function'){throw new Error('Invalid argument passed as callback. Expected a function. Instead '+(\"received: \"+callback));}callback.call(context);}function resetHasForceUpdateBeforeProcessing(){hasForceUpdate=false;}function checkHasForceUpdateAfterProcessing(){return hasForceUpdate;}function commitUpdateQueue(finishedWork,finishedQueue,instance){// Commit the effects\nvar effects=finishedQueue.effects;finishedQueue.effects=null;if(effects!==null){for(var i=0;i<effects.length;i++){var effect=effects[i];var callback=effect.callback;if(callback!==null){effect.callback=null;callCallback(callback,instance);}}}}var NO_CONTEXT={};var contextStackCursor$1=createCursor(NO_CONTEXT);var contextFiberStackCursor=createCursor(NO_CONTEXT);var rootInstanceStackCursor=createCursor(NO_CONTEXT);function requiredContext(c){if(c===NO_CONTEXT){throw new Error('Expected host context to exist. This error is likely caused by a bug '+'in React. Please file an issue.');}return c;}function getRootHostContainer(){var rootInstance=requiredContext(rootInstanceStackCursor.current);return rootInstance;}function pushHostContainer(fiber,nextRootInstance){// Push current root instance onto the stack;\n// This allows us to reset root when portals are popped.\npush(rootInstanceStackCursor,nextRootInstance,fiber);// Track the context and the Fiber that provided it.\n// This enables us to pop only Fibers that provide unique contexts.\npush(contextFiberStackCursor,fiber,fiber);// Finally, we need to push the host context to the stack.\n// However, we can't just call getRootHostContext() and push it because\n// we'd have a different number of entries on the stack depending on\n// whether getRootHostContext() throws somewhere in renderer code or not.\n// So we push an empty value first. This lets us safely unwind on errors.\npush(contextStackCursor$1,NO_CONTEXT,fiber);var nextRootContext=getRootHostContext(nextRootInstance);// Now that we know this function doesn't throw, replace it.\npop(contextStackCursor$1,fiber);push(contextStackCursor$1,nextRootContext,fiber);}function popHostContainer(fiber){pop(contextStackCursor$1,fiber);pop(contextFiberStackCursor,fiber);pop(rootInstanceStackCursor,fiber);}function getHostContext(){var context=requiredContext(contextStackCursor$1.current);return context;}function pushHostContext(fiber){var rootInstance=requiredContext(rootInstanceStackCursor.current);var context=requiredContext(contextStackCursor$1.current);var nextContext=getChildHostContext(context,fiber.type);// Don't push this Fiber's context unless it's unique.\nif(context===nextContext){return;}// Track the context and the Fiber that provided it.\n// This enables us to pop only Fibers that provide unique contexts.\npush(contextFiberStackCursor,fiber,fiber);push(contextStackCursor$1,nextContext,fiber);}function popHostContext(fiber){// Do not pop unless this Fiber provided the current context.\n// pushHostContext() only pushes Fibers that provide unique contexts.\nif(contextFiberStackCursor.current!==fiber){return;}pop(contextStackCursor$1,fiber);pop(contextFiberStackCursor,fiber);}var DefaultSuspenseContext=0;// The Suspense Context is split into two parts. The lower bits is\n// inherited deeply down the subtree. The upper bits only affect\n// this immediate suspense boundary and gets reset each new\n// boundary or suspense list.\nvar SubtreeSuspenseContextMask=1;// Subtree Flags:\n// InvisibleParentSuspenseContext indicates that one of our parent Suspense\n// boundaries is not currently showing visible main content.\n// Either because it is already showing a fallback or is not mounted at all.\n// We can use this to determine if it is desirable to trigger a fallback at\n// the parent. If not, then we might need to trigger undesirable boundaries\n// and/or suspend the commit to avoid hiding the parent content.\nvar InvisibleParentSuspenseContext=1;// Shallow Flags:\n// ForceSuspenseFallback can be used by SuspenseList to force newly added\n// items into their fallback state during one of the render passes.\nvar ForceSuspenseFallback=2;var suspenseStackCursor=createCursor(DefaultSuspenseContext);function hasSuspenseContext(parentContext,flag){return(parentContext&flag)!==0;}function setDefaultShallowSuspenseContext(parentContext){return parentContext&SubtreeSuspenseContextMask;}function setShallowSuspenseContext(parentContext,shallowContext){return parentContext&SubtreeSuspenseContextMask|shallowContext;}function addSubtreeSuspenseContext(parentContext,subtreeContext){return parentContext|subtreeContext;}function pushSuspenseContext(fiber,newContext){push(suspenseStackCursor,newContext,fiber);}function popSuspenseContext(fiber){pop(suspenseStackCursor,fiber);}function shouldCaptureSuspense(workInProgress,hasInvisibleParent){// If it was the primary children that just suspended, capture and render the\n// fallback. Otherwise, don't capture and bubble to the next boundary.\nvar nextState=workInProgress.memoizedState;if(nextState!==null){if(nextState.dehydrated!==null){// A dehydrated boundary always captures.\nreturn true;}return false;}var props=workInProgress.memoizedProps;// Regular boundaries always capture.\n{return true;}// If it's a boundary we should avoid, then we prefer to bubble up to the\n}function findFirstSuspended(row){var node=row;while(node!==null){if(node.tag===SuspenseComponent){var state=node.memoizedState;if(state!==null){var dehydrated=state.dehydrated;if(dehydrated===null||isSuspenseInstancePending(dehydrated)||isSuspenseInstanceFallback(dehydrated)){return node;}}}else if(node.tag===SuspenseListComponent&&// revealOrder undefined can't be trusted because it don't\n// keep track of whether it suspended or not.\nnode.memoizedProps.revealOrder!==undefined){var didSuspend=(node.flags&DidCapture)!==NoFlags;if(didSuspend){return node;}}else if(node.child!==null){node.child.return=node;node=node.child;continue;}if(node===row){return null;}while(node.sibling===null){if(node.return===null||node.return===row){return null;}node=node.return;}node.sibling.return=node.return;node=node.sibling;}return null;}var NoFlags$1=/*   */0;// Represents whether effect should fire.\nvar HasEffect=/* */1;// Represents the phase in which the effect (not the clean-up) fires.\nvar Insertion=/*  */2;var Layout=/*    */4;var Passive$1=/*   */8;// and should be reset before starting a new render.\n// This tracks which mutable sources need to be reset after a render.\nvar workInProgressSources=[];function resetWorkInProgressVersions(){for(var i=0;i<workInProgressSources.length;i++){var mutableSource=workInProgressSources[i];{mutableSource._workInProgressVersionPrimary=null;}}workInProgressSources.length=0;}// This ensures that the version used for server rendering matches the one\n// that is eventually read during hydration.\n// If they don't match there's a potential tear and a full deopt render is required.\nfunction registerMutableSourceForHydration(root,mutableSource){var getVersion=mutableSource._getVersion;var version=getVersion(mutableSource._source);// TODO Clear this data once all pending hydration work is finished.\n// Retaining it forever may interfere with GC.\nif(root.mutableSourceEagerHydrationData==null){root.mutableSourceEagerHydrationData=[mutableSource,version];}else{root.mutableSourceEagerHydrationData.push(mutableSource,version);}}var ReactCurrentDispatcher$1=ReactSharedInternals.ReactCurrentDispatcher,ReactCurrentBatchConfig$2=ReactSharedInternals.ReactCurrentBatchConfig;var didWarnAboutMismatchedHooksForComponent;var didWarnUncachedGetSnapshot;{didWarnAboutMismatchedHooksForComponent=new Set();}// These are set right before calling the component.\nvar renderLanes=NoLanes;// The work-in-progress fiber. I've named it differently to distinguish it from\n// the work-in-progress hook.\nvar currentlyRenderingFiber$1=null;// Hooks are stored as a linked list on the fiber's memoizedState field. The\n// current hook list is the list that belongs to the current fiber. The\n// work-in-progress hook list is a new list that will be added to the\n// work-in-progress fiber.\nvar currentHook=null;var workInProgressHook=null;// Whether an update was scheduled at any point during the render phase. This\n// does not get reset if we do another render pass; only when we're completely\n// finished evaluating this component. This is an optimization so we know\n// whether we need to clear render phase updates after a throw.\nvar didScheduleRenderPhaseUpdate=false;// Where an update was scheduled only during the current render pass. This\n// gets reset after each attempt.\n// TODO: Maybe there's some way to consolidate this with\n// `didScheduleRenderPhaseUpdate`. Or with `numberOfReRenders`.\nvar didScheduleRenderPhaseUpdateDuringThisPass=false;// Counts the number of useId hooks in this component.\nvar localIdCounter=0;// Used for ids that are generated completely client-side (i.e. not during\n// hydration). This counter is global, so client ids are not stable across\n// render attempts.\nvar globalClientIdCounter=0;var RE_RENDER_LIMIT=25;// In DEV, this is the name of the currently executing primitive hook\nvar currentHookNameInDev=null;// In DEV, this list ensures that hooks are called in the same order between renders.\n// The list stores the order of hooks used during the initial render (mount).\n// Subsequent renders (updates) reference this list.\nvar hookTypesDev=null;var hookTypesUpdateIndexDev=-1;// In DEV, this tracks whether currently rendering component needs to ignore\n// the dependencies for Hooks that need them (e.g. useEffect or useMemo).\n// When true, such Hooks will always be \"remounted\". Only used during hot reload.\nvar ignorePreviousDependencies=false;function mountHookTypesDev(){{var hookName=currentHookNameInDev;if(hookTypesDev===null){hookTypesDev=[hookName];}else{hookTypesDev.push(hookName);}}}function updateHookTypesDev(){{var hookName=currentHookNameInDev;if(hookTypesDev!==null){hookTypesUpdateIndexDev++;if(hookTypesDev[hookTypesUpdateIndexDev]!==hookName){warnOnHookMismatchInDev(hookName);}}}}function checkDepsAreArrayDev(deps){{if(deps!==undefined&&deps!==null&&!isArray(deps)){// Verify deps, but only on mount to avoid extra checks.\n// It's unlikely their type would change as usually you define them inline.\nerror('%s received a final argument that is not an array (instead, received `%s`). When '+'specified, the final argument must be an array.',currentHookNameInDev,typeof deps);}}}function warnOnHookMismatchInDev(currentHookName){{var componentName=getComponentNameFromFiber(currentlyRenderingFiber$1);if(!didWarnAboutMismatchedHooksForComponent.has(componentName)){didWarnAboutMismatchedHooksForComponent.add(componentName);if(hookTypesDev!==null){var table='';var secondColumnStart=30;for(var i=0;i<=hookTypesUpdateIndexDev;i++){var oldHookName=hookTypesDev[i];var newHookName=i===hookTypesUpdateIndexDev?currentHookName:oldHookName;var row=i+1+\". \"+oldHookName;// Extra space so second column lines up\n// lol @ IE not supporting String#repeat\nwhile(row.length<secondColumnStart){row+=' ';}row+=newHookName+'\\n';table+=row;}error('React has detected a change in the order of Hooks called by %s. '+'This will lead to bugs and errors if not fixed. '+'For more information, read the Rules of Hooks: https://reactjs.org/link/rules-of-hooks\\n\\n'+'   Previous render            Next render\\n'+'   ------------------------------------------------------\\n'+'%s'+'   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n',componentName,table);}}}}function throwInvalidHookError(){throw new Error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for'+' one of the following reasons:\\n'+'1. You might have mismatching versions of React and the renderer (such as React DOM)\\n'+'2. You might be breaking the Rules of Hooks\\n'+'3. You might have more than one copy of React in the same app\\n'+'See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.');}function areHookInputsEqual(nextDeps,prevDeps){{if(ignorePreviousDependencies){// Only true when this component is being hot reloaded.\nreturn false;}}if(prevDeps===null){{error('%s received a final argument during this render, but not during '+'the previous render. Even though the final argument is optional, '+'its type cannot change between renders.',currentHookNameInDev);}return false;}{// Don't bother comparing lengths in prod because these arrays should be\n// passed inline.\nif(nextDeps.length!==prevDeps.length){error('The final argument passed to %s changed size between renders. The '+'order and size of this array must remain constant.\\n\\n'+'Previous: %s\\n'+'Incoming: %s',currentHookNameInDev,\"[\"+prevDeps.join(', ')+\"]\",\"[\"+nextDeps.join(', ')+\"]\");}}for(var i=0;i<prevDeps.length&&i<nextDeps.length;i++){if(objectIs(nextDeps[i],prevDeps[i])){continue;}return false;}return true;}function renderWithHooks(current,workInProgress,Component,props,secondArg,nextRenderLanes){renderLanes=nextRenderLanes;currentlyRenderingFiber$1=workInProgress;{hookTypesDev=current!==null?current._debugHookTypes:null;hookTypesUpdateIndexDev=-1;// Used for hot reloading:\nignorePreviousDependencies=current!==null&&current.type!==workInProgress.type;}workInProgress.memoizedState=null;workInProgress.updateQueue=null;workInProgress.lanes=NoLanes;// The following should have already been reset\n// currentHook = null;\n// workInProgressHook = null;\n// didScheduleRenderPhaseUpdate = false;\n// localIdCounter = 0;\n// TODO Warn if no hooks are used at all during mount, then some are used during update.\n// Currently we will identify the update render as a mount because memoizedState === null.\n// This is tricky because it's valid for certain types of components (e.g. React.lazy)\n// Using memoizedState to differentiate between mount/update only works if at least one stateful hook is used.\n// Non-stateful hooks (e.g. context) don't get added to memoizedState,\n// so memoizedState would be null during updates and mounts.\n{if(current!==null&&current.memoizedState!==null){ReactCurrentDispatcher$1.current=HooksDispatcherOnUpdateInDEV;}else if(hookTypesDev!==null){// This dispatcher handles an edge case where a component is updating,\n// but no stateful hooks have been used.\n// We want to match the production code behavior (which will use HooksDispatcherOnMount),\n// but with the extra DEV validation to ensure hooks ordering hasn't changed.\n// This dispatcher does that.\nReactCurrentDispatcher$1.current=HooksDispatcherOnMountWithHookTypesInDEV;}else{ReactCurrentDispatcher$1.current=HooksDispatcherOnMountInDEV;}}var children=Component(props,secondArg);// Check if there was a render phase update\nif(didScheduleRenderPhaseUpdateDuringThisPass){// Keep rendering in a loop for as long as render phase updates continue to\n// be scheduled. Use a counter to prevent infinite loops.\nvar numberOfReRenders=0;do{didScheduleRenderPhaseUpdateDuringThisPass=false;localIdCounter=0;if(numberOfReRenders>=RE_RENDER_LIMIT){throw new Error('Too many re-renders. React limits the number of renders to prevent '+'an infinite loop.');}numberOfReRenders+=1;{// Even when hot reloading, allow dependencies to stabilize\n// after first render to prevent infinite render phase updates.\nignorePreviousDependencies=false;}// Start over from the beginning of the list\ncurrentHook=null;workInProgressHook=null;workInProgress.updateQueue=null;{// Also validate hook order for cascading updates.\nhookTypesUpdateIndexDev=-1;}ReactCurrentDispatcher$1.current=HooksDispatcherOnRerenderInDEV;children=Component(props,secondArg);}while(didScheduleRenderPhaseUpdateDuringThisPass);}// We can assume the previous dispatcher is always this one, since we set it\n// at the beginning of the render phase and there's no re-entrance.\nReactCurrentDispatcher$1.current=ContextOnlyDispatcher;{workInProgress._debugHookTypes=hookTypesDev;}// This check uses currentHook so that it works the same in DEV and prod bundles.\n// hookTypesDev could catch more cases (e.g. context) but only in DEV bundles.\nvar didRenderTooFewHooks=currentHook!==null&&currentHook.next!==null;renderLanes=NoLanes;currentlyRenderingFiber$1=null;currentHook=null;workInProgressHook=null;{currentHookNameInDev=null;hookTypesDev=null;hookTypesUpdateIndexDev=-1;// Confirm that a static flag was not added or removed since the last\n// render. If this fires, it suggests that we incorrectly reset the static\n// flags in some other part of the codebase. This has happened before, for\n// example, in the SuspenseList implementation.\nif(current!==null&&(current.flags&StaticMask)!==(workInProgress.flags&StaticMask)&&// Disable this warning in legacy mode, because legacy Suspense is weird\n// and creates false positives. To make this work in legacy mode, we'd\n// need to mark fibers that commit in an incomplete state, somehow. For\n// now I'll disable the warning that most of the bugs that would trigger\n// it are either exclusive to concurrent mode or exist in both.\n(current.mode&ConcurrentMode)!==NoMode){error('Internal React error: Expected static flag was missing. Please '+'notify the React team.');}}didScheduleRenderPhaseUpdate=false;// This is reset by checkDidRenderIdHook\n// localIdCounter = 0;\nif(didRenderTooFewHooks){throw new Error('Rendered fewer hooks than expected. This may be caused by an accidental '+'early return statement.');}return children;}function checkDidRenderIdHook(){// This should be called immediately after every renderWithHooks call.\n// Conceptually, it's part of the return value of renderWithHooks; it's only a\n// separate function to avoid using an array tuple.\nvar didRenderIdHook=localIdCounter!==0;localIdCounter=0;return didRenderIdHook;}function bailoutHooks(current,workInProgress,lanes){workInProgress.updateQueue=current.updateQueue;// TODO: Don't need to reset the flags here, because they're reset in the\n// complete phase (bubbleProperties).\nif((workInProgress.mode&StrictEffectsMode)!==NoMode){workInProgress.flags&=~(MountPassiveDev|MountLayoutDev|Passive|Update);}else{workInProgress.flags&=~(Passive|Update);}current.lanes=removeLanes(current.lanes,lanes);}function resetHooksAfterThrow(){// We can assume the previous dispatcher is always this one, since we set it\n// at the beginning of the render phase and there's no re-entrance.\nReactCurrentDispatcher$1.current=ContextOnlyDispatcher;if(didScheduleRenderPhaseUpdate){// There were render phase updates. These are only valid for this render\n// phase, which we are now aborting. Remove the updates from the queues so\n// they do not persist to the next render. Do not remove updates from hooks\n// that weren't processed.\n//\n// Only reset the updates from the queue if it has a clone. If it does\n// not have a clone, that means it wasn't processed, and the updates were\n// scheduled before we entered the render phase.\nvar hook=currentlyRenderingFiber$1.memoizedState;while(hook!==null){var queue=hook.queue;if(queue!==null){queue.pending=null;}hook=hook.next;}didScheduleRenderPhaseUpdate=false;}renderLanes=NoLanes;currentlyRenderingFiber$1=null;currentHook=null;workInProgressHook=null;{hookTypesDev=null;hookTypesUpdateIndexDev=-1;currentHookNameInDev=null;isUpdatingOpaqueValueInRenderPhase=false;}didScheduleRenderPhaseUpdateDuringThisPass=false;localIdCounter=0;}function mountWorkInProgressHook(){var hook={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};if(workInProgressHook===null){// This is the first hook in the list\ncurrentlyRenderingFiber$1.memoizedState=workInProgressHook=hook;}else{// Append to the end of the list\nworkInProgressHook=workInProgressHook.next=hook;}return workInProgressHook;}function updateWorkInProgressHook(){// This function is used both for updates and for re-renders triggered by a\n// render phase update. It assumes there is either a current hook we can\n// clone, or a work-in-progress hook from a previous render pass that we can\n// use as a base. When we reach the end of the base list, we must switch to\n// the dispatcher used for mounts.\nvar nextCurrentHook;if(currentHook===null){var current=currentlyRenderingFiber$1.alternate;if(current!==null){nextCurrentHook=current.memoizedState;}else{nextCurrentHook=null;}}else{nextCurrentHook=currentHook.next;}var nextWorkInProgressHook;if(workInProgressHook===null){nextWorkInProgressHook=currentlyRenderingFiber$1.memoizedState;}else{nextWorkInProgressHook=workInProgressHook.next;}if(nextWorkInProgressHook!==null){// There's already a work-in-progress. Reuse it.\nworkInProgressHook=nextWorkInProgressHook;nextWorkInProgressHook=workInProgressHook.next;currentHook=nextCurrentHook;}else{// Clone from the current hook.\nif(nextCurrentHook===null){throw new Error('Rendered more hooks than during the previous render.');}currentHook=nextCurrentHook;var newHook={memoizedState:currentHook.memoizedState,baseState:currentHook.baseState,baseQueue:currentHook.baseQueue,queue:currentHook.queue,next:null};if(workInProgressHook===null){// This is the first hook in the list.\ncurrentlyRenderingFiber$1.memoizedState=workInProgressHook=newHook;}else{// Append to the end of the list.\nworkInProgressHook=workInProgressHook.next=newHook;}}return workInProgressHook;}function createFunctionComponentUpdateQueue(){return{lastEffect:null,stores:null};}function basicStateReducer(state,action){// $FlowFixMe: Flow doesn't like mixed types\nreturn typeof action==='function'?action(state):action;}function mountReducer(reducer,initialArg,init){var hook=mountWorkInProgressHook();var initialState;if(init!==undefined){initialState=init(initialArg);}else{initialState=initialArg;}hook.memoizedState=hook.baseState=initialState;var queue={pending:null,interleaved:null,lanes:NoLanes,dispatch:null,lastRenderedReducer:reducer,lastRenderedState:initialState};hook.queue=queue;var dispatch=queue.dispatch=dispatchReducerAction.bind(null,currentlyRenderingFiber$1,queue);return[hook.memoizedState,dispatch];}function updateReducer(reducer,initialArg,init){var hook=updateWorkInProgressHook();var queue=hook.queue;if(queue===null){throw new Error('Should have a queue. This is likely a bug in React. Please file an issue.');}queue.lastRenderedReducer=reducer;var current=currentHook;// The last rebase update that is NOT part of the base state.\nvar baseQueue=current.baseQueue;// The last pending update that hasn't been processed yet.\nvar pendingQueue=queue.pending;if(pendingQueue!==null){// We have new updates that haven't been processed yet.\n// We'll add them to the base queue.\nif(baseQueue!==null){// Merge the pending queue and the base queue.\nvar baseFirst=baseQueue.next;var pendingFirst=pendingQueue.next;baseQueue.next=pendingFirst;pendingQueue.next=baseFirst;}{if(current.baseQueue!==baseQueue){// Internal invariant that should never happen, but feasibly could in\n// the future if we implement resuming, or some form of that.\nerror('Internal error: Expected work-in-progress queue to be a clone. '+'This is a bug in React.');}}current.baseQueue=baseQueue=pendingQueue;queue.pending=null;}if(baseQueue!==null){// We have a queue to process.\nvar first=baseQueue.next;var newState=current.baseState;var newBaseState=null;var newBaseQueueFirst=null;var newBaseQueueLast=null;var update=first;do{var updateLane=update.lane;if(!isSubsetOfLanes(renderLanes,updateLane)){// Priority is insufficient. Skip this update. If this is the first\n// skipped update, the previous update/state is the new base\n// update/state.\nvar clone={lane:updateLane,action:update.action,hasEagerState:update.hasEagerState,eagerState:update.eagerState,next:null};if(newBaseQueueLast===null){newBaseQueueFirst=newBaseQueueLast=clone;newBaseState=newState;}else{newBaseQueueLast=newBaseQueueLast.next=clone;}// Update the remaining priority in the queue.\n// TODO: Don't need to accumulate this. Instead, we can remove\n// renderLanes from the original lanes.\ncurrentlyRenderingFiber$1.lanes=mergeLanes(currentlyRenderingFiber$1.lanes,updateLane);markSkippedUpdateLanes(updateLane);}else{// This update does have sufficient priority.\nif(newBaseQueueLast!==null){var _clone={// This update is going to be committed so we never want uncommit\n// it. Using NoLane works because 0 is a subset of all bitmasks, so\n// this will never be skipped by the check above.\nlane:NoLane,action:update.action,hasEagerState:update.hasEagerState,eagerState:update.eagerState,next:null};newBaseQueueLast=newBaseQueueLast.next=_clone;}// Process this update.\nif(update.hasEagerState){// If this update is a state update (not a reducer) and was processed eagerly,\n// we can use the eagerly computed state\nnewState=update.eagerState;}else{var action=update.action;newState=reducer(newState,action);}}update=update.next;}while(update!==null&&update!==first);if(newBaseQueueLast===null){newBaseState=newState;}else{newBaseQueueLast.next=newBaseQueueFirst;}// Mark that the fiber performed work, but only if the new state is\n// different from the current state.\nif(!objectIs(newState,hook.memoizedState)){markWorkInProgressReceivedUpdate();}hook.memoizedState=newState;hook.baseState=newBaseState;hook.baseQueue=newBaseQueueLast;queue.lastRenderedState=newState;}// Interleaved updates are stored on a separate queue. We aren't going to\n// process them during this render, but we do need to track which lanes\n// are remaining.\nvar lastInterleaved=queue.interleaved;if(lastInterleaved!==null){var interleaved=lastInterleaved;do{var interleavedLane=interleaved.lane;currentlyRenderingFiber$1.lanes=mergeLanes(currentlyRenderingFiber$1.lanes,interleavedLane);markSkippedUpdateLanes(interleavedLane);interleaved=interleaved.next;}while(interleaved!==lastInterleaved);}else if(baseQueue===null){// `queue.lanes` is used for entangling transitions. We can set it back to\n// zero once the queue is empty.\nqueue.lanes=NoLanes;}var dispatch=queue.dispatch;return[hook.memoizedState,dispatch];}function rerenderReducer(reducer,initialArg,init){var hook=updateWorkInProgressHook();var queue=hook.queue;if(queue===null){throw new Error('Should have a queue. This is likely a bug in React. Please file an issue.');}queue.lastRenderedReducer=reducer;// This is a re-render. Apply the new render phase updates to the previous\n// work-in-progress hook.\nvar dispatch=queue.dispatch;var lastRenderPhaseUpdate=queue.pending;var newState=hook.memoizedState;if(lastRenderPhaseUpdate!==null){// The queue doesn't persist past this render pass.\nqueue.pending=null;var firstRenderPhaseUpdate=lastRenderPhaseUpdate.next;var update=firstRenderPhaseUpdate;do{// Process this render phase update. We don't have to check the\n// priority because it will always be the same as the current\n// render's.\nvar action=update.action;newState=reducer(newState,action);update=update.next;}while(update!==firstRenderPhaseUpdate);// Mark that the fiber performed work, but only if the new state is\n// different from the current state.\nif(!objectIs(newState,hook.memoizedState)){markWorkInProgressReceivedUpdate();}hook.memoizedState=newState;// Don't persist the state accumulated from the render phase updates to\n// the base state unless the queue is empty.\n// TODO: Not sure if this is the desired semantics, but it's what we\n// do for gDSFP. I can't remember why.\nif(hook.baseQueue===null){hook.baseState=newState;}queue.lastRenderedState=newState;}return[newState,dispatch];}function mountMutableSource(source,getSnapshot,subscribe){{return undefined;}}function updateMutableSource(source,getSnapshot,subscribe){{return undefined;}}function mountSyncExternalStore(subscribe,getSnapshot,getServerSnapshot){var fiber=currentlyRenderingFiber$1;var hook=mountWorkInProgressHook();var nextSnapshot;var isHydrating=getIsHydrating();if(isHydrating){if(getServerSnapshot===undefined){throw new Error('Missing getServerSnapshot, which is required for '+'server-rendered content. Will revert to client rendering.');}nextSnapshot=getServerSnapshot();{if(!didWarnUncachedGetSnapshot){if(nextSnapshot!==getServerSnapshot()){error('The result of getServerSnapshot should be cached to avoid an infinite loop');didWarnUncachedGetSnapshot=true;}}}}else{nextSnapshot=getSnapshot();{if(!didWarnUncachedGetSnapshot){var cachedSnapshot=getSnapshot();if(!objectIs(nextSnapshot,cachedSnapshot)){error('The result of getSnapshot should be cached to avoid an infinite loop');didWarnUncachedGetSnapshot=true;}}}// Unless we're rendering a blocking lane, schedule a consistency check.\n// Right before committing, we will walk the tree and check if any of the\n// stores were mutated.\n//\n// We won't do this if we're hydrating server-rendered content, because if\n// the content is stale, it's already visible anyway. Instead we'll patch\n// it up in a passive effect.\nvar root=getWorkInProgressRoot();if(root===null){throw new Error('Expected a work-in-progress root. This is a bug in React. Please file an issue.');}if(!includesBlockingLane(root,renderLanes)){pushStoreConsistencyCheck(fiber,getSnapshot,nextSnapshot);}}// Read the current snapshot from the store on every render. This breaks the\n// normal rules of React, and only works because store updates are\n// always synchronous.\nhook.memoizedState=nextSnapshot;var inst={value:nextSnapshot,getSnapshot:getSnapshot};hook.queue=inst;// Schedule an effect to subscribe to the store.\nmountEffect(subscribeToStore.bind(null,fiber,inst,subscribe),[subscribe]);// Schedule an effect to update the mutable instance fields. We will update\n// this whenever subscribe, getSnapshot, or value changes. Because there's no\n// clean-up function, and we track the deps correctly, we can call pushEffect\n// directly, without storing any additional state. For the same reason, we\n// don't need to set a static flag, either.\n// TODO: We can move this to the passive phase once we add a pre-commit\n// consistency check. See the next comment.\nfiber.flags|=Passive;pushEffect(HasEffect|Passive$1,updateStoreInstance.bind(null,fiber,inst,nextSnapshot,getSnapshot),undefined,null);return nextSnapshot;}function updateSyncExternalStore(subscribe,getSnapshot,getServerSnapshot){var fiber=currentlyRenderingFiber$1;var hook=updateWorkInProgressHook();// Read the current snapshot from the store on every render. This breaks the\n// normal rules of React, and only works because store updates are\n// always synchronous.\nvar nextSnapshot=getSnapshot();{if(!didWarnUncachedGetSnapshot){var cachedSnapshot=getSnapshot();if(!objectIs(nextSnapshot,cachedSnapshot)){error('The result of getSnapshot should be cached to avoid an infinite loop');didWarnUncachedGetSnapshot=true;}}}var prevSnapshot=hook.memoizedState;var snapshotChanged=!objectIs(prevSnapshot,nextSnapshot);if(snapshotChanged){hook.memoizedState=nextSnapshot;markWorkInProgressReceivedUpdate();}var inst=hook.queue;updateEffect(subscribeToStore.bind(null,fiber,inst,subscribe),[subscribe]);// Whenever getSnapshot or subscribe changes, we need to check in the\n// commit phase if there was an interleaved mutation. In concurrent mode\n// this can happen all the time, but even in synchronous mode, an earlier\n// effect may have mutated the store.\nif(inst.getSnapshot!==getSnapshot||snapshotChanged||// Check if the susbcribe function changed. We can save some memory by\n// checking whether we scheduled a subscription effect above.\nworkInProgressHook!==null&&workInProgressHook.memoizedState.tag&HasEffect){fiber.flags|=Passive;pushEffect(HasEffect|Passive$1,updateStoreInstance.bind(null,fiber,inst,nextSnapshot,getSnapshot),undefined,null);// Unless we're rendering a blocking lane, schedule a consistency check.\n// Right before committing, we will walk the tree and check if any of the\n// stores were mutated.\nvar root=getWorkInProgressRoot();if(root===null){throw new Error('Expected a work-in-progress root. This is a bug in React. Please file an issue.');}if(!includesBlockingLane(root,renderLanes)){pushStoreConsistencyCheck(fiber,getSnapshot,nextSnapshot);}}return nextSnapshot;}function pushStoreConsistencyCheck(fiber,getSnapshot,renderedSnapshot){fiber.flags|=StoreConsistency;var check={getSnapshot:getSnapshot,value:renderedSnapshot};var componentUpdateQueue=currentlyRenderingFiber$1.updateQueue;if(componentUpdateQueue===null){componentUpdateQueue=createFunctionComponentUpdateQueue();currentlyRenderingFiber$1.updateQueue=componentUpdateQueue;componentUpdateQueue.stores=[check];}else{var stores=componentUpdateQueue.stores;if(stores===null){componentUpdateQueue.stores=[check];}else{stores.push(check);}}}function updateStoreInstance(fiber,inst,nextSnapshot,getSnapshot){// These are updated in the passive phase\ninst.value=nextSnapshot;inst.getSnapshot=getSnapshot;// Something may have been mutated in between render and commit. This could\n// have been in an event that fired before the passive effects, or it could\n// have been in a layout effect. In that case, we would have used the old\n// snapsho and getSnapshot values to bail out. We need to check one more time.\nif(checkIfSnapshotChanged(inst)){// Force a re-render.\nforceStoreRerender(fiber);}}function subscribeToStore(fiber,inst,subscribe){var handleStoreChange=function(){// The store changed. Check if the snapshot changed since the last time we\n// read from the store.\nif(checkIfSnapshotChanged(inst)){// Force a re-render.\nforceStoreRerender(fiber);}};// Subscribe to the store and return a clean-up function.\nreturn subscribe(handleStoreChange);}function checkIfSnapshotChanged(inst){var latestGetSnapshot=inst.getSnapshot;var prevValue=inst.value;try{var nextValue=latestGetSnapshot();return!objectIs(prevValue,nextValue);}catch(error){return true;}}function forceStoreRerender(fiber){var root=enqueueConcurrentRenderForLane(fiber,SyncLane);if(root!==null){scheduleUpdateOnFiber(root,fiber,SyncLane,NoTimestamp);}}function mountState(initialState){var hook=mountWorkInProgressHook();if(typeof initialState==='function'){// $FlowFixMe: Flow doesn't like mixed types\ninitialState=initialState();}hook.memoizedState=hook.baseState=initialState;var queue={pending:null,interleaved:null,lanes:NoLanes,dispatch:null,lastRenderedReducer:basicStateReducer,lastRenderedState:initialState};hook.queue=queue;var dispatch=queue.dispatch=dispatchSetState.bind(null,currentlyRenderingFiber$1,queue);return[hook.memoizedState,dispatch];}function updateState(initialState){return updateReducer(basicStateReducer);}function rerenderState(initialState){return rerenderReducer(basicStateReducer);}function pushEffect(tag,create,destroy,deps){var effect={tag:tag,create:create,destroy:destroy,deps:deps,// Circular\nnext:null};var componentUpdateQueue=currentlyRenderingFiber$1.updateQueue;if(componentUpdateQueue===null){componentUpdateQueue=createFunctionComponentUpdateQueue();currentlyRenderingFiber$1.updateQueue=componentUpdateQueue;componentUpdateQueue.lastEffect=effect.next=effect;}else{var lastEffect=componentUpdateQueue.lastEffect;if(lastEffect===null){componentUpdateQueue.lastEffect=effect.next=effect;}else{var firstEffect=lastEffect.next;lastEffect.next=effect;effect.next=firstEffect;componentUpdateQueue.lastEffect=effect;}}return effect;}function mountRef(initialValue){var hook=mountWorkInProgressHook();{var _ref2={current:initialValue};hook.memoizedState=_ref2;return _ref2;}}function updateRef(initialValue){var hook=updateWorkInProgressHook();return hook.memoizedState;}function mountEffectImpl(fiberFlags,hookFlags,create,deps){var hook=mountWorkInProgressHook();var nextDeps=deps===undefined?null:deps;currentlyRenderingFiber$1.flags|=fiberFlags;hook.memoizedState=pushEffect(HasEffect|hookFlags,create,undefined,nextDeps);}function updateEffectImpl(fiberFlags,hookFlags,create,deps){var hook=updateWorkInProgressHook();var nextDeps=deps===undefined?null:deps;var destroy=undefined;if(currentHook!==null){var prevEffect=currentHook.memoizedState;destroy=prevEffect.destroy;if(nextDeps!==null){var prevDeps=prevEffect.deps;if(areHookInputsEqual(nextDeps,prevDeps)){hook.memoizedState=pushEffect(hookFlags,create,destroy,nextDeps);return;}}}currentlyRenderingFiber$1.flags|=fiberFlags;hook.memoizedState=pushEffect(HasEffect|hookFlags,create,destroy,nextDeps);}function mountEffect(create,deps){if((currentlyRenderingFiber$1.mode&StrictEffectsMode)!==NoMode){return mountEffectImpl(MountPassiveDev|Passive|PassiveStatic,Passive$1,create,deps);}else{return mountEffectImpl(Passive|PassiveStatic,Passive$1,create,deps);}}function updateEffect(create,deps){return updateEffectImpl(Passive,Passive$1,create,deps);}function mountInsertionEffect(create,deps){return mountEffectImpl(Update,Insertion,create,deps);}function updateInsertionEffect(create,deps){return updateEffectImpl(Update,Insertion,create,deps);}function mountLayoutEffect(create,deps){var fiberFlags=Update;{fiberFlags|=LayoutStatic;}if((currentlyRenderingFiber$1.mode&StrictEffectsMode)!==NoMode){fiberFlags|=MountLayoutDev;}return mountEffectImpl(fiberFlags,Layout,create,deps);}function updateLayoutEffect(create,deps){return updateEffectImpl(Update,Layout,create,deps);}function imperativeHandleEffect(create,ref){if(typeof ref==='function'){var refCallback=ref;var _inst=create();refCallback(_inst);return function(){refCallback(null);};}else if(ref!==null&&ref!==undefined){var refObject=ref;{if(!refObject.hasOwnProperty('current')){error('Expected useImperativeHandle() first argument to either be a '+'ref callback or React.createRef() object. Instead received: %s.','an object with keys {'+Object.keys(refObject).join(', ')+'}');}}var _inst2=create();refObject.current=_inst2;return function(){refObject.current=null;};}}function mountImperativeHandle(ref,create,deps){{if(typeof create!=='function'){error('Expected useImperativeHandle() second argument to be a function '+'that creates a handle. Instead received: %s.',create!==null?typeof create:'null');}}// TODO: If deps are provided, should we skip comparing the ref itself?\nvar effectDeps=deps!==null&&deps!==undefined?deps.concat([ref]):null;var fiberFlags=Update;{fiberFlags|=LayoutStatic;}if((currentlyRenderingFiber$1.mode&StrictEffectsMode)!==NoMode){fiberFlags|=MountLayoutDev;}return mountEffectImpl(fiberFlags,Layout,imperativeHandleEffect.bind(null,create,ref),effectDeps);}function updateImperativeHandle(ref,create,deps){{if(typeof create!=='function'){error('Expected useImperativeHandle() second argument to be a function '+'that creates a handle. Instead received: %s.',create!==null?typeof create:'null');}}// TODO: If deps are provided, should we skip comparing the ref itself?\nvar effectDeps=deps!==null&&deps!==undefined?deps.concat([ref]):null;return updateEffectImpl(Update,Layout,imperativeHandleEffect.bind(null,create,ref),effectDeps);}function mountDebugValue(value,formatterFn){// This hook is normally a no-op.\n// The react-debug-hooks package injects its own implementation\n// so that e.g. DevTools can display custom hook values.\n}var updateDebugValue=mountDebugValue;function mountCallback(callback,deps){var hook=mountWorkInProgressHook();var nextDeps=deps===undefined?null:deps;hook.memoizedState=[callback,nextDeps];return callback;}function updateCallback(callback,deps){var hook=updateWorkInProgressHook();var nextDeps=deps===undefined?null:deps;var prevState=hook.memoizedState;if(prevState!==null){if(nextDeps!==null){var prevDeps=prevState[1];if(areHookInputsEqual(nextDeps,prevDeps)){return prevState[0];}}}hook.memoizedState=[callback,nextDeps];return callback;}function mountMemo(nextCreate,deps){var hook=mountWorkInProgressHook();var nextDeps=deps===undefined?null:deps;var nextValue=nextCreate();hook.memoizedState=[nextValue,nextDeps];return nextValue;}function updateMemo(nextCreate,deps){var hook=updateWorkInProgressHook();var nextDeps=deps===undefined?null:deps;var prevState=hook.memoizedState;if(prevState!==null){// Assume these are defined. If they're not, areHookInputsEqual will warn.\nif(nextDeps!==null){var prevDeps=prevState[1];if(areHookInputsEqual(nextDeps,prevDeps)){return prevState[0];}}}var nextValue=nextCreate();hook.memoizedState=[nextValue,nextDeps];return nextValue;}function mountDeferredValue(value){var hook=mountWorkInProgressHook();hook.memoizedState=value;return value;}function updateDeferredValue(value){var hook=updateWorkInProgressHook();var resolvedCurrentHook=currentHook;var prevValue=resolvedCurrentHook.memoizedState;return updateDeferredValueImpl(hook,prevValue,value);}function rerenderDeferredValue(value){var hook=updateWorkInProgressHook();if(currentHook===null){// This is a rerender during a mount.\nhook.memoizedState=value;return value;}else{// This is a rerender during an update.\nvar prevValue=currentHook.memoizedState;return updateDeferredValueImpl(hook,prevValue,value);}}function updateDeferredValueImpl(hook,prevValue,value){var shouldDeferValue=!includesOnlyNonUrgentLanes(renderLanes);if(shouldDeferValue){// This is an urgent update. If the value has changed, keep using the\n// previous value and spawn a deferred render to update it later.\nif(!objectIs(value,prevValue)){// Schedule a deferred render\nvar deferredLane=claimNextTransitionLane();currentlyRenderingFiber$1.lanes=mergeLanes(currentlyRenderingFiber$1.lanes,deferredLane);markSkippedUpdateLanes(deferredLane);// Set this to true to indicate that the rendered value is inconsistent\n// from the latest value. The name \"baseState\" doesn't really match how we\n// use it because we're reusing a state hook field instead of creating a\n// new one.\nhook.baseState=true;}// Reuse the previous value\nreturn prevValue;}else{// This is not an urgent update, so we can use the latest value regardless\n// of what it is. No need to defer it.\n// However, if we're currently inside a spawned render, then we need to mark\n// this as an update to prevent the fiber from bailing out.\n//\n// `baseState` is true when the current value is different from the rendered\n// value. The name doesn't really match how we use it because we're reusing\n// a state hook field instead of creating a new one.\nif(hook.baseState){// Flip this back to false.\nhook.baseState=false;markWorkInProgressReceivedUpdate();}hook.memoizedState=value;return value;}}function startTransition(setPending,callback,options){var previousPriority=getCurrentUpdatePriority();setCurrentUpdatePriority(higherEventPriority(previousPriority,ContinuousEventPriority));setPending(true);var prevTransition=ReactCurrentBatchConfig$2.transition;ReactCurrentBatchConfig$2.transition={};var currentTransition=ReactCurrentBatchConfig$2.transition;{ReactCurrentBatchConfig$2.transition._updatedFibers=new Set();}try{setPending(false);callback();}finally{setCurrentUpdatePriority(previousPriority);ReactCurrentBatchConfig$2.transition=prevTransition;{if(prevTransition===null&&currentTransition._updatedFibers){var updatedFibersCount=currentTransition._updatedFibers.size;if(updatedFibersCount>10){warn('Detected a large number of updates inside startTransition. '+'If this is due to a subscription please re-write it to use React provided hooks. '+'Otherwise concurrent mode guarantees are off the table.');}currentTransition._updatedFibers.clear();}}}}function mountTransition(){var _mountState=mountState(false),isPending=_mountState[0],setPending=_mountState[1];// The `start` method never changes.\nvar start=startTransition.bind(null,setPending);var hook=mountWorkInProgressHook();hook.memoizedState=start;return[isPending,start];}function updateTransition(){var _updateState=updateState(),isPending=_updateState[0];var hook=updateWorkInProgressHook();var start=hook.memoizedState;return[isPending,start];}function rerenderTransition(){var _rerenderState=rerenderState(),isPending=_rerenderState[0];var hook=updateWorkInProgressHook();var start=hook.memoizedState;return[isPending,start];}var isUpdatingOpaqueValueInRenderPhase=false;function getIsUpdatingOpaqueValueInRenderPhaseInDEV(){{return isUpdatingOpaqueValueInRenderPhase;}}function mountId(){var hook=mountWorkInProgressHook();var root=getWorkInProgressRoot();// TODO: In Fizz, id generation is specific to each server config. Maybe we\n// should do this in Fiber, too? Deferring this decision for now because\n// there's no other place to store the prefix except for an internal field on\n// the public createRoot object, which the fiber tree does not currently have\n// a reference to.\nvar identifierPrefix=root.identifierPrefix;var id;if(getIsHydrating()){var treeId=getTreeId();// Use a captial R prefix for server-generated ids.\nid=':'+identifierPrefix+'R'+treeId;// Unless this is the first id at this level, append a number at the end\n// that represents the position of this useId hook among all the useId\n// hooks for this fiber.\nvar localId=localIdCounter++;if(localId>0){id+='H'+localId.toString(32);}id+=':';}else{// Use a lowercase r prefix for client-generated ids.\nvar globalClientId=globalClientIdCounter++;id=':'+identifierPrefix+'r'+globalClientId.toString(32)+':';}hook.memoizedState=id;return id;}function updateId(){var hook=updateWorkInProgressHook();var id=hook.memoizedState;return id;}function dispatchReducerAction(fiber,queue,action){{if(typeof arguments[3]==='function'){error(\"State updates from the useState() and useReducer() Hooks don't support the \"+'second callback argument. To execute a side effect after '+'rendering, declare it in the component body with useEffect().');}}var lane=requestUpdateLane(fiber);var update={lane:lane,action:action,hasEagerState:false,eagerState:null,next:null};if(isRenderPhaseUpdate(fiber)){enqueueRenderPhaseUpdate(queue,update);}else{var root=enqueueConcurrentHookUpdate(fiber,queue,update,lane);if(root!==null){var eventTime=requestEventTime();scheduleUpdateOnFiber(root,fiber,lane,eventTime);entangleTransitionUpdate(root,queue,lane);}}markUpdateInDevTools(fiber,lane);}function dispatchSetState(fiber,queue,action){{if(typeof arguments[3]==='function'){error(\"State updates from the useState() and useReducer() Hooks don't support the \"+'second callback argument. To execute a side effect after '+'rendering, declare it in the component body with useEffect().');}}var lane=requestUpdateLane(fiber);var update={lane:lane,action:action,hasEagerState:false,eagerState:null,next:null};if(isRenderPhaseUpdate(fiber)){enqueueRenderPhaseUpdate(queue,update);}else{var alternate=fiber.alternate;if(fiber.lanes===NoLanes&&(alternate===null||alternate.lanes===NoLanes)){// The queue is currently empty, which means we can eagerly compute the\n// next state before entering the render phase. If the new state is the\n// same as the current state, we may be able to bail out entirely.\nvar lastRenderedReducer=queue.lastRenderedReducer;if(lastRenderedReducer!==null){var prevDispatcher;{prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnUpdateInDEV;}try{var currentState=queue.lastRenderedState;var eagerState=lastRenderedReducer(currentState,action);// Stash the eagerly computed state, and the reducer used to compute\n// it, on the update object. If the reducer hasn't changed by the\n// time we enter the render phase, then the eager state can be used\n// without calling the reducer again.\nupdate.hasEagerState=true;update.eagerState=eagerState;if(objectIs(eagerState,currentState)){// Fast path. We can bail out without scheduling React to re-render.\n// It's still possible that we'll need to rebase this update later,\n// if the component re-renders for a different reason and by that\n// time the reducer has changed.\n// TODO: Do we still need to entangle transitions in this case?\nenqueueConcurrentHookUpdateAndEagerlyBailout(fiber,queue,update,lane);return;}}catch(error){// Suppress the error. It will throw again in the render phase.\n}finally{{ReactCurrentDispatcher$1.current=prevDispatcher;}}}}var root=enqueueConcurrentHookUpdate(fiber,queue,update,lane);if(root!==null){var eventTime=requestEventTime();scheduleUpdateOnFiber(root,fiber,lane,eventTime);entangleTransitionUpdate(root,queue,lane);}}markUpdateInDevTools(fiber,lane);}function isRenderPhaseUpdate(fiber){var alternate=fiber.alternate;return fiber===currentlyRenderingFiber$1||alternate!==null&&alternate===currentlyRenderingFiber$1;}function enqueueRenderPhaseUpdate(queue,update){// This is a render phase update. Stash it in a lazily-created map of\n// queue -> linked list of updates. After this render pass, we'll restart\n// and apply the stashed updates on top of the work-in-progress hook.\ndidScheduleRenderPhaseUpdateDuringThisPass=didScheduleRenderPhaseUpdate=true;var pending=queue.pending;if(pending===null){// This is the first update. Create a circular list.\nupdate.next=update;}else{update.next=pending.next;pending.next=update;}queue.pending=update;}// TODO: Move to ReactFiberConcurrentUpdates?\nfunction entangleTransitionUpdate(root,queue,lane){if(isTransitionLane(lane)){var queueLanes=queue.lanes;// If any entangled lanes are no longer pending on the root, then they\n// must have finished. We can remove them from the shared queue, which\n// represents a superset of the actually pending lanes. In some cases we\n// may entangle more than we need to, but that's OK. In fact it's worse if\n// we *don't* entangle when we should.\nqueueLanes=intersectLanes(queueLanes,root.pendingLanes);// Entangle the new transition lane with the other transition lanes.\nvar newQueueLanes=mergeLanes(queueLanes,lane);queue.lanes=newQueueLanes;// Even if queue.lanes already include lane, we don't know for certain if\n// the lane finished since the last time we entangled it. So we need to\n// entangle it again, just to be sure.\nmarkRootEntangled(root,newQueueLanes);}}function markUpdateInDevTools(fiber,lane,action){{markStateUpdateScheduled(fiber,lane);}}var ContextOnlyDispatcher={readContext:readContext,useCallback:throwInvalidHookError,useContext:throwInvalidHookError,useEffect:throwInvalidHookError,useImperativeHandle:throwInvalidHookError,useInsertionEffect:throwInvalidHookError,useLayoutEffect:throwInvalidHookError,useMemo:throwInvalidHookError,useReducer:throwInvalidHookError,useRef:throwInvalidHookError,useState:throwInvalidHookError,useDebugValue:throwInvalidHookError,useDeferredValue:throwInvalidHookError,useTransition:throwInvalidHookError,useMutableSource:throwInvalidHookError,useSyncExternalStore:throwInvalidHookError,useId:throwInvalidHookError,unstable_isNewReconciler:enableNewReconciler};var HooksDispatcherOnMountInDEV=null;var HooksDispatcherOnMountWithHookTypesInDEV=null;var HooksDispatcherOnUpdateInDEV=null;var HooksDispatcherOnRerenderInDEV=null;var InvalidNestedHooksDispatcherOnMountInDEV=null;var InvalidNestedHooksDispatcherOnUpdateInDEV=null;var InvalidNestedHooksDispatcherOnRerenderInDEV=null;{var warnInvalidContextAccess=function(){error('Context can only be read while React is rendering. '+'In classes, you can read it in the render method or getDerivedStateFromProps. '+'In function components, you can read it directly in the function body, but not '+'inside Hooks like useReducer() or useMemo().');};var warnInvalidHookAccess=function(){error('Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. '+'You can only call Hooks at the top level of your React function. '+'For more information, see '+'https://reactjs.org/link/rules-of-hooks');};HooksDispatcherOnMountInDEV={readContext:function(context){return readContext(context);},useCallback:function(callback,deps){currentHookNameInDev='useCallback';mountHookTypesDev();checkDepsAreArrayDev(deps);return mountCallback(callback,deps);},useContext:function(context){currentHookNameInDev='useContext';mountHookTypesDev();return readContext(context);},useEffect:function(create,deps){currentHookNameInDev='useEffect';mountHookTypesDev();checkDepsAreArrayDev(deps);return mountEffect(create,deps);},useImperativeHandle:function(ref,create,deps){currentHookNameInDev='useImperativeHandle';mountHookTypesDev();checkDepsAreArrayDev(deps);return mountImperativeHandle(ref,create,deps);},useInsertionEffect:function(create,deps){currentHookNameInDev='useInsertionEffect';mountHookTypesDev();checkDepsAreArrayDev(deps);return mountInsertionEffect(create,deps);},useLayoutEffect:function(create,deps){currentHookNameInDev='useLayoutEffect';mountHookTypesDev();checkDepsAreArrayDev(deps);return mountLayoutEffect(create,deps);},useMemo:function(create,deps){currentHookNameInDev='useMemo';mountHookTypesDev();checkDepsAreArrayDev(deps);var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnMountInDEV;try{return mountMemo(create,deps);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useReducer:function(reducer,initialArg,init){currentHookNameInDev='useReducer';mountHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnMountInDEV;try{return mountReducer(reducer,initialArg,init);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useRef:function(initialValue){currentHookNameInDev='useRef';mountHookTypesDev();return mountRef(initialValue);},useState:function(initialState){currentHookNameInDev='useState';mountHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnMountInDEV;try{return mountState(initialState);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useDebugValue:function(value,formatterFn){currentHookNameInDev='useDebugValue';mountHookTypesDev();return mountDebugValue();},useDeferredValue:function(value){currentHookNameInDev='useDeferredValue';mountHookTypesDev();return mountDeferredValue(value);},useTransition:function(){currentHookNameInDev='useTransition';mountHookTypesDev();return mountTransition();},useMutableSource:function(source,getSnapshot,subscribe){currentHookNameInDev='useMutableSource';mountHookTypesDev();return mountMutableSource();},useSyncExternalStore:function(subscribe,getSnapshot,getServerSnapshot){currentHookNameInDev='useSyncExternalStore';mountHookTypesDev();return mountSyncExternalStore(subscribe,getSnapshot,getServerSnapshot);},useId:function(){currentHookNameInDev='useId';mountHookTypesDev();return mountId();},unstable_isNewReconciler:enableNewReconciler};HooksDispatcherOnMountWithHookTypesInDEV={readContext:function(context){return readContext(context);},useCallback:function(callback,deps){currentHookNameInDev='useCallback';updateHookTypesDev();return mountCallback(callback,deps);},useContext:function(context){currentHookNameInDev='useContext';updateHookTypesDev();return readContext(context);},useEffect:function(create,deps){currentHookNameInDev='useEffect';updateHookTypesDev();return mountEffect(create,deps);},useImperativeHandle:function(ref,create,deps){currentHookNameInDev='useImperativeHandle';updateHookTypesDev();return mountImperativeHandle(ref,create,deps);},useInsertionEffect:function(create,deps){currentHookNameInDev='useInsertionEffect';updateHookTypesDev();return mountInsertionEffect(create,deps);},useLayoutEffect:function(create,deps){currentHookNameInDev='useLayoutEffect';updateHookTypesDev();return mountLayoutEffect(create,deps);},useMemo:function(create,deps){currentHookNameInDev='useMemo';updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnMountInDEV;try{return mountMemo(create,deps);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useReducer:function(reducer,initialArg,init){currentHookNameInDev='useReducer';updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnMountInDEV;try{return mountReducer(reducer,initialArg,init);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useRef:function(initialValue){currentHookNameInDev='useRef';updateHookTypesDev();return mountRef(initialValue);},useState:function(initialState){currentHookNameInDev='useState';updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnMountInDEV;try{return mountState(initialState);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useDebugValue:function(value,formatterFn){currentHookNameInDev='useDebugValue';updateHookTypesDev();return mountDebugValue();},useDeferredValue:function(value){currentHookNameInDev='useDeferredValue';updateHookTypesDev();return mountDeferredValue(value);},useTransition:function(){currentHookNameInDev='useTransition';updateHookTypesDev();return mountTransition();},useMutableSource:function(source,getSnapshot,subscribe){currentHookNameInDev='useMutableSource';updateHookTypesDev();return mountMutableSource();},useSyncExternalStore:function(subscribe,getSnapshot,getServerSnapshot){currentHookNameInDev='useSyncExternalStore';updateHookTypesDev();return mountSyncExternalStore(subscribe,getSnapshot,getServerSnapshot);},useId:function(){currentHookNameInDev='useId';updateHookTypesDev();return mountId();},unstable_isNewReconciler:enableNewReconciler};HooksDispatcherOnUpdateInDEV={readContext:function(context){return readContext(context);},useCallback:function(callback,deps){currentHookNameInDev='useCallback';updateHookTypesDev();return updateCallback(callback,deps);},useContext:function(context){currentHookNameInDev='useContext';updateHookTypesDev();return readContext(context);},useEffect:function(create,deps){currentHookNameInDev='useEffect';updateHookTypesDev();return updateEffect(create,deps);},useImperativeHandle:function(ref,create,deps){currentHookNameInDev='useImperativeHandle';updateHookTypesDev();return updateImperativeHandle(ref,create,deps);},useInsertionEffect:function(create,deps){currentHookNameInDev='useInsertionEffect';updateHookTypesDev();return updateInsertionEffect(create,deps);},useLayoutEffect:function(create,deps){currentHookNameInDev='useLayoutEffect';updateHookTypesDev();return updateLayoutEffect(create,deps);},useMemo:function(create,deps){currentHookNameInDev='useMemo';updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnUpdateInDEV;try{return updateMemo(create,deps);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useReducer:function(reducer,initialArg,init){currentHookNameInDev='useReducer';updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnUpdateInDEV;try{return updateReducer(reducer,initialArg,init);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useRef:function(initialValue){currentHookNameInDev='useRef';updateHookTypesDev();return updateRef();},useState:function(initialState){currentHookNameInDev='useState';updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnUpdateInDEV;try{return updateState(initialState);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useDebugValue:function(value,formatterFn){currentHookNameInDev='useDebugValue';updateHookTypesDev();return updateDebugValue();},useDeferredValue:function(value){currentHookNameInDev='useDeferredValue';updateHookTypesDev();return updateDeferredValue(value);},useTransition:function(){currentHookNameInDev='useTransition';updateHookTypesDev();return updateTransition();},useMutableSource:function(source,getSnapshot,subscribe){currentHookNameInDev='useMutableSource';updateHookTypesDev();return updateMutableSource();},useSyncExternalStore:function(subscribe,getSnapshot,getServerSnapshot){currentHookNameInDev='useSyncExternalStore';updateHookTypesDev();return updateSyncExternalStore(subscribe,getSnapshot);},useId:function(){currentHookNameInDev='useId';updateHookTypesDev();return updateId();},unstable_isNewReconciler:enableNewReconciler};HooksDispatcherOnRerenderInDEV={readContext:function(context){return readContext(context);},useCallback:function(callback,deps){currentHookNameInDev='useCallback';updateHookTypesDev();return updateCallback(callback,deps);},useContext:function(context){currentHookNameInDev='useContext';updateHookTypesDev();return readContext(context);},useEffect:function(create,deps){currentHookNameInDev='useEffect';updateHookTypesDev();return updateEffect(create,deps);},useImperativeHandle:function(ref,create,deps){currentHookNameInDev='useImperativeHandle';updateHookTypesDev();return updateImperativeHandle(ref,create,deps);},useInsertionEffect:function(create,deps){currentHookNameInDev='useInsertionEffect';updateHookTypesDev();return updateInsertionEffect(create,deps);},useLayoutEffect:function(create,deps){currentHookNameInDev='useLayoutEffect';updateHookTypesDev();return updateLayoutEffect(create,deps);},useMemo:function(create,deps){currentHookNameInDev='useMemo';updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnRerenderInDEV;try{return updateMemo(create,deps);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useReducer:function(reducer,initialArg,init){currentHookNameInDev='useReducer';updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnRerenderInDEV;try{return rerenderReducer(reducer,initialArg,init);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useRef:function(initialValue){currentHookNameInDev='useRef';updateHookTypesDev();return updateRef();},useState:function(initialState){currentHookNameInDev='useState';updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnRerenderInDEV;try{return rerenderState(initialState);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useDebugValue:function(value,formatterFn){currentHookNameInDev='useDebugValue';updateHookTypesDev();return updateDebugValue();},useDeferredValue:function(value){currentHookNameInDev='useDeferredValue';updateHookTypesDev();return rerenderDeferredValue(value);},useTransition:function(){currentHookNameInDev='useTransition';updateHookTypesDev();return rerenderTransition();},useMutableSource:function(source,getSnapshot,subscribe){currentHookNameInDev='useMutableSource';updateHookTypesDev();return updateMutableSource();},useSyncExternalStore:function(subscribe,getSnapshot,getServerSnapshot){currentHookNameInDev='useSyncExternalStore';updateHookTypesDev();return updateSyncExternalStore(subscribe,getSnapshot);},useId:function(){currentHookNameInDev='useId';updateHookTypesDev();return updateId();},unstable_isNewReconciler:enableNewReconciler};InvalidNestedHooksDispatcherOnMountInDEV={readContext:function(context){warnInvalidContextAccess();return readContext(context);},useCallback:function(callback,deps){currentHookNameInDev='useCallback';warnInvalidHookAccess();mountHookTypesDev();return mountCallback(callback,deps);},useContext:function(context){currentHookNameInDev='useContext';warnInvalidHookAccess();mountHookTypesDev();return readContext(context);},useEffect:function(create,deps){currentHookNameInDev='useEffect';warnInvalidHookAccess();mountHookTypesDev();return mountEffect(create,deps);},useImperativeHandle:function(ref,create,deps){currentHookNameInDev='useImperativeHandle';warnInvalidHookAccess();mountHookTypesDev();return mountImperativeHandle(ref,create,deps);},useInsertionEffect:function(create,deps){currentHookNameInDev='useInsertionEffect';warnInvalidHookAccess();mountHookTypesDev();return mountInsertionEffect(create,deps);},useLayoutEffect:function(create,deps){currentHookNameInDev='useLayoutEffect';warnInvalidHookAccess();mountHookTypesDev();return mountLayoutEffect(create,deps);},useMemo:function(create,deps){currentHookNameInDev='useMemo';warnInvalidHookAccess();mountHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnMountInDEV;try{return mountMemo(create,deps);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useReducer:function(reducer,initialArg,init){currentHookNameInDev='useReducer';warnInvalidHookAccess();mountHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnMountInDEV;try{return mountReducer(reducer,initialArg,init);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useRef:function(initialValue){currentHookNameInDev='useRef';warnInvalidHookAccess();mountHookTypesDev();return mountRef(initialValue);},useState:function(initialState){currentHookNameInDev='useState';warnInvalidHookAccess();mountHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnMountInDEV;try{return mountState(initialState);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useDebugValue:function(value,formatterFn){currentHookNameInDev='useDebugValue';warnInvalidHookAccess();mountHookTypesDev();return mountDebugValue();},useDeferredValue:function(value){currentHookNameInDev='useDeferredValue';warnInvalidHookAccess();mountHookTypesDev();return mountDeferredValue(value);},useTransition:function(){currentHookNameInDev='useTransition';warnInvalidHookAccess();mountHookTypesDev();return mountTransition();},useMutableSource:function(source,getSnapshot,subscribe){currentHookNameInDev='useMutableSource';warnInvalidHookAccess();mountHookTypesDev();return mountMutableSource();},useSyncExternalStore:function(subscribe,getSnapshot,getServerSnapshot){currentHookNameInDev='useSyncExternalStore';warnInvalidHookAccess();mountHookTypesDev();return mountSyncExternalStore(subscribe,getSnapshot,getServerSnapshot);},useId:function(){currentHookNameInDev='useId';warnInvalidHookAccess();mountHookTypesDev();return mountId();},unstable_isNewReconciler:enableNewReconciler};InvalidNestedHooksDispatcherOnUpdateInDEV={readContext:function(context){warnInvalidContextAccess();return readContext(context);},useCallback:function(callback,deps){currentHookNameInDev='useCallback';warnInvalidHookAccess();updateHookTypesDev();return updateCallback(callback,deps);},useContext:function(context){currentHookNameInDev='useContext';warnInvalidHookAccess();updateHookTypesDev();return readContext(context);},useEffect:function(create,deps){currentHookNameInDev='useEffect';warnInvalidHookAccess();updateHookTypesDev();return updateEffect(create,deps);},useImperativeHandle:function(ref,create,deps){currentHookNameInDev='useImperativeHandle';warnInvalidHookAccess();updateHookTypesDev();return updateImperativeHandle(ref,create,deps);},useInsertionEffect:function(create,deps){currentHookNameInDev='useInsertionEffect';warnInvalidHookAccess();updateHookTypesDev();return updateInsertionEffect(create,deps);},useLayoutEffect:function(create,deps){currentHookNameInDev='useLayoutEffect';warnInvalidHookAccess();updateHookTypesDev();return updateLayoutEffect(create,deps);},useMemo:function(create,deps){currentHookNameInDev='useMemo';warnInvalidHookAccess();updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnUpdateInDEV;try{return updateMemo(create,deps);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useReducer:function(reducer,initialArg,init){currentHookNameInDev='useReducer';warnInvalidHookAccess();updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnUpdateInDEV;try{return updateReducer(reducer,initialArg,init);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useRef:function(initialValue){currentHookNameInDev='useRef';warnInvalidHookAccess();updateHookTypesDev();return updateRef();},useState:function(initialState){currentHookNameInDev='useState';warnInvalidHookAccess();updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnUpdateInDEV;try{return updateState(initialState);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useDebugValue:function(value,formatterFn){currentHookNameInDev='useDebugValue';warnInvalidHookAccess();updateHookTypesDev();return updateDebugValue();},useDeferredValue:function(value){currentHookNameInDev='useDeferredValue';warnInvalidHookAccess();updateHookTypesDev();return updateDeferredValue(value);},useTransition:function(){currentHookNameInDev='useTransition';warnInvalidHookAccess();updateHookTypesDev();return updateTransition();},useMutableSource:function(source,getSnapshot,subscribe){currentHookNameInDev='useMutableSource';warnInvalidHookAccess();updateHookTypesDev();return updateMutableSource();},useSyncExternalStore:function(subscribe,getSnapshot,getServerSnapshot){currentHookNameInDev='useSyncExternalStore';warnInvalidHookAccess();updateHookTypesDev();return updateSyncExternalStore(subscribe,getSnapshot);},useId:function(){currentHookNameInDev='useId';warnInvalidHookAccess();updateHookTypesDev();return updateId();},unstable_isNewReconciler:enableNewReconciler};InvalidNestedHooksDispatcherOnRerenderInDEV={readContext:function(context){warnInvalidContextAccess();return readContext(context);},useCallback:function(callback,deps){currentHookNameInDev='useCallback';warnInvalidHookAccess();updateHookTypesDev();return updateCallback(callback,deps);},useContext:function(context){currentHookNameInDev='useContext';warnInvalidHookAccess();updateHookTypesDev();return readContext(context);},useEffect:function(create,deps){currentHookNameInDev='useEffect';warnInvalidHookAccess();updateHookTypesDev();return updateEffect(create,deps);},useImperativeHandle:function(ref,create,deps){currentHookNameInDev='useImperativeHandle';warnInvalidHookAccess();updateHookTypesDev();return updateImperativeHandle(ref,create,deps);},useInsertionEffect:function(create,deps){currentHookNameInDev='useInsertionEffect';warnInvalidHookAccess();updateHookTypesDev();return updateInsertionEffect(create,deps);},useLayoutEffect:function(create,deps){currentHookNameInDev='useLayoutEffect';warnInvalidHookAccess();updateHookTypesDev();return updateLayoutEffect(create,deps);},useMemo:function(create,deps){currentHookNameInDev='useMemo';warnInvalidHookAccess();updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnUpdateInDEV;try{return updateMemo(create,deps);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useReducer:function(reducer,initialArg,init){currentHookNameInDev='useReducer';warnInvalidHookAccess();updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnUpdateInDEV;try{return rerenderReducer(reducer,initialArg,init);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useRef:function(initialValue){currentHookNameInDev='useRef';warnInvalidHookAccess();updateHookTypesDev();return updateRef();},useState:function(initialState){currentHookNameInDev='useState';warnInvalidHookAccess();updateHookTypesDev();var prevDispatcher=ReactCurrentDispatcher$1.current;ReactCurrentDispatcher$1.current=InvalidNestedHooksDispatcherOnUpdateInDEV;try{return rerenderState(initialState);}finally{ReactCurrentDispatcher$1.current=prevDispatcher;}},useDebugValue:function(value,formatterFn){currentHookNameInDev='useDebugValue';warnInvalidHookAccess();updateHookTypesDev();return updateDebugValue();},useDeferredValue:function(value){currentHookNameInDev='useDeferredValue';warnInvalidHookAccess();updateHookTypesDev();return rerenderDeferredValue(value);},useTransition:function(){currentHookNameInDev='useTransition';warnInvalidHookAccess();updateHookTypesDev();return rerenderTransition();},useMutableSource:function(source,getSnapshot,subscribe){currentHookNameInDev='useMutableSource';warnInvalidHookAccess();updateHookTypesDev();return updateMutableSource();},useSyncExternalStore:function(subscribe,getSnapshot,getServerSnapshot){currentHookNameInDev='useSyncExternalStore';warnInvalidHookAccess();updateHookTypesDev();return updateSyncExternalStore(subscribe,getSnapshot);},useId:function(){currentHookNameInDev='useId';warnInvalidHookAccess();updateHookTypesDev();return updateId();},unstable_isNewReconciler:enableNewReconciler};}var now$1=Scheduler.unstable_now;var commitTime=0;var layoutEffectStartTime=-1;var profilerStartTime=-1;var passiveEffectStartTime=-1;/**\n * Tracks whether the current update was a nested/cascading update (scheduled from a layout effect).\n *\n * The overall sequence is:\n *   1. render\n *   2. commit (and call `onRender`, `onCommit`)\n *   3. check for nested updates\n *   4. flush passive effects (and call `onPostCommit`)\n *\n * Nested updates are identified in step 3 above,\n * but step 4 still applies to the work that was just committed.\n * We use two flags to track nested updates then:\n * one tracks whether the upcoming update is a nested update,\n * and the other tracks whether the current update was a nested update.\n * The first value gets synced to the second at the start of the render phase.\n */var currentUpdateIsNested=false;var nestedUpdateScheduled=false;function isCurrentUpdateNested(){return currentUpdateIsNested;}function markNestedUpdateScheduled(){{nestedUpdateScheduled=true;}}function resetNestedUpdateFlag(){{currentUpdateIsNested=false;nestedUpdateScheduled=false;}}function syncNestedUpdateFlag(){{currentUpdateIsNested=nestedUpdateScheduled;nestedUpdateScheduled=false;}}function getCommitTime(){return commitTime;}function recordCommitTime(){commitTime=now$1();}function startProfilerTimer(fiber){profilerStartTime=now$1();if(fiber.actualStartTime<0){fiber.actualStartTime=now$1();}}function stopProfilerTimerIfRunning(fiber){profilerStartTime=-1;}function stopProfilerTimerIfRunningAndRecordDelta(fiber,overrideBaseTime){if(profilerStartTime>=0){var elapsedTime=now$1()-profilerStartTime;fiber.actualDuration+=elapsedTime;if(overrideBaseTime){fiber.selfBaseDuration=elapsedTime;}profilerStartTime=-1;}}function recordLayoutEffectDuration(fiber){if(layoutEffectStartTime>=0){var elapsedTime=now$1()-layoutEffectStartTime;layoutEffectStartTime=-1;// Store duration on the next nearest Profiler ancestor\n// Or the root (for the DevTools Profiler to read)\nvar parentFiber=fiber.return;while(parentFiber!==null){switch(parentFiber.tag){case HostRoot:var root=parentFiber.stateNode;root.effectDuration+=elapsedTime;return;case Profiler:var parentStateNode=parentFiber.stateNode;parentStateNode.effectDuration+=elapsedTime;return;}parentFiber=parentFiber.return;}}}function recordPassiveEffectDuration(fiber){if(passiveEffectStartTime>=0){var elapsedTime=now$1()-passiveEffectStartTime;passiveEffectStartTime=-1;// Store duration on the next nearest Profiler ancestor\n// Or the root (for the DevTools Profiler to read)\nvar parentFiber=fiber.return;while(parentFiber!==null){switch(parentFiber.tag){case HostRoot:var root=parentFiber.stateNode;if(root!==null){root.passiveEffectDuration+=elapsedTime;}return;case Profiler:var parentStateNode=parentFiber.stateNode;if(parentStateNode!==null){// Detached fibers have their state node cleared out.\n// In this case, the return pointer is also cleared out,\n// so we won't be able to report the time spent in this Profiler's subtree.\nparentStateNode.passiveEffectDuration+=elapsedTime;}return;}parentFiber=parentFiber.return;}}}function startLayoutEffectTimer(){layoutEffectStartTime=now$1();}function startPassiveEffectTimer(){passiveEffectStartTime=now$1();}function transferActualDuration(fiber){// Transfer time spent rendering these children so we don't lose it\n// after we rerender. This is used as a helper in special cases\n// where we should count the work of multiple passes.\nvar child=fiber.child;while(child){fiber.actualDuration+=child.actualDuration;child=child.sibling;}}function resolveDefaultProps(Component,baseProps){if(Component&&Component.defaultProps){// Resolve default props. Taken from ReactElement\nvar props=assign({},baseProps);var defaultProps=Component.defaultProps;for(var propName in defaultProps){if(props[propName]===undefined){props[propName]=defaultProps[propName];}}return props;}return baseProps;}var fakeInternalInstance={};var didWarnAboutStateAssignmentForComponent;var didWarnAboutUninitializedState;var didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate;var didWarnAboutLegacyLifecyclesAndDerivedState;var didWarnAboutUndefinedDerivedState;var warnOnUndefinedDerivedState;var warnOnInvalidCallback;var didWarnAboutDirectlyAssigningPropsToState;var didWarnAboutContextTypeAndContextTypes;var didWarnAboutInvalidateContextType;var didWarnAboutLegacyContext$1;{didWarnAboutStateAssignmentForComponent=new Set();didWarnAboutUninitializedState=new Set();didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate=new Set();didWarnAboutLegacyLifecyclesAndDerivedState=new Set();didWarnAboutDirectlyAssigningPropsToState=new Set();didWarnAboutUndefinedDerivedState=new Set();didWarnAboutContextTypeAndContextTypes=new Set();didWarnAboutInvalidateContextType=new Set();didWarnAboutLegacyContext$1=new Set();var didWarnOnInvalidCallback=new Set();warnOnInvalidCallback=function(callback,callerName){if(callback===null||typeof callback==='function'){return;}var key=callerName+'_'+callback;if(!didWarnOnInvalidCallback.has(key)){didWarnOnInvalidCallback.add(key);error('%s(...): Expected the last optional `callback` argument to be a '+'function. Instead received: %s.',callerName,callback);}};warnOnUndefinedDerivedState=function(type,partialState){if(partialState===undefined){var componentName=getComponentNameFromType(type)||'Component';if(!didWarnAboutUndefinedDerivedState.has(componentName)){didWarnAboutUndefinedDerivedState.add(componentName);error('%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. '+'You have returned undefined.',componentName);}}};// This is so gross but it's at least non-critical and can be removed if\n// it causes problems. This is meant to give a nicer error message for\n// ReactDOM15.unstable_renderSubtreeIntoContainer(reactDOM16Component,\n// ...)) which otherwise throws a \"_processChildContext is not a function\"\n// exception.\nObject.defineProperty(fakeInternalInstance,'_processChildContext',{enumerable:false,value:function(){throw new Error('_processChildContext is not available in React 16+. This likely '+'means you have multiple copies of React and are attempting to nest '+'a React 15 tree inside a React 16 tree using '+\"unstable_renderSubtreeIntoContainer, which isn't supported. Try \"+'to make sure you have only one copy of React (and ideally, switch '+'to ReactDOM.createPortal).');}});Object.freeze(fakeInternalInstance);}function applyDerivedStateFromProps(workInProgress,ctor,getDerivedStateFromProps,nextProps){var prevState=workInProgress.memoizedState;var partialState=getDerivedStateFromProps(nextProps,prevState);{if(workInProgress.mode&StrictLegacyMode){setIsStrictModeForDevtools(true);try{// Invoke the function an extra time to help detect side-effects.\npartialState=getDerivedStateFromProps(nextProps,prevState);}finally{setIsStrictModeForDevtools(false);}}warnOnUndefinedDerivedState(ctor,partialState);}// Merge the partial state and the previous state.\nvar memoizedState=partialState===null||partialState===undefined?prevState:assign({},prevState,partialState);workInProgress.memoizedState=memoizedState;// Once the update queue is empty, persist the derived state onto the\n// base state.\nif(workInProgress.lanes===NoLanes){// Queue is always non-null for classes\nvar updateQueue=workInProgress.updateQueue;updateQueue.baseState=memoizedState;}}var classComponentUpdater={isMounted:isMounted,enqueueSetState:function(inst,payload,callback){var fiber=get(inst);var eventTime=requestEventTime();var lane=requestUpdateLane(fiber);var update=createUpdate(eventTime,lane);update.payload=payload;if(callback!==undefined&&callback!==null){{warnOnInvalidCallback(callback,'setState');}update.callback=callback;}var root=enqueueUpdate(fiber,update,lane);if(root!==null){scheduleUpdateOnFiber(root,fiber,lane,eventTime);entangleTransitions(root,fiber,lane);}{markStateUpdateScheduled(fiber,lane);}},enqueueReplaceState:function(inst,payload,callback){var fiber=get(inst);var eventTime=requestEventTime();var lane=requestUpdateLane(fiber);var update=createUpdate(eventTime,lane);update.tag=ReplaceState;update.payload=payload;if(callback!==undefined&&callback!==null){{warnOnInvalidCallback(callback,'replaceState');}update.callback=callback;}var root=enqueueUpdate(fiber,update,lane);if(root!==null){scheduleUpdateOnFiber(root,fiber,lane,eventTime);entangleTransitions(root,fiber,lane);}{markStateUpdateScheduled(fiber,lane);}},enqueueForceUpdate:function(inst,callback){var fiber=get(inst);var eventTime=requestEventTime();var lane=requestUpdateLane(fiber);var update=createUpdate(eventTime,lane);update.tag=ForceUpdate;if(callback!==undefined&&callback!==null){{warnOnInvalidCallback(callback,'forceUpdate');}update.callback=callback;}var root=enqueueUpdate(fiber,update,lane);if(root!==null){scheduleUpdateOnFiber(root,fiber,lane,eventTime);entangleTransitions(root,fiber,lane);}{markForceUpdateScheduled(fiber,lane);}}};function checkShouldComponentUpdate(workInProgress,ctor,oldProps,newProps,oldState,newState,nextContext){var instance=workInProgress.stateNode;if(typeof instance.shouldComponentUpdate==='function'){var shouldUpdate=instance.shouldComponentUpdate(newProps,newState,nextContext);{if(workInProgress.mode&StrictLegacyMode){setIsStrictModeForDevtools(true);try{// Invoke the function an extra time to help detect side-effects.\nshouldUpdate=instance.shouldComponentUpdate(newProps,newState,nextContext);}finally{setIsStrictModeForDevtools(false);}}if(shouldUpdate===undefined){error('%s.shouldComponentUpdate(): Returned undefined instead of a '+'boolean value. Make sure to return true or false.',getComponentNameFromType(ctor)||'Component');}}return shouldUpdate;}if(ctor.prototype&&ctor.prototype.isPureReactComponent){return!shallowEqual(oldProps,newProps)||!shallowEqual(oldState,newState);}return true;}function checkClassInstance(workInProgress,ctor,newProps){var instance=workInProgress.stateNode;{var name=getComponentNameFromType(ctor)||'Component';var renderPresent=instance.render;if(!renderPresent){if(ctor.prototype&&typeof ctor.prototype.render==='function'){error('%s(...): No `render` method found on the returned component '+'instance: did you accidentally return an object from the constructor?',name);}else{error('%s(...): No `render` method found on the returned component '+'instance: you may have forgotten to define `render`.',name);}}if(instance.getInitialState&&!instance.getInitialState.isReactClassApproved&&!instance.state){error('getInitialState was defined on %s, a plain JavaScript class. '+'This is only supported for classes created using React.createClass. '+'Did you mean to define a state property instead?',name);}if(instance.getDefaultProps&&!instance.getDefaultProps.isReactClassApproved){error('getDefaultProps was defined on %s, a plain JavaScript class. '+'This is only supported for classes created using React.createClass. '+'Use a static property to define defaultProps instead.',name);}if(instance.propTypes){error('propTypes was defined as an instance property on %s. Use a static '+'property to define propTypes instead.',name);}if(instance.contextType){error('contextType was defined as an instance property on %s. Use a static '+'property to define contextType instead.',name);}{if(ctor.childContextTypes&&!didWarnAboutLegacyContext$1.has(ctor)&&// Strict Mode has its own warning for legacy context, so we can skip\n// this one.\n(workInProgress.mode&StrictLegacyMode)===NoMode){didWarnAboutLegacyContext$1.add(ctor);error('%s uses the legacy childContextTypes API which is no longer '+'supported and will be removed in the next major release. Use '+'React.createContext() instead\\n\\n.'+'Learn more about this warning here: https://reactjs.org/link/legacy-context',name);}if(ctor.contextTypes&&!didWarnAboutLegacyContext$1.has(ctor)&&// Strict Mode has its own warning for legacy context, so we can skip\n// this one.\n(workInProgress.mode&StrictLegacyMode)===NoMode){didWarnAboutLegacyContext$1.add(ctor);error('%s uses the legacy contextTypes API which is no longer supported '+'and will be removed in the next major release. Use '+'React.createContext() with static contextType instead.\\n\\n'+'Learn more about this warning here: https://reactjs.org/link/legacy-context',name);}if(instance.contextTypes){error('contextTypes was defined as an instance property on %s. Use a static '+'property to define contextTypes instead.',name);}if(ctor.contextType&&ctor.contextTypes&&!didWarnAboutContextTypeAndContextTypes.has(ctor)){didWarnAboutContextTypeAndContextTypes.add(ctor);error('%s declares both contextTypes and contextType static properties. '+'The legacy contextTypes property will be ignored.',name);}}if(typeof instance.componentShouldUpdate==='function'){error('%s has a method called '+'componentShouldUpdate(). Did you mean shouldComponentUpdate()? '+'The name is phrased as a question because the function is '+'expected to return a value.',name);}if(ctor.prototype&&ctor.prototype.isPureReactComponent&&typeof instance.shouldComponentUpdate!=='undefined'){error('%s has a method called shouldComponentUpdate(). '+'shouldComponentUpdate should not be used when extending React.PureComponent. '+'Please extend React.Component if shouldComponentUpdate is used.',getComponentNameFromType(ctor)||'A pure component');}if(typeof instance.componentDidUnmount==='function'){error('%s has a method called '+'componentDidUnmount(). But there is no such lifecycle method. '+'Did you mean componentWillUnmount()?',name);}if(typeof instance.componentDidReceiveProps==='function'){error('%s has a method called '+'componentDidReceiveProps(). But there is no such lifecycle method. '+'If you meant to update the state in response to changing props, '+'use componentWillReceiveProps(). If you meant to fetch data or '+'run side-effects or mutations after React has updated the UI, use componentDidUpdate().',name);}if(typeof instance.componentWillRecieveProps==='function'){error('%s has a method called '+'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',name);}if(typeof instance.UNSAFE_componentWillRecieveProps==='function'){error('%s has a method called '+'UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?',name);}var hasMutatedProps=instance.props!==newProps;if(instance.props!==undefined&&hasMutatedProps){error('%s(...): When calling super() in `%s`, make sure to pass '+\"up the same props that your component's constructor was passed.\",name,name);}if(instance.defaultProps){error('Setting defaultProps as an instance property on %s is not supported and will be ignored.'+' Instead, define defaultProps as a static property on %s.',name,name);}if(typeof instance.getSnapshotBeforeUpdate==='function'&&typeof instance.componentDidUpdate!=='function'&&!didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(ctor)){didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(ctor);error('%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). '+'This component defines getSnapshotBeforeUpdate() only.',getComponentNameFromType(ctor));}if(typeof instance.getDerivedStateFromProps==='function'){error('%s: getDerivedStateFromProps() is defined as an instance method '+'and will be ignored. Instead, declare it as a static method.',name);}if(typeof instance.getDerivedStateFromError==='function'){error('%s: getDerivedStateFromError() is defined as an instance method '+'and will be ignored. Instead, declare it as a static method.',name);}if(typeof ctor.getSnapshotBeforeUpdate==='function'){error('%s: getSnapshotBeforeUpdate() is defined as a static method '+'and will be ignored. Instead, declare it as an instance method.',name);}var _state=instance.state;if(_state&&(typeof _state!=='object'||isArray(_state))){error('%s.state: must be set to an object or null',name);}if(typeof instance.getChildContext==='function'&&typeof ctor.childContextTypes!=='object'){error('%s.getChildContext(): childContextTypes must be defined in order to '+'use getChildContext().',name);}}}function adoptClassInstance(workInProgress,instance){instance.updater=classComponentUpdater;workInProgress.stateNode=instance;// The instance needs access to the fiber so that it can schedule updates\nset(instance,workInProgress);{instance._reactInternalInstance=fakeInternalInstance;}}function constructClassInstance(workInProgress,ctor,props){var isLegacyContextConsumer=false;var unmaskedContext=emptyContextObject;var context=emptyContextObject;var contextType=ctor.contextType;{if('contextType'in ctor){var isValid=// Allow null for conditional declaration\ncontextType===null||contextType!==undefined&&contextType.$$typeof===REACT_CONTEXT_TYPE&&contextType._context===undefined;// Not a <Context.Consumer>\nif(!isValid&&!didWarnAboutInvalidateContextType.has(ctor)){didWarnAboutInvalidateContextType.add(ctor);var addendum='';if(contextType===undefined){addendum=' However, it is set to undefined. '+'This can be caused by a typo or by mixing up named and default imports. '+'This can also happen due to a circular dependency, so '+'try moving the createContext() call to a separate file.';}else if(typeof contextType!=='object'){addendum=' However, it is set to a '+typeof contextType+'.';}else if(contextType.$$typeof===REACT_PROVIDER_TYPE){addendum=' Did you accidentally pass the Context.Provider instead?';}else if(contextType._context!==undefined){// <Context.Consumer>\naddendum=' Did you accidentally pass the Context.Consumer instead?';}else{addendum=' However, it is set to an object with keys {'+Object.keys(contextType).join(', ')+'}.';}error('%s defines an invalid contextType. '+'contextType should point to the Context object returned by React.createContext().%s',getComponentNameFromType(ctor)||'Component',addendum);}}}if(typeof contextType==='object'&&contextType!==null){context=readContext(contextType);}else{unmaskedContext=getUnmaskedContext(workInProgress,ctor,true);var contextTypes=ctor.contextTypes;isLegacyContextConsumer=contextTypes!==null&&contextTypes!==undefined;context=isLegacyContextConsumer?getMaskedContext(workInProgress,unmaskedContext):emptyContextObject;}var instance=new ctor(props,context);// Instantiate twice to help detect side-effects.\n{if(workInProgress.mode&StrictLegacyMode){setIsStrictModeForDevtools(true);try{instance=new ctor(props,context);// eslint-disable-line no-new\n}finally{setIsStrictModeForDevtools(false);}}}var state=workInProgress.memoizedState=instance.state!==null&&instance.state!==undefined?instance.state:null;adoptClassInstance(workInProgress,instance);{if(typeof ctor.getDerivedStateFromProps==='function'&&state===null){var componentName=getComponentNameFromType(ctor)||'Component';if(!didWarnAboutUninitializedState.has(componentName)){didWarnAboutUninitializedState.add(componentName);error('`%s` uses `getDerivedStateFromProps` but its initial state is '+'%s. This is not recommended. Instead, define the initial state by '+'assigning an object to `this.state` in the constructor of `%s`. '+'This ensures that `getDerivedStateFromProps` arguments have a consistent shape.',componentName,instance.state===null?'null':'undefined',componentName);}}// If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n// Warn about these lifecycles if they are present.\n// Don't warn about react-lifecycles-compat polyfilled methods though.\nif(typeof ctor.getDerivedStateFromProps==='function'||typeof instance.getSnapshotBeforeUpdate==='function'){var foundWillMountName=null;var foundWillReceivePropsName=null;var foundWillUpdateName=null;if(typeof instance.componentWillMount==='function'&&instance.componentWillMount.__suppressDeprecationWarning!==true){foundWillMountName='componentWillMount';}else if(typeof instance.UNSAFE_componentWillMount==='function'){foundWillMountName='UNSAFE_componentWillMount';}if(typeof instance.componentWillReceiveProps==='function'&&instance.componentWillReceiveProps.__suppressDeprecationWarning!==true){foundWillReceivePropsName='componentWillReceiveProps';}else if(typeof instance.UNSAFE_componentWillReceiveProps==='function'){foundWillReceivePropsName='UNSAFE_componentWillReceiveProps';}if(typeof instance.componentWillUpdate==='function'&&instance.componentWillUpdate.__suppressDeprecationWarning!==true){foundWillUpdateName='componentWillUpdate';}else if(typeof instance.UNSAFE_componentWillUpdate==='function'){foundWillUpdateName='UNSAFE_componentWillUpdate';}if(foundWillMountName!==null||foundWillReceivePropsName!==null||foundWillUpdateName!==null){var _componentName=getComponentNameFromType(ctor)||'Component';var newApiName=typeof ctor.getDerivedStateFromProps==='function'?'getDerivedStateFromProps()':'getSnapshotBeforeUpdate()';if(!didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName)){didWarnAboutLegacyLifecyclesAndDerivedState.add(_componentName);error('Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n'+'%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\n'+'The above lifecycles should be removed. Learn more about this warning here:\\n'+'https://reactjs.org/link/unsafe-component-lifecycles',_componentName,newApiName,foundWillMountName!==null?\"\\n  \"+foundWillMountName:'',foundWillReceivePropsName!==null?\"\\n  \"+foundWillReceivePropsName:'',foundWillUpdateName!==null?\"\\n  \"+foundWillUpdateName:'');}}}}// Cache unmasked context so we can avoid recreating masked context unless necessary.\n// ReactFiberContext usually updates this cache but can't for newly-created instances.\nif(isLegacyContextConsumer){cacheContext(workInProgress,unmaskedContext,context);}return instance;}function callComponentWillMount(workInProgress,instance){var oldState=instance.state;if(typeof instance.componentWillMount==='function'){instance.componentWillMount();}if(typeof instance.UNSAFE_componentWillMount==='function'){instance.UNSAFE_componentWillMount();}if(oldState!==instance.state){{error('%s.componentWillMount(): Assigning directly to this.state is '+\"deprecated (except inside a component's \"+'constructor). Use setState instead.',getComponentNameFromFiber(workInProgress)||'Component');}classComponentUpdater.enqueueReplaceState(instance,instance.state,null);}}function callComponentWillReceiveProps(workInProgress,instance,newProps,nextContext){var oldState=instance.state;if(typeof instance.componentWillReceiveProps==='function'){instance.componentWillReceiveProps(newProps,nextContext);}if(typeof instance.UNSAFE_componentWillReceiveProps==='function'){instance.UNSAFE_componentWillReceiveProps(newProps,nextContext);}if(instance.state!==oldState){{var componentName=getComponentNameFromFiber(workInProgress)||'Component';if(!didWarnAboutStateAssignmentForComponent.has(componentName)){didWarnAboutStateAssignmentForComponent.add(componentName);error('%s.componentWillReceiveProps(): Assigning directly to '+\"this.state is deprecated (except inside a component's \"+'constructor). Use setState instead.',componentName);}}classComponentUpdater.enqueueReplaceState(instance,instance.state,null);}}// Invokes the mount life-cycles on a previously never rendered instance.\nfunction mountClassInstance(workInProgress,ctor,newProps,renderLanes){{checkClassInstance(workInProgress,ctor,newProps);}var instance=workInProgress.stateNode;instance.props=newProps;instance.state=workInProgress.memoizedState;instance.refs={};initializeUpdateQueue(workInProgress);var contextType=ctor.contextType;if(typeof contextType==='object'&&contextType!==null){instance.context=readContext(contextType);}else{var unmaskedContext=getUnmaskedContext(workInProgress,ctor,true);instance.context=getMaskedContext(workInProgress,unmaskedContext);}{if(instance.state===newProps){var componentName=getComponentNameFromType(ctor)||'Component';if(!didWarnAboutDirectlyAssigningPropsToState.has(componentName)){didWarnAboutDirectlyAssigningPropsToState.add(componentName);error('%s: It is not recommended to assign props directly to state '+\"because updates to props won't be reflected in state. \"+'In most cases, it is better to use props directly.',componentName);}}if(workInProgress.mode&StrictLegacyMode){ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress,instance);}{ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(workInProgress,instance);}}instance.state=workInProgress.memoizedState;var getDerivedStateFromProps=ctor.getDerivedStateFromProps;if(typeof getDerivedStateFromProps==='function'){applyDerivedStateFromProps(workInProgress,ctor,getDerivedStateFromProps,newProps);instance.state=workInProgress.memoizedState;}// In order to support react-lifecycles-compat polyfilled components,\n// Unsafe lifecycles should not be invoked for components using the new APIs.\nif(typeof ctor.getDerivedStateFromProps!=='function'&&typeof instance.getSnapshotBeforeUpdate!=='function'&&(typeof instance.UNSAFE_componentWillMount==='function'||typeof instance.componentWillMount==='function')){callComponentWillMount(workInProgress,instance);// If we had additional state updates during this life-cycle, let's\n// process them now.\nprocessUpdateQueue(workInProgress,newProps,instance,renderLanes);instance.state=workInProgress.memoizedState;}if(typeof instance.componentDidMount==='function'){var fiberFlags=Update;{fiberFlags|=LayoutStatic;}if((workInProgress.mode&StrictEffectsMode)!==NoMode){fiberFlags|=MountLayoutDev;}workInProgress.flags|=fiberFlags;}}function resumeMountClassInstance(workInProgress,ctor,newProps,renderLanes){var instance=workInProgress.stateNode;var oldProps=workInProgress.memoizedProps;instance.props=oldProps;var oldContext=instance.context;var contextType=ctor.contextType;var nextContext=emptyContextObject;if(typeof contextType==='object'&&contextType!==null){nextContext=readContext(contextType);}else{var nextLegacyUnmaskedContext=getUnmaskedContext(workInProgress,ctor,true);nextContext=getMaskedContext(workInProgress,nextLegacyUnmaskedContext);}var getDerivedStateFromProps=ctor.getDerivedStateFromProps;var hasNewLifecycles=typeof getDerivedStateFromProps==='function'||typeof instance.getSnapshotBeforeUpdate==='function';// Note: During these life-cycles, instance.props/instance.state are what\n// ever the previously attempted to render - not the \"current\". However,\n// during componentDidUpdate we pass the \"current\" props.\n// In order to support react-lifecycles-compat polyfilled components,\n// Unsafe lifecycles should not be invoked for components using the new APIs.\nif(!hasNewLifecycles&&(typeof instance.UNSAFE_componentWillReceiveProps==='function'||typeof instance.componentWillReceiveProps==='function')){if(oldProps!==newProps||oldContext!==nextContext){callComponentWillReceiveProps(workInProgress,instance,newProps,nextContext);}}resetHasForceUpdateBeforeProcessing();var oldState=workInProgress.memoizedState;var newState=instance.state=oldState;processUpdateQueue(workInProgress,newProps,instance,renderLanes);newState=workInProgress.memoizedState;if(oldProps===newProps&&oldState===newState&&!hasContextChanged()&&!checkHasForceUpdateAfterProcessing()){// If an update was already in progress, we should schedule an Update\n// effect even though we're bailing out, so that cWU/cDU are called.\nif(typeof instance.componentDidMount==='function'){var fiberFlags=Update;{fiberFlags|=LayoutStatic;}if((workInProgress.mode&StrictEffectsMode)!==NoMode){fiberFlags|=MountLayoutDev;}workInProgress.flags|=fiberFlags;}return false;}if(typeof getDerivedStateFromProps==='function'){applyDerivedStateFromProps(workInProgress,ctor,getDerivedStateFromProps,newProps);newState=workInProgress.memoizedState;}var shouldUpdate=checkHasForceUpdateAfterProcessing()||checkShouldComponentUpdate(workInProgress,ctor,oldProps,newProps,oldState,newState,nextContext);if(shouldUpdate){// In order to support react-lifecycles-compat polyfilled components,\n// Unsafe lifecycles should not be invoked for components using the new APIs.\nif(!hasNewLifecycles&&(typeof instance.UNSAFE_componentWillMount==='function'||typeof instance.componentWillMount==='function')){if(typeof instance.componentWillMount==='function'){instance.componentWillMount();}if(typeof instance.UNSAFE_componentWillMount==='function'){instance.UNSAFE_componentWillMount();}}if(typeof instance.componentDidMount==='function'){var _fiberFlags=Update;{_fiberFlags|=LayoutStatic;}if((workInProgress.mode&StrictEffectsMode)!==NoMode){_fiberFlags|=MountLayoutDev;}workInProgress.flags|=_fiberFlags;}}else{// If an update was already in progress, we should schedule an Update\n// effect even though we're bailing out, so that cWU/cDU are called.\nif(typeof instance.componentDidMount==='function'){var _fiberFlags2=Update;{_fiberFlags2|=LayoutStatic;}if((workInProgress.mode&StrictEffectsMode)!==NoMode){_fiberFlags2|=MountLayoutDev;}workInProgress.flags|=_fiberFlags2;}// If shouldComponentUpdate returned false, we should still update the\n// memoized state to indicate that this work can be reused.\nworkInProgress.memoizedProps=newProps;workInProgress.memoizedState=newState;}// Update the existing instance's state, props, and context pointers even\n// if shouldComponentUpdate returns false.\ninstance.props=newProps;instance.state=newState;instance.context=nextContext;return shouldUpdate;}// Invokes the update life-cycles and returns false if it shouldn't rerender.\nfunction updateClassInstance(current,workInProgress,ctor,newProps,renderLanes){var instance=workInProgress.stateNode;cloneUpdateQueue(current,workInProgress);var unresolvedOldProps=workInProgress.memoizedProps;var oldProps=workInProgress.type===workInProgress.elementType?unresolvedOldProps:resolveDefaultProps(workInProgress.type,unresolvedOldProps);instance.props=oldProps;var unresolvedNewProps=workInProgress.pendingProps;var oldContext=instance.context;var contextType=ctor.contextType;var nextContext=emptyContextObject;if(typeof contextType==='object'&&contextType!==null){nextContext=readContext(contextType);}else{var nextUnmaskedContext=getUnmaskedContext(workInProgress,ctor,true);nextContext=getMaskedContext(workInProgress,nextUnmaskedContext);}var getDerivedStateFromProps=ctor.getDerivedStateFromProps;var hasNewLifecycles=typeof getDerivedStateFromProps==='function'||typeof instance.getSnapshotBeforeUpdate==='function';// Note: During these life-cycles, instance.props/instance.state are what\n// ever the previously attempted to render - not the \"current\". However,\n// during componentDidUpdate we pass the \"current\" props.\n// In order to support react-lifecycles-compat polyfilled components,\n// Unsafe lifecycles should not be invoked for components using the new APIs.\nif(!hasNewLifecycles&&(typeof instance.UNSAFE_componentWillReceiveProps==='function'||typeof instance.componentWillReceiveProps==='function')){if(unresolvedOldProps!==unresolvedNewProps||oldContext!==nextContext){callComponentWillReceiveProps(workInProgress,instance,newProps,nextContext);}}resetHasForceUpdateBeforeProcessing();var oldState=workInProgress.memoizedState;var newState=instance.state=oldState;processUpdateQueue(workInProgress,newProps,instance,renderLanes);newState=workInProgress.memoizedState;if(unresolvedOldProps===unresolvedNewProps&&oldState===newState&&!hasContextChanged()&&!checkHasForceUpdateAfterProcessing()&&!enableLazyContextPropagation){// If an update was already in progress, we should schedule an Update\n// effect even though we're bailing out, so that cWU/cDU are called.\nif(typeof instance.componentDidUpdate==='function'){if(unresolvedOldProps!==current.memoizedProps||oldState!==current.memoizedState){workInProgress.flags|=Update;}}if(typeof instance.getSnapshotBeforeUpdate==='function'){if(unresolvedOldProps!==current.memoizedProps||oldState!==current.memoizedState){workInProgress.flags|=Snapshot;}}return false;}if(typeof getDerivedStateFromProps==='function'){applyDerivedStateFromProps(workInProgress,ctor,getDerivedStateFromProps,newProps);newState=workInProgress.memoizedState;}var shouldUpdate=checkHasForceUpdateAfterProcessing()||checkShouldComponentUpdate(workInProgress,ctor,oldProps,newProps,oldState,newState,nextContext)||// TODO: In some cases, we'll end up checking if context has changed twice,\n// both before and after `shouldComponentUpdate` has been called. Not ideal,\n// but I'm loath to refactor this function. This only happens for memoized\n// components so it's not that common.\nenableLazyContextPropagation;if(shouldUpdate){// In order to support react-lifecycles-compat polyfilled components,\n// Unsafe lifecycles should not be invoked for components using the new APIs.\nif(!hasNewLifecycles&&(typeof instance.UNSAFE_componentWillUpdate==='function'||typeof instance.componentWillUpdate==='function')){if(typeof instance.componentWillUpdate==='function'){instance.componentWillUpdate(newProps,newState,nextContext);}if(typeof instance.UNSAFE_componentWillUpdate==='function'){instance.UNSAFE_componentWillUpdate(newProps,newState,nextContext);}}if(typeof instance.componentDidUpdate==='function'){workInProgress.flags|=Update;}if(typeof instance.getSnapshotBeforeUpdate==='function'){workInProgress.flags|=Snapshot;}}else{// If an update was already in progress, we should schedule an Update\n// effect even though we're bailing out, so that cWU/cDU are called.\nif(typeof instance.componentDidUpdate==='function'){if(unresolvedOldProps!==current.memoizedProps||oldState!==current.memoizedState){workInProgress.flags|=Update;}}if(typeof instance.getSnapshotBeforeUpdate==='function'){if(unresolvedOldProps!==current.memoizedProps||oldState!==current.memoizedState){workInProgress.flags|=Snapshot;}}// If shouldComponentUpdate returned false, we should still update the\n// memoized props/state to indicate that this work can be reused.\nworkInProgress.memoizedProps=newProps;workInProgress.memoizedState=newState;}// Update the existing instance's state, props, and context pointers even\n// if shouldComponentUpdate returns false.\ninstance.props=newProps;instance.state=newState;instance.context=nextContext;return shouldUpdate;}function createCapturedValueAtFiber(value,source){// If the value is an error, call this function immediately after it is thrown\n// so the stack is accurate.\nreturn{value:value,source:source,stack:getStackByFiberInDevAndProd(source),digest:null};}function createCapturedValue(value,digest,stack){return{value:value,source:null,stack:stack!=null?stack:null,digest:digest!=null?digest:null};}// This module is forked in different environments.\n// By default, return `true` to log errors to the console.\n// Forks can return `false` if this isn't desirable.\nfunction showErrorDialog(boundary,errorInfo){return true;}function logCapturedError(boundary,errorInfo){try{var logError=showErrorDialog(boundary,errorInfo);// Allow injected showErrorDialog() to prevent default console.error logging.\n// This enables renderers like ReactNative to better manage redbox behavior.\nif(logError===false){return;}var error=errorInfo.value;if(true){var source=errorInfo.source;var stack=errorInfo.stack;var componentStack=stack!==null?stack:'';// Browsers support silencing uncaught errors by calling\n// `preventDefault()` in window `error` handler.\n// We record this information as an expando on the error.\nif(error!=null&&error._suppressLogging){if(boundary.tag===ClassComponent){// The error is recoverable and was silenced.\n// Ignore it and don't print the stack addendum.\n// This is handy for testing error boundaries without noise.\nreturn;}// The error is fatal. Since the silencing might have\n// been accidental, we'll surface it anyway.\n// However, the browser would have silenced the original error\n// so we'll print it first, and then print the stack addendum.\nconsole['error'](error);// Don't transform to our wrapper\n// For a more detailed description of this block, see:\n// https://github.com/facebook/react/pull/13384\n}var componentName=source?getComponentNameFromFiber(source):null;var componentNameMessage=componentName?\"The above error occurred in the <\"+componentName+\"> component:\":'The above error occurred in one of your React components:';var errorBoundaryMessage;if(boundary.tag===HostRoot){errorBoundaryMessage='Consider adding an error boundary to your tree to customize error handling behavior.\\n'+'Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries.';}else{var errorBoundaryName=getComponentNameFromFiber(boundary)||'Anonymous';errorBoundaryMessage=\"React will try to recreate this component tree from scratch \"+(\"using the error boundary you provided, \"+errorBoundaryName+\".\");}var combinedMessage=componentNameMessage+\"\\n\"+componentStack+\"\\n\\n\"+(\"\"+errorBoundaryMessage);// In development, we provide our own message with just the component stack.\n// We don't include the original error message and JS stack because the browser\n// has already printed it. Even if the application swallows the error, it is still\n// displayed by the browser thanks to the DEV-only fake event trick in ReactErrorUtils.\nconsole['error'](combinedMessage);// Don't transform to our wrapper\n}else// removed by dead control flow\n{}}catch(e){// This method must not throw, or React internal state will get messed up.\n// If console.error is overridden, or logCapturedError() shows a dialog that throws,\n// we want to report this error outside of the normal stack as a last resort.\n// https://github.com/facebook/react/issues/13188\nsetTimeout(function(){throw e;});}}var PossiblyWeakMap$1=typeof WeakMap==='function'?WeakMap:Map;function createRootErrorUpdate(fiber,errorInfo,lane){var update=createUpdate(NoTimestamp,lane);// Unmount the root by rendering null.\nupdate.tag=CaptureUpdate;// Caution: React DevTools currently depends on this property\n// being called \"element\".\nupdate.payload={element:null};var error=errorInfo.value;update.callback=function(){onUncaughtError(error);logCapturedError(fiber,errorInfo);};return update;}function createClassErrorUpdate(fiber,errorInfo,lane){var update=createUpdate(NoTimestamp,lane);update.tag=CaptureUpdate;var getDerivedStateFromError=fiber.type.getDerivedStateFromError;if(typeof getDerivedStateFromError==='function'){var error$1=errorInfo.value;update.payload=function(){return getDerivedStateFromError(error$1);};update.callback=function(){{markFailedErrorBoundaryForHotReloading(fiber);}logCapturedError(fiber,errorInfo);};}var inst=fiber.stateNode;if(inst!==null&&typeof inst.componentDidCatch==='function'){update.callback=function callback(){{markFailedErrorBoundaryForHotReloading(fiber);}logCapturedError(fiber,errorInfo);if(typeof getDerivedStateFromError!=='function'){// To preserve the preexisting retry behavior of error boundaries,\n// we keep track of which ones already failed during this batch.\n// This gets reset before we yield back to the browser.\n// TODO: Warn in strict mode if getDerivedStateFromError is\n// not defined.\nmarkLegacyErrorBoundaryAsFailed(this);}var error$1=errorInfo.value;var stack=errorInfo.stack;this.componentDidCatch(error$1,{componentStack:stack!==null?stack:''});{if(typeof getDerivedStateFromError!=='function'){// If componentDidCatch is the only error boundary method defined,\n// then it needs to call setState to recover from errors.\n// If no state update is scheduled then the boundary will swallow the error.\nif(!includesSomeLane(fiber.lanes,SyncLane)){error('%s: Error boundaries should implement getDerivedStateFromError(). '+'In that method, return a state update to display an error message or fallback UI.',getComponentNameFromFiber(fiber)||'Unknown');}}}};}return update;}function attachPingListener(root,wakeable,lanes){// Attach a ping listener\n//\n// The data might resolve before we have a chance to commit the fallback. Or,\n// in the case of a refresh, we'll never commit a fallback. So we need to\n// attach a listener now. When it resolves (\"pings\"), we can decide whether to\n// try rendering the tree again.\n//\n// Only attach a listener if one does not already exist for the lanes\n// we're currently rendering (which acts like a \"thread ID\" here).\n//\n// We only need to do this in concurrent mode. Legacy Suspense always\n// commits fallbacks synchronously, so there are no pings.\nvar pingCache=root.pingCache;var threadIDs;if(pingCache===null){pingCache=root.pingCache=new PossiblyWeakMap$1();threadIDs=new Set();pingCache.set(wakeable,threadIDs);}else{threadIDs=pingCache.get(wakeable);if(threadIDs===undefined){threadIDs=new Set();pingCache.set(wakeable,threadIDs);}}if(!threadIDs.has(lanes)){// Memoize using the thread ID to prevent redundant listeners.\nthreadIDs.add(lanes);var ping=pingSuspendedRoot.bind(null,root,wakeable,lanes);{if(isDevToolsPresent){// If we have pending work still, restore the original updaters\nrestorePendingUpdaters(root,lanes);}}wakeable.then(ping,ping);}}function attachRetryListener(suspenseBoundary,root,wakeable,lanes){// Retry listener\n//\n// If the fallback does commit, we need to attach a different type of\n// listener. This one schedules an update on the Suspense boundary to turn\n// the fallback state off.\n//\n// Stash the wakeable on the boundary fiber so we can access it in the\n// commit phase.\n//\n// When the wakeable resolves, we'll attempt to render the boundary\n// again (\"retry\").\nvar wakeables=suspenseBoundary.updateQueue;if(wakeables===null){var updateQueue=new Set();updateQueue.add(wakeable);suspenseBoundary.updateQueue=updateQueue;}else{wakeables.add(wakeable);}}function resetSuspendedComponent(sourceFiber,rootRenderLanes){// A legacy mode Suspense quirk, only relevant to hook components.\nvar tag=sourceFiber.tag;if((sourceFiber.mode&ConcurrentMode)===NoMode&&(tag===FunctionComponent||tag===ForwardRef||tag===SimpleMemoComponent)){var currentSource=sourceFiber.alternate;if(currentSource){sourceFiber.updateQueue=currentSource.updateQueue;sourceFiber.memoizedState=currentSource.memoizedState;sourceFiber.lanes=currentSource.lanes;}else{sourceFiber.updateQueue=null;sourceFiber.memoizedState=null;}}}function getNearestSuspenseBoundaryToCapture(returnFiber){var node=returnFiber;do{if(node.tag===SuspenseComponent&&shouldCaptureSuspense(node)){return node;}// This boundary already captured during this render. Continue to the next\n// boundary.\nnode=node.return;}while(node!==null);return null;}function markSuspenseBoundaryShouldCapture(suspenseBoundary,returnFiber,sourceFiber,root,rootRenderLanes){// This marks a Suspense boundary so that when we're unwinding the stack,\n// it captures the suspended \"exception\" and does a second (fallback) pass.\nif((suspenseBoundary.mode&ConcurrentMode)===NoMode){// Legacy Mode Suspense\n//\n// If the boundary is in legacy mode, we should *not*\n// suspend the commit. Pretend as if the suspended component rendered\n// null and keep rendering. When the Suspense boundary completes,\n// we'll do a second pass to render the fallback.\nif(suspenseBoundary===returnFiber){// Special case where we suspended while reconciling the children of\n// a Suspense boundary's inner Offscreen wrapper fiber. This happens\n// when a React.lazy component is a direct child of a\n// Suspense boundary.\n//\n// Suspense boundaries are implemented as multiple fibers, but they\n// are a single conceptual unit. The legacy mode behavior where we\n// pretend the suspended fiber committed as `null` won't work,\n// because in this case the \"suspended\" fiber is the inner\n// Offscreen wrapper.\n//\n// Because the contents of the boundary haven't started rendering\n// yet (i.e. nothing in the tree has partially rendered) we can\n// switch to the regular, concurrent mode behavior: mark the\n// boundary with ShouldCapture and enter the unwind phase.\nsuspenseBoundary.flags|=ShouldCapture;}else{suspenseBoundary.flags|=DidCapture;sourceFiber.flags|=ForceUpdateForLegacySuspense;// We're going to commit this fiber even though it didn't complete.\n// But we shouldn't call any lifecycle methods or callbacks. Remove\n// all lifecycle effect tags.\nsourceFiber.flags&=~(LifecycleEffectMask|Incomplete);if(sourceFiber.tag===ClassComponent){var currentSourceFiber=sourceFiber.alternate;if(currentSourceFiber===null){// This is a new mount. Change the tag so it's not mistaken for a\n// completed class component. For example, we should not call\n// componentWillUnmount if it is deleted.\nsourceFiber.tag=IncompleteClassComponent;}else{// When we try rendering again, we should not reuse the current fiber,\n// since it's known to be in an inconsistent state. Use a force update to\n// prevent a bail out.\nvar update=createUpdate(NoTimestamp,SyncLane);update.tag=ForceUpdate;enqueueUpdate(sourceFiber,update,SyncLane);}}// The source fiber did not complete. Mark it with Sync priority to\n// indicate that it still has pending work.\nsourceFiber.lanes=mergeLanes(sourceFiber.lanes,SyncLane);}return suspenseBoundary;}// Confirmed that the boundary is in a concurrent mode tree. Continue\n// with the normal suspend path.\n//\n// After this we'll use a set of heuristics to determine whether this\n// render pass will run to completion or restart or \"suspend\" the commit.\n// The actual logic for this is spread out in different places.\n//\n// This first principle is that if we're going to suspend when we complete\n// a root, then we should also restart if we get an update or ping that\n// might unsuspend it, and vice versa. The only reason to suspend is\n// because you think you might want to restart before committing. However,\n// it doesn't make sense to restart only while in the period we're suspended.\n//\n// Restarting too aggressively is also not good because it starves out any\n// intermediate loading state. So we use heuristics to determine when.\n// Suspense Heuristics\n//\n// If nothing threw a Promise or all the same fallbacks are already showing,\n// then don't suspend/restart.\n//\n// If this is an initial render of a new tree of Suspense boundaries and\n// those trigger a fallback, then don't suspend/restart. We want to ensure\n// that we can show the initial loading state as quickly as possible.\n//\n// If we hit a \"Delayed\" case, such as when we'd switch from content back into\n// a fallback, then we should always suspend/restart. Transitions apply\n// to this case. If none is defined, JND is used instead.\n//\n// If we're already showing a fallback and it gets \"retried\", allowing us to show\n// another level, but there's still an inner boundary that would show a fallback,\n// then we suspend/restart for 500ms since the last time we showed a fallback\n// anywhere in the tree. This effectively throttles progressive loading into a\n// consistent train of commits. This also gives us an opportunity to restart to\n// get to the completed state slightly earlier.\n//\n// If there's ambiguity due to batching it's resolved in preference of:\n// 1) \"delayed\", 2) \"initial render\", 3) \"retry\".\n//\n// We want to ensure that a \"busy\" state doesn't get force committed. We want to\n// ensure that new initial loading states can commit as soon as possible.\nsuspenseBoundary.flags|=ShouldCapture;// TODO: I think we can remove this, since we now use `DidCapture` in\n// the begin phase to prevent an early bailout.\nsuspenseBoundary.lanes=rootRenderLanes;return suspenseBoundary;}function throwException(root,returnFiber,sourceFiber,value,rootRenderLanes){// The source fiber did not complete.\nsourceFiber.flags|=Incomplete;{if(isDevToolsPresent){// If we have pending work still, restore the original updaters\nrestorePendingUpdaters(root,rootRenderLanes);}}if(value!==null&&typeof value==='object'&&typeof value.then==='function'){// This is a wakeable. The component suspended.\nvar wakeable=value;resetSuspendedComponent(sourceFiber);{if(getIsHydrating()&&sourceFiber.mode&ConcurrentMode){markDidThrowWhileHydratingDEV();}}var suspenseBoundary=getNearestSuspenseBoundaryToCapture(returnFiber);if(suspenseBoundary!==null){suspenseBoundary.flags&=~ForceClientRender;markSuspenseBoundaryShouldCapture(suspenseBoundary,returnFiber,sourceFiber,root,rootRenderLanes);// We only attach ping listeners in concurrent mode. Legacy Suspense always\n// commits fallbacks synchronously, so there are no pings.\nif(suspenseBoundary.mode&ConcurrentMode){attachPingListener(root,wakeable,rootRenderLanes);}attachRetryListener(suspenseBoundary,root,wakeable);return;}else{// No boundary was found. Unless this is a sync update, this is OK.\n// We can suspend and wait for more data to arrive.\nif(!includesSyncLane(rootRenderLanes)){// This is not a sync update. Suspend. Since we're not activating a\n// Suspense boundary, this will unwind all the way to the root without\n// performing a second pass to render a fallback. (This is arguably how\n// refresh transitions should work, too, since we're not going to commit\n// the fallbacks anyway.)\n//\n// This case also applies to initial hydration.\nattachPingListener(root,wakeable,rootRenderLanes);renderDidSuspendDelayIfPossible();return;}// This is a sync/discrete update. We treat this case like an error\n// because discrete renders are expected to produce a complete tree\n// synchronously to maintain consistency with external state.\nvar uncaughtSuspenseError=new Error('A component suspended while responding to synchronous input. This '+'will cause the UI to be replaced with a loading indicator. To '+'fix, updates that suspend should be wrapped '+'with startTransition.');// If we're outside a transition, fall through to the regular error path.\n// The error will be caught by the nearest suspense boundary.\nvalue=uncaughtSuspenseError;}}else{// This is a regular error, not a Suspense wakeable.\nif(getIsHydrating()&&sourceFiber.mode&ConcurrentMode){markDidThrowWhileHydratingDEV();var _suspenseBoundary=getNearestSuspenseBoundaryToCapture(returnFiber);// If the error was thrown during hydration, we may be able to recover by\n// discarding the dehydrated content and switching to a client render.\n// Instead of surfacing the error, find the nearest Suspense boundary\n// and render it again without hydration.\nif(_suspenseBoundary!==null){if((_suspenseBoundary.flags&ShouldCapture)===NoFlags){// Set a flag to indicate that we should try rendering the normal\n// children again, not the fallback.\n_suspenseBoundary.flags|=ForceClientRender;}markSuspenseBoundaryShouldCapture(_suspenseBoundary,returnFiber,sourceFiber,root,rootRenderLanes);// Even though the user may not be affected by this error, we should\n// still log it so it can be fixed.\nqueueHydrationError(createCapturedValueAtFiber(value,sourceFiber));return;}}}value=createCapturedValueAtFiber(value,sourceFiber);renderDidError(value);// We didn't find a boundary that could handle this type of exception. Start\n// over and traverse parent path again, this time treating the exception\n// as an error.\nvar workInProgress=returnFiber;do{switch(workInProgress.tag){case HostRoot:{var _errorInfo=value;workInProgress.flags|=ShouldCapture;var lane=pickArbitraryLane(rootRenderLanes);workInProgress.lanes=mergeLanes(workInProgress.lanes,lane);var update=createRootErrorUpdate(workInProgress,_errorInfo,lane);enqueueCapturedUpdate(workInProgress,update);return;}case ClassComponent:// Capture and retry\nvar errorInfo=value;var ctor=workInProgress.type;var instance=workInProgress.stateNode;if((workInProgress.flags&DidCapture)===NoFlags&&(typeof ctor.getDerivedStateFromError==='function'||instance!==null&&typeof instance.componentDidCatch==='function'&&!isAlreadyFailedLegacyErrorBoundary(instance))){workInProgress.flags|=ShouldCapture;var _lane=pickArbitraryLane(rootRenderLanes);workInProgress.lanes=mergeLanes(workInProgress.lanes,_lane);// Schedule the error boundary to re-render using updated state\nvar _update=createClassErrorUpdate(workInProgress,errorInfo,_lane);enqueueCapturedUpdate(workInProgress,_update);return;}break;}workInProgress=workInProgress.return;}while(workInProgress!==null);}function getSuspendedCache(){{return null;}// This function is called when a Suspense boundary suspends. It returns the\n}var ReactCurrentOwner$1=ReactSharedInternals.ReactCurrentOwner;var didReceiveUpdate=false;var didWarnAboutBadClass;var didWarnAboutModulePatternComponent;var didWarnAboutContextTypeOnFunctionComponent;var didWarnAboutGetDerivedStateOnFunctionComponent;var didWarnAboutFunctionRefs;var didWarnAboutReassigningProps;var didWarnAboutRevealOrder;var didWarnAboutTailOptions;var didWarnAboutDefaultPropsOnFunctionComponent;{didWarnAboutBadClass={};didWarnAboutModulePatternComponent={};didWarnAboutContextTypeOnFunctionComponent={};didWarnAboutGetDerivedStateOnFunctionComponent={};didWarnAboutFunctionRefs={};didWarnAboutReassigningProps=false;didWarnAboutRevealOrder={};didWarnAboutTailOptions={};didWarnAboutDefaultPropsOnFunctionComponent={};}function reconcileChildren(current,workInProgress,nextChildren,renderLanes){if(current===null){// If this is a fresh new component that hasn't been rendered yet, we\n// won't update its child set by applying minimal side-effects. Instead,\n// we will add them all to the child before it gets rendered. That means\n// we can optimize this reconciliation pass by not tracking side-effects.\nworkInProgress.child=mountChildFibers(workInProgress,null,nextChildren,renderLanes);}else{// If the current child is the same as the work in progress, it means that\n// we haven't yet started any work on these children. Therefore, we use\n// the clone algorithm to create a copy of all the current children.\n// If we had any progressed work already, that is invalid at this point so\n// let's throw it out.\nworkInProgress.child=reconcileChildFibers(workInProgress,current.child,nextChildren,renderLanes);}}function forceUnmountCurrentAndReconcile(current,workInProgress,nextChildren,renderLanes){// This function is fork of reconcileChildren. It's used in cases where we\n// want to reconcile without matching against the existing set. This has the\n// effect of all current children being unmounted; even if the type and key\n// are the same, the old child is unmounted and a new child is created.\n//\n// To do this, we're going to go through the reconcile algorithm twice. In\n// the first pass, we schedule a deletion for all the current children by\n// passing null.\nworkInProgress.child=reconcileChildFibers(workInProgress,current.child,null,renderLanes);// In the second pass, we mount the new children. The trick here is that we\n// pass null in place of where we usually pass the current child set. This has\n// the effect of remounting all children regardless of whether their\n// identities match.\nworkInProgress.child=reconcileChildFibers(workInProgress,null,nextChildren,renderLanes);}function updateForwardRef(current,workInProgress,Component,nextProps,renderLanes){// TODO: current can be non-null here even if the component\n// hasn't yet mounted. This happens after the first render suspends.\n// We'll need to figure out if this is fine or can cause issues.\n{if(workInProgress.type!==workInProgress.elementType){// Lazy component props can't be validated in createElement\n// because they're only guaranteed to be resolved here.\nvar innerPropTypes=Component.propTypes;if(innerPropTypes){checkPropTypes(innerPropTypes,nextProps,// Resolved props\n'prop',getComponentNameFromType(Component));}}}var render=Component.render;var ref=workInProgress.ref;// The rest is a fork of updateFunctionComponent\nvar nextChildren;var hasId;prepareToReadContext(workInProgress,renderLanes);{markComponentRenderStarted(workInProgress);}{ReactCurrentOwner$1.current=workInProgress;setIsRendering(true);nextChildren=renderWithHooks(current,workInProgress,render,nextProps,ref,renderLanes);hasId=checkDidRenderIdHook();if(workInProgress.mode&StrictLegacyMode){setIsStrictModeForDevtools(true);try{nextChildren=renderWithHooks(current,workInProgress,render,nextProps,ref,renderLanes);hasId=checkDidRenderIdHook();}finally{setIsStrictModeForDevtools(false);}}setIsRendering(false);}{markComponentRenderStopped();}if(current!==null&&!didReceiveUpdate){bailoutHooks(current,workInProgress,renderLanes);return bailoutOnAlreadyFinishedWork(current,workInProgress,renderLanes);}if(getIsHydrating()&&hasId){pushMaterializedTreeId(workInProgress);}// React DevTools reads this flag.\nworkInProgress.flags|=PerformedWork;reconcileChildren(current,workInProgress,nextChildren,renderLanes);return workInProgress.child;}function updateMemoComponent(current,workInProgress,Component,nextProps,renderLanes){if(current===null){var type=Component.type;if(isSimpleFunctionComponent(type)&&Component.compare===null&&// SimpleMemoComponent codepath doesn't resolve outer props either.\nComponent.defaultProps===undefined){var resolvedType=type;{resolvedType=resolveFunctionForHotReloading(type);}// If this is a plain function component without default props,\n// and with only the default shallow comparison, we upgrade it\n// to a SimpleMemoComponent to allow fast path updates.\nworkInProgress.tag=SimpleMemoComponent;workInProgress.type=resolvedType;{validateFunctionComponentInDev(workInProgress,type);}return updateSimpleMemoComponent(current,workInProgress,resolvedType,nextProps,renderLanes);}{var innerPropTypes=type.propTypes;if(innerPropTypes){// Inner memo component props aren't currently validated in createElement.\n// We could move it there, but we'd still need this for lazy code path.\ncheckPropTypes(innerPropTypes,nextProps,// Resolved props\n'prop',getComponentNameFromType(type));}if(Component.defaultProps!==undefined){var componentName=getComponentNameFromType(type)||'Unknown';if(!didWarnAboutDefaultPropsOnFunctionComponent[componentName]){error('%s: Support for defaultProps will be removed from memo components '+'in a future major release. Use JavaScript default parameters instead.',componentName);didWarnAboutDefaultPropsOnFunctionComponent[componentName]=true;}}}var child=createFiberFromTypeAndProps(Component.type,null,nextProps,workInProgress,workInProgress.mode,renderLanes);child.ref=workInProgress.ref;child.return=workInProgress;workInProgress.child=child;return child;}{var _type=Component.type;var _innerPropTypes=_type.propTypes;if(_innerPropTypes){// Inner memo component props aren't currently validated in createElement.\n// We could move it there, but we'd still need this for lazy code path.\ncheckPropTypes(_innerPropTypes,nextProps,// Resolved props\n'prop',getComponentNameFromType(_type));}}var currentChild=current.child;// This is always exactly one child\nvar hasScheduledUpdateOrContext=checkScheduledUpdateOrContext(current,renderLanes);if(!hasScheduledUpdateOrContext){// This will be the props with resolved defaultProps,\n// unlike current.memoizedProps which will be the unresolved ones.\nvar prevProps=currentChild.memoizedProps;// Default to shallow comparison\nvar compare=Component.compare;compare=compare!==null?compare:shallowEqual;if(compare(prevProps,nextProps)&&current.ref===workInProgress.ref){return bailoutOnAlreadyFinishedWork(current,workInProgress,renderLanes);}}// React DevTools reads this flag.\nworkInProgress.flags|=PerformedWork;var newChild=createWorkInProgress(currentChild,nextProps);newChild.ref=workInProgress.ref;newChild.return=workInProgress;workInProgress.child=newChild;return newChild;}function updateSimpleMemoComponent(current,workInProgress,Component,nextProps,renderLanes){// TODO: current can be non-null here even if the component\n// hasn't yet mounted. This happens when the inner render suspends.\n// We'll need to figure out if this is fine or can cause issues.\n{if(workInProgress.type!==workInProgress.elementType){// Lazy component props can't be validated in createElement\n// because they're only guaranteed to be resolved here.\nvar outerMemoType=workInProgress.elementType;if(outerMemoType.$$typeof===REACT_LAZY_TYPE){// We warn when you define propTypes on lazy()\n// so let's just skip over it to find memo() outer wrapper.\n// Inner props for memo are validated later.\nvar lazyComponent=outerMemoType;var payload=lazyComponent._payload;var init=lazyComponent._init;try{outerMemoType=init(payload);}catch(x){outerMemoType=null;}// Inner propTypes will be validated in the function component path.\nvar outerPropTypes=outerMemoType&&outerMemoType.propTypes;if(outerPropTypes){checkPropTypes(outerPropTypes,nextProps,// Resolved (SimpleMemoComponent has no defaultProps)\n'prop',getComponentNameFromType(outerMemoType));}}}}if(current!==null){var prevProps=current.memoizedProps;if(shallowEqual(prevProps,nextProps)&&current.ref===workInProgress.ref&&// Prevent bailout if the implementation changed due to hot reload.\nworkInProgress.type===current.type){didReceiveUpdate=false;// The props are shallowly equal. Reuse the previous props object, like we\n// would during a normal fiber bailout.\n//\n// We don't have strong guarantees that the props object is referentially\n// equal during updates where we can't bail out anyway — like if the props\n// are shallowly equal, but there's a local state or context update in the\n// same batch.\n//\n// However, as a principle, we should aim to make the behavior consistent\n// across different ways of memoizing a component. For example, React.memo\n// has a different internal Fiber layout if you pass a normal function\n// component (SimpleMemoComponent) versus if you pass a different type\n// like forwardRef (MemoComponent). But this is an implementation detail.\n// Wrapping a component in forwardRef (or React.lazy, etc) shouldn't\n// affect whether the props object is reused during a bailout.\nworkInProgress.pendingProps=nextProps=prevProps;if(!checkScheduledUpdateOrContext(current,renderLanes)){// The pending lanes were cleared at the beginning of beginWork. We're\n// about to bail out, but there might be other lanes that weren't\n// included in the current render. Usually, the priority level of the\n// remaining updates is accumulated during the evaluation of the\n// component (i.e. when processing the update queue). But since since\n// we're bailing out early *without* evaluating the component, we need\n// to account for it here, too. Reset to the value of the current fiber.\n// NOTE: This only applies to SimpleMemoComponent, not MemoComponent,\n// because a MemoComponent fiber does not have hooks or an update queue;\n// rather, it wraps around an inner component, which may or may not\n// contains hooks.\n// TODO: Move the reset at in beginWork out of the common path so that\n// this is no longer necessary.\nworkInProgress.lanes=current.lanes;return bailoutOnAlreadyFinishedWork(current,workInProgress,renderLanes);}else if((current.flags&ForceUpdateForLegacySuspense)!==NoFlags){// This is a special case that only exists for legacy mode.\n// See https://github.com/facebook/react/pull/19216.\ndidReceiveUpdate=true;}}}return updateFunctionComponent(current,workInProgress,Component,nextProps,renderLanes);}function updateOffscreenComponent(current,workInProgress,renderLanes){var nextProps=workInProgress.pendingProps;var nextChildren=nextProps.children;var prevState=current!==null?current.memoizedState:null;if(nextProps.mode==='hidden'||enableLegacyHidden){// Rendering a hidden tree.\nif((workInProgress.mode&ConcurrentMode)===NoMode){// In legacy sync mode, don't defer the subtree. Render it now.\n// TODO: Consider how Offscreen should work with transitions in the future\nvar nextState={baseLanes:NoLanes,cachePool:null,transitions:null};workInProgress.memoizedState=nextState;pushRenderLanes(workInProgress,renderLanes);}else if(!includesSomeLane(renderLanes,OffscreenLane)){var spawnedCachePool=null;// We're hidden, and we're not rendering at Offscreen. We will bail out\n// and resume this tree later.\nvar nextBaseLanes;if(prevState!==null){var prevBaseLanes=prevState.baseLanes;nextBaseLanes=mergeLanes(prevBaseLanes,renderLanes);}else{nextBaseLanes=renderLanes;}// Schedule this fiber to re-render at offscreen priority. Then bailout.\nworkInProgress.lanes=workInProgress.childLanes=laneToLanes(OffscreenLane);var _nextState={baseLanes:nextBaseLanes,cachePool:spawnedCachePool,transitions:null};workInProgress.memoizedState=_nextState;workInProgress.updateQueue=null;// to avoid a push/pop misalignment.\npushRenderLanes(workInProgress,nextBaseLanes);return null;}else{// This is the second render. The surrounding visible content has already\n// committed. Now we resume rendering the hidden tree.\n// Rendering at offscreen, so we can clear the base lanes.\nvar _nextState2={baseLanes:NoLanes,cachePool:null,transitions:null};workInProgress.memoizedState=_nextState2;// Push the lanes that were skipped when we bailed out.\nvar subtreeRenderLanes=prevState!==null?prevState.baseLanes:renderLanes;pushRenderLanes(workInProgress,subtreeRenderLanes);}}else{// Rendering a visible tree.\nvar _subtreeRenderLanes;if(prevState!==null){// We're going from hidden -> visible.\n_subtreeRenderLanes=mergeLanes(prevState.baseLanes,renderLanes);workInProgress.memoizedState=null;}else{// We weren't previously hidden, and we still aren't, so there's nothing\n// special to do. Need to push to the stack regardless, though, to avoid\n// a push/pop misalignment.\n_subtreeRenderLanes=renderLanes;}pushRenderLanes(workInProgress,_subtreeRenderLanes);}reconcileChildren(current,workInProgress,nextChildren,renderLanes);return workInProgress.child;}// Note: These happen to have identical begin phases, for now. We shouldn't hold\nfunction updateFragment(current,workInProgress,renderLanes){var nextChildren=workInProgress.pendingProps;reconcileChildren(current,workInProgress,nextChildren,renderLanes);return workInProgress.child;}function updateMode(current,workInProgress,renderLanes){var nextChildren=workInProgress.pendingProps.children;reconcileChildren(current,workInProgress,nextChildren,renderLanes);return workInProgress.child;}function updateProfiler(current,workInProgress,renderLanes){{workInProgress.flags|=Update;{// Reset effect durations for the next eventual effect phase.\n// These are reset during render to allow the DevTools commit hook a chance to read them,\nvar stateNode=workInProgress.stateNode;stateNode.effectDuration=0;stateNode.passiveEffectDuration=0;}}var nextProps=workInProgress.pendingProps;var nextChildren=nextProps.children;reconcileChildren(current,workInProgress,nextChildren,renderLanes);return workInProgress.child;}function markRef(current,workInProgress){var ref=workInProgress.ref;if(current===null&&ref!==null||current!==null&&current.ref!==ref){// Schedule a Ref effect\nworkInProgress.flags|=Ref;{workInProgress.flags|=RefStatic;}}}function updateFunctionComponent(current,workInProgress,Component,nextProps,renderLanes){{if(workInProgress.type!==workInProgress.elementType){// Lazy component props can't be validated in createElement\n// because they're only guaranteed to be resolved here.\nvar innerPropTypes=Component.propTypes;if(innerPropTypes){checkPropTypes(innerPropTypes,nextProps,// Resolved props\n'prop',getComponentNameFromType(Component));}}}var context;{var unmaskedContext=getUnmaskedContext(workInProgress,Component,true);context=getMaskedContext(workInProgress,unmaskedContext);}var nextChildren;var hasId;prepareToReadContext(workInProgress,renderLanes);{markComponentRenderStarted(workInProgress);}{ReactCurrentOwner$1.current=workInProgress;setIsRendering(true);nextChildren=renderWithHooks(current,workInProgress,Component,nextProps,context,renderLanes);hasId=checkDidRenderIdHook();if(workInProgress.mode&StrictLegacyMode){setIsStrictModeForDevtools(true);try{nextChildren=renderWithHooks(current,workInProgress,Component,nextProps,context,renderLanes);hasId=checkDidRenderIdHook();}finally{setIsStrictModeForDevtools(false);}}setIsRendering(false);}{markComponentRenderStopped();}if(current!==null&&!didReceiveUpdate){bailoutHooks(current,workInProgress,renderLanes);return bailoutOnAlreadyFinishedWork(current,workInProgress,renderLanes);}if(getIsHydrating()&&hasId){pushMaterializedTreeId(workInProgress);}// React DevTools reads this flag.\nworkInProgress.flags|=PerformedWork;reconcileChildren(current,workInProgress,nextChildren,renderLanes);return workInProgress.child;}function updateClassComponent(current,workInProgress,Component,nextProps,renderLanes){{// This is used by DevTools to force a boundary to error.\nswitch(shouldError(workInProgress)){case false:{var _instance=workInProgress.stateNode;var ctor=workInProgress.type;// TODO This way of resetting the error boundary state is a hack.\n// Is there a better way to do this?\nvar tempInstance=new ctor(workInProgress.memoizedProps,_instance.context);var state=tempInstance.state;_instance.updater.enqueueSetState(_instance,state,null);break;}case true:{workInProgress.flags|=DidCapture;workInProgress.flags|=ShouldCapture;// eslint-disable-next-line react-internal/prod-error-codes\nvar error$1=new Error('Simulated error coming from DevTools');var lane=pickArbitraryLane(renderLanes);workInProgress.lanes=mergeLanes(workInProgress.lanes,lane);// Schedule the error boundary to re-render using updated state\nvar update=createClassErrorUpdate(workInProgress,createCapturedValueAtFiber(error$1,workInProgress),lane);enqueueCapturedUpdate(workInProgress,update);break;}}if(workInProgress.type!==workInProgress.elementType){// Lazy component props can't be validated in createElement\n// because they're only guaranteed to be resolved here.\nvar innerPropTypes=Component.propTypes;if(innerPropTypes){checkPropTypes(innerPropTypes,nextProps,// Resolved props\n'prop',getComponentNameFromType(Component));}}}// Push context providers early to prevent context stack mismatches.\n// During mounting we don't know the child context yet as the instance doesn't exist.\n// We will invalidate the child context in finishClassComponent() right after rendering.\nvar hasContext;if(isContextProvider(Component)){hasContext=true;pushContextProvider(workInProgress);}else{hasContext=false;}prepareToReadContext(workInProgress,renderLanes);var instance=workInProgress.stateNode;var shouldUpdate;if(instance===null){resetSuspendedCurrentOnMountInLegacyMode(current,workInProgress);// In the initial pass we might need to construct the instance.\nconstructClassInstance(workInProgress,Component,nextProps);mountClassInstance(workInProgress,Component,nextProps,renderLanes);shouldUpdate=true;}else if(current===null){// In a resume, we'll already have an instance we can reuse.\nshouldUpdate=resumeMountClassInstance(workInProgress,Component,nextProps,renderLanes);}else{shouldUpdate=updateClassInstance(current,workInProgress,Component,nextProps,renderLanes);}var nextUnitOfWork=finishClassComponent(current,workInProgress,Component,shouldUpdate,hasContext,renderLanes);{var inst=workInProgress.stateNode;if(shouldUpdate&&inst.props!==nextProps){if(!didWarnAboutReassigningProps){error('It looks like %s is reassigning its own `this.props` while rendering. '+'This is not supported and can lead to confusing bugs.',getComponentNameFromFiber(workInProgress)||'a component');}didWarnAboutReassigningProps=true;}}return nextUnitOfWork;}function finishClassComponent(current,workInProgress,Component,shouldUpdate,hasContext,renderLanes){// Refs should update even if shouldComponentUpdate returns false\nmarkRef(current,workInProgress);var didCaptureError=(workInProgress.flags&DidCapture)!==NoFlags;if(!shouldUpdate&&!didCaptureError){// Context providers should defer to sCU for rendering\nif(hasContext){invalidateContextProvider(workInProgress,Component,false);}return bailoutOnAlreadyFinishedWork(current,workInProgress,renderLanes);}var instance=workInProgress.stateNode;// Rerender\nReactCurrentOwner$1.current=workInProgress;var nextChildren;if(didCaptureError&&typeof Component.getDerivedStateFromError!=='function'){// If we captured an error, but getDerivedStateFromError is not defined,\n// unmount all the children. componentDidCatch will schedule an update to\n// re-render a fallback. This is temporary until we migrate everyone to\n// the new API.\n// TODO: Warn in a future release.\nnextChildren=null;{stopProfilerTimerIfRunning();}}else{{markComponentRenderStarted(workInProgress);}{setIsRendering(true);nextChildren=instance.render();if(workInProgress.mode&StrictLegacyMode){setIsStrictModeForDevtools(true);try{instance.render();}finally{setIsStrictModeForDevtools(false);}}setIsRendering(false);}{markComponentRenderStopped();}}// React DevTools reads this flag.\nworkInProgress.flags|=PerformedWork;if(current!==null&&didCaptureError){// If we're recovering from an error, reconcile without reusing any of\n// the existing children. Conceptually, the normal children and the children\n// that are shown on error are two different sets, so we shouldn't reuse\n// normal children even if their identities match.\nforceUnmountCurrentAndReconcile(current,workInProgress,nextChildren,renderLanes);}else{reconcileChildren(current,workInProgress,nextChildren,renderLanes);}// Memoize state using the values we just used to render.\n// TODO: Restructure so we never read values from the instance.\nworkInProgress.memoizedState=instance.state;// The context might have changed so we need to recalculate it.\nif(hasContext){invalidateContextProvider(workInProgress,Component,true);}return workInProgress.child;}function pushHostRootContext(workInProgress){var root=workInProgress.stateNode;if(root.pendingContext){pushTopLevelContextObject(workInProgress,root.pendingContext,root.pendingContext!==root.context);}else if(root.context){// Should always be set\npushTopLevelContextObject(workInProgress,root.context,false);}pushHostContainer(workInProgress,root.containerInfo);}function updateHostRoot(current,workInProgress,renderLanes){pushHostRootContext(workInProgress);if(current===null){throw new Error('Should have a current fiber. This is a bug in React.');}var nextProps=workInProgress.pendingProps;var prevState=workInProgress.memoizedState;var prevChildren=prevState.element;cloneUpdateQueue(current,workInProgress);processUpdateQueue(workInProgress,nextProps,null,renderLanes);var nextState=workInProgress.memoizedState;var root=workInProgress.stateNode;// being called \"element\".\nvar nextChildren=nextState.element;if(prevState.isDehydrated){// This is a hydration root whose shell has not yet hydrated. We should\n// attempt to hydrate.\n// Flip isDehydrated to false to indicate that when this render\n// finishes, the root will no longer be dehydrated.\nvar overrideState={element:nextChildren,isDehydrated:false,cache:nextState.cache,pendingSuspenseBoundaries:nextState.pendingSuspenseBoundaries,transitions:nextState.transitions};var updateQueue=workInProgress.updateQueue;// `baseState` can always be the last state because the root doesn't\n// have reducer functions so it doesn't need rebasing.\nupdateQueue.baseState=overrideState;workInProgress.memoizedState=overrideState;if(workInProgress.flags&ForceClientRender){// Something errored during a previous attempt to hydrate the shell, so we\n// forced a client render.\nvar recoverableError=createCapturedValueAtFiber(new Error('There was an error while hydrating. Because the error happened outside '+'of a Suspense boundary, the entire root will switch to '+'client rendering.'),workInProgress);return mountHostRootWithoutHydrating(current,workInProgress,nextChildren,renderLanes,recoverableError);}else if(nextChildren!==prevChildren){var _recoverableError=createCapturedValueAtFiber(new Error('This root received an early update, before anything was able '+'hydrate. Switched the entire root to client rendering.'),workInProgress);return mountHostRootWithoutHydrating(current,workInProgress,nextChildren,renderLanes,_recoverableError);}else{// The outermost shell has not hydrated yet. Start hydrating.\nenterHydrationState(workInProgress);var child=mountChildFibers(workInProgress,null,nextChildren,renderLanes);workInProgress.child=child;var node=child;while(node){// Mark each child as hydrating. This is a fast path to know whether this\n// tree is part of a hydrating tree. This is used to determine if a child\n// node has fully mounted yet, and for scheduling event replaying.\n// Conceptually this is similar to Placement in that a new subtree is\n// inserted into the React tree here. It just happens to not need DOM\n// mutations because it already exists.\nnode.flags=node.flags&~Placement|Hydrating;node=node.sibling;}}}else{// Root is not dehydrated. Either this is a client-only root, or it\n// already hydrated.\nresetHydrationState();if(nextChildren===prevChildren){return bailoutOnAlreadyFinishedWork(current,workInProgress,renderLanes);}reconcileChildren(current,workInProgress,nextChildren,renderLanes);}return workInProgress.child;}function mountHostRootWithoutHydrating(current,workInProgress,nextChildren,renderLanes,recoverableError){// Revert to client rendering.\nresetHydrationState();queueHydrationError(recoverableError);workInProgress.flags|=ForceClientRender;reconcileChildren(current,workInProgress,nextChildren,renderLanes);return workInProgress.child;}function updateHostComponent(current,workInProgress,renderLanes){pushHostContext(workInProgress);if(current===null){tryToClaimNextHydratableInstance(workInProgress);}var type=workInProgress.type;var nextProps=workInProgress.pendingProps;var prevProps=current!==null?current.memoizedProps:null;var nextChildren=nextProps.children;var isDirectTextChild=shouldSetTextContent(type,nextProps);if(isDirectTextChild){// We special case a direct text child of a host node. This is a common\n// case. We won't handle it as a reified child. We will instead handle\n// this in the host environment that also has access to this prop. That\n// avoids allocating another HostText fiber and traversing it.\nnextChildren=null;}else if(prevProps!==null&&shouldSetTextContent(type,prevProps)){// If we're switching from a direct text child to a normal child, or to\n// empty, we need to schedule the text content to be reset.\nworkInProgress.flags|=ContentReset;}markRef(current,workInProgress);reconcileChildren(current,workInProgress,nextChildren,renderLanes);return workInProgress.child;}function updateHostText(current,workInProgress){if(current===null){tryToClaimNextHydratableInstance(workInProgress);}// Nothing to do here. This is terminal. We'll do the completion step\n// immediately after.\nreturn null;}function mountLazyComponent(_current,workInProgress,elementType,renderLanes){resetSuspendedCurrentOnMountInLegacyMode(_current,workInProgress);var props=workInProgress.pendingProps;var lazyComponent=elementType;var payload=lazyComponent._payload;var init=lazyComponent._init;var Component=init(payload);// Store the unwrapped component in the type.\nworkInProgress.type=Component;var resolvedTag=workInProgress.tag=resolveLazyComponentTag(Component);var resolvedProps=resolveDefaultProps(Component,props);var child;switch(resolvedTag){case FunctionComponent:{{validateFunctionComponentInDev(workInProgress,Component);workInProgress.type=Component=resolveFunctionForHotReloading(Component);}child=updateFunctionComponent(null,workInProgress,Component,resolvedProps,renderLanes);return child;}case ClassComponent:{{workInProgress.type=Component=resolveClassForHotReloading(Component);}child=updateClassComponent(null,workInProgress,Component,resolvedProps,renderLanes);return child;}case ForwardRef:{{workInProgress.type=Component=resolveForwardRefForHotReloading(Component);}child=updateForwardRef(null,workInProgress,Component,resolvedProps,renderLanes);return child;}case MemoComponent:{{if(workInProgress.type!==workInProgress.elementType){var outerPropTypes=Component.propTypes;if(outerPropTypes){checkPropTypes(outerPropTypes,resolvedProps,// Resolved for outer only\n'prop',getComponentNameFromType(Component));}}}child=updateMemoComponent(null,workInProgress,Component,resolveDefaultProps(Component.type,resolvedProps),// The inner type can have defaults too\nrenderLanes);return child;}}var hint='';{if(Component!==null&&typeof Component==='object'&&Component.$$typeof===REACT_LAZY_TYPE){hint=' Did you wrap a component in React.lazy() more than once?';}}// This message intentionally doesn't mention ForwardRef or MemoComponent\n// because the fact that it's a separate type of work is an\n// implementation detail.\nthrow new Error(\"Element type is invalid. Received a promise that resolves to: \"+Component+\". \"+(\"Lazy element type must resolve to a class or function.\"+hint));}function mountIncompleteClassComponent(_current,workInProgress,Component,nextProps,renderLanes){resetSuspendedCurrentOnMountInLegacyMode(_current,workInProgress);// Promote the fiber to a class and try rendering again.\nworkInProgress.tag=ClassComponent;// The rest of this function is a fork of `updateClassComponent`\n// Push context providers early to prevent context stack mismatches.\n// During mounting we don't know the child context yet as the instance doesn't exist.\n// We will invalidate the child context in finishClassComponent() right after rendering.\nvar hasContext;if(isContextProvider(Component)){hasContext=true;pushContextProvider(workInProgress);}else{hasContext=false;}prepareToReadContext(workInProgress,renderLanes);constructClassInstance(workInProgress,Component,nextProps);mountClassInstance(workInProgress,Component,nextProps,renderLanes);return finishClassComponent(null,workInProgress,Component,true,hasContext,renderLanes);}function mountIndeterminateComponent(_current,workInProgress,Component,renderLanes){resetSuspendedCurrentOnMountInLegacyMode(_current,workInProgress);var props=workInProgress.pendingProps;var context;{var unmaskedContext=getUnmaskedContext(workInProgress,Component,false);context=getMaskedContext(workInProgress,unmaskedContext);}prepareToReadContext(workInProgress,renderLanes);var value;var hasId;{markComponentRenderStarted(workInProgress);}{if(Component.prototype&&typeof Component.prototype.render==='function'){var componentName=getComponentNameFromType(Component)||'Unknown';if(!didWarnAboutBadClass[componentName]){error(\"The <%s /> component appears to have a render method, but doesn't extend React.Component. \"+'This is likely to cause errors. Change %s to extend React.Component instead.',componentName,componentName);didWarnAboutBadClass[componentName]=true;}}if(workInProgress.mode&StrictLegacyMode){ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress,null);}setIsRendering(true);ReactCurrentOwner$1.current=workInProgress;value=renderWithHooks(null,workInProgress,Component,props,context,renderLanes);hasId=checkDidRenderIdHook();setIsRendering(false);}{markComponentRenderStopped();}// React DevTools reads this flag.\nworkInProgress.flags|=PerformedWork;{// Support for module components is deprecated and is removed behind a flag.\n// Whether or not it would crash later, we want to show a good message in DEV first.\nif(typeof value==='object'&&value!==null&&typeof value.render==='function'&&value.$$typeof===undefined){var _componentName=getComponentNameFromType(Component)||'Unknown';if(!didWarnAboutModulePatternComponent[_componentName]){error('The <%s /> component appears to be a function component that returns a class instance. '+'Change %s to a class that extends React.Component instead. '+\"If you can't use a class try assigning the prototype on the function as a workaround. \"+\"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \"+'cannot be called with `new` by React.',_componentName,_componentName,_componentName);didWarnAboutModulePatternComponent[_componentName]=true;}}}if(// Run these checks in production only if the flag is off.\n// Eventually we'll delete this branch altogether.\ntypeof value==='object'&&value!==null&&typeof value.render==='function'&&value.$$typeof===undefined){{var _componentName2=getComponentNameFromType(Component)||'Unknown';if(!didWarnAboutModulePatternComponent[_componentName2]){error('The <%s /> component appears to be a function component that returns a class instance. '+'Change %s to a class that extends React.Component instead. '+\"If you can't use a class try assigning the prototype on the function as a workaround. \"+\"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \"+'cannot be called with `new` by React.',_componentName2,_componentName2,_componentName2);didWarnAboutModulePatternComponent[_componentName2]=true;}}// Proceed under the assumption that this is a class instance\nworkInProgress.tag=ClassComponent;// Throw out any hooks that were used.\nworkInProgress.memoizedState=null;workInProgress.updateQueue=null;// Push context providers early to prevent context stack mismatches.\n// During mounting we don't know the child context yet as the instance doesn't exist.\n// We will invalidate the child context in finishClassComponent() right after rendering.\nvar hasContext=false;if(isContextProvider(Component)){hasContext=true;pushContextProvider(workInProgress);}else{hasContext=false;}workInProgress.memoizedState=value.state!==null&&value.state!==undefined?value.state:null;initializeUpdateQueue(workInProgress);adoptClassInstance(workInProgress,value);mountClassInstance(workInProgress,Component,props,renderLanes);return finishClassComponent(null,workInProgress,Component,true,hasContext,renderLanes);}else{// Proceed under the assumption that this is a function component\nworkInProgress.tag=FunctionComponent;{if(workInProgress.mode&StrictLegacyMode){setIsStrictModeForDevtools(true);try{value=renderWithHooks(null,workInProgress,Component,props,context,renderLanes);hasId=checkDidRenderIdHook();}finally{setIsStrictModeForDevtools(false);}}}if(getIsHydrating()&&hasId){pushMaterializedTreeId(workInProgress);}reconcileChildren(null,workInProgress,value,renderLanes);{validateFunctionComponentInDev(workInProgress,Component);}return workInProgress.child;}}function validateFunctionComponentInDev(workInProgress,Component){{if(Component){if(Component.childContextTypes){error('%s(...): childContextTypes cannot be defined on a function component.',Component.displayName||Component.name||'Component');}}if(workInProgress.ref!==null){var info='';var ownerName=getCurrentFiberOwnerNameInDevOrNull();if(ownerName){info+='\\n\\nCheck the render method of `'+ownerName+'`.';}var warningKey=ownerName||'';var debugSource=workInProgress._debugSource;if(debugSource){warningKey=debugSource.fileName+':'+debugSource.lineNumber;}if(!didWarnAboutFunctionRefs[warningKey]){didWarnAboutFunctionRefs[warningKey]=true;error('Function components cannot be given refs. '+'Attempts to access this ref will fail. '+'Did you mean to use React.forwardRef()?%s',info);}}if(Component.defaultProps!==undefined){var componentName=getComponentNameFromType(Component)||'Unknown';if(!didWarnAboutDefaultPropsOnFunctionComponent[componentName]){error('%s: Support for defaultProps will be removed from function components '+'in a future major release. Use JavaScript default parameters instead.',componentName);didWarnAboutDefaultPropsOnFunctionComponent[componentName]=true;}}if(typeof Component.getDerivedStateFromProps==='function'){var _componentName3=getComponentNameFromType(Component)||'Unknown';if(!didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3]){error('%s: Function components do not support getDerivedStateFromProps.',_componentName3);didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3]=true;}}if(typeof Component.contextType==='object'&&Component.contextType!==null){var _componentName4=getComponentNameFromType(Component)||'Unknown';if(!didWarnAboutContextTypeOnFunctionComponent[_componentName4]){error('%s: Function components do not support contextType.',_componentName4);didWarnAboutContextTypeOnFunctionComponent[_componentName4]=true;}}}}var SUSPENDED_MARKER={dehydrated:null,treeContext:null,retryLane:NoLane};function mountSuspenseOffscreenState(renderLanes){return{baseLanes:renderLanes,cachePool:getSuspendedCache(),transitions:null};}function updateSuspenseOffscreenState(prevOffscreenState,renderLanes){var cachePool=null;return{baseLanes:mergeLanes(prevOffscreenState.baseLanes,renderLanes),cachePool:cachePool,transitions:prevOffscreenState.transitions};}// TODO: Probably should inline this back\nfunction shouldRemainOnFallback(suspenseContext,current,workInProgress,renderLanes){// If we're already showing a fallback, there are cases where we need to\n// remain on that fallback regardless of whether the content has resolved.\n// For example, SuspenseList coordinates when nested content appears.\nif(current!==null){var suspenseState=current.memoizedState;if(suspenseState===null){// Currently showing content. Don't hide it, even if ForceSuspenseFallback\n// is true. More precise name might be \"ForceRemainSuspenseFallback\".\n// Note: This is a factoring smell. Can't remain on a fallback if there's\n// no fallback to remain on.\nreturn false;}}// Not currently showing content. Consult the Suspense context.\nreturn hasSuspenseContext(suspenseContext,ForceSuspenseFallback);}function getRemainingWorkInPrimaryTree(current,renderLanes){// TODO: Should not remove render lanes that were pinged during this render\nreturn removeLanes(current.childLanes,renderLanes);}function updateSuspenseComponent(current,workInProgress,renderLanes){var nextProps=workInProgress.pendingProps;// This is used by DevTools to force a boundary to suspend.\n{if(shouldSuspend(workInProgress)){workInProgress.flags|=DidCapture;}}var suspenseContext=suspenseStackCursor.current;var showFallback=false;var didSuspend=(workInProgress.flags&DidCapture)!==NoFlags;if(didSuspend||shouldRemainOnFallback(suspenseContext,current)){// Something in this boundary's subtree already suspended. Switch to\n// rendering the fallback children.\nshowFallback=true;workInProgress.flags&=~DidCapture;}else{// Attempting the main content\nif(current===null||current.memoizedState!==null){// This is a new mount or this boundary is already showing a fallback state.\n// Mark this subtree context as having at least one invisible parent that could\n// handle the fallback state.\n// Avoided boundaries are not considered since they cannot handle preferred fallback states.\n{suspenseContext=addSubtreeSuspenseContext(suspenseContext,InvisibleParentSuspenseContext);}}}suspenseContext=setDefaultShallowSuspenseContext(suspenseContext);pushSuspenseContext(workInProgress,suspenseContext);// OK, the next part is confusing. We're about to reconcile the Suspense\n// boundary's children. This involves some custom reconciliation logic. Two\n// main reasons this is so complicated.\n//\n// First, Legacy Mode has different semantics for backwards compatibility. The\n// primary tree will commit in an inconsistent state, so when we do the\n// second pass to render the fallback, we do some exceedingly, uh, clever\n// hacks to make that not totally break. Like transferring effects and\n// deletions from hidden tree. In Concurrent Mode, it's much simpler,\n// because we bailout on the primary tree completely and leave it in its old\n// state, no effects. Same as what we do for Offscreen (except that\n// Offscreen doesn't have the first render pass).\n//\n// Second is hydration. During hydration, the Suspense fiber has a slightly\n// different layout, where the child points to a dehydrated fragment, which\n// contains the DOM rendered by the server.\n//\n// Third, even if you set all that aside, Suspense is like error boundaries in\n// that we first we try to render one tree, and if that fails, we render again\n// and switch to a different tree. Like a try/catch block. So we have to track\n// which branch we're currently rendering. Ideally we would model this using\n// a stack.\nif(current===null){// Initial mount\n// Special path for hydration\n// If we're currently hydrating, try to hydrate this boundary.\ntryToClaimNextHydratableInstance(workInProgress);// This could've been a dehydrated suspense component.\nvar suspenseState=workInProgress.memoizedState;if(suspenseState!==null){var dehydrated=suspenseState.dehydrated;if(dehydrated!==null){return mountDehydratedSuspenseComponent(workInProgress,dehydrated);}}var nextPrimaryChildren=nextProps.children;var nextFallbackChildren=nextProps.fallback;if(showFallback){var fallbackFragment=mountSuspenseFallbackChildren(workInProgress,nextPrimaryChildren,nextFallbackChildren,renderLanes);var primaryChildFragment=workInProgress.child;primaryChildFragment.memoizedState=mountSuspenseOffscreenState(renderLanes);workInProgress.memoizedState=SUSPENDED_MARKER;return fallbackFragment;}else{return mountSuspensePrimaryChildren(workInProgress,nextPrimaryChildren);}}else{// This is an update.\n// Special path for hydration\nvar prevState=current.memoizedState;if(prevState!==null){var _dehydrated=prevState.dehydrated;if(_dehydrated!==null){return updateDehydratedSuspenseComponent(current,workInProgress,didSuspend,nextProps,_dehydrated,prevState,renderLanes);}}if(showFallback){var _nextFallbackChildren=nextProps.fallback;var _nextPrimaryChildren=nextProps.children;var fallbackChildFragment=updateSuspenseFallbackChildren(current,workInProgress,_nextPrimaryChildren,_nextFallbackChildren,renderLanes);var _primaryChildFragment2=workInProgress.child;var prevOffscreenState=current.child.memoizedState;_primaryChildFragment2.memoizedState=prevOffscreenState===null?mountSuspenseOffscreenState(renderLanes):updateSuspenseOffscreenState(prevOffscreenState,renderLanes);_primaryChildFragment2.childLanes=getRemainingWorkInPrimaryTree(current,renderLanes);workInProgress.memoizedState=SUSPENDED_MARKER;return fallbackChildFragment;}else{var _nextPrimaryChildren2=nextProps.children;var _primaryChildFragment3=updateSuspensePrimaryChildren(current,workInProgress,_nextPrimaryChildren2,renderLanes);workInProgress.memoizedState=null;return _primaryChildFragment3;}}}function mountSuspensePrimaryChildren(workInProgress,primaryChildren,renderLanes){var mode=workInProgress.mode;var primaryChildProps={mode:'visible',children:primaryChildren};var primaryChildFragment=mountWorkInProgressOffscreenFiber(primaryChildProps,mode);primaryChildFragment.return=workInProgress;workInProgress.child=primaryChildFragment;return primaryChildFragment;}function mountSuspenseFallbackChildren(workInProgress,primaryChildren,fallbackChildren,renderLanes){var mode=workInProgress.mode;var progressedPrimaryFragment=workInProgress.child;var primaryChildProps={mode:'hidden',children:primaryChildren};var primaryChildFragment;var fallbackChildFragment;if((mode&ConcurrentMode)===NoMode&&progressedPrimaryFragment!==null){// In legacy mode, we commit the primary tree as if it successfully\n// completed, even though it's in an inconsistent state.\nprimaryChildFragment=progressedPrimaryFragment;primaryChildFragment.childLanes=NoLanes;primaryChildFragment.pendingProps=primaryChildProps;if(workInProgress.mode&ProfileMode){// Reset the durations from the first pass so they aren't included in the\n// final amounts. This seems counterintuitive, since we're intentionally\n// not measuring part of the render phase, but this makes it match what we\n// do in Concurrent Mode.\nprimaryChildFragment.actualDuration=0;primaryChildFragment.actualStartTime=-1;primaryChildFragment.selfBaseDuration=0;primaryChildFragment.treeBaseDuration=0;}fallbackChildFragment=createFiberFromFragment(fallbackChildren,mode,renderLanes,null);}else{primaryChildFragment=mountWorkInProgressOffscreenFiber(primaryChildProps,mode);fallbackChildFragment=createFiberFromFragment(fallbackChildren,mode,renderLanes,null);}primaryChildFragment.return=workInProgress;fallbackChildFragment.return=workInProgress;primaryChildFragment.sibling=fallbackChildFragment;workInProgress.child=primaryChildFragment;return fallbackChildFragment;}function mountWorkInProgressOffscreenFiber(offscreenProps,mode,renderLanes){// The props argument to `createFiberFromOffscreen` is `any` typed, so we use\n// this wrapper function to constrain it.\nreturn createFiberFromOffscreen(offscreenProps,mode,NoLanes,null);}function updateWorkInProgressOffscreenFiber(current,offscreenProps){// The props argument to `createWorkInProgress` is `any` typed, so we use this\n// wrapper function to constrain it.\nreturn createWorkInProgress(current,offscreenProps);}function updateSuspensePrimaryChildren(current,workInProgress,primaryChildren,renderLanes){var currentPrimaryChildFragment=current.child;var currentFallbackChildFragment=currentPrimaryChildFragment.sibling;var primaryChildFragment=updateWorkInProgressOffscreenFiber(currentPrimaryChildFragment,{mode:'visible',children:primaryChildren});if((workInProgress.mode&ConcurrentMode)===NoMode){primaryChildFragment.lanes=renderLanes;}primaryChildFragment.return=workInProgress;primaryChildFragment.sibling=null;if(currentFallbackChildFragment!==null){// Delete the fallback child fragment\nvar deletions=workInProgress.deletions;if(deletions===null){workInProgress.deletions=[currentFallbackChildFragment];workInProgress.flags|=ChildDeletion;}else{deletions.push(currentFallbackChildFragment);}}workInProgress.child=primaryChildFragment;return primaryChildFragment;}function updateSuspenseFallbackChildren(current,workInProgress,primaryChildren,fallbackChildren,renderLanes){var mode=workInProgress.mode;var currentPrimaryChildFragment=current.child;var currentFallbackChildFragment=currentPrimaryChildFragment.sibling;var primaryChildProps={mode:'hidden',children:primaryChildren};var primaryChildFragment;if(// In legacy mode, we commit the primary tree as if it successfully\n// completed, even though it's in an inconsistent state.\n(mode&ConcurrentMode)===NoMode&&// Make sure we're on the second pass, i.e. the primary child fragment was\n// already cloned. In legacy mode, the only case where this isn't true is\n// when DevTools forces us to display a fallback; we skip the first render\n// pass entirely and go straight to rendering the fallback. (In Concurrent\n// Mode, SuspenseList can also trigger this scenario, but this is a legacy-\n// only codepath.)\nworkInProgress.child!==currentPrimaryChildFragment){var progressedPrimaryFragment=workInProgress.child;primaryChildFragment=progressedPrimaryFragment;primaryChildFragment.childLanes=NoLanes;primaryChildFragment.pendingProps=primaryChildProps;if(workInProgress.mode&ProfileMode){// Reset the durations from the first pass so they aren't included in the\n// final amounts. This seems counterintuitive, since we're intentionally\n// not measuring part of the render phase, but this makes it match what we\n// do in Concurrent Mode.\nprimaryChildFragment.actualDuration=0;primaryChildFragment.actualStartTime=-1;primaryChildFragment.selfBaseDuration=currentPrimaryChildFragment.selfBaseDuration;primaryChildFragment.treeBaseDuration=currentPrimaryChildFragment.treeBaseDuration;}// The fallback fiber was added as a deletion during the first pass.\n// However, since we're going to remain on the fallback, we no longer want\n// to delete it.\nworkInProgress.deletions=null;}else{primaryChildFragment=updateWorkInProgressOffscreenFiber(currentPrimaryChildFragment,primaryChildProps);// Since we're reusing a current tree, we need to reuse the flags, too.\n// (We don't do this in legacy mode, because in legacy mode we don't re-use\n// the current tree; see previous branch.)\nprimaryChildFragment.subtreeFlags=currentPrimaryChildFragment.subtreeFlags&StaticMask;}var fallbackChildFragment;if(currentFallbackChildFragment!==null){fallbackChildFragment=createWorkInProgress(currentFallbackChildFragment,fallbackChildren);}else{fallbackChildFragment=createFiberFromFragment(fallbackChildren,mode,renderLanes,null);// Needs a placement effect because the parent (the Suspense boundary) already\n// mounted but this is a new fiber.\nfallbackChildFragment.flags|=Placement;}fallbackChildFragment.return=workInProgress;primaryChildFragment.return=workInProgress;primaryChildFragment.sibling=fallbackChildFragment;workInProgress.child=primaryChildFragment;return fallbackChildFragment;}function retrySuspenseComponentWithoutHydrating(current,workInProgress,renderLanes,recoverableError){// Falling back to client rendering. Because this has performance\n// implications, it's considered a recoverable error, even though the user\n// likely won't observe anything wrong with the UI.\n//\n// The error is passed in as an argument to enforce that every caller provide\n// a custom message, or explicitly opt out (currently the only path that opts\n// out is legacy mode; every concurrent path provides an error).\nif(recoverableError!==null){queueHydrationError(recoverableError);}// This will add the old fiber to the deletion list\nreconcileChildFibers(workInProgress,current.child,null,renderLanes);// We're now not suspended nor dehydrated.\nvar nextProps=workInProgress.pendingProps;var primaryChildren=nextProps.children;var primaryChildFragment=mountSuspensePrimaryChildren(workInProgress,primaryChildren);// Needs a placement effect because the parent (the Suspense boundary) already\n// mounted but this is a new fiber.\nprimaryChildFragment.flags|=Placement;workInProgress.memoizedState=null;return primaryChildFragment;}function mountSuspenseFallbackAfterRetryWithoutHydrating(current,workInProgress,primaryChildren,fallbackChildren,renderLanes){var fiberMode=workInProgress.mode;var primaryChildProps={mode:'visible',children:primaryChildren};var primaryChildFragment=mountWorkInProgressOffscreenFiber(primaryChildProps,fiberMode);var fallbackChildFragment=createFiberFromFragment(fallbackChildren,fiberMode,renderLanes,null);// Needs a placement effect because the parent (the Suspense\n// boundary) already mounted but this is a new fiber.\nfallbackChildFragment.flags|=Placement;primaryChildFragment.return=workInProgress;fallbackChildFragment.return=workInProgress;primaryChildFragment.sibling=fallbackChildFragment;workInProgress.child=primaryChildFragment;if((workInProgress.mode&ConcurrentMode)!==NoMode){// We will have dropped the effect list which contains the\n// deletion. We need to reconcile to delete the current child.\nreconcileChildFibers(workInProgress,current.child,null,renderLanes);}return fallbackChildFragment;}function mountDehydratedSuspenseComponent(workInProgress,suspenseInstance,renderLanes){// During the first pass, we'll bail out and not drill into the children.\n// Instead, we'll leave the content in place and try to hydrate it later.\nif((workInProgress.mode&ConcurrentMode)===NoMode){{error('Cannot hydrate Suspense in legacy mode. Switch from '+'ReactDOM.hydrate(element, container) to '+'ReactDOMClient.hydrateRoot(container, <App />)'+'.render(element) or remove the Suspense components from '+'the server rendered components.');}workInProgress.lanes=laneToLanes(SyncLane);}else if(isSuspenseInstanceFallback(suspenseInstance)){// This is a client-only boundary. Since we won't get any content from the server\n// for this, we need to schedule that at a higher priority based on when it would\n// have timed out. In theory we could render it in this pass but it would have the\n// wrong priority associated with it and will prevent hydration of parent path.\n// Instead, we'll leave work left on it to render it in a separate commit.\n// TODO This time should be the time at which the server rendered response that is\n// a parent to this boundary was displayed. However, since we currently don't have\n// a protocol to transfer that time, we'll just estimate it by using the current\n// time. This will mean that Suspense timeouts are slightly shifted to later than\n// they should be.\n// Schedule a normal pri update to render this content.\nworkInProgress.lanes=laneToLanes(DefaultHydrationLane);}else{// We'll continue hydrating the rest at offscreen priority since we'll already\n// be showing the right content coming from the server, it is no rush.\nworkInProgress.lanes=laneToLanes(OffscreenLane);}return null;}function updateDehydratedSuspenseComponent(current,workInProgress,didSuspend,nextProps,suspenseInstance,suspenseState,renderLanes){if(!didSuspend){// This is the first render pass. Attempt to hydrate.\n// We should never be hydrating at this point because it is the first pass,\n// but after we've already committed once.\nwarnIfHydrating();if((workInProgress.mode&ConcurrentMode)===NoMode){return retrySuspenseComponentWithoutHydrating(current,workInProgress,renderLanes,// TODO: When we delete legacy mode, we should make this error argument\n// required — every concurrent mode path that causes hydration to\n// de-opt to client rendering should have an error message.\nnull);}if(isSuspenseInstanceFallback(suspenseInstance)){// This boundary is in a permanent fallback state. In this case, we'll never\n// get an update and we'll never be able to hydrate the final content. Let's just try the\n// client side render instead.\nvar digest,message,stack;{var _getSuspenseInstanceF=getSuspenseInstanceFallbackErrorDetails(suspenseInstance);digest=_getSuspenseInstanceF.digest;message=_getSuspenseInstanceF.message;stack=_getSuspenseInstanceF.stack;}var error;if(message){// eslint-disable-next-line react-internal/prod-error-codes\nerror=new Error(message);}else{error=new Error('The server could not finish this Suspense boundary, likely '+'due to an error during server rendering. Switched to '+'client rendering.');}var capturedValue=createCapturedValue(error,digest,stack);return retrySuspenseComponentWithoutHydrating(current,workInProgress,renderLanes,capturedValue);}// any context has changed, we need to treat is as if the input might have changed.\nvar hasContextChanged=includesSomeLane(renderLanes,current.childLanes);if(didReceiveUpdate||hasContextChanged){// This boundary has changed since the first render. This means that we are now unable to\n// hydrate it. We might still be able to hydrate it using a higher priority lane.\nvar root=getWorkInProgressRoot();if(root!==null){var attemptHydrationAtLane=getBumpedLaneForHydration(root,renderLanes);if(attemptHydrationAtLane!==NoLane&&attemptHydrationAtLane!==suspenseState.retryLane){// Intentionally mutating since this render will get interrupted. This\n// is one of the very rare times where we mutate the current tree\n// during the render phase.\nsuspenseState.retryLane=attemptHydrationAtLane;// TODO: Ideally this would inherit the event time of the current render\nvar eventTime=NoTimestamp;enqueueConcurrentRenderForLane(current,attemptHydrationAtLane);scheduleUpdateOnFiber(root,current,attemptHydrationAtLane,eventTime);}}// If we have scheduled higher pri work above, this will probably just abort the render\n// since we now have higher priority work, but in case it doesn't, we need to prepare to\n// render something, if we time out. Even if that requires us to delete everything and\n// skip hydration.\n// Delay having to do this as long as the suspense timeout allows us.\nrenderDidSuspendDelayIfPossible();var _capturedValue=createCapturedValue(new Error('This Suspense boundary received an update before it finished '+'hydrating. This caused the boundary to switch to client rendering. '+'The usual way to fix this is to wrap the original update '+'in startTransition.'));return retrySuspenseComponentWithoutHydrating(current,workInProgress,renderLanes,_capturedValue);}else if(isSuspenseInstancePending(suspenseInstance)){// This component is still pending more data from the server, so we can't hydrate its\n// content. We treat it as if this component suspended itself. It might seem as if\n// we could just try to render it client-side instead. However, this will perform a\n// lot of unnecessary work and is unlikely to complete since it often will suspend\n// on missing data anyway. Additionally, the server might be able to render more\n// than we can on the client yet. In that case we'd end up with more fallback states\n// on the client than if we just leave it alone. If the server times out or errors\n// these should update this boundary to the permanent Fallback state instead.\n// Mark it as having captured (i.e. suspended).\nworkInProgress.flags|=DidCapture;// Leave the child in place. I.e. the dehydrated fragment.\nworkInProgress.child=current.child;// Register a callback to retry this boundary once the server has sent the result.\nvar retry=retryDehydratedSuspenseBoundary.bind(null,current);registerSuspenseInstanceRetry(suspenseInstance,retry);return null;}else{// This is the first attempt.\nreenterHydrationStateFromDehydratedSuspenseInstance(workInProgress,suspenseInstance,suspenseState.treeContext);var primaryChildren=nextProps.children;var primaryChildFragment=mountSuspensePrimaryChildren(workInProgress,primaryChildren);// Mark the children as hydrating. This is a fast path to know whether this\n// tree is part of a hydrating tree. This is used to determine if a child\n// node has fully mounted yet, and for scheduling event replaying.\n// Conceptually this is similar to Placement in that a new subtree is\n// inserted into the React tree here. It just happens to not need DOM\n// mutations because it already exists.\nprimaryChildFragment.flags|=Hydrating;return primaryChildFragment;}}else{// This is the second render pass. We already attempted to hydrated, but\n// something either suspended or errored.\nif(workInProgress.flags&ForceClientRender){// Something errored during hydration. Try again without hydrating.\nworkInProgress.flags&=~ForceClientRender;var _capturedValue2=createCapturedValue(new Error('There was an error while hydrating this Suspense boundary. '+'Switched to client rendering.'));return retrySuspenseComponentWithoutHydrating(current,workInProgress,renderLanes,_capturedValue2);}else if(workInProgress.memoizedState!==null){// Something suspended and we should still be in dehydrated mode.\n// Leave the existing child in place.\nworkInProgress.child=current.child;// The dehydrated completion pass expects this flag to be there\n// but the normal suspense pass doesn't.\nworkInProgress.flags|=DidCapture;return null;}else{// Suspended but we should no longer be in dehydrated mode.\n// Therefore we now have to render the fallback.\nvar nextPrimaryChildren=nextProps.children;var nextFallbackChildren=nextProps.fallback;var fallbackChildFragment=mountSuspenseFallbackAfterRetryWithoutHydrating(current,workInProgress,nextPrimaryChildren,nextFallbackChildren,renderLanes);var _primaryChildFragment4=workInProgress.child;_primaryChildFragment4.memoizedState=mountSuspenseOffscreenState(renderLanes);workInProgress.memoizedState=SUSPENDED_MARKER;return fallbackChildFragment;}}}function scheduleSuspenseWorkOnFiber(fiber,renderLanes,propagationRoot){fiber.lanes=mergeLanes(fiber.lanes,renderLanes);var alternate=fiber.alternate;if(alternate!==null){alternate.lanes=mergeLanes(alternate.lanes,renderLanes);}scheduleContextWorkOnParentPath(fiber.return,renderLanes,propagationRoot);}function propagateSuspenseContextChange(workInProgress,firstChild,renderLanes){// Mark any Suspense boundaries with fallbacks as having work to do.\n// If they were previously forced into fallbacks, they may now be able\n// to unblock.\nvar node=firstChild;while(node!==null){if(node.tag===SuspenseComponent){var state=node.memoizedState;if(state!==null){scheduleSuspenseWorkOnFiber(node,renderLanes,workInProgress);}}else if(node.tag===SuspenseListComponent){// If the tail is hidden there might not be an Suspense boundaries\n// to schedule work on. In this case we have to schedule it on the\n// list itself.\n// We don't have to traverse to the children of the list since\n// the list will propagate the change when it rerenders.\nscheduleSuspenseWorkOnFiber(node,renderLanes,workInProgress);}else if(node.child!==null){node.child.return=node;node=node.child;continue;}if(node===workInProgress){return;}while(node.sibling===null){if(node.return===null||node.return===workInProgress){return;}node=node.return;}node.sibling.return=node.return;node=node.sibling;}}function findLastContentRow(firstChild){// This is going to find the last row among these children that is already\n// showing content on the screen, as opposed to being in fallback state or\n// new. If a row has multiple Suspense boundaries, any of them being in the\n// fallback state, counts as the whole row being in a fallback state.\n// Note that the \"rows\" will be workInProgress, but any nested children\n// will still be current since we haven't rendered them yet. The mounted\n// order may not be the same as the new order. We use the new order.\nvar row=firstChild;var lastContentRow=null;while(row!==null){var currentRow=row.alternate;// New rows can't be content rows.\nif(currentRow!==null&&findFirstSuspended(currentRow)===null){lastContentRow=row;}row=row.sibling;}return lastContentRow;}function validateRevealOrder(revealOrder){{if(revealOrder!==undefined&&revealOrder!=='forwards'&&revealOrder!=='backwards'&&revealOrder!=='together'&&!didWarnAboutRevealOrder[revealOrder]){didWarnAboutRevealOrder[revealOrder]=true;if(typeof revealOrder==='string'){switch(revealOrder.toLowerCase()){case'together':case'forwards':case'backwards':{error('\"%s\" is not a valid value for revealOrder on <SuspenseList />. '+'Use lowercase \"%s\" instead.',revealOrder,revealOrder.toLowerCase());break;}case'forward':case'backward':{error('\"%s\" is not a valid value for revealOrder on <SuspenseList />. '+'React uses the -s suffix in the spelling. Use \"%ss\" instead.',revealOrder,revealOrder.toLowerCase());break;}default:error('\"%s\" is not a supported revealOrder on <SuspenseList />. '+'Did you mean \"together\", \"forwards\" or \"backwards\"?',revealOrder);break;}}else{error('%s is not a supported value for revealOrder on <SuspenseList />. '+'Did you mean \"together\", \"forwards\" or \"backwards\"?',revealOrder);}}}}function validateTailOptions(tailMode,revealOrder){{if(tailMode!==undefined&&!didWarnAboutTailOptions[tailMode]){if(tailMode!=='collapsed'&&tailMode!=='hidden'){didWarnAboutTailOptions[tailMode]=true;error('\"%s\" is not a supported value for tail on <SuspenseList />. '+'Did you mean \"collapsed\" or \"hidden\"?',tailMode);}else if(revealOrder!=='forwards'&&revealOrder!=='backwards'){didWarnAboutTailOptions[tailMode]=true;error('<SuspenseList tail=\"%s\" /> is only valid if revealOrder is '+'\"forwards\" or \"backwards\". '+'Did you mean to specify revealOrder=\"forwards\"?',tailMode);}}}}function validateSuspenseListNestedChild(childSlot,index){{var isAnArray=isArray(childSlot);var isIterable=!isAnArray&&typeof getIteratorFn(childSlot)==='function';if(isAnArray||isIterable){var type=isAnArray?'array':'iterable';error('A nested %s was passed to row #%s in <SuspenseList />. Wrap it in '+'an additional SuspenseList to configure its revealOrder: '+'<SuspenseList revealOrder=...> ... '+'<SuspenseList revealOrder=...>{%s}</SuspenseList> ... '+'</SuspenseList>',type,index,type);return false;}}return true;}function validateSuspenseListChildren(children,revealOrder){{if((revealOrder==='forwards'||revealOrder==='backwards')&&children!==undefined&&children!==null&&children!==false){if(isArray(children)){for(var i=0;i<children.length;i++){if(!validateSuspenseListNestedChild(children[i],i)){return;}}}else{var iteratorFn=getIteratorFn(children);if(typeof iteratorFn==='function'){var childrenIterator=iteratorFn.call(children);if(childrenIterator){var step=childrenIterator.next();var _i=0;for(;!step.done;step=childrenIterator.next()){if(!validateSuspenseListNestedChild(step.value,_i)){return;}_i++;}}}else{error('A single row was passed to a <SuspenseList revealOrder=\"%s\" />. '+'This is not useful since it needs multiple rows. '+'Did you mean to pass multiple children or an array?',revealOrder);}}}}}function initSuspenseListRenderState(workInProgress,isBackwards,tail,lastContentRow,tailMode){var renderState=workInProgress.memoizedState;if(renderState===null){workInProgress.memoizedState={isBackwards:isBackwards,rendering:null,renderingStartTime:0,last:lastContentRow,tail:tail,tailMode:tailMode};}else{// We can reuse the existing object from previous renders.\nrenderState.isBackwards=isBackwards;renderState.rendering=null;renderState.renderingStartTime=0;renderState.last=lastContentRow;renderState.tail=tail;renderState.tailMode=tailMode;}}// This can end up rendering this component multiple passes.\n// The first pass splits the children fibers into two sets. A head and tail.\n// We first render the head. If anything is in fallback state, we do another\n// pass through beginWork to rerender all children (including the tail) with\n// the force suspend context. If the first render didn't have anything in\n// in fallback state. Then we render each row in the tail one-by-one.\n// That happens in the completeWork phase without going back to beginWork.\nfunction updateSuspenseListComponent(current,workInProgress,renderLanes){var nextProps=workInProgress.pendingProps;var revealOrder=nextProps.revealOrder;var tailMode=nextProps.tail;var newChildren=nextProps.children;validateRevealOrder(revealOrder);validateTailOptions(tailMode,revealOrder);validateSuspenseListChildren(newChildren,revealOrder);reconcileChildren(current,workInProgress,newChildren,renderLanes);var suspenseContext=suspenseStackCursor.current;var shouldForceFallback=hasSuspenseContext(suspenseContext,ForceSuspenseFallback);if(shouldForceFallback){suspenseContext=setShallowSuspenseContext(suspenseContext,ForceSuspenseFallback);workInProgress.flags|=DidCapture;}else{var didSuspendBefore=current!==null&&(current.flags&DidCapture)!==NoFlags;if(didSuspendBefore){// If we previously forced a fallback, we need to schedule work\n// on any nested boundaries to let them know to try to render\n// again. This is the same as context updating.\npropagateSuspenseContextChange(workInProgress,workInProgress.child,renderLanes);}suspenseContext=setDefaultShallowSuspenseContext(suspenseContext);}pushSuspenseContext(workInProgress,suspenseContext);if((workInProgress.mode&ConcurrentMode)===NoMode){// In legacy mode, SuspenseList doesn't work so we just\n// use make it a noop by treating it as the default revealOrder.\nworkInProgress.memoizedState=null;}else{switch(revealOrder){case'forwards':{var lastContentRow=findLastContentRow(workInProgress.child);var tail;if(lastContentRow===null){// The whole list is part of the tail.\n// TODO: We could fast path by just rendering the tail now.\ntail=workInProgress.child;workInProgress.child=null;}else{// Disconnect the tail rows after the content row.\n// We're going to render them separately later.\ntail=lastContentRow.sibling;lastContentRow.sibling=null;}initSuspenseListRenderState(workInProgress,false,// isBackwards\ntail,lastContentRow,tailMode);break;}case'backwards':{// We're going to find the first row that has existing content.\n// At the same time we're going to reverse the list of everything\n// we pass in the meantime. That's going to be our tail in reverse\n// order.\nvar _tail=null;var row=workInProgress.child;workInProgress.child=null;while(row!==null){var currentRow=row.alternate;// New rows can't be content rows.\nif(currentRow!==null&&findFirstSuspended(currentRow)===null){// This is the beginning of the main content.\nworkInProgress.child=row;break;}var nextRow=row.sibling;row.sibling=_tail;_tail=row;row=nextRow;}// TODO: If workInProgress.child is null, we can continue on the tail immediately.\ninitSuspenseListRenderState(workInProgress,true,// isBackwards\n_tail,null,// last\ntailMode);break;}case'together':{initSuspenseListRenderState(workInProgress,false,// isBackwards\nnull,// tail\nnull,// last\nundefined);break;}default:{// The default reveal order is the same as not having\n// a boundary.\nworkInProgress.memoizedState=null;}}}return workInProgress.child;}function updatePortalComponent(current,workInProgress,renderLanes){pushHostContainer(workInProgress,workInProgress.stateNode.containerInfo);var nextChildren=workInProgress.pendingProps;if(current===null){// Portals are special because we don't append the children during mount\n// but at commit. Therefore we need to track insertions which the normal\n// flow doesn't do during mount. This doesn't happen at the root because\n// the root always starts with a \"current\" with a null child.\n// TODO: Consider unifying this with how the root works.\nworkInProgress.child=reconcileChildFibers(workInProgress,null,nextChildren,renderLanes);}else{reconcileChildren(current,workInProgress,nextChildren,renderLanes);}return workInProgress.child;}var hasWarnedAboutUsingNoValuePropOnContextProvider=false;function updateContextProvider(current,workInProgress,renderLanes){var providerType=workInProgress.type;var context=providerType._context;var newProps=workInProgress.pendingProps;var oldProps=workInProgress.memoizedProps;var newValue=newProps.value;{if(!('value'in newProps)){if(!hasWarnedAboutUsingNoValuePropOnContextProvider){hasWarnedAboutUsingNoValuePropOnContextProvider=true;error('The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?');}}var providerPropTypes=workInProgress.type.propTypes;if(providerPropTypes){checkPropTypes(providerPropTypes,newProps,'prop','Context.Provider');}}pushProvider(workInProgress,context,newValue);{if(oldProps!==null){var oldValue=oldProps.value;if(objectIs(oldValue,newValue)){// No change. Bailout early if children are the same.\nif(oldProps.children===newProps.children&&!hasContextChanged()){return bailoutOnAlreadyFinishedWork(current,workInProgress,renderLanes);}}else{// The context value changed. Search for matching consumers and schedule\n// them to update.\npropagateContextChange(workInProgress,context,renderLanes);}}}var newChildren=newProps.children;reconcileChildren(current,workInProgress,newChildren,renderLanes);return workInProgress.child;}var hasWarnedAboutUsingContextAsConsumer=false;function updateContextConsumer(current,workInProgress,renderLanes){var context=workInProgress.type;// The logic below for Context differs depending on PROD or DEV mode. In\n// DEV mode, we create a separate object for Context.Consumer that acts\n// like a proxy to Context. This proxy object adds unnecessary code in PROD\n// so we use the old behaviour (Context.Consumer references Context) to\n// reduce size and overhead. The separate object references context via\n// a property called \"_context\", which also gives us the ability to check\n// in DEV mode if this property exists or not and warn if it does not.\n{if(context._context===undefined){// This may be because it's a Context (rather than a Consumer).\n// Or it may be because it's older React where they're the same thing.\n// We only want to warn if we're sure it's a new React.\nif(context!==context.Consumer){if(!hasWarnedAboutUsingContextAsConsumer){hasWarnedAboutUsingContextAsConsumer=true;error('Rendering <Context> directly is not supported and will be removed in '+'a future major release. Did you mean to render <Context.Consumer> instead?');}}}else{context=context._context;}}var newProps=workInProgress.pendingProps;var render=newProps.children;{if(typeof render!=='function'){error('A context consumer was rendered with multiple children, or a child '+\"that isn't a function. A context consumer expects a single child \"+'that is a function. If you did pass a function, make sure there '+'is no trailing or leading whitespace around it.');}}prepareToReadContext(workInProgress,renderLanes);var newValue=readContext(context);{markComponentRenderStarted(workInProgress);}var newChildren;{ReactCurrentOwner$1.current=workInProgress;setIsRendering(true);newChildren=render(newValue);setIsRendering(false);}{markComponentRenderStopped();}// React DevTools reads this flag.\nworkInProgress.flags|=PerformedWork;reconcileChildren(current,workInProgress,newChildren,renderLanes);return workInProgress.child;}function markWorkInProgressReceivedUpdate(){didReceiveUpdate=true;}function resetSuspendedCurrentOnMountInLegacyMode(current,workInProgress){if((workInProgress.mode&ConcurrentMode)===NoMode){if(current!==null){// A lazy component only mounts if it suspended inside a non-\n// concurrent tree, in an inconsistent state. We want to treat it like\n// a new mount, even though an empty version of it already committed.\n// Disconnect the alternate pointers.\ncurrent.alternate=null;workInProgress.alternate=null;// Since this is conceptually a new fiber, schedule a Placement effect\nworkInProgress.flags|=Placement;}}}function bailoutOnAlreadyFinishedWork(current,workInProgress,renderLanes){if(current!==null){// Reuse previous dependencies\nworkInProgress.dependencies=current.dependencies;}{// Don't update \"base\" render times for bailouts.\nstopProfilerTimerIfRunning();}markSkippedUpdateLanes(workInProgress.lanes);// Check if the children have any pending work.\nif(!includesSomeLane(renderLanes,workInProgress.childLanes)){// The children don't have any work either. We can skip them.\n// TODO: Once we add back resuming, we should check if the children are\n// a work-in-progress set. If so, we need to transfer their effects.\n{return null;}}// This fiber doesn't have work, but its subtree does. Clone the child\n// fibers and continue.\ncloneChildFibers(current,workInProgress);return workInProgress.child;}function remountFiber(current,oldWorkInProgress,newWorkInProgress){{var returnFiber=oldWorkInProgress.return;if(returnFiber===null){// eslint-disable-next-line react-internal/prod-error-codes\nthrow new Error('Cannot swap the root fiber.');}// Disconnect from the old current.\n// It will get deleted.\ncurrent.alternate=null;oldWorkInProgress.alternate=null;// Connect to the new tree.\nnewWorkInProgress.index=oldWorkInProgress.index;newWorkInProgress.sibling=oldWorkInProgress.sibling;newWorkInProgress.return=oldWorkInProgress.return;newWorkInProgress.ref=oldWorkInProgress.ref;// Replace the child/sibling pointers above it.\nif(oldWorkInProgress===returnFiber.child){returnFiber.child=newWorkInProgress;}else{var prevSibling=returnFiber.child;if(prevSibling===null){// eslint-disable-next-line react-internal/prod-error-codes\nthrow new Error('Expected parent to have a child.');}while(prevSibling.sibling!==oldWorkInProgress){prevSibling=prevSibling.sibling;if(prevSibling===null){// eslint-disable-next-line react-internal/prod-error-codes\nthrow new Error('Expected to find the previous sibling.');}}prevSibling.sibling=newWorkInProgress;}// Delete the old fiber and place the new one.\n// Since the old fiber is disconnected, we have to schedule it manually.\nvar deletions=returnFiber.deletions;if(deletions===null){returnFiber.deletions=[current];returnFiber.flags|=ChildDeletion;}else{deletions.push(current);}newWorkInProgress.flags|=Placement;// Restart work from the new fiber.\nreturn newWorkInProgress;}}function checkScheduledUpdateOrContext(current,renderLanes){// Before performing an early bailout, we must check if there are pending\n// updates or context.\nvar updateLanes=current.lanes;if(includesSomeLane(updateLanes,renderLanes)){return true;}// No pending update, but because context is propagated lazily, we need\nreturn false;}function attemptEarlyBailoutIfNoScheduledUpdate(current,workInProgress,renderLanes){// This fiber does not have any pending work. Bailout without entering\n// the begin phase. There's still some bookkeeping we that needs to be done\n// in this optimized path, mostly pushing stuff onto the stack.\nswitch(workInProgress.tag){case HostRoot:pushHostRootContext(workInProgress);var root=workInProgress.stateNode;resetHydrationState();break;case HostComponent:pushHostContext(workInProgress);break;case ClassComponent:{var Component=workInProgress.type;if(isContextProvider(Component)){pushContextProvider(workInProgress);}break;}case HostPortal:pushHostContainer(workInProgress,workInProgress.stateNode.containerInfo);break;case ContextProvider:{var newValue=workInProgress.memoizedProps.value;var context=workInProgress.type._context;pushProvider(workInProgress,context,newValue);break;}case Profiler:{// Profiler should only call onRender when one of its descendants actually rendered.\nvar hasChildWork=includesSomeLane(renderLanes,workInProgress.childLanes);if(hasChildWork){workInProgress.flags|=Update;}{// Reset effect durations for the next eventual effect phase.\n// These are reset during render to allow the DevTools commit hook a chance to read them,\nvar stateNode=workInProgress.stateNode;stateNode.effectDuration=0;stateNode.passiveEffectDuration=0;}}break;case SuspenseComponent:{var state=workInProgress.memoizedState;if(state!==null){if(state.dehydrated!==null){pushSuspenseContext(workInProgress,setDefaultShallowSuspenseContext(suspenseStackCursor.current));// We know that this component will suspend again because if it has\n// been unsuspended it has committed as a resolved Suspense component.\n// If it needs to be retried, it should have work scheduled on it.\nworkInProgress.flags|=DidCapture;// We should never render the children of a dehydrated boundary until we\n// upgrade it. We return null instead of bailoutOnAlreadyFinishedWork.\nreturn null;}// If this boundary is currently timed out, we need to decide\n// whether to retry the primary children, or to skip over it and\n// go straight to the fallback. Check the priority of the primary\n// child fragment.\nvar primaryChildFragment=workInProgress.child;var primaryChildLanes=primaryChildFragment.childLanes;if(includesSomeLane(renderLanes,primaryChildLanes)){// The primary children have pending work. Use the normal path\n// to attempt to render the primary children again.\nreturn updateSuspenseComponent(current,workInProgress,renderLanes);}else{// The primary child fragment does not have pending work marked\n// on it\npushSuspenseContext(workInProgress,setDefaultShallowSuspenseContext(suspenseStackCursor.current));// The primary children do not have pending work with sufficient\n// priority. Bailout.\nvar child=bailoutOnAlreadyFinishedWork(current,workInProgress,renderLanes);if(child!==null){// The fallback children have pending work. Skip over the\n// primary children and work on the fallback.\nreturn child.sibling;}else{// Note: We can return `null` here because we already checked\n// whether there were nested context consumers, via the call to\n// `bailoutOnAlreadyFinishedWork` above.\nreturn null;}}}else{pushSuspenseContext(workInProgress,setDefaultShallowSuspenseContext(suspenseStackCursor.current));}break;}case SuspenseListComponent:{var didSuspendBefore=(current.flags&DidCapture)!==NoFlags;var _hasChildWork=includesSomeLane(renderLanes,workInProgress.childLanes);if(didSuspendBefore){if(_hasChildWork){// If something was in fallback state last time, and we have all the\n// same children then we're still in progressive loading state.\n// Something might get unblocked by state updates or retries in the\n// tree which will affect the tail. So we need to use the normal\n// path to compute the correct tail.\nreturn updateSuspenseListComponent(current,workInProgress,renderLanes);}// If none of the children had any work, that means that none of\n// them got retried so they'll still be blocked in the same way\n// as before. We can fast bail out.\nworkInProgress.flags|=DidCapture;}// If nothing suspended before and we're rendering the same children,\n// then the tail doesn't matter. Anything new that suspends will work\n// in the \"together\" mode, so we can continue from the state we had.\nvar renderState=workInProgress.memoizedState;if(renderState!==null){// Reset to the \"together\" mode in case we've started a different\n// update in the past but didn't complete it.\nrenderState.rendering=null;renderState.tail=null;renderState.lastEffect=null;}pushSuspenseContext(workInProgress,suspenseStackCursor.current);if(_hasChildWork){break;}else{// If none of the children had any work, that means that none of\n// them got retried so they'll still be blocked in the same way\n// as before. We can fast bail out.\nreturn null;}}case OffscreenComponent:case LegacyHiddenComponent:{// Need to check if the tree still needs to be deferred. This is\n// almost identical to the logic used in the normal update path,\n// so we'll just enter that. The only difference is we'll bail out\n// at the next level instead of this one, because the child props\n// have not changed. Which is fine.\n// TODO: Probably should refactor `beginWork` to split the bailout\n// path from the normal path. I'm tempted to do a labeled break here\n// but I won't :)\nworkInProgress.lanes=NoLanes;return updateOffscreenComponent(current,workInProgress,renderLanes);}}return bailoutOnAlreadyFinishedWork(current,workInProgress,renderLanes);}function beginWork(current,workInProgress,renderLanes){{if(workInProgress._debugNeedsRemount&&current!==null){// This will restart the begin phase with a new fiber.\nreturn remountFiber(current,workInProgress,createFiberFromTypeAndProps(workInProgress.type,workInProgress.key,workInProgress.pendingProps,workInProgress._debugOwner||null,workInProgress.mode,workInProgress.lanes));}}if(current!==null){var oldProps=current.memoizedProps;var newProps=workInProgress.pendingProps;if(oldProps!==newProps||hasContextChanged()||// Force a re-render if the implementation changed due to hot reload:\nworkInProgress.type!==current.type){// If props or context changed, mark the fiber as having performed work.\n// This may be unset if the props are determined to be equal later (memo).\ndidReceiveUpdate=true;}else{// Neither props nor legacy context changes. Check if there's a pending\n// update or context change.\nvar hasScheduledUpdateOrContext=checkScheduledUpdateOrContext(current,renderLanes);if(!hasScheduledUpdateOrContext&&// If this is the second pass of an error or suspense boundary, there\n// may not be work scheduled on `current`, so we check for this flag.\n(workInProgress.flags&DidCapture)===NoFlags){// No pending updates or context. Bail out now.\ndidReceiveUpdate=false;return attemptEarlyBailoutIfNoScheduledUpdate(current,workInProgress,renderLanes);}if((current.flags&ForceUpdateForLegacySuspense)!==NoFlags){// This is a special case that only exists for legacy mode.\n// See https://github.com/facebook/react/pull/19216.\ndidReceiveUpdate=true;}else{// An update was scheduled on this fiber, but there are no new props\n// nor legacy context. Set this to false. If an update queue or context\n// consumer produces a changed value, it will set this to true. Otherwise,\n// the component will assume the children have not changed and bail out.\ndidReceiveUpdate=false;}}}else{didReceiveUpdate=false;if(getIsHydrating()&&isForkedChild(workInProgress)){// Check if this child belongs to a list of muliple children in\n// its parent.\n//\n// In a true multi-threaded implementation, we would render children on\n// parallel threads. This would represent the beginning of a new render\n// thread for this subtree.\n//\n// We only use this for id generation during hydration, which is why the\n// logic is located in this special branch.\nvar slotIndex=workInProgress.index;var numberOfForks=getForksAtLevel();pushTreeId(workInProgress,numberOfForks,slotIndex);}}// Before entering the begin phase, clear pending update priority.\n// TODO: This assumes that we're about to evaluate the component and process\n// the update queue. However, there's an exception: SimpleMemoComponent\n// sometimes bails out later in the begin phase. This indicates that we should\n// move this assignment out of the common path and into each branch.\nworkInProgress.lanes=NoLanes;switch(workInProgress.tag){case IndeterminateComponent:{return mountIndeterminateComponent(current,workInProgress,workInProgress.type,renderLanes);}case LazyComponent:{var elementType=workInProgress.elementType;return mountLazyComponent(current,workInProgress,elementType,renderLanes);}case FunctionComponent:{var Component=workInProgress.type;var unresolvedProps=workInProgress.pendingProps;var resolvedProps=workInProgress.elementType===Component?unresolvedProps:resolveDefaultProps(Component,unresolvedProps);return updateFunctionComponent(current,workInProgress,Component,resolvedProps,renderLanes);}case ClassComponent:{var _Component=workInProgress.type;var _unresolvedProps=workInProgress.pendingProps;var _resolvedProps=workInProgress.elementType===_Component?_unresolvedProps:resolveDefaultProps(_Component,_unresolvedProps);return updateClassComponent(current,workInProgress,_Component,_resolvedProps,renderLanes);}case HostRoot:return updateHostRoot(current,workInProgress,renderLanes);case HostComponent:return updateHostComponent(current,workInProgress,renderLanes);case HostText:return updateHostText(current,workInProgress);case SuspenseComponent:return updateSuspenseComponent(current,workInProgress,renderLanes);case HostPortal:return updatePortalComponent(current,workInProgress,renderLanes);case ForwardRef:{var type=workInProgress.type;var _unresolvedProps2=workInProgress.pendingProps;var _resolvedProps2=workInProgress.elementType===type?_unresolvedProps2:resolveDefaultProps(type,_unresolvedProps2);return updateForwardRef(current,workInProgress,type,_resolvedProps2,renderLanes);}case Fragment:return updateFragment(current,workInProgress,renderLanes);case Mode:return updateMode(current,workInProgress,renderLanes);case Profiler:return updateProfiler(current,workInProgress,renderLanes);case ContextProvider:return updateContextProvider(current,workInProgress,renderLanes);case ContextConsumer:return updateContextConsumer(current,workInProgress,renderLanes);case MemoComponent:{var _type2=workInProgress.type;var _unresolvedProps3=workInProgress.pendingProps;// Resolve outer props first, then resolve inner props.\nvar _resolvedProps3=resolveDefaultProps(_type2,_unresolvedProps3);{if(workInProgress.type!==workInProgress.elementType){var outerPropTypes=_type2.propTypes;if(outerPropTypes){checkPropTypes(outerPropTypes,_resolvedProps3,// Resolved for outer only\n'prop',getComponentNameFromType(_type2));}}}_resolvedProps3=resolveDefaultProps(_type2.type,_resolvedProps3);return updateMemoComponent(current,workInProgress,_type2,_resolvedProps3,renderLanes);}case SimpleMemoComponent:{return updateSimpleMemoComponent(current,workInProgress,workInProgress.type,workInProgress.pendingProps,renderLanes);}case IncompleteClassComponent:{var _Component2=workInProgress.type;var _unresolvedProps4=workInProgress.pendingProps;var _resolvedProps4=workInProgress.elementType===_Component2?_unresolvedProps4:resolveDefaultProps(_Component2,_unresolvedProps4);return mountIncompleteClassComponent(current,workInProgress,_Component2,_resolvedProps4,renderLanes);}case SuspenseListComponent:{return updateSuspenseListComponent(current,workInProgress,renderLanes);}case ScopeComponent:{break;}case OffscreenComponent:{return updateOffscreenComponent(current,workInProgress,renderLanes);}}throw new Error(\"Unknown unit of work tag (\"+workInProgress.tag+\"). This error is likely caused by a bug in \"+'React. Please file an issue.');}function markUpdate(workInProgress){// Tag the fiber with an update effect. This turns a Placement into\n// a PlacementAndUpdate.\nworkInProgress.flags|=Update;}function markRef$1(workInProgress){workInProgress.flags|=Ref;{workInProgress.flags|=RefStatic;}}var appendAllChildren;var updateHostContainer;var updateHostComponent$1;var updateHostText$1;{// Mutation mode\nappendAllChildren=function(parent,workInProgress,needsVisibilityToggle,isHidden){// We only have the top Fiber that was created but we need recurse down its\n// children to find all the terminal nodes.\nvar node=workInProgress.child;while(node!==null){if(node.tag===HostComponent||node.tag===HostText){appendInitialChild(parent,node.stateNode);}else if(node.tag===HostPortal);else if(node.child!==null){node.child.return=node;node=node.child;continue;}if(node===workInProgress){return;}while(node.sibling===null){if(node.return===null||node.return===workInProgress){return;}node=node.return;}node.sibling.return=node.return;node=node.sibling;}};updateHostContainer=function(current,workInProgress){// Noop\n};updateHostComponent$1=function(current,workInProgress,type,newProps,rootContainerInstance){// If we have an alternate, that means this is an update and we need to\n// schedule a side-effect to do the updates.\nvar oldProps=current.memoizedProps;if(oldProps===newProps){// In mutation mode, this is sufficient for a bailout because\n// we won't touch this node even if children changed.\nreturn;}// If we get updated because one of our children updated, we don't\n// have newProps so we'll have to reuse them.\n// TODO: Split the update API as separate for the props vs. children.\n// Even better would be if children weren't special cased at all tho.\nvar instance=workInProgress.stateNode;var currentHostContext=getHostContext();// TODO: Experiencing an error where oldProps is null. Suggests a host\n// component is hitting the resume path. Figure out why. Possibly\n// related to `hidden`.\nvar updatePayload=prepareUpdate(instance,type,oldProps,newProps,rootContainerInstance,currentHostContext);// TODO: Type this specific to this type of component.\nworkInProgress.updateQueue=updatePayload;// If the update payload indicates that there is a change or if there\n// is a new ref we mark this as an update. All the work is done in commitWork.\nif(updatePayload){markUpdate(workInProgress);}};updateHostText$1=function(current,workInProgress,oldText,newText){// If the text differs, mark it as an update. All the work in done in commitWork.\nif(oldText!==newText){markUpdate(workInProgress);}};}function cutOffTailIfNeeded(renderState,hasRenderedATailFallback){if(getIsHydrating()){// If we're hydrating, we should consume as many items as we can\n// so we don't leave any behind.\nreturn;}switch(renderState.tailMode){case'hidden':{// Any insertions at the end of the tail list after this point\n// should be invisible. If there are already mounted boundaries\n// anything before them are not considered for collapsing.\n// Therefore we need to go through the whole tail to find if\n// there are any.\nvar tailNode=renderState.tail;var lastTailNode=null;while(tailNode!==null){if(tailNode.alternate!==null){lastTailNode=tailNode;}tailNode=tailNode.sibling;}// Next we're simply going to delete all insertions after the\n// last rendered item.\nif(lastTailNode===null){// All remaining items in the tail are insertions.\nrenderState.tail=null;}else{// Detach the insertion after the last node that was already\n// inserted.\nlastTailNode.sibling=null;}break;}case'collapsed':{// Any insertions at the end of the tail list after this point\n// should be invisible. If there are already mounted boundaries\n// anything before them are not considered for collapsing.\n// Therefore we need to go through the whole tail to find if\n// there are any.\nvar _tailNode=renderState.tail;var _lastTailNode=null;while(_tailNode!==null){if(_tailNode.alternate!==null){_lastTailNode=_tailNode;}_tailNode=_tailNode.sibling;}// Next we're simply going to delete all insertions after the\n// last rendered item.\nif(_lastTailNode===null){// All remaining items in the tail are insertions.\nif(!hasRenderedATailFallback&&renderState.tail!==null){// We suspended during the head. We want to show at least one\n// row at the tail. So we'll keep on and cut off the rest.\nrenderState.tail.sibling=null;}else{renderState.tail=null;}}else{// Detach the insertion after the last node that was already\n// inserted.\n_lastTailNode.sibling=null;}break;}}}function bubbleProperties(completedWork){var didBailout=completedWork.alternate!==null&&completedWork.alternate.child===completedWork.child;var newChildLanes=NoLanes;var subtreeFlags=NoFlags;if(!didBailout){// Bubble up the earliest expiration time.\nif((completedWork.mode&ProfileMode)!==NoMode){// In profiling mode, resetChildExpirationTime is also used to reset\n// profiler durations.\nvar actualDuration=completedWork.actualDuration;var treeBaseDuration=completedWork.selfBaseDuration;var child=completedWork.child;while(child!==null){newChildLanes=mergeLanes(newChildLanes,mergeLanes(child.lanes,child.childLanes));subtreeFlags|=child.subtreeFlags;subtreeFlags|=child.flags;// When a fiber is cloned, its actualDuration is reset to 0. This value will\n// only be updated if work is done on the fiber (i.e. it doesn't bailout).\n// When work is done, it should bubble to the parent's actualDuration. If\n// the fiber has not been cloned though, (meaning no work was done), then\n// this value will reflect the amount of time spent working on a previous\n// render. In that case it should not bubble. We determine whether it was\n// cloned by comparing the child pointer.\nactualDuration+=child.actualDuration;treeBaseDuration+=child.treeBaseDuration;child=child.sibling;}completedWork.actualDuration=actualDuration;completedWork.treeBaseDuration=treeBaseDuration;}else{var _child=completedWork.child;while(_child!==null){newChildLanes=mergeLanes(newChildLanes,mergeLanes(_child.lanes,_child.childLanes));subtreeFlags|=_child.subtreeFlags;subtreeFlags|=_child.flags;// Update the return pointer so the tree is consistent. This is a code\n// smell because it assumes the commit phase is never concurrent with\n// the render phase. Will address during refactor to alternate model.\n_child.return=completedWork;_child=_child.sibling;}}completedWork.subtreeFlags|=subtreeFlags;}else{// Bubble up the earliest expiration time.\nif((completedWork.mode&ProfileMode)!==NoMode){// In profiling mode, resetChildExpirationTime is also used to reset\n// profiler durations.\nvar _treeBaseDuration=completedWork.selfBaseDuration;var _child2=completedWork.child;while(_child2!==null){newChildLanes=mergeLanes(newChildLanes,mergeLanes(_child2.lanes,_child2.childLanes));// \"Static\" flags share the lifetime of the fiber/hook they belong to,\n// so we should bubble those up even during a bailout. All the other\n// flags have a lifetime only of a single render + commit, so we should\n// ignore them.\nsubtreeFlags|=_child2.subtreeFlags&StaticMask;subtreeFlags|=_child2.flags&StaticMask;_treeBaseDuration+=_child2.treeBaseDuration;_child2=_child2.sibling;}completedWork.treeBaseDuration=_treeBaseDuration;}else{var _child3=completedWork.child;while(_child3!==null){newChildLanes=mergeLanes(newChildLanes,mergeLanes(_child3.lanes,_child3.childLanes));// \"Static\" flags share the lifetime of the fiber/hook they belong to,\n// so we should bubble those up even during a bailout. All the other\n// flags have a lifetime only of a single render + commit, so we should\n// ignore them.\nsubtreeFlags|=_child3.subtreeFlags&StaticMask;subtreeFlags|=_child3.flags&StaticMask;// Update the return pointer so the tree is consistent. This is a code\n// smell because it assumes the commit phase is never concurrent with\n// the render phase. Will address during refactor to alternate model.\n_child3.return=completedWork;_child3=_child3.sibling;}}completedWork.subtreeFlags|=subtreeFlags;}completedWork.childLanes=newChildLanes;return didBailout;}function completeDehydratedSuspenseBoundary(current,workInProgress,nextState){if(hasUnhydratedTailNodes()&&(workInProgress.mode&ConcurrentMode)!==NoMode&&(workInProgress.flags&DidCapture)===NoFlags){warnIfUnhydratedTailNodes(workInProgress);resetHydrationState();workInProgress.flags|=ForceClientRender|Incomplete|ShouldCapture;return false;}var wasHydrated=popHydrationState(workInProgress);if(nextState!==null&&nextState.dehydrated!==null){// We might be inside a hydration state the first time we're picking up this\n// Suspense boundary, and also after we've reentered it for further hydration.\nif(current===null){if(!wasHydrated){throw new Error('A dehydrated suspense component was completed without a hydrated node. '+'This is probably a bug in React.');}prepareToHydrateHostSuspenseInstance(workInProgress);bubbleProperties(workInProgress);{if((workInProgress.mode&ProfileMode)!==NoMode){var isTimedOutSuspense=nextState!==null;if(isTimedOutSuspense){// Don't count time spent in a timed out Suspense subtree as part of the base duration.\nvar primaryChildFragment=workInProgress.child;if(primaryChildFragment!==null){// $FlowFixMe Flow doesn't support type casting in combination with the -= operator\nworkInProgress.treeBaseDuration-=primaryChildFragment.treeBaseDuration;}}}}return false;}else{// We might have reentered this boundary to hydrate it. If so, we need to reset the hydration\n// state since we're now exiting out of it. popHydrationState doesn't do that for us.\nresetHydrationState();if((workInProgress.flags&DidCapture)===NoFlags){// This boundary did not suspend so it's now hydrated and unsuspended.\nworkInProgress.memoizedState=null;}// If nothing suspended, we need to schedule an effect to mark this boundary\n// as having hydrated so events know that they're free to be invoked.\n// It's also a signal to replay events and the suspense callback.\n// If something suspended, schedule an effect to attach retry listeners.\n// So we might as well always mark this.\nworkInProgress.flags|=Update;bubbleProperties(workInProgress);{if((workInProgress.mode&ProfileMode)!==NoMode){var _isTimedOutSuspense=nextState!==null;if(_isTimedOutSuspense){// Don't count time spent in a timed out Suspense subtree as part of the base duration.\nvar _primaryChildFragment=workInProgress.child;if(_primaryChildFragment!==null){// $FlowFixMe Flow doesn't support type casting in combination with the -= operator\nworkInProgress.treeBaseDuration-=_primaryChildFragment.treeBaseDuration;}}}}return false;}}else{// Successfully completed this tree. If this was a forced client render,\n// there may have been recoverable errors during first hydration\n// attempt. If so, add them to a queue so we can log them in the\n// commit phase.\nupgradeHydrationErrorsToRecoverable();// Fall through to normal Suspense path\nreturn true;}}function completeWork(current,workInProgress,renderLanes){var newProps=workInProgress.pendingProps;// Note: This intentionally doesn't check if we're hydrating because comparing\n// to the current tree provider fiber is just as fast and less error-prone.\n// Ideally we would have a special version of the work loop only\n// for hydration.\npopTreeContext(workInProgress);switch(workInProgress.tag){case IndeterminateComponent:case LazyComponent:case SimpleMemoComponent:case FunctionComponent:case ForwardRef:case Fragment:case Mode:case Profiler:case ContextConsumer:case MemoComponent:bubbleProperties(workInProgress);return null;case ClassComponent:{var Component=workInProgress.type;if(isContextProvider(Component)){popContext(workInProgress);}bubbleProperties(workInProgress);return null;}case HostRoot:{var fiberRoot=workInProgress.stateNode;popHostContainer(workInProgress);popTopLevelContextObject(workInProgress);resetWorkInProgressVersions();if(fiberRoot.pendingContext){fiberRoot.context=fiberRoot.pendingContext;fiberRoot.pendingContext=null;}if(current===null||current.child===null){// If we hydrated, pop so that we can delete any remaining children\n// that weren't hydrated.\nvar wasHydrated=popHydrationState(workInProgress);if(wasHydrated){// If we hydrated, then we'll need to schedule an update for\n// the commit side-effects on the root.\nmarkUpdate(workInProgress);}else{if(current!==null){var prevState=current.memoizedState;if(// Check if this is a client root\n!prevState.isDehydrated||// Check if we reverted to client rendering (e.g. due to an error)\n(workInProgress.flags&ForceClientRender)!==NoFlags){// Schedule an effect to clear this container at the start of the\n// next commit. This handles the case of React rendering into a\n// container with previous children. It's also safe to do for\n// updates too, because current.child would only be null if the\n// previous render was null (so the container would already\n// be empty).\nworkInProgress.flags|=Snapshot;// If this was a forced client render, there may have been\n// recoverable errors during first hydration attempt. If so, add\n// them to a queue so we can log them in the commit phase.\nupgradeHydrationErrorsToRecoverable();}}}}updateHostContainer(current,workInProgress);bubbleProperties(workInProgress);return null;}case HostComponent:{popHostContext(workInProgress);var rootContainerInstance=getRootHostContainer();var type=workInProgress.type;if(current!==null&&workInProgress.stateNode!=null){updateHostComponent$1(current,workInProgress,type,newProps,rootContainerInstance);if(current.ref!==workInProgress.ref){markRef$1(workInProgress);}}else{if(!newProps){if(workInProgress.stateNode===null){throw new Error('We must have new props for new mounts. This error is likely '+'caused by a bug in React. Please file an issue.');}// This can happen when we abort work.\nbubbleProperties(workInProgress);return null;}var currentHostContext=getHostContext();// TODO: Move createInstance to beginWork and keep it on a context\n// \"stack\" as the parent. Then append children as we go in beginWork\n// or completeWork depending on whether we want to add them top->down or\n// bottom->up. Top->down is faster in IE11.\nvar _wasHydrated=popHydrationState(workInProgress);if(_wasHydrated){// TODO: Move this and createInstance step into the beginPhase\n// to consolidate.\nif(prepareToHydrateHostInstance(workInProgress,rootContainerInstance,currentHostContext)){// If changes to the hydrated node need to be applied at the\n// commit-phase we mark this as such.\nmarkUpdate(workInProgress);}}else{var instance=createInstance(type,newProps,rootContainerInstance,currentHostContext,workInProgress);appendAllChildren(instance,workInProgress,false,false);workInProgress.stateNode=instance;// Certain renderers require commit-time effects for initial mount.\n// (eg DOM renderer supports auto-focus for certain elements).\n// Make sure such renderers get scheduled for later work.\nif(finalizeInitialChildren(instance,type,newProps,rootContainerInstance)){markUpdate(workInProgress);}}if(workInProgress.ref!==null){// If there is a ref on a host node we need to schedule a callback\nmarkRef$1(workInProgress);}}bubbleProperties(workInProgress);return null;}case HostText:{var newText=newProps;if(current&&workInProgress.stateNode!=null){var oldText=current.memoizedProps;// If we have an alternate, that means this is an update and we need\n// to schedule a side-effect to do the updates.\nupdateHostText$1(current,workInProgress,oldText,newText);}else{if(typeof newText!=='string'){if(workInProgress.stateNode===null){throw new Error('We must have new props for new mounts. This error is likely '+'caused by a bug in React. Please file an issue.');}// This can happen when we abort work.\n}var _rootContainerInstance=getRootHostContainer();var _currentHostContext=getHostContext();var _wasHydrated2=popHydrationState(workInProgress);if(_wasHydrated2){if(prepareToHydrateHostTextInstance(workInProgress)){markUpdate(workInProgress);}}else{workInProgress.stateNode=createTextInstance(newText,_rootContainerInstance,_currentHostContext,workInProgress);}}bubbleProperties(workInProgress);return null;}case SuspenseComponent:{popSuspenseContext(workInProgress);var nextState=workInProgress.memoizedState;// Special path for dehydrated boundaries. We may eventually move this\n// to its own fiber type so that we can add other kinds of hydration\n// boundaries that aren't associated with a Suspense tree. In anticipation\n// of such a refactor, all the hydration logic is contained in\n// this branch.\nif(current===null||current.memoizedState!==null&&current.memoizedState.dehydrated!==null){var fallthroughToNormalSuspensePath=completeDehydratedSuspenseBoundary(current,workInProgress,nextState);if(!fallthroughToNormalSuspensePath){if(workInProgress.flags&ShouldCapture){// Special case. There were remaining unhydrated nodes. We treat\n// this as a mismatch. Revert to client rendering.\nreturn workInProgress;}else{// Did not finish hydrating, either because this is the initial\n// render or because something suspended.\nreturn null;}}// Continue with the normal Suspense path.\n}if((workInProgress.flags&DidCapture)!==NoFlags){// Something suspended. Re-render with the fallback children.\nworkInProgress.lanes=renderLanes;// Do not reset the effect list.\nif((workInProgress.mode&ProfileMode)!==NoMode){transferActualDuration(workInProgress);}// Don't bubble properties in this case.\nreturn workInProgress;}var nextDidTimeout=nextState!==null;var prevDidTimeout=current!==null&&current.memoizedState!==null;// a passive effect, which is when we process the transitions\nif(nextDidTimeout!==prevDidTimeout){// an effect to toggle the subtree's visibility. When we switch from\n// fallback -> primary, the inner Offscreen fiber schedules this effect\n// as part of its normal complete phase. But when we switch from\n// primary -> fallback, the inner Offscreen fiber does not have a complete\n// phase. So we need to schedule its effect here.\n//\n// We also use this flag to connect/disconnect the effects, but the same\n// logic applies: when re-connecting, the Offscreen fiber's complete\n// phase will handle scheduling the effect. It's only when the fallback\n// is active that we have to do anything special.\nif(nextDidTimeout){var _offscreenFiber2=workInProgress.child;_offscreenFiber2.flags|=Visibility;// TODO: This will still suspend a synchronous tree if anything\n// in the concurrent tree already suspended during this render.\n// This is a known bug.\nif((workInProgress.mode&ConcurrentMode)!==NoMode){// TODO: Move this back to throwException because this is too late\n// if this is a large tree which is common for initial loads. We\n// don't know if we should restart a render or not until we get\n// this marker, and this is too late.\n// If this render already had a ping or lower pri updates,\n// and this is the first time we know we're going to suspend we\n// should be able to immediately restart from within throwException.\nvar hasInvisibleChildContext=current===null&&(workInProgress.memoizedProps.unstable_avoidThisFallback!==true||!enableSuspenseAvoidThisFallback);if(hasInvisibleChildContext||hasSuspenseContext(suspenseStackCursor.current,InvisibleParentSuspenseContext)){// If this was in an invisible tree or a new render, then showing\n// this boundary is ok.\nrenderDidSuspend();}else{// Otherwise, we're going to have to hide content so we should\n// suspend for longer if possible.\nrenderDidSuspendDelayIfPossible();}}}}var wakeables=workInProgress.updateQueue;if(wakeables!==null){// Schedule an effect to attach a retry listener to the promise.\n// TODO: Move to passive phase\nworkInProgress.flags|=Update;}bubbleProperties(workInProgress);{if((workInProgress.mode&ProfileMode)!==NoMode){if(nextDidTimeout){// Don't count time spent in a timed out Suspense subtree as part of the base duration.\nvar primaryChildFragment=workInProgress.child;if(primaryChildFragment!==null){// $FlowFixMe Flow doesn't support type casting in combination with the -= operator\nworkInProgress.treeBaseDuration-=primaryChildFragment.treeBaseDuration;}}}}return null;}case HostPortal:popHostContainer(workInProgress);updateHostContainer(current,workInProgress);if(current===null){preparePortalMount(workInProgress.stateNode.containerInfo);}bubbleProperties(workInProgress);return null;case ContextProvider:// Pop provider fiber\nvar context=workInProgress.type._context;popProvider(context,workInProgress);bubbleProperties(workInProgress);return null;case IncompleteClassComponent:{// Same as class component case. I put it down here so that the tags are\n// sequential to ensure this switch is compiled to a jump table.\nvar _Component=workInProgress.type;if(isContextProvider(_Component)){popContext(workInProgress);}bubbleProperties(workInProgress);return null;}case SuspenseListComponent:{popSuspenseContext(workInProgress);var renderState=workInProgress.memoizedState;if(renderState===null){// We're running in the default, \"independent\" mode.\n// We don't do anything in this mode.\nbubbleProperties(workInProgress);return null;}var didSuspendAlready=(workInProgress.flags&DidCapture)!==NoFlags;var renderedTail=renderState.rendering;if(renderedTail===null){// We just rendered the head.\nif(!didSuspendAlready){// This is the first pass. We need to figure out if anything is still\n// suspended in the rendered set.\n// If new content unsuspended, but there's still some content that\n// didn't. Then we need to do a second pass that forces everything\n// to keep showing their fallbacks.\n// We might be suspended if something in this render pass suspended, or\n// something in the previous committed pass suspended. Otherwise,\n// there's no chance so we can skip the expensive call to\n// findFirstSuspended.\nvar cannotBeSuspended=renderHasNotSuspendedYet()&&(current===null||(current.flags&DidCapture)===NoFlags);if(!cannotBeSuspended){var row=workInProgress.child;while(row!==null){var suspended=findFirstSuspended(row);if(suspended!==null){didSuspendAlready=true;workInProgress.flags|=DidCapture;cutOffTailIfNeeded(renderState,false);// If this is a newly suspended tree, it might not get committed as\n// part of the second pass. In that case nothing will subscribe to\n// its thenables. Instead, we'll transfer its thenables to the\n// SuspenseList so that it can retry if they resolve.\n// There might be multiple of these in the list but since we're\n// going to wait for all of them anyway, it doesn't really matter\n// which ones gets to ping. In theory we could get clever and keep\n// track of how many dependencies remain but it gets tricky because\n// in the meantime, we can add/remove/change items and dependencies.\n// We might bail out of the loop before finding any but that\n// doesn't matter since that means that the other boundaries that\n// we did find already has their listeners attached.\nvar newThenables=suspended.updateQueue;if(newThenables!==null){workInProgress.updateQueue=newThenables;workInProgress.flags|=Update;}// Rerender the whole list, but this time, we'll force fallbacks\n// to stay in place.\n// Reset the effect flags before doing the second pass since that's now invalid.\n// Reset the child fibers to their original state.\nworkInProgress.subtreeFlags=NoFlags;resetChildFibers(workInProgress,renderLanes);// Set up the Suspense Context to force suspense and immediately\n// rerender the children.\npushSuspenseContext(workInProgress,setShallowSuspenseContext(suspenseStackCursor.current,ForceSuspenseFallback));// Don't bubble properties in this case.\nreturn workInProgress.child;}row=row.sibling;}}if(renderState.tail!==null&&now()>getRenderTargetTime()){// We have already passed our CPU deadline but we still have rows\n// left in the tail. We'll just give up further attempts to render\n// the main content and only render fallbacks.\nworkInProgress.flags|=DidCapture;didSuspendAlready=true;cutOffTailIfNeeded(renderState,false);// Since nothing actually suspended, there will nothing to ping this\n// to get it started back up to attempt the next item. While in terms\n// of priority this work has the same priority as this current render,\n// it's not part of the same transition once the transition has\n// committed. If it's sync, we still want to yield so that it can be\n// painted. Conceptually, this is really the same as pinging.\n// We can use any RetryLane even if it's the one currently rendering\n// since we're leaving it behind on this node.\nworkInProgress.lanes=SomeRetryLane;}}else{cutOffTailIfNeeded(renderState,false);}// Next we're going to render the tail.\n}else{// Append the rendered row to the child list.\nif(!didSuspendAlready){var _suspended=findFirstSuspended(renderedTail);if(_suspended!==null){workInProgress.flags|=DidCapture;didSuspendAlready=true;// Ensure we transfer the update queue to the parent so that it doesn't\n// get lost if this row ends up dropped during a second pass.\nvar _newThenables=_suspended.updateQueue;if(_newThenables!==null){workInProgress.updateQueue=_newThenables;workInProgress.flags|=Update;}cutOffTailIfNeeded(renderState,true);// This might have been modified.\nif(renderState.tail===null&&renderState.tailMode==='hidden'&&!renderedTail.alternate&&!getIsHydrating()// We don't cut it if we're hydrating.\n){// We're done.\nbubbleProperties(workInProgress);return null;}}else if(// The time it took to render last row is greater than the remaining\n// time we have to render. So rendering one more row would likely\n// exceed it.\nnow()*2-renderState.renderingStartTime>getRenderTargetTime()&&renderLanes!==OffscreenLane){// We have now passed our CPU deadline and we'll just give up further\n// attempts to render the main content and only render fallbacks.\n// The assumption is that this is usually faster.\nworkInProgress.flags|=DidCapture;didSuspendAlready=true;cutOffTailIfNeeded(renderState,false);// Since nothing actually suspended, there will nothing to ping this\n// to get it started back up to attempt the next item. While in terms\n// of priority this work has the same priority as this current render,\n// it's not part of the same transition once the transition has\n// committed. If it's sync, we still want to yield so that it can be\n// painted. Conceptually, this is really the same as pinging.\n// We can use any RetryLane even if it's the one currently rendering\n// since we're leaving it behind on this node.\nworkInProgress.lanes=SomeRetryLane;}}if(renderState.isBackwards){// The effect list of the backwards tail will have been added\n// to the end. This breaks the guarantee that life-cycles fire in\n// sibling order but that isn't a strong guarantee promised by React.\n// Especially since these might also just pop in during future commits.\n// Append to the beginning of the list.\nrenderedTail.sibling=workInProgress.child;workInProgress.child=renderedTail;}else{var previousSibling=renderState.last;if(previousSibling!==null){previousSibling.sibling=renderedTail;}else{workInProgress.child=renderedTail;}renderState.last=renderedTail;}}if(renderState.tail!==null){// We still have tail rows to render.\n// Pop a row.\nvar next=renderState.tail;renderState.rendering=next;renderState.tail=next.sibling;renderState.renderingStartTime=now();next.sibling=null;// Restore the context.\n// TODO: We can probably just avoid popping it instead and only\n// setting it the first time we go from not suspended to suspended.\nvar suspenseContext=suspenseStackCursor.current;if(didSuspendAlready){suspenseContext=setShallowSuspenseContext(suspenseContext,ForceSuspenseFallback);}else{suspenseContext=setDefaultShallowSuspenseContext(suspenseContext);}pushSuspenseContext(workInProgress,suspenseContext);// Do a pass over the next row.\n// Don't bubble properties in this case.\nreturn next;}bubbleProperties(workInProgress);return null;}case ScopeComponent:{break;}case OffscreenComponent:case LegacyHiddenComponent:{popRenderLanes(workInProgress);var _nextState=workInProgress.memoizedState;var nextIsHidden=_nextState!==null;if(current!==null){var _prevState=current.memoizedState;var prevIsHidden=_prevState!==null;if(prevIsHidden!==nextIsHidden&&// LegacyHidden doesn't do any hiding — it only pre-renders.\n!enableLegacyHidden){workInProgress.flags|=Visibility;}}if(!nextIsHidden||(workInProgress.mode&ConcurrentMode)===NoMode){bubbleProperties(workInProgress);}else{// Don't bubble properties for hidden children unless we're rendering\n// at offscreen priority.\nif(includesSomeLane(subtreeRenderLanes,OffscreenLane)){bubbleProperties(workInProgress);{// Check if there was an insertion or update in the hidden subtree.\n// If so, we need to hide those nodes in the commit phase, so\n// schedule a visibility effect.\nif(workInProgress.subtreeFlags&(Placement|Update)){workInProgress.flags|=Visibility;}}}}return null;}case CacheComponent:{return null;}case TracingMarkerComponent:{return null;}}throw new Error(\"Unknown unit of work tag (\"+workInProgress.tag+\"). This error is likely caused by a bug in \"+'React. Please file an issue.');}function unwindWork(current,workInProgress,renderLanes){// Note: This intentionally doesn't check if we're hydrating because comparing\n// to the current tree provider fiber is just as fast and less error-prone.\n// Ideally we would have a special version of the work loop only\n// for hydration.\npopTreeContext(workInProgress);switch(workInProgress.tag){case ClassComponent:{var Component=workInProgress.type;if(isContextProvider(Component)){popContext(workInProgress);}var flags=workInProgress.flags;if(flags&ShouldCapture){workInProgress.flags=flags&~ShouldCapture|DidCapture;if((workInProgress.mode&ProfileMode)!==NoMode){transferActualDuration(workInProgress);}return workInProgress;}return null;}case HostRoot:{var root=workInProgress.stateNode;popHostContainer(workInProgress);popTopLevelContextObject(workInProgress);resetWorkInProgressVersions();var _flags=workInProgress.flags;if((_flags&ShouldCapture)!==NoFlags&&(_flags&DidCapture)===NoFlags){// There was an error during render that wasn't captured by a suspense\n// boundary. Do a second pass on the root to unmount the children.\nworkInProgress.flags=_flags&~ShouldCapture|DidCapture;return workInProgress;}// We unwound to the root without completing it. Exit.\nreturn null;}case HostComponent:{// TODO: popHydrationState\npopHostContext(workInProgress);return null;}case SuspenseComponent:{popSuspenseContext(workInProgress);var suspenseState=workInProgress.memoizedState;if(suspenseState!==null&&suspenseState.dehydrated!==null){if(workInProgress.alternate===null){throw new Error('Threw in newly mounted dehydrated component. This is likely a bug in '+'React. Please file an issue.');}resetHydrationState();}var _flags2=workInProgress.flags;if(_flags2&ShouldCapture){workInProgress.flags=_flags2&~ShouldCapture|DidCapture;// Captured a suspense effect. Re-render the boundary.\nif((workInProgress.mode&ProfileMode)!==NoMode){transferActualDuration(workInProgress);}return workInProgress;}return null;}case SuspenseListComponent:{popSuspenseContext(workInProgress);// SuspenseList doesn't actually catch anything. It should've been\n// caught by a nested boundary. If not, it should bubble through.\nreturn null;}case HostPortal:popHostContainer(workInProgress);return null;case ContextProvider:var context=workInProgress.type._context;popProvider(context,workInProgress);return null;case OffscreenComponent:case LegacyHiddenComponent:popRenderLanes(workInProgress);return null;case CacheComponent:return null;default:return null;}}function unwindInterruptedWork(current,interruptedWork,renderLanes){// Note: This intentionally doesn't check if we're hydrating because comparing\n// to the current tree provider fiber is just as fast and less error-prone.\n// Ideally we would have a special version of the work loop only\n// for hydration.\npopTreeContext(interruptedWork);switch(interruptedWork.tag){case ClassComponent:{var childContextTypes=interruptedWork.type.childContextTypes;if(childContextTypes!==null&&childContextTypes!==undefined){popContext(interruptedWork);}break;}case HostRoot:{var root=interruptedWork.stateNode;popHostContainer(interruptedWork);popTopLevelContextObject(interruptedWork);resetWorkInProgressVersions();break;}case HostComponent:{popHostContext(interruptedWork);break;}case HostPortal:popHostContainer(interruptedWork);break;case SuspenseComponent:popSuspenseContext(interruptedWork);break;case SuspenseListComponent:popSuspenseContext(interruptedWork);break;case ContextProvider:var context=interruptedWork.type._context;popProvider(context,interruptedWork);break;case OffscreenComponent:case LegacyHiddenComponent:popRenderLanes(interruptedWork);break;}}var didWarnAboutUndefinedSnapshotBeforeUpdate=null;{didWarnAboutUndefinedSnapshotBeforeUpdate=new Set();}// Used during the commit phase to track the state of the Offscreen component stack.\n// Allows us to avoid traversing the return path to find the nearest Offscreen ancestor.\n// Only used when enableSuspenseLayoutEffectSemantics is enabled.\nvar offscreenSubtreeIsHidden=false;var offscreenSubtreeWasHidden=false;var PossiblyWeakSet=typeof WeakSet==='function'?WeakSet:Set;var nextEffect=null;// Used for Profiling builds to track updaters.\nvar inProgressLanes=null;var inProgressRoot=null;function reportUncaughtErrorInDEV(error){// Wrapping each small part of the commit phase into a guarded\n// callback is a bit too slow (https://github.com/facebook/react/pull/21666).\n// But we rely on it to surface errors to DEV tools like overlays\n// (https://github.com/facebook/react/issues/21712).\n// As a compromise, rethrow only caught errors in a guard.\n{invokeGuardedCallback(null,function(){throw error;});clearCaughtError();}}var callComponentWillUnmountWithTimer=function(current,instance){instance.props=current.memoizedProps;instance.state=current.memoizedState;if(current.mode&ProfileMode){try{startLayoutEffectTimer();instance.componentWillUnmount();}finally{recordLayoutEffectDuration(current);}}else{instance.componentWillUnmount();}};// Capture errors so they don't interrupt mounting.\nfunction safelyCallCommitHookLayoutEffectListMount(current,nearestMountedAncestor){try{commitHookEffectListMount(Layout,current);}catch(error){captureCommitPhaseError(current,nearestMountedAncestor,error);}}// Capture errors so they don't interrupt unmounting.\nfunction safelyCallComponentWillUnmount(current,nearestMountedAncestor,instance){try{callComponentWillUnmountWithTimer(current,instance);}catch(error){captureCommitPhaseError(current,nearestMountedAncestor,error);}}// Capture errors so they don't interrupt mounting.\nfunction safelyCallComponentDidMount(current,nearestMountedAncestor,instance){try{instance.componentDidMount();}catch(error){captureCommitPhaseError(current,nearestMountedAncestor,error);}}// Capture errors so they don't interrupt mounting.\nfunction safelyAttachRef(current,nearestMountedAncestor){try{commitAttachRef(current);}catch(error){captureCommitPhaseError(current,nearestMountedAncestor,error);}}function safelyDetachRef(current,nearestMountedAncestor){var ref=current.ref;if(ref!==null){if(typeof ref==='function'){var retVal;try{if(enableProfilerTimer&&enableProfilerCommitHooks&&current.mode&ProfileMode){try{startLayoutEffectTimer();retVal=ref(null);}finally{recordLayoutEffectDuration(current);}}else{retVal=ref(null);}}catch(error){captureCommitPhaseError(current,nearestMountedAncestor,error);}{if(typeof retVal==='function'){error('Unexpected return value from a callback ref in %s. '+'A callback ref should not return a function.',getComponentNameFromFiber(current));}}}else{ref.current=null;}}}function safelyCallDestroy(current,nearestMountedAncestor,destroy){try{destroy();}catch(error){captureCommitPhaseError(current,nearestMountedAncestor,error);}}var focusedInstanceHandle=null;var shouldFireAfterActiveInstanceBlur=false;function commitBeforeMutationEffects(root,firstChild){focusedInstanceHandle=prepareForCommit(root.containerInfo);nextEffect=firstChild;commitBeforeMutationEffects_begin();// We no longer need to track the active instance fiber\nvar shouldFire=shouldFireAfterActiveInstanceBlur;shouldFireAfterActiveInstanceBlur=false;focusedInstanceHandle=null;return shouldFire;}function commitBeforeMutationEffects_begin(){while(nextEffect!==null){var fiber=nextEffect;// This phase is only used for beforeActiveInstanceBlur.\nvar child=fiber.child;if((fiber.subtreeFlags&BeforeMutationMask)!==NoFlags&&child!==null){child.return=fiber;nextEffect=child;}else{commitBeforeMutationEffects_complete();}}}function commitBeforeMutationEffects_complete(){while(nextEffect!==null){var fiber=nextEffect;setCurrentFiber(fiber);try{commitBeforeMutationEffectsOnFiber(fiber);}catch(error){captureCommitPhaseError(fiber,fiber.return,error);}resetCurrentFiber();var sibling=fiber.sibling;if(sibling!==null){sibling.return=fiber.return;nextEffect=sibling;return;}nextEffect=fiber.return;}}function commitBeforeMutationEffectsOnFiber(finishedWork){var current=finishedWork.alternate;var flags=finishedWork.flags;if((flags&Snapshot)!==NoFlags){setCurrentFiber(finishedWork);switch(finishedWork.tag){case FunctionComponent:case ForwardRef:case SimpleMemoComponent:{break;}case ClassComponent:{if(current!==null){var prevProps=current.memoizedProps;var prevState=current.memoizedState;var instance=finishedWork.stateNode;// We could update instance props and state here,\n// but instead we rely on them being set during last render.\n// TODO: revisit this when we implement resuming.\n{if(finishedWork.type===finishedWork.elementType&&!didWarnAboutReassigningProps){if(instance.props!==finishedWork.memoizedProps){error('Expected %s props to match memoized props before '+'getSnapshotBeforeUpdate. '+'This might either be because of a bug in React, or because '+'a component reassigns its own `this.props`. '+'Please file an issue.',getComponentNameFromFiber(finishedWork)||'instance');}if(instance.state!==finishedWork.memoizedState){error('Expected %s state to match memoized state before '+'getSnapshotBeforeUpdate. '+'This might either be because of a bug in React, or because '+'a component reassigns its own `this.state`. '+'Please file an issue.',getComponentNameFromFiber(finishedWork)||'instance');}}}var snapshot=instance.getSnapshotBeforeUpdate(finishedWork.elementType===finishedWork.type?prevProps:resolveDefaultProps(finishedWork.type,prevProps),prevState);{var didWarnSet=didWarnAboutUndefinedSnapshotBeforeUpdate;if(snapshot===undefined&&!didWarnSet.has(finishedWork.type)){didWarnSet.add(finishedWork.type);error('%s.getSnapshotBeforeUpdate(): A snapshot value (or null) '+'must be returned. You have returned undefined.',getComponentNameFromFiber(finishedWork));}}instance.__reactInternalSnapshotBeforeUpdate=snapshot;}break;}case HostRoot:{{var root=finishedWork.stateNode;clearContainer(root.containerInfo);}break;}case HostComponent:case HostText:case HostPortal:case IncompleteClassComponent:// Nothing to do for these component types\nbreak;default:{throw new Error('This unit of work tag should not have side-effects. This error is '+'likely caused by a bug in React. Please file an issue.');}}resetCurrentFiber();}}function commitHookEffectListUnmount(flags,finishedWork,nearestMountedAncestor){var updateQueue=finishedWork.updateQueue;var lastEffect=updateQueue!==null?updateQueue.lastEffect:null;if(lastEffect!==null){var firstEffect=lastEffect.next;var effect=firstEffect;do{if((effect.tag&flags)===flags){// Unmount\nvar destroy=effect.destroy;effect.destroy=undefined;if(destroy!==undefined){{if((flags&Passive$1)!==NoFlags$1){markComponentPassiveEffectUnmountStarted(finishedWork);}else if((flags&Layout)!==NoFlags$1){markComponentLayoutEffectUnmountStarted(finishedWork);}}{if((flags&Insertion)!==NoFlags$1){setIsRunningInsertionEffect(true);}}safelyCallDestroy(finishedWork,nearestMountedAncestor,destroy);{if((flags&Insertion)!==NoFlags$1){setIsRunningInsertionEffect(false);}}{if((flags&Passive$1)!==NoFlags$1){markComponentPassiveEffectUnmountStopped();}else if((flags&Layout)!==NoFlags$1){markComponentLayoutEffectUnmountStopped();}}}}effect=effect.next;}while(effect!==firstEffect);}}function commitHookEffectListMount(flags,finishedWork){var updateQueue=finishedWork.updateQueue;var lastEffect=updateQueue!==null?updateQueue.lastEffect:null;if(lastEffect!==null){var firstEffect=lastEffect.next;var effect=firstEffect;do{if((effect.tag&flags)===flags){{if((flags&Passive$1)!==NoFlags$1){markComponentPassiveEffectMountStarted(finishedWork);}else if((flags&Layout)!==NoFlags$1){markComponentLayoutEffectMountStarted(finishedWork);}}// Mount\nvar create=effect.create;{if((flags&Insertion)!==NoFlags$1){setIsRunningInsertionEffect(true);}}effect.destroy=create();{if((flags&Insertion)!==NoFlags$1){setIsRunningInsertionEffect(false);}}{if((flags&Passive$1)!==NoFlags$1){markComponentPassiveEffectMountStopped();}else if((flags&Layout)!==NoFlags$1){markComponentLayoutEffectMountStopped();}}{var destroy=effect.destroy;if(destroy!==undefined&&typeof destroy!=='function'){var hookName=void 0;if((effect.tag&Layout)!==NoFlags){hookName='useLayoutEffect';}else if((effect.tag&Insertion)!==NoFlags){hookName='useInsertionEffect';}else{hookName='useEffect';}var addendum=void 0;if(destroy===null){addendum=' You returned null. If your effect does not require clean '+'up, return undefined (or nothing).';}else if(typeof destroy.then==='function'){addendum='\\n\\nIt looks like you wrote '+hookName+'(async () => ...) or returned a Promise. '+'Instead, write the async function inside your effect '+'and call it immediately:\\n\\n'+hookName+'(() => {\\n'+'  async function fetchData() {\\n'+'    // You can await here\\n'+'    const response = await MyAPI.getData(someId);\\n'+'    // ...\\n'+'  }\\n'+'  fetchData();\\n'+\"}, [someId]); // Or [] if effect doesn't need props or state\\n\\n\"+'Learn more about data fetching with Hooks: https://reactjs.org/link/hooks-data-fetching';}else{addendum=' You returned: '+destroy;}error('%s must not return anything besides a function, '+'which is used for clean-up.%s',hookName,addendum);}}}effect=effect.next;}while(effect!==firstEffect);}}function commitPassiveEffectDurations(finishedRoot,finishedWork){{// Only Profilers with work in their subtree will have an Update effect scheduled.\nif((finishedWork.flags&Update)!==NoFlags){switch(finishedWork.tag){case Profiler:{var passiveEffectDuration=finishedWork.stateNode.passiveEffectDuration;var _finishedWork$memoize=finishedWork.memoizedProps,id=_finishedWork$memoize.id,onPostCommit=_finishedWork$memoize.onPostCommit;// This value will still reflect the previous commit phase.\n// It does not get reset until the start of the next commit phase.\nvar commitTime=getCommitTime();var phase=finishedWork.alternate===null?'mount':'update';{if(isCurrentUpdateNested()){phase='nested-update';}}if(typeof onPostCommit==='function'){onPostCommit(id,phase,passiveEffectDuration,commitTime);}// Bubble times to the next nearest ancestor Profiler.\n// After we process that Profiler, we'll bubble further up.\nvar parentFiber=finishedWork.return;outer:while(parentFiber!==null){switch(parentFiber.tag){case HostRoot:var root=parentFiber.stateNode;root.passiveEffectDuration+=passiveEffectDuration;break outer;case Profiler:var parentStateNode=parentFiber.stateNode;parentStateNode.passiveEffectDuration+=passiveEffectDuration;break outer;}parentFiber=parentFiber.return;}break;}}}}}function commitLayoutEffectOnFiber(finishedRoot,current,finishedWork,committedLanes){if((finishedWork.flags&LayoutMask)!==NoFlags){switch(finishedWork.tag){case FunctionComponent:case ForwardRef:case SimpleMemoComponent:{if(!offscreenSubtreeWasHidden){// At this point layout effects have already been destroyed (during mutation phase).\n// This is done to prevent sibling component effects from interfering with each other,\n// e.g. a destroy function in one component should never override a ref set\n// by a create function in another component during the same commit.\nif(finishedWork.mode&ProfileMode){try{startLayoutEffectTimer();commitHookEffectListMount(Layout|HasEffect,finishedWork);}finally{recordLayoutEffectDuration(finishedWork);}}else{commitHookEffectListMount(Layout|HasEffect,finishedWork);}}break;}case ClassComponent:{var instance=finishedWork.stateNode;if(finishedWork.flags&Update){if(!offscreenSubtreeWasHidden){if(current===null){// We could update instance props and state here,\n// but instead we rely on them being set during last render.\n// TODO: revisit this when we implement resuming.\n{if(finishedWork.type===finishedWork.elementType&&!didWarnAboutReassigningProps){if(instance.props!==finishedWork.memoizedProps){error('Expected %s props to match memoized props before '+'componentDidMount. '+'This might either be because of a bug in React, or because '+'a component reassigns its own `this.props`. '+'Please file an issue.',getComponentNameFromFiber(finishedWork)||'instance');}if(instance.state!==finishedWork.memoizedState){error('Expected %s state to match memoized state before '+'componentDidMount. '+'This might either be because of a bug in React, or because '+'a component reassigns its own `this.state`. '+'Please file an issue.',getComponentNameFromFiber(finishedWork)||'instance');}}}if(finishedWork.mode&ProfileMode){try{startLayoutEffectTimer();instance.componentDidMount();}finally{recordLayoutEffectDuration(finishedWork);}}else{instance.componentDidMount();}}else{var prevProps=finishedWork.elementType===finishedWork.type?current.memoizedProps:resolveDefaultProps(finishedWork.type,current.memoizedProps);var prevState=current.memoizedState;// We could update instance props and state here,\n// but instead we rely on them being set during last render.\n// TODO: revisit this when we implement resuming.\n{if(finishedWork.type===finishedWork.elementType&&!didWarnAboutReassigningProps){if(instance.props!==finishedWork.memoizedProps){error('Expected %s props to match memoized props before '+'componentDidUpdate. '+'This might either be because of a bug in React, or because '+'a component reassigns its own `this.props`. '+'Please file an issue.',getComponentNameFromFiber(finishedWork)||'instance');}if(instance.state!==finishedWork.memoizedState){error('Expected %s state to match memoized state before '+'componentDidUpdate. '+'This might either be because of a bug in React, or because '+'a component reassigns its own `this.state`. '+'Please file an issue.',getComponentNameFromFiber(finishedWork)||'instance');}}}if(finishedWork.mode&ProfileMode){try{startLayoutEffectTimer();instance.componentDidUpdate(prevProps,prevState,instance.__reactInternalSnapshotBeforeUpdate);}finally{recordLayoutEffectDuration(finishedWork);}}else{instance.componentDidUpdate(prevProps,prevState,instance.__reactInternalSnapshotBeforeUpdate);}}}}// TODO: I think this is now always non-null by the time it reaches the\n// commit phase. Consider removing the type check.\nvar updateQueue=finishedWork.updateQueue;if(updateQueue!==null){{if(finishedWork.type===finishedWork.elementType&&!didWarnAboutReassigningProps){if(instance.props!==finishedWork.memoizedProps){error('Expected %s props to match memoized props before '+'processing the update queue. '+'This might either be because of a bug in React, or because '+'a component reassigns its own `this.props`. '+'Please file an issue.',getComponentNameFromFiber(finishedWork)||'instance');}if(instance.state!==finishedWork.memoizedState){error('Expected %s state to match memoized state before '+'processing the update queue. '+'This might either be because of a bug in React, or because '+'a component reassigns its own `this.state`. '+'Please file an issue.',getComponentNameFromFiber(finishedWork)||'instance');}}}// We could update instance props and state here,\n// but instead we rely on them being set during last render.\n// TODO: revisit this when we implement resuming.\ncommitUpdateQueue(finishedWork,updateQueue,instance);}break;}case HostRoot:{// TODO: I think this is now always non-null by the time it reaches the\n// commit phase. Consider removing the type check.\nvar _updateQueue=finishedWork.updateQueue;if(_updateQueue!==null){var _instance=null;if(finishedWork.child!==null){switch(finishedWork.child.tag){case HostComponent:_instance=getPublicInstance(finishedWork.child.stateNode);break;case ClassComponent:_instance=finishedWork.child.stateNode;break;}}commitUpdateQueue(finishedWork,_updateQueue,_instance);}break;}case HostComponent:{var _instance2=finishedWork.stateNode;// Renderers may schedule work to be done after host components are mounted\n// (eg DOM renderer may schedule auto-focus for inputs and form controls).\n// These effects should only be committed when components are first mounted,\n// aka when there is no current/alternate.\nif(current===null&&finishedWork.flags&Update){var type=finishedWork.type;var props=finishedWork.memoizedProps;commitMount(_instance2,type,props);}break;}case HostText:{// We have no life-cycles associated with text.\nbreak;}case HostPortal:{// We have no life-cycles associated with portals.\nbreak;}case Profiler:{{var _finishedWork$memoize2=finishedWork.memoizedProps,onCommit=_finishedWork$memoize2.onCommit,onRender=_finishedWork$memoize2.onRender;var effectDuration=finishedWork.stateNode.effectDuration;var commitTime=getCommitTime();var phase=current===null?'mount':'update';{if(isCurrentUpdateNested()){phase='nested-update';}}if(typeof onRender==='function'){onRender(finishedWork.memoizedProps.id,phase,finishedWork.actualDuration,finishedWork.treeBaseDuration,finishedWork.actualStartTime,commitTime);}{if(typeof onCommit==='function'){onCommit(finishedWork.memoizedProps.id,phase,effectDuration,commitTime);}// Schedule a passive effect for this Profiler to call onPostCommit hooks.\n// This effect should be scheduled even if there is no onPostCommit callback for this Profiler,\n// because the effect is also where times bubble to parent Profilers.\nenqueuePendingPassiveProfilerEffect(finishedWork);// Propagate layout effect durations to the next nearest Profiler ancestor.\n// Do not reset these values until the next render so DevTools has a chance to read them first.\nvar parentFiber=finishedWork.return;outer:while(parentFiber!==null){switch(parentFiber.tag){case HostRoot:var root=parentFiber.stateNode;root.effectDuration+=effectDuration;break outer;case Profiler:var parentStateNode=parentFiber.stateNode;parentStateNode.effectDuration+=effectDuration;break outer;}parentFiber=parentFiber.return;}}}break;}case SuspenseComponent:{commitSuspenseHydrationCallbacks(finishedRoot,finishedWork);break;}case SuspenseListComponent:case IncompleteClassComponent:case ScopeComponent:case OffscreenComponent:case LegacyHiddenComponent:case TracingMarkerComponent:{break;}default:throw new Error('This unit of work tag should not have side-effects. This error is '+'likely caused by a bug in React. Please file an issue.');}}if(!offscreenSubtreeWasHidden){{if(finishedWork.flags&Ref){commitAttachRef(finishedWork);}}}}function reappearLayoutEffectsOnFiber(node){// Turn on layout effects in a tree that previously disappeared.\n// TODO (Offscreen) Check: flags & LayoutStatic\nswitch(node.tag){case FunctionComponent:case ForwardRef:case SimpleMemoComponent:{if(node.mode&ProfileMode){try{startLayoutEffectTimer();safelyCallCommitHookLayoutEffectListMount(node,node.return);}finally{recordLayoutEffectDuration(node);}}else{safelyCallCommitHookLayoutEffectListMount(node,node.return);}break;}case ClassComponent:{var instance=node.stateNode;if(typeof instance.componentDidMount==='function'){safelyCallComponentDidMount(node,node.return,instance);}safelyAttachRef(node,node.return);break;}case HostComponent:{safelyAttachRef(node,node.return);break;}}}function hideOrUnhideAllChildren(finishedWork,isHidden){// Only hide or unhide the top-most host nodes.\nvar hostSubtreeRoot=null;{// We only have the top Fiber that was inserted but we need to recurse down its\n// children to find all the terminal nodes.\nvar node=finishedWork;while(true){if(node.tag===HostComponent){if(hostSubtreeRoot===null){hostSubtreeRoot=node;try{var instance=node.stateNode;if(isHidden){hideInstance(instance);}else{unhideInstance(node.stateNode,node.memoizedProps);}}catch(error){captureCommitPhaseError(finishedWork,finishedWork.return,error);}}}else if(node.tag===HostText){if(hostSubtreeRoot===null){try{var _instance3=node.stateNode;if(isHidden){hideTextInstance(_instance3);}else{unhideTextInstance(_instance3,node.memoizedProps);}}catch(error){captureCommitPhaseError(finishedWork,finishedWork.return,error);}}}else if((node.tag===OffscreenComponent||node.tag===LegacyHiddenComponent)&&node.memoizedState!==null&&node!==finishedWork);else if(node.child!==null){node.child.return=node;node=node.child;continue;}if(node===finishedWork){return;}while(node.sibling===null){if(node.return===null||node.return===finishedWork){return;}if(hostSubtreeRoot===node){hostSubtreeRoot=null;}node=node.return;}if(hostSubtreeRoot===node){hostSubtreeRoot=null;}node.sibling.return=node.return;node=node.sibling;}}}function commitAttachRef(finishedWork){var ref=finishedWork.ref;if(ref!==null){var instance=finishedWork.stateNode;var instanceToUse;switch(finishedWork.tag){case HostComponent:instanceToUse=getPublicInstance(instance);break;default:instanceToUse=instance;}// Moved outside to ensure DCE works with this flag\nif(typeof ref==='function'){var retVal;if(finishedWork.mode&ProfileMode){try{startLayoutEffectTimer();retVal=ref(instanceToUse);}finally{recordLayoutEffectDuration(finishedWork);}}else{retVal=ref(instanceToUse);}{if(typeof retVal==='function'){error('Unexpected return value from a callback ref in %s. '+'A callback ref should not return a function.',getComponentNameFromFiber(finishedWork));}}}else{{if(!ref.hasOwnProperty('current')){error('Unexpected ref object provided for %s. '+'Use either a ref-setter function or React.createRef().',getComponentNameFromFiber(finishedWork));}}ref.current=instanceToUse;}}}function detachFiberMutation(fiber){// Cut off the return pointer to disconnect it from the tree.\n// This enables us to detect and warn against state updates on an unmounted component.\n// It also prevents events from bubbling from within disconnected components.\n//\n// Ideally, we should also clear the child pointer of the parent alternate to let this\n// get GC:ed but we don't know which for sure which parent is the current\n// one so we'll settle for GC:ing the subtree of this child.\n// This child itself will be GC:ed when the parent updates the next time.\n//\n// Note that we can't clear child or sibling pointers yet.\n// They're needed for passive effects and for findDOMNode.\n// We defer those fields, and all other cleanup, to the passive phase (see detachFiberAfterEffects).\n//\n// Don't reset the alternate yet, either. We need that so we can detach the\n// alternate's fields in the passive phase. Clearing the return pointer is\n// sufficient for findDOMNode semantics.\nvar alternate=fiber.alternate;if(alternate!==null){alternate.return=null;}fiber.return=null;}function detachFiberAfterEffects(fiber){var alternate=fiber.alternate;if(alternate!==null){fiber.alternate=null;detachFiberAfterEffects(alternate);}// Note: Defensively using negation instead of < in case\n// `deletedTreeCleanUpLevel` is undefined.\n{// Clear cyclical Fiber fields. This level alone is designed to roughly\n// approximate the planned Fiber refactor. In that world, `setState` will be\n// bound to a special \"instance\" object instead of a Fiber. The Instance\n// object will not have any of these fields. It will only be connected to\n// the fiber tree via a single link at the root. So if this level alone is\n// sufficient to fix memory issues, that bodes well for our plans.\nfiber.child=null;fiber.deletions=null;fiber.sibling=null;// The `stateNode` is cyclical because on host nodes it points to the host\n// tree, which has its own pointers to children, parents, and siblings.\n// The other host nodes also point back to fibers, so we should detach that\n// one, too.\nif(fiber.tag===HostComponent){var hostInstance=fiber.stateNode;if(hostInstance!==null){detachDeletedInstance(hostInstance);}}fiber.stateNode=null;// I'm intentionally not clearing the `return` field in this level. We\n// already disconnect the `return` pointer at the root of the deleted\n// subtree (in `detachFiberMutation`). Besides, `return` by itself is not\n// cyclical — it's only cyclical when combined with `child`, `sibling`, and\n// `alternate`. But we'll clear it in the next level anyway, just in case.\n{fiber._debugOwner=null;}{// Theoretically, nothing in here should be necessary, because we already\n// disconnected the fiber from the tree. So even if something leaks this\n// particular fiber, it won't leak anything else\n//\n// The purpose of this branch is to be super aggressive so we can measure\n// if there's any difference in memory impact. If there is, that could\n// indicate a React leak we don't know about.\nfiber.return=null;fiber.dependencies=null;fiber.memoizedProps=null;fiber.memoizedState=null;fiber.pendingProps=null;fiber.stateNode=null;// TODO: Move to `commitPassiveUnmountInsideDeletedTreeOnFiber` instead.\nfiber.updateQueue=null;}}}function getHostParentFiber(fiber){var parent=fiber.return;while(parent!==null){if(isHostParent(parent)){return parent;}parent=parent.return;}throw new Error('Expected to find a host parent. This error is likely caused by a bug '+'in React. Please file an issue.');}function isHostParent(fiber){return fiber.tag===HostComponent||fiber.tag===HostRoot||fiber.tag===HostPortal;}function getHostSibling(fiber){// We're going to search forward into the tree until we find a sibling host\n// node. Unfortunately, if multiple insertions are done in a row we have to\n// search past them. This leads to exponential search for the next sibling.\n// TODO: Find a more efficient way to do this.\nvar node=fiber;siblings:while(true){// If we didn't find anything, let's try the next sibling.\nwhile(node.sibling===null){if(node.return===null||isHostParent(node.return)){// If we pop out of the root or hit the parent the fiber we are the\n// last sibling.\nreturn null;}node=node.return;}node.sibling.return=node.return;node=node.sibling;while(node.tag!==HostComponent&&node.tag!==HostText&&node.tag!==DehydratedFragment){// If it is not host node and, we might have a host node inside it.\n// Try to search down until we find one.\nif(node.flags&Placement){// If we don't have a child, try the siblings instead.\ncontinue siblings;}// If we don't have a child, try the siblings instead.\n// We also skip portals because they are not part of this host tree.\nif(node.child===null||node.tag===HostPortal){continue siblings;}else{node.child.return=node;node=node.child;}}// Check if this host node is stable or about to be placed.\nif(!(node.flags&Placement)){// Found it!\nreturn node.stateNode;}}}function commitPlacement(finishedWork){var parentFiber=getHostParentFiber(finishedWork);// Note: these two variables *must* always be updated together.\nswitch(parentFiber.tag){case HostComponent:{var parent=parentFiber.stateNode;if(parentFiber.flags&ContentReset){// Reset the text content of the parent before doing any insertions\nresetTextContent(parent);// Clear ContentReset from the effect tag\nparentFiber.flags&=~ContentReset;}var before=getHostSibling(finishedWork);// We only have the top Fiber that was inserted but we need to recurse down its\n// children to find all the terminal nodes.\ninsertOrAppendPlacementNode(finishedWork,before,parent);break;}case HostRoot:case HostPortal:{var _parent=parentFiber.stateNode.containerInfo;var _before=getHostSibling(finishedWork);insertOrAppendPlacementNodeIntoContainer(finishedWork,_before,_parent);break;}// eslint-disable-next-line-no-fallthrough\ndefault:throw new Error('Invalid host parent fiber. This error is likely caused by a bug '+'in React. Please file an issue.');}}function insertOrAppendPlacementNodeIntoContainer(node,before,parent){var tag=node.tag;var isHost=tag===HostComponent||tag===HostText;if(isHost){var stateNode=node.stateNode;if(before){insertInContainerBefore(parent,stateNode,before);}else{appendChildToContainer(parent,stateNode);}}else if(tag===HostPortal);else{var child=node.child;if(child!==null){insertOrAppendPlacementNodeIntoContainer(child,before,parent);var sibling=child.sibling;while(sibling!==null){insertOrAppendPlacementNodeIntoContainer(sibling,before,parent);sibling=sibling.sibling;}}}}function insertOrAppendPlacementNode(node,before,parent){var tag=node.tag;var isHost=tag===HostComponent||tag===HostText;if(isHost){var stateNode=node.stateNode;if(before){insertBefore(parent,stateNode,before);}else{appendChild(parent,stateNode);}}else if(tag===HostPortal);else{var child=node.child;if(child!==null){insertOrAppendPlacementNode(child,before,parent);var sibling=child.sibling;while(sibling!==null){insertOrAppendPlacementNode(sibling,before,parent);sibling=sibling.sibling;}}}}// These are tracked on the stack as we recursively traverse a\n// deleted subtree.\n// TODO: Update these during the whole mutation phase, not just during\n// a deletion.\nvar hostParent=null;var hostParentIsContainer=false;function commitDeletionEffects(root,returnFiber,deletedFiber){{// We only have the top Fiber that was deleted but we need to recurse down its\n// children to find all the terminal nodes.\n// Recursively delete all host nodes from the parent, detach refs, clean\n// up mounted layout effects, and call componentWillUnmount.\n// We only need to remove the topmost host child in each branch. But then we\n// still need to keep traversing to unmount effects, refs, and cWU. TODO: We\n// could split this into two separate traversals functions, where the second\n// one doesn't include any removeChild logic. This is maybe the same\n// function as \"disappearLayoutEffects\" (or whatever that turns into after\n// the layout phase is refactored to use recursion).\n// Before starting, find the nearest host parent on the stack so we know\n// which instance/container to remove the children from.\n// TODO: Instead of searching up the fiber return path on every deletion, we\n// can track the nearest host component on the JS stack as we traverse the\n// tree during the commit phase. This would make insertions faster, too.\nvar parent=returnFiber;findParent:while(parent!==null){switch(parent.tag){case HostComponent:{hostParent=parent.stateNode;hostParentIsContainer=false;break findParent;}case HostRoot:{hostParent=parent.stateNode.containerInfo;hostParentIsContainer=true;break findParent;}case HostPortal:{hostParent=parent.stateNode.containerInfo;hostParentIsContainer=true;break findParent;}}parent=parent.return;}if(hostParent===null){throw new Error('Expected to find a host parent. This error is likely caused by '+'a bug in React. Please file an issue.');}commitDeletionEffectsOnFiber(root,returnFiber,deletedFiber);hostParent=null;hostParentIsContainer=false;}detachFiberMutation(deletedFiber);}function recursivelyTraverseDeletionEffects(finishedRoot,nearestMountedAncestor,parent){// TODO: Use a static flag to skip trees that don't have unmount effects\nvar child=parent.child;while(child!==null){commitDeletionEffectsOnFiber(finishedRoot,nearestMountedAncestor,child);child=child.sibling;}}function commitDeletionEffectsOnFiber(finishedRoot,nearestMountedAncestor,deletedFiber){onCommitUnmount(deletedFiber);// The cases in this outer switch modify the stack before they traverse\n// into their subtree. There are simpler cases in the inner switch\n// that don't modify the stack.\nswitch(deletedFiber.tag){case HostComponent:{if(!offscreenSubtreeWasHidden){safelyDetachRef(deletedFiber,nearestMountedAncestor);}// Intentional fallthrough to next branch\n}// eslint-disable-next-line-no-fallthrough\ncase HostText:{// We only need to remove the nearest host child. Set the host parent\n// to `null` on the stack to indicate that nested children don't\n// need to be removed.\n{var prevHostParent=hostParent;var prevHostParentIsContainer=hostParentIsContainer;hostParent=null;recursivelyTraverseDeletionEffects(finishedRoot,nearestMountedAncestor,deletedFiber);hostParent=prevHostParent;hostParentIsContainer=prevHostParentIsContainer;if(hostParent!==null){// Now that all the child effects have unmounted, we can remove the\n// node from the tree.\nif(hostParentIsContainer){removeChildFromContainer(hostParent,deletedFiber.stateNode);}else{removeChild(hostParent,deletedFiber.stateNode);}}}return;}case DehydratedFragment:{// Delete the dehydrated suspense boundary and all of its content.\n{if(hostParent!==null){if(hostParentIsContainer){clearSuspenseBoundaryFromContainer(hostParent,deletedFiber.stateNode);}else{clearSuspenseBoundary(hostParent,deletedFiber.stateNode);}}}return;}case HostPortal:{{// When we go into a portal, it becomes the parent to remove from.\nvar _prevHostParent=hostParent;var _prevHostParentIsContainer=hostParentIsContainer;hostParent=deletedFiber.stateNode.containerInfo;hostParentIsContainer=true;recursivelyTraverseDeletionEffects(finishedRoot,nearestMountedAncestor,deletedFiber);hostParent=_prevHostParent;hostParentIsContainer=_prevHostParentIsContainer;}return;}case FunctionComponent:case ForwardRef:case MemoComponent:case SimpleMemoComponent:{if(!offscreenSubtreeWasHidden){var updateQueue=deletedFiber.updateQueue;if(updateQueue!==null){var lastEffect=updateQueue.lastEffect;if(lastEffect!==null){var firstEffect=lastEffect.next;var effect=firstEffect;do{var _effect=effect,destroy=_effect.destroy,tag=_effect.tag;if(destroy!==undefined){if((tag&Insertion)!==NoFlags$1){safelyCallDestroy(deletedFiber,nearestMountedAncestor,destroy);}else if((tag&Layout)!==NoFlags$1){{markComponentLayoutEffectUnmountStarted(deletedFiber);}if(deletedFiber.mode&ProfileMode){startLayoutEffectTimer();safelyCallDestroy(deletedFiber,nearestMountedAncestor,destroy);recordLayoutEffectDuration(deletedFiber);}else{safelyCallDestroy(deletedFiber,nearestMountedAncestor,destroy);}{markComponentLayoutEffectUnmountStopped();}}}effect=effect.next;}while(effect!==firstEffect);}}}recursivelyTraverseDeletionEffects(finishedRoot,nearestMountedAncestor,deletedFiber);return;}case ClassComponent:{if(!offscreenSubtreeWasHidden){safelyDetachRef(deletedFiber,nearestMountedAncestor);var instance=deletedFiber.stateNode;if(typeof instance.componentWillUnmount==='function'){safelyCallComponentWillUnmount(deletedFiber,nearestMountedAncestor,instance);}}recursivelyTraverseDeletionEffects(finishedRoot,nearestMountedAncestor,deletedFiber);return;}case ScopeComponent:{recursivelyTraverseDeletionEffects(finishedRoot,nearestMountedAncestor,deletedFiber);return;}case OffscreenComponent:{if(// TODO: Remove this dead flag\ndeletedFiber.mode&ConcurrentMode){// If this offscreen component is hidden, we already unmounted it. Before\n// deleting the children, track that it's already unmounted so that we\n// don't attempt to unmount the effects again.\n// TODO: If the tree is hidden, in most cases we should be able to skip\n// over the nested children entirely. An exception is we haven't yet found\n// the topmost host node to delete, which we already track on the stack.\n// But the other case is portals, which need to be detached no matter how\n// deeply they are nested. We should use a subtree flag to track whether a\n// subtree includes a nested portal.\nvar prevOffscreenSubtreeWasHidden=offscreenSubtreeWasHidden;offscreenSubtreeWasHidden=prevOffscreenSubtreeWasHidden||deletedFiber.memoizedState!==null;recursivelyTraverseDeletionEffects(finishedRoot,nearestMountedAncestor,deletedFiber);offscreenSubtreeWasHidden=prevOffscreenSubtreeWasHidden;}else{recursivelyTraverseDeletionEffects(finishedRoot,nearestMountedAncestor,deletedFiber);}break;}default:{recursivelyTraverseDeletionEffects(finishedRoot,nearestMountedAncestor,deletedFiber);return;}}}function commitSuspenseCallback(finishedWork){// TODO: Move this to passive phase\nvar newState=finishedWork.memoizedState;}function commitSuspenseHydrationCallbacks(finishedRoot,finishedWork){var newState=finishedWork.memoizedState;if(newState===null){var current=finishedWork.alternate;if(current!==null){var prevState=current.memoizedState;if(prevState!==null){var suspenseInstance=prevState.dehydrated;if(suspenseInstance!==null){commitHydratedSuspenseInstance(suspenseInstance);}}}}}function attachSuspenseRetryListeners(finishedWork){// If this boundary just timed out, then it will have a set of wakeables.\n// For each wakeable, attach a listener so that when it resolves, React\n// attempts to re-render the boundary in the primary (pre-timeout) state.\nvar wakeables=finishedWork.updateQueue;if(wakeables!==null){finishedWork.updateQueue=null;var retryCache=finishedWork.stateNode;if(retryCache===null){retryCache=finishedWork.stateNode=new PossiblyWeakSet();}wakeables.forEach(function(wakeable){// Memoize using the boundary fiber to prevent redundant listeners.\nvar retry=resolveRetryWakeable.bind(null,finishedWork,wakeable);if(!retryCache.has(wakeable)){retryCache.add(wakeable);{if(isDevToolsPresent){if(inProgressLanes!==null&&inProgressRoot!==null){// If we have pending work still, associate the original updaters with it.\nrestorePendingUpdaters(inProgressRoot,inProgressLanes);}else{throw Error('Expected finished root and lanes to be set. This is a bug in React.');}}}wakeable.then(retry,retry);}});}}// This function detects when a Suspense boundary goes from visible to hidden.\nfunction commitMutationEffects(root,finishedWork,committedLanes){inProgressLanes=committedLanes;inProgressRoot=root;setCurrentFiber(finishedWork);commitMutationEffectsOnFiber(finishedWork,root);setCurrentFiber(finishedWork);inProgressLanes=null;inProgressRoot=null;}function recursivelyTraverseMutationEffects(root,parentFiber,lanes){// Deletions effects can be scheduled on any fiber type. They need to happen\n// before the children effects hae fired.\nvar deletions=parentFiber.deletions;if(deletions!==null){for(var i=0;i<deletions.length;i++){var childToDelete=deletions[i];try{commitDeletionEffects(root,parentFiber,childToDelete);}catch(error){captureCommitPhaseError(childToDelete,parentFiber,error);}}}var prevDebugFiber=getCurrentFiber();if(parentFiber.subtreeFlags&MutationMask){var child=parentFiber.child;while(child!==null){setCurrentFiber(child);commitMutationEffectsOnFiber(child,root);child=child.sibling;}}setCurrentFiber(prevDebugFiber);}function commitMutationEffectsOnFiber(finishedWork,root,lanes){var current=finishedWork.alternate;var flags=finishedWork.flags;// The effect flag should be checked *after* we refine the type of fiber,\n// because the fiber tag is more specific. An exception is any flag related\n// to reconcilation, because those can be set on all fiber types.\nswitch(finishedWork.tag){case FunctionComponent:case ForwardRef:case MemoComponent:case SimpleMemoComponent:{recursivelyTraverseMutationEffects(root,finishedWork);commitReconciliationEffects(finishedWork);if(flags&Update){try{commitHookEffectListUnmount(Insertion|HasEffect,finishedWork,finishedWork.return);commitHookEffectListMount(Insertion|HasEffect,finishedWork);}catch(error){captureCommitPhaseError(finishedWork,finishedWork.return,error);}// Layout effects are destroyed during the mutation phase so that all\n// destroy functions for all fibers are called before any create functions.\n// This prevents sibling component effects from interfering with each other,\n// e.g. a destroy function in one component should never override a ref set\n// by a create function in another component during the same commit.\nif(finishedWork.mode&ProfileMode){try{startLayoutEffectTimer();commitHookEffectListUnmount(Layout|HasEffect,finishedWork,finishedWork.return);}catch(error){captureCommitPhaseError(finishedWork,finishedWork.return,error);}recordLayoutEffectDuration(finishedWork);}else{try{commitHookEffectListUnmount(Layout|HasEffect,finishedWork,finishedWork.return);}catch(error){captureCommitPhaseError(finishedWork,finishedWork.return,error);}}}return;}case ClassComponent:{recursivelyTraverseMutationEffects(root,finishedWork);commitReconciliationEffects(finishedWork);if(flags&Ref){if(current!==null){safelyDetachRef(current,current.return);}}return;}case HostComponent:{recursivelyTraverseMutationEffects(root,finishedWork);commitReconciliationEffects(finishedWork);if(flags&Ref){if(current!==null){safelyDetachRef(current,current.return);}}{// TODO: ContentReset gets cleared by the children during the commit\n// phase. This is a refactor hazard because it means we must read\n// flags the flags after `commitReconciliationEffects` has already run;\n// the order matters. We should refactor so that ContentReset does not\n// rely on mutating the flag during commit. Like by setting a flag\n// during the render phase instead.\nif(finishedWork.flags&ContentReset){var instance=finishedWork.stateNode;try{resetTextContent(instance);}catch(error){captureCommitPhaseError(finishedWork,finishedWork.return,error);}}if(flags&Update){var _instance4=finishedWork.stateNode;if(_instance4!=null){// Commit the work prepared earlier.\nvar newProps=finishedWork.memoizedProps;// For hydration we reuse the update path but we treat the oldProps\n// as the newProps. The updatePayload will contain the real change in\n// this case.\nvar oldProps=current!==null?current.memoizedProps:newProps;var type=finishedWork.type;// TODO: Type the updateQueue to be specific to host components.\nvar updatePayload=finishedWork.updateQueue;finishedWork.updateQueue=null;if(updatePayload!==null){try{commitUpdate(_instance4,updatePayload,type,oldProps,newProps,finishedWork);}catch(error){captureCommitPhaseError(finishedWork,finishedWork.return,error);}}}}}return;}case HostText:{recursivelyTraverseMutationEffects(root,finishedWork);commitReconciliationEffects(finishedWork);if(flags&Update){{if(finishedWork.stateNode===null){throw new Error('This should have a text node initialized. This error is likely '+'caused by a bug in React. Please file an issue.');}var textInstance=finishedWork.stateNode;var newText=finishedWork.memoizedProps;// For hydration we reuse the update path but we treat the oldProps\n// as the newProps. The updatePayload will contain the real change in\n// this case.\nvar oldText=current!==null?current.memoizedProps:newText;try{commitTextUpdate(textInstance,oldText,newText);}catch(error){captureCommitPhaseError(finishedWork,finishedWork.return,error);}}}return;}case HostRoot:{recursivelyTraverseMutationEffects(root,finishedWork);commitReconciliationEffects(finishedWork);if(flags&Update){{if(current!==null){var prevRootState=current.memoizedState;if(prevRootState.isDehydrated){try{commitHydratedContainer(root.containerInfo);}catch(error){captureCommitPhaseError(finishedWork,finishedWork.return,error);}}}}}return;}case HostPortal:{recursivelyTraverseMutationEffects(root,finishedWork);commitReconciliationEffects(finishedWork);return;}case SuspenseComponent:{recursivelyTraverseMutationEffects(root,finishedWork);commitReconciliationEffects(finishedWork);var offscreenFiber=finishedWork.child;if(offscreenFiber.flags&Visibility){var offscreenInstance=offscreenFiber.stateNode;var newState=offscreenFiber.memoizedState;var isHidden=newState!==null;// Track the current state on the Offscreen instance so we can\n// read it during an event\noffscreenInstance.isHidden=isHidden;if(isHidden){var wasHidden=offscreenFiber.alternate!==null&&offscreenFiber.alternate.memoizedState!==null;if(!wasHidden){// TODO: Move to passive phase\nmarkCommitTimeOfFallback();}}}if(flags&Update){try{commitSuspenseCallback(finishedWork);}catch(error){captureCommitPhaseError(finishedWork,finishedWork.return,error);}attachSuspenseRetryListeners(finishedWork);}return;}case OffscreenComponent:{var _wasHidden=current!==null&&current.memoizedState!==null;if(// TODO: Remove this dead flag\nfinishedWork.mode&ConcurrentMode){// Before committing the children, track on the stack whether this\n// offscreen subtree was already hidden, so that we don't unmount the\n// effects again.\nvar prevOffscreenSubtreeWasHidden=offscreenSubtreeWasHidden;offscreenSubtreeWasHidden=prevOffscreenSubtreeWasHidden||_wasHidden;recursivelyTraverseMutationEffects(root,finishedWork);offscreenSubtreeWasHidden=prevOffscreenSubtreeWasHidden;}else{recursivelyTraverseMutationEffects(root,finishedWork);}commitReconciliationEffects(finishedWork);if(flags&Visibility){var _offscreenInstance=finishedWork.stateNode;var _newState=finishedWork.memoizedState;var _isHidden=_newState!==null;var offscreenBoundary=finishedWork;// Track the current state on the Offscreen instance so we can\n// read it during an event\n_offscreenInstance.isHidden=_isHidden;{if(_isHidden){if(!_wasHidden){if((offscreenBoundary.mode&ConcurrentMode)!==NoMode){nextEffect=offscreenBoundary;var offscreenChild=offscreenBoundary.child;while(offscreenChild!==null){nextEffect=offscreenChild;disappearLayoutEffects_begin(offscreenChild);offscreenChild=offscreenChild.sibling;}}}}}{// TODO: This needs to run whenever there's an insertion or update\n// inside a hidden Offscreen tree.\nhideOrUnhideAllChildren(offscreenBoundary,_isHidden);}}return;}case SuspenseListComponent:{recursivelyTraverseMutationEffects(root,finishedWork);commitReconciliationEffects(finishedWork);if(flags&Update){attachSuspenseRetryListeners(finishedWork);}return;}case ScopeComponent:{return;}default:{recursivelyTraverseMutationEffects(root,finishedWork);commitReconciliationEffects(finishedWork);return;}}}function commitReconciliationEffects(finishedWork){// Placement effects (insertions, reorders) can be scheduled on any fiber\n// type. They needs to happen after the children effects have fired, but\n// before the effects on this fiber have fired.\nvar flags=finishedWork.flags;if(flags&Placement){try{commitPlacement(finishedWork);}catch(error){captureCommitPhaseError(finishedWork,finishedWork.return,error);}// Clear the \"placement\" from effect tag so that we know that this is\n// inserted, before any life-cycles like componentDidMount gets called.\n// TODO: findDOMNode doesn't rely on this any more but isMounted does\n// and isMounted is deprecated anyway so we should be able to kill this.\nfinishedWork.flags&=~Placement;}if(flags&Hydrating){finishedWork.flags&=~Hydrating;}}function commitLayoutEffects(finishedWork,root,committedLanes){inProgressLanes=committedLanes;inProgressRoot=root;nextEffect=finishedWork;commitLayoutEffects_begin(finishedWork,root,committedLanes);inProgressLanes=null;inProgressRoot=null;}function commitLayoutEffects_begin(subtreeRoot,root,committedLanes){// Suspense layout effects semantics don't change for legacy roots.\nvar isModernRoot=(subtreeRoot.mode&ConcurrentMode)!==NoMode;while(nextEffect!==null){var fiber=nextEffect;var firstChild=fiber.child;if(fiber.tag===OffscreenComponent&&isModernRoot){// Keep track of the current Offscreen stack's state.\nvar isHidden=fiber.memoizedState!==null;var newOffscreenSubtreeIsHidden=isHidden||offscreenSubtreeIsHidden;if(newOffscreenSubtreeIsHidden){// The Offscreen tree is hidden. Skip over its layout effects.\ncommitLayoutMountEffects_complete(subtreeRoot,root,committedLanes);continue;}else{// TODO (Offscreen) Also check: subtreeFlags & LayoutMask\nvar current=fiber.alternate;var wasHidden=current!==null&&current.memoizedState!==null;var newOffscreenSubtreeWasHidden=wasHidden||offscreenSubtreeWasHidden;var prevOffscreenSubtreeIsHidden=offscreenSubtreeIsHidden;var prevOffscreenSubtreeWasHidden=offscreenSubtreeWasHidden;// Traverse the Offscreen subtree with the current Offscreen as the root.\noffscreenSubtreeIsHidden=newOffscreenSubtreeIsHidden;offscreenSubtreeWasHidden=newOffscreenSubtreeWasHidden;if(offscreenSubtreeWasHidden&&!prevOffscreenSubtreeWasHidden){// This is the root of a reappearing boundary. Turn its layout effects\n// back on.\nnextEffect=fiber;reappearLayoutEffects_begin(fiber);}var child=firstChild;while(child!==null){nextEffect=child;commitLayoutEffects_begin(child,// New root; bubble back up to here and stop.\nroot,committedLanes);child=child.sibling;}// Restore Offscreen state and resume in our-progress traversal.\nnextEffect=fiber;offscreenSubtreeIsHidden=prevOffscreenSubtreeIsHidden;offscreenSubtreeWasHidden=prevOffscreenSubtreeWasHidden;commitLayoutMountEffects_complete(subtreeRoot,root,committedLanes);continue;}}if((fiber.subtreeFlags&LayoutMask)!==NoFlags&&firstChild!==null){firstChild.return=fiber;nextEffect=firstChild;}else{commitLayoutMountEffects_complete(subtreeRoot,root,committedLanes);}}}function commitLayoutMountEffects_complete(subtreeRoot,root,committedLanes){while(nextEffect!==null){var fiber=nextEffect;if((fiber.flags&LayoutMask)!==NoFlags){var current=fiber.alternate;setCurrentFiber(fiber);try{commitLayoutEffectOnFiber(root,current,fiber,committedLanes);}catch(error){captureCommitPhaseError(fiber,fiber.return,error);}resetCurrentFiber();}if(fiber===subtreeRoot){nextEffect=null;return;}var sibling=fiber.sibling;if(sibling!==null){sibling.return=fiber.return;nextEffect=sibling;return;}nextEffect=fiber.return;}}function disappearLayoutEffects_begin(subtreeRoot){while(nextEffect!==null){var fiber=nextEffect;var firstChild=fiber.child;// TODO (Offscreen) Check: flags & (RefStatic | LayoutStatic)\nswitch(fiber.tag){case FunctionComponent:case ForwardRef:case MemoComponent:case SimpleMemoComponent:{if(fiber.mode&ProfileMode){try{startLayoutEffectTimer();commitHookEffectListUnmount(Layout,fiber,fiber.return);}finally{recordLayoutEffectDuration(fiber);}}else{commitHookEffectListUnmount(Layout,fiber,fiber.return);}break;}case ClassComponent:{// TODO (Offscreen) Check: flags & RefStatic\nsafelyDetachRef(fiber,fiber.return);var instance=fiber.stateNode;if(typeof instance.componentWillUnmount==='function'){safelyCallComponentWillUnmount(fiber,fiber.return,instance);}break;}case HostComponent:{safelyDetachRef(fiber,fiber.return);break;}case OffscreenComponent:{// Check if this is a\nvar isHidden=fiber.memoizedState!==null;if(isHidden){// Nested Offscreen tree is already hidden. Don't disappear\n// its effects.\ndisappearLayoutEffects_complete(subtreeRoot);continue;}break;}}// TODO (Offscreen) Check: subtreeFlags & LayoutStatic\nif(firstChild!==null){firstChild.return=fiber;nextEffect=firstChild;}else{disappearLayoutEffects_complete(subtreeRoot);}}}function disappearLayoutEffects_complete(subtreeRoot){while(nextEffect!==null){var fiber=nextEffect;if(fiber===subtreeRoot){nextEffect=null;return;}var sibling=fiber.sibling;if(sibling!==null){sibling.return=fiber.return;nextEffect=sibling;return;}nextEffect=fiber.return;}}function reappearLayoutEffects_begin(subtreeRoot){while(nextEffect!==null){var fiber=nextEffect;var firstChild=fiber.child;if(fiber.tag===OffscreenComponent){var isHidden=fiber.memoizedState!==null;if(isHidden){// Nested Offscreen tree is still hidden. Don't re-appear its effects.\nreappearLayoutEffects_complete(subtreeRoot);continue;}}// TODO (Offscreen) Check: subtreeFlags & LayoutStatic\nif(firstChild!==null){// This node may have been reused from a previous render, so we can't\n// assume its return pointer is correct.\nfirstChild.return=fiber;nextEffect=firstChild;}else{reappearLayoutEffects_complete(subtreeRoot);}}}function reappearLayoutEffects_complete(subtreeRoot){while(nextEffect!==null){var fiber=nextEffect;// TODO (Offscreen) Check: flags & LayoutStatic\nsetCurrentFiber(fiber);try{reappearLayoutEffectsOnFiber(fiber);}catch(error){captureCommitPhaseError(fiber,fiber.return,error);}resetCurrentFiber();if(fiber===subtreeRoot){nextEffect=null;return;}var sibling=fiber.sibling;if(sibling!==null){// This node may have been reused from a previous render, so we can't\n// assume its return pointer is correct.\nsibling.return=fiber.return;nextEffect=sibling;return;}nextEffect=fiber.return;}}function commitPassiveMountEffects(root,finishedWork,committedLanes,committedTransitions){nextEffect=finishedWork;commitPassiveMountEffects_begin(finishedWork,root,committedLanes,committedTransitions);}function commitPassiveMountEffects_begin(subtreeRoot,root,committedLanes,committedTransitions){while(nextEffect!==null){var fiber=nextEffect;var firstChild=fiber.child;if((fiber.subtreeFlags&PassiveMask)!==NoFlags&&firstChild!==null){firstChild.return=fiber;nextEffect=firstChild;}else{commitPassiveMountEffects_complete(subtreeRoot,root,committedLanes,committedTransitions);}}}function commitPassiveMountEffects_complete(subtreeRoot,root,committedLanes,committedTransitions){while(nextEffect!==null){var fiber=nextEffect;if((fiber.flags&Passive)!==NoFlags){setCurrentFiber(fiber);try{commitPassiveMountOnFiber(root,fiber,committedLanes,committedTransitions);}catch(error){captureCommitPhaseError(fiber,fiber.return,error);}resetCurrentFiber();}if(fiber===subtreeRoot){nextEffect=null;return;}var sibling=fiber.sibling;if(sibling!==null){sibling.return=fiber.return;nextEffect=sibling;return;}nextEffect=fiber.return;}}function commitPassiveMountOnFiber(finishedRoot,finishedWork,committedLanes,committedTransitions){switch(finishedWork.tag){case FunctionComponent:case ForwardRef:case SimpleMemoComponent:{if(finishedWork.mode&ProfileMode){startPassiveEffectTimer();try{commitHookEffectListMount(Passive$1|HasEffect,finishedWork);}finally{recordPassiveEffectDuration(finishedWork);}}else{commitHookEffectListMount(Passive$1|HasEffect,finishedWork);}break;}}}function commitPassiveUnmountEffects(firstChild){nextEffect=firstChild;commitPassiveUnmountEffects_begin();}function commitPassiveUnmountEffects_begin(){while(nextEffect!==null){var fiber=nextEffect;var child=fiber.child;if((nextEffect.flags&ChildDeletion)!==NoFlags){var deletions=fiber.deletions;if(deletions!==null){for(var i=0;i<deletions.length;i++){var fiberToDelete=deletions[i];nextEffect=fiberToDelete;commitPassiveUnmountEffectsInsideOfDeletedTree_begin(fiberToDelete,fiber);}{// A fiber was deleted from this parent fiber, but it's still part of\n// the previous (alternate) parent fiber's list of children. Because\n// children are a linked list, an earlier sibling that's still alive\n// will be connected to the deleted fiber via its `alternate`:\n//\n//   live fiber\n//   --alternate--> previous live fiber\n//   --sibling--> deleted fiber\n//\n// We can't disconnect `alternate` on nodes that haven't been deleted\n// yet, but we can disconnect the `sibling` and `child` pointers.\nvar previousFiber=fiber.alternate;if(previousFiber!==null){var detachedChild=previousFiber.child;if(detachedChild!==null){previousFiber.child=null;do{var detachedSibling=detachedChild.sibling;detachedChild.sibling=null;detachedChild=detachedSibling;}while(detachedChild!==null);}}}nextEffect=fiber;}}if((fiber.subtreeFlags&PassiveMask)!==NoFlags&&child!==null){child.return=fiber;nextEffect=child;}else{commitPassiveUnmountEffects_complete();}}}function commitPassiveUnmountEffects_complete(){while(nextEffect!==null){var fiber=nextEffect;if((fiber.flags&Passive)!==NoFlags){setCurrentFiber(fiber);commitPassiveUnmountOnFiber(fiber);resetCurrentFiber();}var sibling=fiber.sibling;if(sibling!==null){sibling.return=fiber.return;nextEffect=sibling;return;}nextEffect=fiber.return;}}function commitPassiveUnmountOnFiber(finishedWork){switch(finishedWork.tag){case FunctionComponent:case ForwardRef:case SimpleMemoComponent:{if(finishedWork.mode&ProfileMode){startPassiveEffectTimer();commitHookEffectListUnmount(Passive$1|HasEffect,finishedWork,finishedWork.return);recordPassiveEffectDuration(finishedWork);}else{commitHookEffectListUnmount(Passive$1|HasEffect,finishedWork,finishedWork.return);}break;}}}function commitPassiveUnmountEffectsInsideOfDeletedTree_begin(deletedSubtreeRoot,nearestMountedAncestor){while(nextEffect!==null){var fiber=nextEffect;// Deletion effects fire in parent -> child order\n// TODO: Check if fiber has a PassiveStatic flag\nsetCurrentFiber(fiber);commitPassiveUnmountInsideDeletedTreeOnFiber(fiber,nearestMountedAncestor);resetCurrentFiber();var child=fiber.child;// TODO: Only traverse subtree if it has a PassiveStatic flag. (But, if we\n// do this, still need to handle `deletedTreeCleanUpLevel` correctly.)\nif(child!==null){child.return=fiber;nextEffect=child;}else{commitPassiveUnmountEffectsInsideOfDeletedTree_complete(deletedSubtreeRoot);}}}function commitPassiveUnmountEffectsInsideOfDeletedTree_complete(deletedSubtreeRoot){while(nextEffect!==null){var fiber=nextEffect;var sibling=fiber.sibling;var returnFiber=fiber.return;{// Recursively traverse the entire deleted tree and clean up fiber fields.\n// This is more aggressive than ideal, and the long term goal is to only\n// have to detach the deleted tree at the root.\ndetachFiberAfterEffects(fiber);if(fiber===deletedSubtreeRoot){nextEffect=null;return;}}if(sibling!==null){sibling.return=returnFiber;nextEffect=sibling;return;}nextEffect=returnFiber;}}function commitPassiveUnmountInsideDeletedTreeOnFiber(current,nearestMountedAncestor){switch(current.tag){case FunctionComponent:case ForwardRef:case SimpleMemoComponent:{if(current.mode&ProfileMode){startPassiveEffectTimer();commitHookEffectListUnmount(Passive$1,current,nearestMountedAncestor);recordPassiveEffectDuration(current);}else{commitHookEffectListUnmount(Passive$1,current,nearestMountedAncestor);}break;}}}// TODO: Reuse reappearLayoutEffects traversal here?\nfunction invokeLayoutEffectMountInDEV(fiber){{// We don't need to re-check StrictEffectsMode here.\n// This function is only called if that check has already passed.\nswitch(fiber.tag){case FunctionComponent:case ForwardRef:case SimpleMemoComponent:{try{commitHookEffectListMount(Layout|HasEffect,fiber);}catch(error){captureCommitPhaseError(fiber,fiber.return,error);}break;}case ClassComponent:{var instance=fiber.stateNode;try{instance.componentDidMount();}catch(error){captureCommitPhaseError(fiber,fiber.return,error);}break;}}}}function invokePassiveEffectMountInDEV(fiber){{// We don't need to re-check StrictEffectsMode here.\n// This function is only called if that check has already passed.\nswitch(fiber.tag){case FunctionComponent:case ForwardRef:case SimpleMemoComponent:{try{commitHookEffectListMount(Passive$1|HasEffect,fiber);}catch(error){captureCommitPhaseError(fiber,fiber.return,error);}break;}}}}function invokeLayoutEffectUnmountInDEV(fiber){{// We don't need to re-check StrictEffectsMode here.\n// This function is only called if that check has already passed.\nswitch(fiber.tag){case FunctionComponent:case ForwardRef:case SimpleMemoComponent:{try{commitHookEffectListUnmount(Layout|HasEffect,fiber,fiber.return);}catch(error){captureCommitPhaseError(fiber,fiber.return,error);}break;}case ClassComponent:{var instance=fiber.stateNode;if(typeof instance.componentWillUnmount==='function'){safelyCallComponentWillUnmount(fiber,fiber.return,instance);}break;}}}}function invokePassiveEffectUnmountInDEV(fiber){{// We don't need to re-check StrictEffectsMode here.\n// This function is only called if that check has already passed.\nswitch(fiber.tag){case FunctionComponent:case ForwardRef:case SimpleMemoComponent:{try{commitHookEffectListUnmount(Passive$1|HasEffect,fiber,fiber.return);}catch(error){captureCommitPhaseError(fiber,fiber.return,error);}}}}}var COMPONENT_TYPE=0;var HAS_PSEUDO_CLASS_TYPE=1;var ROLE_TYPE=2;var TEST_NAME_TYPE=3;var TEXT_TYPE=4;if(typeof Symbol==='function'&&Symbol.for){var symbolFor=Symbol.for;COMPONENT_TYPE=symbolFor('selector.component');HAS_PSEUDO_CLASS_TYPE=symbolFor('selector.has_pseudo_class');ROLE_TYPE=symbolFor('selector.role');TEST_NAME_TYPE=symbolFor('selector.test_id');TEXT_TYPE=symbolFor('selector.text');}var commitHooks=[];function onCommitRoot$1(){{commitHooks.forEach(function(commitHook){return commitHook();});}}var ReactCurrentActQueue=ReactSharedInternals.ReactCurrentActQueue;function isLegacyActEnvironment(fiber){{// Legacy mode. We preserve the behavior of React 17's act. It assumes an\n// act environment whenever `jest` is defined, but you can still turn off\n// spurious warnings by setting IS_REACT_ACT_ENVIRONMENT explicitly\n// to false.\nvar isReactActEnvironmentGlobal=// $FlowExpectedError – Flow doesn't know about IS_REACT_ACT_ENVIRONMENT global\ntypeof IS_REACT_ACT_ENVIRONMENT!=='undefined'?IS_REACT_ACT_ENVIRONMENT:undefined;// $FlowExpectedError - Flow doesn't know about jest\nvar jestIsDefined=typeof jest!=='undefined';return jestIsDefined&&isReactActEnvironmentGlobal!==false;}}function isConcurrentActEnvironment(){{var isReactActEnvironmentGlobal=// $FlowExpectedError – Flow doesn't know about IS_REACT_ACT_ENVIRONMENT global\ntypeof IS_REACT_ACT_ENVIRONMENT!=='undefined'?IS_REACT_ACT_ENVIRONMENT:undefined;if(!isReactActEnvironmentGlobal&&ReactCurrentActQueue.current!==null){// TODO: Include link to relevant documentation page.\nerror('The current testing environment is not configured to support '+'act(...)');}return isReactActEnvironmentGlobal;}}var ceil=Math.ceil;var ReactCurrentDispatcher$2=ReactSharedInternals.ReactCurrentDispatcher,ReactCurrentOwner$2=ReactSharedInternals.ReactCurrentOwner,ReactCurrentBatchConfig$3=ReactSharedInternals.ReactCurrentBatchConfig,ReactCurrentActQueue$1=ReactSharedInternals.ReactCurrentActQueue;var NoContext=/*             */0;var BatchedContext=/*               */1;var RenderContext=/*                */2;var CommitContext=/*                */4;var RootInProgress=0;var RootFatalErrored=1;var RootErrored=2;var RootSuspended=3;var RootSuspendedWithDelay=4;var RootCompleted=5;var RootDidNotComplete=6;// Describes where we are in the React execution stack\nvar executionContext=NoContext;// The root we're working on\nvar workInProgressRoot=null;// The fiber we're working on\nvar workInProgress=null;// The lanes we're rendering\nvar workInProgressRootRenderLanes=NoLanes;// Stack that allows components to change the render lanes for its subtree\n// This is a superset of the lanes we started working on at the root. The only\n// case where it's different from `workInProgressRootRenderLanes` is when we\n// enter a subtree that is hidden and needs to be unhidden: Suspense and\n// Offscreen component.\n//\n// Most things in the work loop should deal with workInProgressRootRenderLanes.\n// Most things in begin/complete phases should deal with subtreeRenderLanes.\nvar subtreeRenderLanes=NoLanes;var subtreeRenderLanesCursor=createCursor(NoLanes);// Whether to root completed, errored, suspended, etc.\nvar workInProgressRootExitStatus=RootInProgress;// A fatal error, if one is thrown\nvar workInProgressRootFatalError=null;// \"Included\" lanes refer to lanes that were worked on during this render. It's\n// slightly different than `renderLanes` because `renderLanes` can change as you\n// enter and exit an Offscreen tree. This value is the combination of all render\n// lanes for the entire render phase.\nvar workInProgressRootIncludedLanes=NoLanes;// The work left over by components that were visited during this render. Only\n// includes unprocessed updates, not work in bailed out children.\nvar workInProgressRootSkippedLanes=NoLanes;// Lanes that were updated (in an interleaved event) during this render.\nvar workInProgressRootInterleavedUpdatedLanes=NoLanes;// Lanes that were updated during the render phase (*not* an interleaved event).\nvar workInProgressRootPingedLanes=NoLanes;// Errors that are thrown during the render phase.\nvar workInProgressRootConcurrentErrors=null;// These are errors that we recovered from without surfacing them to the UI.\n// We will log them once the tree commits.\nvar workInProgressRootRecoverableErrors=null;// The most recent time we committed a fallback. This lets us ensure a train\n// model where we don't commit new loading states in too quick succession.\nvar globalMostRecentFallbackTime=0;var FALLBACK_THROTTLE_MS=500;// The absolute time for when we should start giving up on rendering\n// more and prefer CPU suspense heuristics instead.\nvar workInProgressRootRenderTargetTime=Infinity;// How long a render is supposed to take before we start following CPU\n// suspense heuristics and opt out of rendering more content.\nvar RENDER_TIMEOUT_MS=500;var workInProgressTransitions=null;function resetRenderTimer(){workInProgressRootRenderTargetTime=now()+RENDER_TIMEOUT_MS;}function getRenderTargetTime(){return workInProgressRootRenderTargetTime;}var hasUncaughtError=false;var firstUncaughtError=null;var legacyErrorBoundariesThatAlreadyFailed=null;// Only used when enableProfilerNestedUpdateScheduledHook is true;\nvar rootDoesHavePassiveEffects=false;var rootWithPendingPassiveEffects=null;var pendingPassiveEffectsLanes=NoLanes;var pendingPassiveProfilerEffects=[];var pendingPassiveTransitions=null;// Use these to prevent an infinite loop of nested updates\nvar NESTED_UPDATE_LIMIT=50;var nestedUpdateCount=0;var rootWithNestedUpdates=null;var isFlushingPassiveEffects=false;var didScheduleUpdateDuringPassiveEffects=false;var NESTED_PASSIVE_UPDATE_LIMIT=50;var nestedPassiveUpdateCount=0;var rootWithPassiveNestedUpdates=null;// If two updates are scheduled within the same event, we should treat their\n// event times as simultaneous, even if the actual clock time has advanced\n// between the first and second call.\nvar currentEventTime=NoTimestamp;var currentEventTransitionLane=NoLanes;var isRunningInsertionEffect=false;function getWorkInProgressRoot(){return workInProgressRoot;}function requestEventTime(){if((executionContext&(RenderContext|CommitContext))!==NoContext){// We're inside React, so it's fine to read the actual time.\nreturn now();}// We're not inside React, so we may be in the middle of a browser event.\nif(currentEventTime!==NoTimestamp){// Use the same start time for all updates until we enter React again.\nreturn currentEventTime;}// This is the first update since React yielded. Compute a new start time.\ncurrentEventTime=now();return currentEventTime;}function requestUpdateLane(fiber){// Special cases\nvar mode=fiber.mode;if((mode&ConcurrentMode)===NoMode){return SyncLane;}else if((executionContext&RenderContext)!==NoContext&&workInProgressRootRenderLanes!==NoLanes){// This is a render phase update. These are not officially supported. The\n// old behavior is to give this the same \"thread\" (lanes) as\n// whatever is currently rendering. So if you call `setState` on a component\n// that happens later in the same render, it will flush. Ideally, we want to\n// remove the special case and treat them as if they came from an\n// interleaved event. Regardless, this pattern is not officially supported.\n// This behavior is only a fallback. The flag only exists until we can roll\n// out the setState warning, since existing code might accidentally rely on\n// the current behavior.\nreturn pickArbitraryLane(workInProgressRootRenderLanes);}var isTransition=requestCurrentTransition()!==NoTransition;if(isTransition){if(ReactCurrentBatchConfig$3.transition!==null){var transition=ReactCurrentBatchConfig$3.transition;if(!transition._updatedFibers){transition._updatedFibers=new Set();}transition._updatedFibers.add(fiber);}// The algorithm for assigning an update to a lane should be stable for all\n// updates at the same priority within the same event. To do this, the\n// inputs to the algorithm must be the same.\n//\n// The trick we use is to cache the first of each of these inputs within an\n// event. Then reset the cached values once we can be sure the event is\n// over. Our heuristic for that is whenever we enter a concurrent work loop.\nif(currentEventTransitionLane===NoLane){// All transitions within the same event are assigned the same lane.\ncurrentEventTransitionLane=claimNextTransitionLane();}return currentEventTransitionLane;}// Updates originating inside certain React methods, like flushSync, have\n// their priority set by tracking it with a context variable.\n//\n// The opaque type returned by the host config is internally a lane, so we can\n// use that directly.\n// TODO: Move this type conversion to the event priority module.\nvar updateLane=getCurrentUpdatePriority();if(updateLane!==NoLane){return updateLane;}// This update originated outside React. Ask the host environment for an\n// appropriate priority, based on the type of event.\n//\n// The opaque type returned by the host config is internally a lane, so we can\n// use that directly.\n// TODO: Move this type conversion to the event priority module.\nvar eventLane=getCurrentEventPriority();return eventLane;}function requestRetryLane(fiber){// This is a fork of `requestUpdateLane` designed specifically for Suspense\n// \"retries\" — a special update that attempts to flip a Suspense boundary\n// from its placeholder state to its primary/resolved state.\n// Special cases\nvar mode=fiber.mode;if((mode&ConcurrentMode)===NoMode){return SyncLane;}return claimNextRetryLane();}function scheduleUpdateOnFiber(root,fiber,lane,eventTime){checkForNestedUpdates();{if(isRunningInsertionEffect){error('useInsertionEffect must not schedule updates.');}}{if(isFlushingPassiveEffects){didScheduleUpdateDuringPassiveEffects=true;}}// Mark that the root has a pending update.\nmarkRootUpdated(root,lane,eventTime);if((executionContext&RenderContext)!==NoLanes&&root===workInProgressRoot){// This update was dispatched during the render phase. This is a mistake\n// if the update originates from user space (with the exception of local\n// hook updates, which are handled differently and don't reach this\n// function), but there are some internal React features that use this as\n// an implementation detail, like selective hydration.\nwarnAboutRenderPhaseUpdatesInDEV(fiber);// Track lanes that were updated during the render phase\n}else{// This is a normal update, scheduled from outside the render phase. For\n// example, during an input event.\n{if(isDevToolsPresent){addFiberToLanesMap(root,fiber,lane);}}warnIfUpdatesNotWrappedWithActDEV(fiber);if(root===workInProgressRoot){// Received an update to a tree that's in the middle of rendering. Mark\n// that there was an interleaved update work on this root. Unless the\n// `deferRenderPhaseUpdateToNextBatch` flag is off and this is a render\n// phase update. In that case, we don't treat render phase updates as if\n// they were interleaved, for backwards compat reasons.\nif((executionContext&RenderContext)===NoContext){workInProgressRootInterleavedUpdatedLanes=mergeLanes(workInProgressRootInterleavedUpdatedLanes,lane);}if(workInProgressRootExitStatus===RootSuspendedWithDelay){// The root already suspended with a delay, which means this render\n// definitely won't finish. Since we have a new update, let's mark it as\n// suspended now, right before marking the incoming update. This has the\n// effect of interrupting the current render and switching to the update.\n// TODO: Make sure this doesn't override pings that happen while we've\n// already started rendering.\nmarkRootSuspended$1(root,workInProgressRootRenderLanes);}}ensureRootIsScheduled(root,eventTime);if(lane===SyncLane&&executionContext===NoContext&&(fiber.mode&ConcurrentMode)===NoMode&&// Treat `act` as if it's inside `batchedUpdates`, even in legacy mode.\n!ReactCurrentActQueue$1.isBatchingLegacy){// Flush the synchronous work now, unless we're already working or inside\n// a batch. This is intentionally inside scheduleUpdateOnFiber instead of\n// scheduleCallbackForFiber to preserve the ability to schedule a callback\n// without immediately flushing it. We only do this for user-initiated\n// updates, to preserve historical behavior of legacy mode.\nresetRenderTimer();flushSyncCallbacksOnlyInLegacyMode();}}}function scheduleInitialHydrationOnRoot(root,lane,eventTime){// This is a special fork of scheduleUpdateOnFiber that is only used to\n// schedule the initial hydration of a root that has just been created. Most\n// of the stuff in scheduleUpdateOnFiber can be skipped.\n//\n// The main reason for this separate path, though, is to distinguish the\n// initial children from subsequent updates. In fully client-rendered roots\n// (createRoot instead of hydrateRoot), all top-level renders are modeled as\n// updates, but hydration roots are special because the initial render must\n// match what was rendered on the server.\nvar current=root.current;current.lanes=lane;markRootUpdated(root,lane,eventTime);ensureRootIsScheduled(root,eventTime);}function isUnsafeClassRenderPhaseUpdate(fiber){// Check if this is a render phase update. Only called by class components,\n// which special (deprecated) behavior for UNSAFE_componentWillReceive props.\nreturn(// TODO: Remove outdated deferRenderPhaseUpdateToNextBatch experiment. We\n// decided not to enable it.\n(executionContext&RenderContext)!==NoContext);}// Use this function to schedule a task for a root. There's only one task per\n// root; if a task was already scheduled, we'll check to make sure the priority\n// of the existing task is the same as the priority of the next level that the\n// root has work on. This function is called on every update, and right before\n// exiting a task.\nfunction ensureRootIsScheduled(root,currentTime){var existingCallbackNode=root.callbackNode;// Check if any lanes are being starved by other work. If so, mark them as\n// expired so we know to work on those next.\nmarkStarvedLanesAsExpired(root,currentTime);// Determine the next lanes to work on, and their priority.\nvar nextLanes=getNextLanes(root,root===workInProgressRoot?workInProgressRootRenderLanes:NoLanes);if(nextLanes===NoLanes){// Special case: There's nothing to work on.\nif(existingCallbackNode!==null){cancelCallback$1(existingCallbackNode);}root.callbackNode=null;root.callbackPriority=NoLane;return;}// We use the highest priority lane to represent the priority of the callback.\nvar newCallbackPriority=getHighestPriorityLane(nextLanes);// Check if there's an existing task. We may be able to reuse it.\nvar existingCallbackPriority=root.callbackPriority;if(existingCallbackPriority===newCallbackPriority&&// Special case related to `act`. If the currently scheduled task is a\n// Scheduler task, rather than an `act` task, cancel it and re-scheduled\n// on the `act` queue.\n!(ReactCurrentActQueue$1.current!==null&&existingCallbackNode!==fakeActCallbackNode)){{// If we're going to re-use an existing task, it needs to exist.\n// Assume that discrete update microtasks are non-cancellable and null.\n// TODO: Temporary until we confirm this warning is not fired.\nif(existingCallbackNode==null&&existingCallbackPriority!==SyncLane){error('Expected scheduled callback to exist. This error is likely caused by a bug in React. Please file an issue.');}}// The priority hasn't changed. We can reuse the existing task. Exit.\nreturn;}if(existingCallbackNode!=null){// Cancel the existing callback. We'll schedule a new one below.\ncancelCallback$1(existingCallbackNode);}// Schedule a new callback.\nvar newCallbackNode;if(newCallbackPriority===SyncLane){// Special case: Sync React callbacks are scheduled on a special\n// internal queue\nif(root.tag===LegacyRoot){if(ReactCurrentActQueue$1.isBatchingLegacy!==null){ReactCurrentActQueue$1.didScheduleLegacyUpdate=true;}scheduleLegacySyncCallback(performSyncWorkOnRoot.bind(null,root));}else{scheduleSyncCallback(performSyncWorkOnRoot.bind(null,root));}{// Flush the queue in a microtask.\nif(ReactCurrentActQueue$1.current!==null){// Inside `act`, use our internal `act` queue so that these get flushed\n// at the end of the current scope even when using the sync version\n// of `act`.\nReactCurrentActQueue$1.current.push(flushSyncCallbacks);}else{scheduleMicrotask(function(){// In Safari, appending an iframe forces microtasks to run.\n// https://github.com/facebook/react/issues/22459\n// We don't support running callbacks in the middle of render\n// or commit so we need to check against that.\nif((executionContext&(RenderContext|CommitContext))===NoContext){// Note that this would still prematurely flush the callbacks\n// if this happens outside render or commit phase (e.g. in an event).\nflushSyncCallbacks();}});}}newCallbackNode=null;}else{var schedulerPriorityLevel;switch(lanesToEventPriority(nextLanes)){case DiscreteEventPriority:schedulerPriorityLevel=ImmediatePriority;break;case ContinuousEventPriority:schedulerPriorityLevel=UserBlockingPriority;break;case DefaultEventPriority:schedulerPriorityLevel=NormalPriority;break;case IdleEventPriority:schedulerPriorityLevel=IdlePriority;break;default:schedulerPriorityLevel=NormalPriority;break;}newCallbackNode=scheduleCallback$1(schedulerPriorityLevel,performConcurrentWorkOnRoot.bind(null,root));}root.callbackPriority=newCallbackPriority;root.callbackNode=newCallbackNode;}// This is the entry point for every concurrent task, i.e. anything that\n// goes through Scheduler.\nfunction performConcurrentWorkOnRoot(root,didTimeout){{resetNestedUpdateFlag();}// Since we know we're in a React event, we can clear the current\n// event time. The next update will compute a new event time.\ncurrentEventTime=NoTimestamp;currentEventTransitionLane=NoLanes;if((executionContext&(RenderContext|CommitContext))!==NoContext){throw new Error('Should not already be working.');}// Flush any pending passive effects before deciding which lanes to work on,\n// in case they schedule additional work.\nvar originalCallbackNode=root.callbackNode;var didFlushPassiveEffects=flushPassiveEffects();if(didFlushPassiveEffects){// Something in the passive effect phase may have canceled the current task.\n// Check if the task node for this root was changed.\nif(root.callbackNode!==originalCallbackNode){// The current task was canceled. Exit. We don't need to call\n// `ensureRootIsScheduled` because the check above implies either that\n// there's a new task, or that there's no remaining work on this root.\nreturn null;}}// Determine the next lanes to work on, using the fields stored\n// on the root.\nvar lanes=getNextLanes(root,root===workInProgressRoot?workInProgressRootRenderLanes:NoLanes);if(lanes===NoLanes){// Defensive coding. This is never expected to happen.\nreturn null;}// We disable time-slicing in some cases: if the work has been CPU-bound\n// for too long (\"expired\" work, to prevent starvation), or we're in\n// sync-updates-by-default mode.\n// TODO: We only check `didTimeout` defensively, to account for a Scheduler\n// bug we're still investigating. Once the bug in Scheduler is fixed,\n// we can remove this, since we track expiration ourselves.\nvar shouldTimeSlice=!includesBlockingLane(root,lanes)&&!includesExpiredLane(root,lanes)&&!didTimeout;var exitStatus=shouldTimeSlice?renderRootConcurrent(root,lanes):renderRootSync(root,lanes);if(exitStatus!==RootInProgress){if(exitStatus===RootErrored){// If something threw an error, try rendering one more time. We'll\n// render synchronously to block concurrent data mutations, and we'll\n// includes all pending updates are included. If it still fails after\n// the second attempt, we'll give up and commit the resulting tree.\nvar errorRetryLanes=getLanesToRetrySynchronouslyOnError(root);if(errorRetryLanes!==NoLanes){lanes=errorRetryLanes;exitStatus=recoverFromConcurrentError(root,errorRetryLanes);}}if(exitStatus===RootFatalErrored){var fatalError=workInProgressRootFatalError;prepareFreshStack(root,NoLanes);markRootSuspended$1(root,lanes);ensureRootIsScheduled(root,now());throw fatalError;}if(exitStatus===RootDidNotComplete){// The render unwound without completing the tree. This happens in special\n// cases where need to exit the current render without producing a\n// consistent tree or committing.\n//\n// This should only happen during a concurrent render, not a discrete or\n// synchronous update. We should have already checked for this when we\n// unwound the stack.\nmarkRootSuspended$1(root,lanes);}else{// The render completed.\n// Check if this render may have yielded to a concurrent event, and if so,\n// confirm that any newly rendered stores are consistent.\n// TODO: It's possible that even a concurrent render may never have yielded\n// to the main thread, if it was fast enough, or if it expired. We could\n// skip the consistency check in that case, too.\nvar renderWasConcurrent=!includesBlockingLane(root,lanes);var finishedWork=root.current.alternate;if(renderWasConcurrent&&!isRenderConsistentWithExternalStores(finishedWork)){// A store was mutated in an interleaved event. Render again,\n// synchronously, to block further mutations.\nexitStatus=renderRootSync(root,lanes);// We need to check again if something threw\nif(exitStatus===RootErrored){var _errorRetryLanes=getLanesToRetrySynchronouslyOnError(root);if(_errorRetryLanes!==NoLanes){lanes=_errorRetryLanes;exitStatus=recoverFromConcurrentError(root,_errorRetryLanes);// We assume the tree is now consistent because we didn't yield to any\n// concurrent events.\n}}if(exitStatus===RootFatalErrored){var _fatalError=workInProgressRootFatalError;prepareFreshStack(root,NoLanes);markRootSuspended$1(root,lanes);ensureRootIsScheduled(root,now());throw _fatalError;}}// We now have a consistent tree. The next step is either to commit it,\n// or, if something suspended, wait to commit it after a timeout.\nroot.finishedWork=finishedWork;root.finishedLanes=lanes;finishConcurrentRender(root,exitStatus,lanes);}}ensureRootIsScheduled(root,now());if(root.callbackNode===originalCallbackNode){// The task node scheduled for this root is the same one that's\n// currently executed. Need to return a continuation.\nreturn performConcurrentWorkOnRoot.bind(null,root);}return null;}function recoverFromConcurrentError(root,errorRetryLanes){// If an error occurred during hydration, discard server response and fall\n// back to client side render.\n// Before rendering again, save the errors from the previous attempt.\nvar errorsFromFirstAttempt=workInProgressRootConcurrentErrors;if(isRootDehydrated(root)){// The shell failed to hydrate. Set a flag to force a client rendering\n// during the next attempt. To do this, we call prepareFreshStack now\n// to create the root work-in-progress fiber. This is a bit weird in terms\n// of factoring, because it relies on renderRootSync not calling\n// prepareFreshStack again in the call below, which happens because the\n// root and lanes haven't changed.\n//\n// TODO: I think what we should do is set ForceClientRender inside\n// throwException, like we do for nested Suspense boundaries. The reason\n// it's here instead is so we can switch to the synchronous work loop, too.\n// Something to consider for a future refactor.\nvar rootWorkInProgress=prepareFreshStack(root,errorRetryLanes);rootWorkInProgress.flags|=ForceClientRender;{errorHydratingContainer(root.containerInfo);}}var exitStatus=renderRootSync(root,errorRetryLanes);if(exitStatus!==RootErrored){// Successfully finished rendering on retry\n// The errors from the failed first attempt have been recovered. Add\n// them to the collection of recoverable errors. We'll log them in the\n// commit phase.\nvar errorsFromSecondAttempt=workInProgressRootRecoverableErrors;workInProgressRootRecoverableErrors=errorsFromFirstAttempt;// The errors from the second attempt should be queued after the errors\n// from the first attempt, to preserve the causal sequence.\nif(errorsFromSecondAttempt!==null){queueRecoverableErrors(errorsFromSecondAttempt);}}return exitStatus;}function queueRecoverableErrors(errors){if(workInProgressRootRecoverableErrors===null){workInProgressRootRecoverableErrors=errors;}else{workInProgressRootRecoverableErrors.push.apply(workInProgressRootRecoverableErrors,errors);}}function finishConcurrentRender(root,exitStatus,lanes){switch(exitStatus){case RootInProgress:case RootFatalErrored:{throw new Error('Root did not complete. This is a bug in React.');}// Flow knows about invariant, so it complains if I add a break\n// statement, but eslint doesn't know about invariant, so it complains\n// if I do. eslint-disable-next-line no-fallthrough\ncase RootErrored:{// We should have already attempted to retry this tree. If we reached\n// this point, it errored again. Commit it.\ncommitRoot(root,workInProgressRootRecoverableErrors,workInProgressTransitions);break;}case RootSuspended:{markRootSuspended$1(root,lanes);// We have an acceptable loading state. We need to figure out if we\n// should immediately commit it or wait a bit.\nif(includesOnlyRetries(lanes)&&// do not delay if we're inside an act() scope\n!shouldForceFlushFallbacksInDEV()){// This render only included retries, no updates. Throttle committing\n// retries so that we don't show too many loading states too quickly.\nvar msUntilTimeout=globalMostRecentFallbackTime+FALLBACK_THROTTLE_MS-now();// Don't bother with a very short suspense time.\nif(msUntilTimeout>10){var nextLanes=getNextLanes(root,NoLanes);if(nextLanes!==NoLanes){// There's additional work on this root.\nbreak;}var suspendedLanes=root.suspendedLanes;if(!isSubsetOfLanes(suspendedLanes,lanes)){// We should prefer to render the fallback of at the last\n// suspended level. Ping the last suspended level to try\n// rendering it again.\n// FIXME: What if the suspended lanes are Idle? Should not restart.\nvar eventTime=requestEventTime();markRootPinged(root,suspendedLanes);break;}// The render is suspended, it hasn't timed out, and there's no\n// lower priority work to do. Instead of committing the fallback\n// immediately, wait for more data to arrive.\nroot.timeoutHandle=scheduleTimeout(commitRoot.bind(null,root,workInProgressRootRecoverableErrors,workInProgressTransitions),msUntilTimeout);break;}}// The work expired. Commit immediately.\ncommitRoot(root,workInProgressRootRecoverableErrors,workInProgressTransitions);break;}case RootSuspendedWithDelay:{markRootSuspended$1(root,lanes);if(includesOnlyTransitions(lanes)){// This is a transition, so we should exit without committing a\n// placeholder and without scheduling a timeout. Delay indefinitely\n// until we receive more data.\nbreak;}if(!shouldForceFlushFallbacksInDEV()){// This is not a transition, but we did trigger an avoided state.\n// Schedule a placeholder to display after a short delay, using the Just\n// Noticeable Difference.\n// TODO: Is the JND optimization worth the added complexity? If this is\n// the only reason we track the event time, then probably not.\n// Consider removing.\nvar mostRecentEventTime=getMostRecentEventTime(root,lanes);var eventTimeMs=mostRecentEventTime;var timeElapsedMs=now()-eventTimeMs;var _msUntilTimeout=jnd(timeElapsedMs)-timeElapsedMs;// Don't bother with a very short suspense time.\nif(_msUntilTimeout>10){// Instead of committing the fallback immediately, wait for more data\n// to arrive.\nroot.timeoutHandle=scheduleTimeout(commitRoot.bind(null,root,workInProgressRootRecoverableErrors,workInProgressTransitions),_msUntilTimeout);break;}}// Commit the placeholder.\ncommitRoot(root,workInProgressRootRecoverableErrors,workInProgressTransitions);break;}case RootCompleted:{// The work completed. Ready to commit.\ncommitRoot(root,workInProgressRootRecoverableErrors,workInProgressTransitions);break;}default:{throw new Error('Unknown root exit status.');}}}function isRenderConsistentWithExternalStores(finishedWork){// Search the rendered tree for external store reads, and check whether the\n// stores were mutated in a concurrent event. Intentionally using an iterative\n// loop instead of recursion so we can exit early.\nvar node=finishedWork;while(true){if(node.flags&StoreConsistency){var updateQueue=node.updateQueue;if(updateQueue!==null){var checks=updateQueue.stores;if(checks!==null){for(var i=0;i<checks.length;i++){var check=checks[i];var getSnapshot=check.getSnapshot;var renderedValue=check.value;try{if(!objectIs(getSnapshot(),renderedValue)){// Found an inconsistent store.\nreturn false;}}catch(error){// If `getSnapshot` throws, return `false`. This will schedule\n// a re-render, and the error will be rethrown during render.\nreturn false;}}}}}var child=node.child;if(node.subtreeFlags&StoreConsistency&&child!==null){child.return=node;node=child;continue;}if(node===finishedWork){return true;}while(node.sibling===null){if(node.return===null||node.return===finishedWork){return true;}node=node.return;}node.sibling.return=node.return;node=node.sibling;}// Flow doesn't know this is unreachable, but eslint does\n// eslint-disable-next-line no-unreachable\nreturn true;}function markRootSuspended$1(root,suspendedLanes){// When suspending, we should always exclude lanes that were pinged or (more\n// rarely, since we try to avoid it) updated during the render phase.\n// TODO: Lol maybe there's a better way to factor this besides this\n// obnoxiously named function :)\nsuspendedLanes=removeLanes(suspendedLanes,workInProgressRootPingedLanes);suspendedLanes=removeLanes(suspendedLanes,workInProgressRootInterleavedUpdatedLanes);markRootSuspended(root,suspendedLanes);}// This is the entry point for synchronous tasks that don't go\n// through Scheduler\nfunction performSyncWorkOnRoot(root){{syncNestedUpdateFlag();}if((executionContext&(RenderContext|CommitContext))!==NoContext){throw new Error('Should not already be working.');}flushPassiveEffects();var lanes=getNextLanes(root,NoLanes);if(!includesSomeLane(lanes,SyncLane)){// There's no remaining sync work left.\nensureRootIsScheduled(root,now());return null;}var exitStatus=renderRootSync(root,lanes);if(root.tag!==LegacyRoot&&exitStatus===RootErrored){// If something threw an error, try rendering one more time. We'll render\n// synchronously to block concurrent data mutations, and we'll includes\n// all pending updates are included. If it still fails after the second\n// attempt, we'll give up and commit the resulting tree.\nvar errorRetryLanes=getLanesToRetrySynchronouslyOnError(root);if(errorRetryLanes!==NoLanes){lanes=errorRetryLanes;exitStatus=recoverFromConcurrentError(root,errorRetryLanes);}}if(exitStatus===RootFatalErrored){var fatalError=workInProgressRootFatalError;prepareFreshStack(root,NoLanes);markRootSuspended$1(root,lanes);ensureRootIsScheduled(root,now());throw fatalError;}if(exitStatus===RootDidNotComplete){throw new Error('Root did not complete. This is a bug in React.');}// We now have a consistent tree. Because this is a sync render, we\n// will commit it even if something suspended.\nvar finishedWork=root.current.alternate;root.finishedWork=finishedWork;root.finishedLanes=lanes;commitRoot(root,workInProgressRootRecoverableErrors,workInProgressTransitions);// Before exiting, make sure there's a callback scheduled for the next\n// pending level.\nensureRootIsScheduled(root,now());return null;}function flushRoot(root,lanes){if(lanes!==NoLanes){markRootEntangled(root,mergeLanes(lanes,SyncLane));ensureRootIsScheduled(root,now());if((executionContext&(RenderContext|CommitContext))===NoContext){resetRenderTimer();flushSyncCallbacks();}}}function batchedUpdates$1(fn,a){var prevExecutionContext=executionContext;executionContext|=BatchedContext;try{return fn(a);}finally{executionContext=prevExecutionContext;// If there were legacy sync updates, flush them at the end of the outer\n// most batchedUpdates-like method.\nif(executionContext===NoContext&&// Treat `act` as if it's inside `batchedUpdates`, even in legacy mode.\n!ReactCurrentActQueue$1.isBatchingLegacy){resetRenderTimer();flushSyncCallbacksOnlyInLegacyMode();}}}function discreteUpdates(fn,a,b,c,d){var previousPriority=getCurrentUpdatePriority();var prevTransition=ReactCurrentBatchConfig$3.transition;try{ReactCurrentBatchConfig$3.transition=null;setCurrentUpdatePriority(DiscreteEventPriority);return fn(a,b,c,d);}finally{setCurrentUpdatePriority(previousPriority);ReactCurrentBatchConfig$3.transition=prevTransition;if(executionContext===NoContext){resetRenderTimer();}}}// Overload the definition to the two valid signatures.\n// Warning, this opts-out of checking the function body.\n// eslint-disable-next-line no-redeclare\nfunction flushSync(fn){// In legacy mode, we flush pending passive effects at the beginning of the\n// next event, not at the end of the previous one.\nif(rootWithPendingPassiveEffects!==null&&rootWithPendingPassiveEffects.tag===LegacyRoot&&(executionContext&(RenderContext|CommitContext))===NoContext){flushPassiveEffects();}var prevExecutionContext=executionContext;executionContext|=BatchedContext;var prevTransition=ReactCurrentBatchConfig$3.transition;var previousPriority=getCurrentUpdatePriority();try{ReactCurrentBatchConfig$3.transition=null;setCurrentUpdatePriority(DiscreteEventPriority);if(fn){return fn();}else{return undefined;}}finally{setCurrentUpdatePriority(previousPriority);ReactCurrentBatchConfig$3.transition=prevTransition;executionContext=prevExecutionContext;// Flush the immediate callbacks that were scheduled during this batch.\n// Note that this will happen even if batchedUpdates is higher up\n// the stack.\nif((executionContext&(RenderContext|CommitContext))===NoContext){flushSyncCallbacks();}}}function isAlreadyRendering(){// Used by the renderer to print a warning if certain APIs are called from\n// the wrong context.\nreturn(executionContext&(RenderContext|CommitContext))!==NoContext;}function pushRenderLanes(fiber,lanes){push(subtreeRenderLanesCursor,subtreeRenderLanes,fiber);subtreeRenderLanes=mergeLanes(subtreeRenderLanes,lanes);workInProgressRootIncludedLanes=mergeLanes(workInProgressRootIncludedLanes,lanes);}function popRenderLanes(fiber){subtreeRenderLanes=subtreeRenderLanesCursor.current;pop(subtreeRenderLanesCursor,fiber);}function prepareFreshStack(root,lanes){root.finishedWork=null;root.finishedLanes=NoLanes;var timeoutHandle=root.timeoutHandle;if(timeoutHandle!==noTimeout){// The root previous suspended and scheduled a timeout to commit a fallback\n// state. Now that we have additional work, cancel the timeout.\nroot.timeoutHandle=noTimeout;// $FlowFixMe Complains noTimeout is not a TimeoutID, despite the check above\ncancelTimeout(timeoutHandle);}if(workInProgress!==null){var interruptedWork=workInProgress.return;while(interruptedWork!==null){var current=interruptedWork.alternate;unwindInterruptedWork(current,interruptedWork);interruptedWork=interruptedWork.return;}}workInProgressRoot=root;var rootWorkInProgress=createWorkInProgress(root.current,null);workInProgress=rootWorkInProgress;workInProgressRootRenderLanes=subtreeRenderLanes=workInProgressRootIncludedLanes=lanes;workInProgressRootExitStatus=RootInProgress;workInProgressRootFatalError=null;workInProgressRootSkippedLanes=NoLanes;workInProgressRootInterleavedUpdatedLanes=NoLanes;workInProgressRootPingedLanes=NoLanes;workInProgressRootConcurrentErrors=null;workInProgressRootRecoverableErrors=null;finishQueueingConcurrentUpdates();{ReactStrictModeWarnings.discardPendingWarnings();}return rootWorkInProgress;}function handleError(root,thrownValue){do{var erroredWork=workInProgress;try{// Reset module-level state that was set during the render phase.\nresetContextDependencies();resetHooksAfterThrow();resetCurrentFiber();// TODO: I found and added this missing line while investigating a\n// separate issue. Write a regression test using string refs.\nReactCurrentOwner$2.current=null;if(erroredWork===null||erroredWork.return===null){// Expected to be working on a non-root fiber. This is a fatal error\n// because there's no ancestor that can handle it; the root is\n// supposed to capture all errors that weren't caught by an error\n// boundary.\nworkInProgressRootExitStatus=RootFatalErrored;workInProgressRootFatalError=thrownValue;// Set `workInProgress` to null. This represents advancing to the next\n// sibling, or the parent if there are no siblings. But since the root\n// has no siblings nor a parent, we set it to null. Usually this is\n// handled by `completeUnitOfWork` or `unwindWork`, but since we're\n// intentionally not calling those, we need set it here.\n// TODO: Consider calling `unwindWork` to pop the contexts.\nworkInProgress=null;return;}if(enableProfilerTimer&&erroredWork.mode&ProfileMode){// Record the time spent rendering before an error was thrown. This\n// avoids inaccurate Profiler durations in the case of a\n// suspended render.\nstopProfilerTimerIfRunningAndRecordDelta(erroredWork,true);}if(enableSchedulingProfiler){markComponentRenderStopped();if(thrownValue!==null&&typeof thrownValue==='object'&&typeof thrownValue.then==='function'){var wakeable=thrownValue;markComponentSuspended(erroredWork,wakeable,workInProgressRootRenderLanes);}else{markComponentErrored(erroredWork,thrownValue,workInProgressRootRenderLanes);}}throwException(root,erroredWork.return,erroredWork,thrownValue,workInProgressRootRenderLanes);completeUnitOfWork(erroredWork);}catch(yetAnotherThrownValue){// Something in the return path also threw.\nthrownValue=yetAnotherThrownValue;if(workInProgress===erroredWork&&erroredWork!==null){// If this boundary has already errored, then we had trouble processing\n// the error. Bubble it to the next boundary.\nerroredWork=erroredWork.return;workInProgress=erroredWork;}else{erroredWork=workInProgress;}continue;}// Return to the normal work loop.\nreturn;}while(true);}function pushDispatcher(){var prevDispatcher=ReactCurrentDispatcher$2.current;ReactCurrentDispatcher$2.current=ContextOnlyDispatcher;if(prevDispatcher===null){// The React isomorphic package does not include a default dispatcher.\n// Instead the first renderer will lazily attach one, in order to give\n// nicer error messages.\nreturn ContextOnlyDispatcher;}else{return prevDispatcher;}}function popDispatcher(prevDispatcher){ReactCurrentDispatcher$2.current=prevDispatcher;}function markCommitTimeOfFallback(){globalMostRecentFallbackTime=now();}function markSkippedUpdateLanes(lane){workInProgressRootSkippedLanes=mergeLanes(lane,workInProgressRootSkippedLanes);}function renderDidSuspend(){if(workInProgressRootExitStatus===RootInProgress){workInProgressRootExitStatus=RootSuspended;}}function renderDidSuspendDelayIfPossible(){if(workInProgressRootExitStatus===RootInProgress||workInProgressRootExitStatus===RootSuspended||workInProgressRootExitStatus===RootErrored){workInProgressRootExitStatus=RootSuspendedWithDelay;}// Check if there are updates that we skipped tree that might have unblocked\n// this render.\nif(workInProgressRoot!==null&&(includesNonIdleWork(workInProgressRootSkippedLanes)||includesNonIdleWork(workInProgressRootInterleavedUpdatedLanes))){// Mark the current render as suspended so that we switch to working on\n// the updates that were skipped. Usually we only suspend at the end of\n// the render phase.\n// TODO: We should probably always mark the root as suspended immediately\n// (inside this function), since by suspending at the end of the render\n// phase introduces a potential mistake where we suspend lanes that were\n// pinged or updated while we were rendering.\nmarkRootSuspended$1(workInProgressRoot,workInProgressRootRenderLanes);}}function renderDidError(error){if(workInProgressRootExitStatus!==RootSuspendedWithDelay){workInProgressRootExitStatus=RootErrored;}if(workInProgressRootConcurrentErrors===null){workInProgressRootConcurrentErrors=[error];}else{workInProgressRootConcurrentErrors.push(error);}}// Called during render to determine if anything has suspended.\n// Returns false if we're not sure.\nfunction renderHasNotSuspendedYet(){// If something errored or completed, we can't really be sure,\n// so those are false.\nreturn workInProgressRootExitStatus===RootInProgress;}function renderRootSync(root,lanes){var prevExecutionContext=executionContext;executionContext|=RenderContext;var prevDispatcher=pushDispatcher();// If the root or lanes have changed, throw out the existing stack\n// and prepare a fresh one. Otherwise we'll continue where we left off.\nif(workInProgressRoot!==root||workInProgressRootRenderLanes!==lanes){{if(isDevToolsPresent){var memoizedUpdaters=root.memoizedUpdaters;if(memoizedUpdaters.size>0){restorePendingUpdaters(root,workInProgressRootRenderLanes);memoizedUpdaters.clear();}// At this point, move Fibers that scheduled the upcoming work from the Map to the Set.\n// If we bailout on this work, we'll move them back (like above).\n// It's important to move them now in case the work spawns more work at the same priority with different updaters.\n// That way we can keep the current update and future updates separate.\nmovePendingFibersToMemoized(root,lanes);}}workInProgressTransitions=getTransitionsForLanes();prepareFreshStack(root,lanes);}{markRenderStarted(lanes);}do{try{workLoopSync();break;}catch(thrownValue){handleError(root,thrownValue);}}while(true);resetContextDependencies();executionContext=prevExecutionContext;popDispatcher(prevDispatcher);if(workInProgress!==null){// This is a sync render, so we should have finished the whole tree.\nthrow new Error('Cannot commit an incomplete root. This error is likely caused by a '+'bug in React. Please file an issue.');}{markRenderStopped();}// Set this to null to indicate there's no in-progress render.\nworkInProgressRoot=null;workInProgressRootRenderLanes=NoLanes;return workInProgressRootExitStatus;}// The work loop is an extremely hot path. Tell Closure not to inline it.\n/** @noinline */function workLoopSync(){// Already timed out, so perform work without checking if we need to yield.\nwhile(workInProgress!==null){performUnitOfWork(workInProgress);}}function renderRootConcurrent(root,lanes){var prevExecutionContext=executionContext;executionContext|=RenderContext;var prevDispatcher=pushDispatcher();// If the root or lanes have changed, throw out the existing stack\n// and prepare a fresh one. Otherwise we'll continue where we left off.\nif(workInProgressRoot!==root||workInProgressRootRenderLanes!==lanes){{if(isDevToolsPresent){var memoizedUpdaters=root.memoizedUpdaters;if(memoizedUpdaters.size>0){restorePendingUpdaters(root,workInProgressRootRenderLanes);memoizedUpdaters.clear();}// At this point, move Fibers that scheduled the upcoming work from the Map to the Set.\n// If we bailout on this work, we'll move them back (like above).\n// It's important to move them now in case the work spawns more work at the same priority with different updaters.\n// That way we can keep the current update and future updates separate.\nmovePendingFibersToMemoized(root,lanes);}}workInProgressTransitions=getTransitionsForLanes();resetRenderTimer();prepareFreshStack(root,lanes);}{markRenderStarted(lanes);}do{try{workLoopConcurrent();break;}catch(thrownValue){handleError(root,thrownValue);}}while(true);resetContextDependencies();popDispatcher(prevDispatcher);executionContext=prevExecutionContext;if(workInProgress!==null){// Still work remaining.\n{markRenderYielded();}return RootInProgress;}else{// Completed the tree.\n{markRenderStopped();}// Set this to null to indicate there's no in-progress render.\nworkInProgressRoot=null;workInProgressRootRenderLanes=NoLanes;// Return the final exit status.\nreturn workInProgressRootExitStatus;}}/** @noinline */function workLoopConcurrent(){// Perform work until Scheduler asks us to yield\nwhile(workInProgress!==null&&!shouldYield()){performUnitOfWork(workInProgress);}}function performUnitOfWork(unitOfWork){// The current, flushed, state of this fiber is the alternate. Ideally\n// nothing should rely on this, but relying on it here means that we don't\n// need an additional field on the work in progress.\nvar current=unitOfWork.alternate;setCurrentFiber(unitOfWork);var next;if((unitOfWork.mode&ProfileMode)!==NoMode){startProfilerTimer(unitOfWork);next=beginWork$1(current,unitOfWork,subtreeRenderLanes);stopProfilerTimerIfRunningAndRecordDelta(unitOfWork,true);}else{next=beginWork$1(current,unitOfWork,subtreeRenderLanes);}resetCurrentFiber();unitOfWork.memoizedProps=unitOfWork.pendingProps;if(next===null){// If this doesn't spawn new work, complete the current work.\ncompleteUnitOfWork(unitOfWork);}else{workInProgress=next;}ReactCurrentOwner$2.current=null;}function completeUnitOfWork(unitOfWork){// Attempt to complete the current unit of work, then move to the next\n// sibling. If there are no more siblings, return to the parent fiber.\nvar completedWork=unitOfWork;do{// The current, flushed, state of this fiber is the alternate. Ideally\n// nothing should rely on this, but relying on it here means that we don't\n// need an additional field on the work in progress.\nvar current=completedWork.alternate;var returnFiber=completedWork.return;// Check if the work completed or if something threw.\nif((completedWork.flags&Incomplete)===NoFlags){setCurrentFiber(completedWork);var next=void 0;if((completedWork.mode&ProfileMode)===NoMode){next=completeWork(current,completedWork,subtreeRenderLanes);}else{startProfilerTimer(completedWork);next=completeWork(current,completedWork,subtreeRenderLanes);// Update render duration assuming we didn't error.\nstopProfilerTimerIfRunningAndRecordDelta(completedWork,false);}resetCurrentFiber();if(next!==null){// Completing this fiber spawned new work. Work on that next.\nworkInProgress=next;return;}}else{// This fiber did not complete because something threw. Pop values off\n// the stack without entering the complete phase. If this is a boundary,\n// capture values if possible.\nvar _next=unwindWork(current,completedWork);// Because this fiber did not complete, don't reset its lanes.\nif(_next!==null){// If completing this work spawned new work, do that next. We'll come\n// back here again.\n// Since we're restarting, remove anything that is not a host effect\n// from the effect tag.\n_next.flags&=HostEffectMask;workInProgress=_next;return;}if((completedWork.mode&ProfileMode)!==NoMode){// Record the render duration for the fiber that errored.\nstopProfilerTimerIfRunningAndRecordDelta(completedWork,false);// Include the time spent working on failed children before continuing.\nvar actualDuration=completedWork.actualDuration;var child=completedWork.child;while(child!==null){actualDuration+=child.actualDuration;child=child.sibling;}completedWork.actualDuration=actualDuration;}if(returnFiber!==null){// Mark the parent fiber as incomplete and clear its subtree flags.\nreturnFiber.flags|=Incomplete;returnFiber.subtreeFlags=NoFlags;returnFiber.deletions=null;}else{// We've unwound all the way to the root.\nworkInProgressRootExitStatus=RootDidNotComplete;workInProgress=null;return;}}var siblingFiber=completedWork.sibling;if(siblingFiber!==null){// If there is more work to do in this returnFiber, do that next.\nworkInProgress=siblingFiber;return;}// Otherwise, return to the parent\ncompletedWork=returnFiber;// Update the next thing we're working on in case something throws.\nworkInProgress=completedWork;}while(completedWork!==null);// We've reached the root.\nif(workInProgressRootExitStatus===RootInProgress){workInProgressRootExitStatus=RootCompleted;}}function commitRoot(root,recoverableErrors,transitions){// TODO: This no longer makes any sense. We already wrap the mutation and\n// layout phases. Should be able to remove.\nvar previousUpdateLanePriority=getCurrentUpdatePriority();var prevTransition=ReactCurrentBatchConfig$3.transition;try{ReactCurrentBatchConfig$3.transition=null;setCurrentUpdatePriority(DiscreteEventPriority);commitRootImpl(root,recoverableErrors,transitions,previousUpdateLanePriority);}finally{ReactCurrentBatchConfig$3.transition=prevTransition;setCurrentUpdatePriority(previousUpdateLanePriority);}return null;}function commitRootImpl(root,recoverableErrors,transitions,renderPriorityLevel){do{// `flushPassiveEffects` will call `flushSyncUpdateQueue` at the end, which\n// means `flushPassiveEffects` will sometimes result in additional\n// passive effects. So we need to keep flushing in a loop until there are\n// no more pending effects.\n// TODO: Might be better if `flushPassiveEffects` did not automatically\n// flush synchronous work at the end, to avoid factoring hazards like this.\nflushPassiveEffects();}while(rootWithPendingPassiveEffects!==null);flushRenderPhaseStrictModeWarningsInDEV();if((executionContext&(RenderContext|CommitContext))!==NoContext){throw new Error('Should not already be working.');}var finishedWork=root.finishedWork;var lanes=root.finishedLanes;{markCommitStarted(lanes);}if(finishedWork===null){{markCommitStopped();}return null;}else{{if(lanes===NoLanes){error('root.finishedLanes should not be empty during a commit. This is a '+'bug in React.');}}}root.finishedWork=null;root.finishedLanes=NoLanes;if(finishedWork===root.current){throw new Error('Cannot commit the same tree as before. This error is likely caused by '+'a bug in React. Please file an issue.');}// commitRoot never returns a continuation; it always finishes synchronously.\n// So we can clear these now to allow a new callback to be scheduled.\nroot.callbackNode=null;root.callbackPriority=NoLane;// Update the first and last pending times on this root. The new first\n// pending time is whatever is left on the root fiber.\nvar remainingLanes=mergeLanes(finishedWork.lanes,finishedWork.childLanes);markRootFinished(root,remainingLanes);if(root===workInProgressRoot){// We can reset these now that they are finished.\nworkInProgressRoot=null;workInProgress=null;workInProgressRootRenderLanes=NoLanes;}// If there are pending passive effects, schedule a callback to process them.\n// Do this as early as possible, so it is queued before anything else that\n// might get scheduled in the commit phase. (See #16714.)\n// TODO: Delete all other places that schedule the passive effect callback\n// They're redundant.\nif((finishedWork.subtreeFlags&PassiveMask)!==NoFlags||(finishedWork.flags&PassiveMask)!==NoFlags){if(!rootDoesHavePassiveEffects){rootDoesHavePassiveEffects=true;// to store it in pendingPassiveTransitions until they get processed\n// We need to pass this through as an argument to commitRoot\n// because workInProgressTransitions might have changed between\n// the previous render and commit if we throttle the commit\n// with setTimeout\npendingPassiveTransitions=transitions;scheduleCallback$1(NormalPriority,function(){flushPassiveEffects();// This render triggered passive effects: release the root cache pool\n// *after* passive effects fire to avoid freeing a cache pool that may\n// be referenced by a node in the tree (HostRoot, Cache boundary etc)\nreturn null;});}}// Check if there are any effects in the whole tree.\n// TODO: This is left over from the effect list implementation, where we had\n// to check for the existence of `firstEffect` to satisfy Flow. I think the\n// only other reason this optimization exists is because it affects profiling.\n// Reconsider whether this is necessary.\nvar subtreeHasEffects=(finishedWork.subtreeFlags&(BeforeMutationMask|MutationMask|LayoutMask|PassiveMask))!==NoFlags;var rootHasEffect=(finishedWork.flags&(BeforeMutationMask|MutationMask|LayoutMask|PassiveMask))!==NoFlags;if(subtreeHasEffects||rootHasEffect){var prevTransition=ReactCurrentBatchConfig$3.transition;ReactCurrentBatchConfig$3.transition=null;var previousPriority=getCurrentUpdatePriority();setCurrentUpdatePriority(DiscreteEventPriority);var prevExecutionContext=executionContext;executionContext|=CommitContext;// Reset this to null before calling lifecycles\nReactCurrentOwner$2.current=null;// The commit phase is broken into several sub-phases. We do a separate pass\n// of the effect list for each phase: all mutation effects come before all\n// layout effects, and so on.\n// The first phase a \"before mutation\" phase. We use this phase to read the\n// state of the host tree right before we mutate it. This is where\n// getSnapshotBeforeUpdate is called.\nvar shouldFireAfterActiveInstanceBlur=commitBeforeMutationEffects(root,finishedWork);{// Mark the current commit time to be shared by all Profilers in this\n// batch. This enables them to be grouped later.\nrecordCommitTime();}commitMutationEffects(root,finishedWork,lanes);resetAfterCommit(root.containerInfo);// The work-in-progress tree is now the current tree. This must come after\n// the mutation phase, so that the previous tree is still current during\n// componentWillUnmount, but before the layout phase, so that the finished\n// work is current during componentDidMount/Update.\nroot.current=finishedWork;// The next phase is the layout phase, where we call effects that read\n{markLayoutEffectsStarted(lanes);}commitLayoutEffects(finishedWork,root,lanes);{markLayoutEffectsStopped();}// opportunity to paint.\nrequestPaint();executionContext=prevExecutionContext;// Reset the priority to the previous non-sync value.\nsetCurrentUpdatePriority(previousPriority);ReactCurrentBatchConfig$3.transition=prevTransition;}else{// No effects.\nroot.current=finishedWork;// Measure these anyway so the flamegraph explicitly shows that there were\n// no effects.\n// TODO: Maybe there's a better way to report this.\n{recordCommitTime();}}var rootDidHavePassiveEffects=rootDoesHavePassiveEffects;if(rootDoesHavePassiveEffects){// This commit has passive effects. Stash a reference to them. But don't\n// schedule a callback until after flushing layout work.\nrootDoesHavePassiveEffects=false;rootWithPendingPassiveEffects=root;pendingPassiveEffectsLanes=lanes;}else{{nestedPassiveUpdateCount=0;rootWithPassiveNestedUpdates=null;}}// Read this again, since an effect might have updated it\nremainingLanes=root.pendingLanes;// Check if there's remaining work on this root\n// TODO: This is part of the `componentDidCatch` implementation. Its purpose\n// is to detect whether something might have called setState inside\n// `componentDidCatch`. The mechanism is known to be flawed because `setState`\n// inside `componentDidCatch` is itself flawed — that's why we recommend\n// `getDerivedStateFromError` instead. However, it could be improved by\n// checking if remainingLanes includes Sync work, instead of whether there's\n// any work remaining at all (which would also include stuff like Suspense\n// retries or transitions). It's been like this for a while, though, so fixing\n// it probably isn't that urgent.\nif(remainingLanes===NoLanes){// If there's no remaining work, we can clear the set of already failed\n// error boundaries.\nlegacyErrorBoundariesThatAlreadyFailed=null;}{if(!rootDidHavePassiveEffects){commitDoubleInvokeEffectsInDEV(root.current,false);}}onCommitRoot(finishedWork.stateNode,renderPriorityLevel);{if(isDevToolsPresent){root.memoizedUpdaters.clear();}}{onCommitRoot$1();}// Always call this before exiting `commitRoot`, to ensure that any\n// additional work on this root is scheduled.\nensureRootIsScheduled(root,now());if(recoverableErrors!==null){// There were errors during this render, but recovered from them without\n// needing to surface it to the UI. We log them here.\nvar onRecoverableError=root.onRecoverableError;for(var i=0;i<recoverableErrors.length;i++){var recoverableError=recoverableErrors[i];var componentStack=recoverableError.stack;var digest=recoverableError.digest;onRecoverableError(recoverableError.value,{componentStack:componentStack,digest:digest});}}if(hasUncaughtError){hasUncaughtError=false;var error$1=firstUncaughtError;firstUncaughtError=null;throw error$1;}// If the passive effects are the result of a discrete render, flush them\n// synchronously at the end of the current task so that the result is\n// immediately observable. Otherwise, we assume that they are not\n// order-dependent and do not need to be observed by external systems, so we\n// can wait until after paint.\n// TODO: We can optimize this by not scheduling the callback earlier. Since we\n// currently schedule the callback in multiple places, will wait until those\n// are consolidated.\nif(includesSomeLane(pendingPassiveEffectsLanes,SyncLane)&&root.tag!==LegacyRoot){flushPassiveEffects();}// Read this again, since a passive effect might have updated it\nremainingLanes=root.pendingLanes;if(includesSomeLane(remainingLanes,SyncLane)){{markNestedUpdateScheduled();}// Count the number of times the root synchronously re-renders without\n// finishing. If there are too many, it indicates an infinite update loop.\nif(root===rootWithNestedUpdates){nestedUpdateCount++;}else{nestedUpdateCount=0;rootWithNestedUpdates=root;}}else{nestedUpdateCount=0;}// If layout work was scheduled, flush it now.\nflushSyncCallbacks();{markCommitStopped();}return null;}function flushPassiveEffects(){// Returns whether passive effects were flushed.\n// TODO: Combine this check with the one in flushPassiveEFfectsImpl. We should\n// probably just combine the two functions. I believe they were only separate\n// in the first place because we used to wrap it with\n// `Scheduler.runWithPriority`, which accepts a function. But now we track the\n// priority within React itself, so we can mutate the variable directly.\nif(rootWithPendingPassiveEffects!==null){var renderPriority=lanesToEventPriority(pendingPassiveEffectsLanes);var priority=lowerEventPriority(DefaultEventPriority,renderPriority);var prevTransition=ReactCurrentBatchConfig$3.transition;var previousPriority=getCurrentUpdatePriority();try{ReactCurrentBatchConfig$3.transition=null;setCurrentUpdatePriority(priority);return flushPassiveEffectsImpl();}finally{setCurrentUpdatePriority(previousPriority);ReactCurrentBatchConfig$3.transition=prevTransition;// Once passive effects have run for the tree - giving components a\n}}return false;}function enqueuePendingPassiveProfilerEffect(fiber){{pendingPassiveProfilerEffects.push(fiber);if(!rootDoesHavePassiveEffects){rootDoesHavePassiveEffects=true;scheduleCallback$1(NormalPriority,function(){flushPassiveEffects();return null;});}}}function flushPassiveEffectsImpl(){if(rootWithPendingPassiveEffects===null){return false;}// Cache and clear the transitions flag\nvar transitions=pendingPassiveTransitions;pendingPassiveTransitions=null;var root=rootWithPendingPassiveEffects;var lanes=pendingPassiveEffectsLanes;rootWithPendingPassiveEffects=null;// TODO: This is sometimes out of sync with rootWithPendingPassiveEffects.\n// Figure out why and fix it. It's not causing any known issues (probably\n// because it's only used for profiling), but it's a refactor hazard.\npendingPassiveEffectsLanes=NoLanes;if((executionContext&(RenderContext|CommitContext))!==NoContext){throw new Error('Cannot flush passive effects while already rendering.');}{isFlushingPassiveEffects=true;didScheduleUpdateDuringPassiveEffects=false;}{markPassiveEffectsStarted(lanes);}var prevExecutionContext=executionContext;executionContext|=CommitContext;commitPassiveUnmountEffects(root.current);commitPassiveMountEffects(root,root.current,lanes,transitions);// TODO: Move to commitPassiveMountEffects\n{var profilerEffects=pendingPassiveProfilerEffects;pendingPassiveProfilerEffects=[];for(var i=0;i<profilerEffects.length;i++){var _fiber=profilerEffects[i];commitPassiveEffectDurations(root,_fiber);}}{markPassiveEffectsStopped();}{commitDoubleInvokeEffectsInDEV(root.current,true);}executionContext=prevExecutionContext;flushSyncCallbacks();{// If additional passive effects were scheduled, increment a counter. If this\n// exceeds the limit, we'll fire a warning.\nif(didScheduleUpdateDuringPassiveEffects){if(root===rootWithPassiveNestedUpdates){nestedPassiveUpdateCount++;}else{nestedPassiveUpdateCount=0;rootWithPassiveNestedUpdates=root;}}else{nestedPassiveUpdateCount=0;}isFlushingPassiveEffects=false;didScheduleUpdateDuringPassiveEffects=false;}// TODO: Move to commitPassiveMountEffects\nonPostCommitRoot(root);{var stateNode=root.current.stateNode;stateNode.effectDuration=0;stateNode.passiveEffectDuration=0;}return true;}function isAlreadyFailedLegacyErrorBoundary(instance){return legacyErrorBoundariesThatAlreadyFailed!==null&&legacyErrorBoundariesThatAlreadyFailed.has(instance);}function markLegacyErrorBoundaryAsFailed(instance){if(legacyErrorBoundariesThatAlreadyFailed===null){legacyErrorBoundariesThatAlreadyFailed=new Set([instance]);}else{legacyErrorBoundariesThatAlreadyFailed.add(instance);}}function prepareToThrowUncaughtError(error){if(!hasUncaughtError){hasUncaughtError=true;firstUncaughtError=error;}}var onUncaughtError=prepareToThrowUncaughtError;function captureCommitPhaseErrorOnRoot(rootFiber,sourceFiber,error){var errorInfo=createCapturedValueAtFiber(error,sourceFiber);var update=createRootErrorUpdate(rootFiber,errorInfo,SyncLane);var root=enqueueUpdate(rootFiber,update,SyncLane);var eventTime=requestEventTime();if(root!==null){markRootUpdated(root,SyncLane,eventTime);ensureRootIsScheduled(root,eventTime);}}function captureCommitPhaseError(sourceFiber,nearestMountedAncestor,error$1){{reportUncaughtErrorInDEV(error$1);setIsRunningInsertionEffect(false);}if(sourceFiber.tag===HostRoot){// Error was thrown at the root. There is no parent, so the root\n// itself should capture it.\ncaptureCommitPhaseErrorOnRoot(sourceFiber,sourceFiber,error$1);return;}var fiber=null;{fiber=nearestMountedAncestor;}while(fiber!==null){if(fiber.tag===HostRoot){captureCommitPhaseErrorOnRoot(fiber,sourceFiber,error$1);return;}else if(fiber.tag===ClassComponent){var ctor=fiber.type;var instance=fiber.stateNode;if(typeof ctor.getDerivedStateFromError==='function'||typeof instance.componentDidCatch==='function'&&!isAlreadyFailedLegacyErrorBoundary(instance)){var errorInfo=createCapturedValueAtFiber(error$1,sourceFiber);var update=createClassErrorUpdate(fiber,errorInfo,SyncLane);var root=enqueueUpdate(fiber,update,SyncLane);var eventTime=requestEventTime();if(root!==null){markRootUpdated(root,SyncLane,eventTime);ensureRootIsScheduled(root,eventTime);}return;}}fiber=fiber.return;}{// TODO: Until we re-land skipUnmountedBoundaries (see #20147), this warning\n// will fire for errors that are thrown by destroy functions inside deleted\n// trees. What it should instead do is propagate the error to the parent of\n// the deleted tree. In the meantime, do not add this warning to the\n// allowlist; this is only for our internal use.\nerror('Internal React error: Attempted to capture a commit phase error '+'inside a detached tree. This indicates a bug in React. Likely '+'causes include deleting the same fiber more than once, committing an '+'already-finished tree, or an inconsistent return pointer.\\n\\n'+'Error message:\\n\\n%s',error$1);}}function pingSuspendedRoot(root,wakeable,pingedLanes){var pingCache=root.pingCache;if(pingCache!==null){// The wakeable resolved, so we no longer need to memoize, because it will\n// never be thrown again.\npingCache.delete(wakeable);}var eventTime=requestEventTime();markRootPinged(root,pingedLanes);warnIfSuspenseResolutionNotWrappedWithActDEV(root);if(workInProgressRoot===root&&isSubsetOfLanes(workInProgressRootRenderLanes,pingedLanes)){// Received a ping at the same priority level at which we're currently\n// rendering. We might want to restart this render. This should mirror\n// the logic of whether or not a root suspends once it completes.\n// TODO: If we're rendering sync either due to Sync, Batched or expired,\n// we should probably never restart.\n// If we're suspended with delay, or if it's a retry, we'll always suspend\n// so we can always restart.\nif(workInProgressRootExitStatus===RootSuspendedWithDelay||workInProgressRootExitStatus===RootSuspended&&includesOnlyRetries(workInProgressRootRenderLanes)&&now()-globalMostRecentFallbackTime<FALLBACK_THROTTLE_MS){// Restart from the root.\nprepareFreshStack(root,NoLanes);}else{// Even though we can't restart right now, we might get an\n// opportunity later. So we mark this render as having a ping.\nworkInProgressRootPingedLanes=mergeLanes(workInProgressRootPingedLanes,pingedLanes);}}ensureRootIsScheduled(root,eventTime);}function retryTimedOutBoundary(boundaryFiber,retryLane){// The boundary fiber (a Suspense component or SuspenseList component)\n// previously was rendered in its fallback state. One of the promises that\n// suspended it has resolved, which means at least part of the tree was\n// likely unblocked. Try rendering again, at a new lanes.\nif(retryLane===NoLane){// TODO: Assign this to `suspenseState.retryLane`? to avoid\n// unnecessary entanglement?\nretryLane=requestRetryLane(boundaryFiber);}// TODO: Special case idle priority?\nvar eventTime=requestEventTime();var root=enqueueConcurrentRenderForLane(boundaryFiber,retryLane);if(root!==null){markRootUpdated(root,retryLane,eventTime);ensureRootIsScheduled(root,eventTime);}}function retryDehydratedSuspenseBoundary(boundaryFiber){var suspenseState=boundaryFiber.memoizedState;var retryLane=NoLane;if(suspenseState!==null){retryLane=suspenseState.retryLane;}retryTimedOutBoundary(boundaryFiber,retryLane);}function resolveRetryWakeable(boundaryFiber,wakeable){var retryLane=NoLane;// Default\nvar retryCache;switch(boundaryFiber.tag){case SuspenseComponent:retryCache=boundaryFiber.stateNode;var suspenseState=boundaryFiber.memoizedState;if(suspenseState!==null){retryLane=suspenseState.retryLane;}break;case SuspenseListComponent:retryCache=boundaryFiber.stateNode;break;default:throw new Error('Pinged unknown suspense boundary type. '+'This is probably a bug in React.');}if(retryCache!==null){// The wakeable resolved, so we no longer need to memoize, because it will\n// never be thrown again.\nretryCache.delete(wakeable);}retryTimedOutBoundary(boundaryFiber,retryLane);}// Computes the next Just Noticeable Difference (JND) boundary.\n// The theory is that a person can't tell the difference between small differences in time.\n// Therefore, if we wait a bit longer than necessary that won't translate to a noticeable\n// difference in the experience. However, waiting for longer might mean that we can avoid\n// showing an intermediate loading state. The longer we have already waited, the harder it\n// is to tell small differences in time. Therefore, the longer we've already waited,\n// the longer we can wait additionally. At some point we have to give up though.\n// We pick a train model where the next boundary commits at a consistent schedule.\n// These particular numbers are vague estimates. We expect to adjust them based on research.\nfunction jnd(timeElapsed){return timeElapsed<120?120:timeElapsed<480?480:timeElapsed<1080?1080:timeElapsed<1920?1920:timeElapsed<3000?3000:timeElapsed<4320?4320:ceil(timeElapsed/1960)*1960;}function checkForNestedUpdates(){if(nestedUpdateCount>NESTED_UPDATE_LIMIT){nestedUpdateCount=0;rootWithNestedUpdates=null;throw new Error('Maximum update depth exceeded. This can happen when a component '+'repeatedly calls setState inside componentWillUpdate or '+'componentDidUpdate. React limits the number of nested updates to '+'prevent infinite loops.');}{if(nestedPassiveUpdateCount>NESTED_PASSIVE_UPDATE_LIMIT){nestedPassiveUpdateCount=0;rootWithPassiveNestedUpdates=null;error('Maximum update depth exceeded. This can happen when a component '+\"calls setState inside useEffect, but useEffect either doesn't \"+'have a dependency array, or one of the dependencies changes on '+'every render.');}}}function flushRenderPhaseStrictModeWarningsInDEV(){{ReactStrictModeWarnings.flushLegacyContextWarning();{ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings();}}}function commitDoubleInvokeEffectsInDEV(fiber,hasPassiveEffects){{// TODO (StrictEffects) Should we set a marker on the root if it contains strict effects\n// so we don't traverse unnecessarily? similar to subtreeFlags but just at the root level.\n// Maybe not a big deal since this is DEV only behavior.\nsetCurrentFiber(fiber);invokeEffectsInDev(fiber,MountLayoutDev,invokeLayoutEffectUnmountInDEV);if(hasPassiveEffects){invokeEffectsInDev(fiber,MountPassiveDev,invokePassiveEffectUnmountInDEV);}invokeEffectsInDev(fiber,MountLayoutDev,invokeLayoutEffectMountInDEV);if(hasPassiveEffects){invokeEffectsInDev(fiber,MountPassiveDev,invokePassiveEffectMountInDEV);}resetCurrentFiber();}}function invokeEffectsInDev(firstChild,fiberFlags,invokeEffectFn){{// We don't need to re-check StrictEffectsMode here.\n// This function is only called if that check has already passed.\nvar current=firstChild;var subtreeRoot=null;while(current!==null){var primarySubtreeFlag=current.subtreeFlags&fiberFlags;if(current!==subtreeRoot&&current.child!==null&&primarySubtreeFlag!==NoFlags){current=current.child;}else{if((current.flags&fiberFlags)!==NoFlags){invokeEffectFn(current);}if(current.sibling!==null){current=current.sibling;}else{current=subtreeRoot=current.return;}}}}}var didWarnStateUpdateForNotYetMountedComponent=null;function warnAboutUpdateOnNotYetMountedFiberInDEV(fiber){{if((executionContext&RenderContext)!==NoContext){// We let the other warning about render phase updates deal with this one.\nreturn;}if(!(fiber.mode&ConcurrentMode)){return;}var tag=fiber.tag;if(tag!==IndeterminateComponent&&tag!==HostRoot&&tag!==ClassComponent&&tag!==FunctionComponent&&tag!==ForwardRef&&tag!==MemoComponent&&tag!==SimpleMemoComponent){// Only warn for user-defined components, not internal ones like Suspense.\nreturn;}// We show the whole stack but dedupe on the top component's name because\n// the problematic code almost always lies inside that component.\nvar componentName=getComponentNameFromFiber(fiber)||'ReactComponent';if(didWarnStateUpdateForNotYetMountedComponent!==null){if(didWarnStateUpdateForNotYetMountedComponent.has(componentName)){return;}didWarnStateUpdateForNotYetMountedComponent.add(componentName);}else{didWarnStateUpdateForNotYetMountedComponent=new Set([componentName]);}var previousFiber=current;try{setCurrentFiber(fiber);error(\"Can't perform a React state update on a component that hasn't mounted yet. \"+'This indicates that you have a side-effect in your render function that '+'asynchronously later calls tries to update the component. Move this work to '+'useEffect instead.');}finally{if(previousFiber){setCurrentFiber(fiber);}else{resetCurrentFiber();}}}}var beginWork$1;{var dummyFiber=null;beginWork$1=function(current,unitOfWork,lanes){// If a component throws an error, we replay it again in a synchronously\n// dispatched event, so that the debugger will treat it as an uncaught\n// error See ReactErrorUtils for more information.\n// Before entering the begin phase, copy the work-in-progress onto a dummy\n// fiber. If beginWork throws, we'll use this to reset the state.\nvar originalWorkInProgressCopy=assignFiberPropertiesInDEV(dummyFiber,unitOfWork);try{return beginWork(current,unitOfWork,lanes);}catch(originalError){if(didSuspendOrErrorWhileHydratingDEV()||originalError!==null&&typeof originalError==='object'&&typeof originalError.then==='function'){// Don't replay promises.\n// Don't replay errors if we are hydrating and have already suspended or handled an error\nthrow originalError;}// Keep this code in sync with handleError; any changes here must have\n// corresponding changes there.\nresetContextDependencies();resetHooksAfterThrow();// Don't reset current debug fiber, since we're about to work on the\n// same fiber again.\n// Unwind the failed stack frame\nunwindInterruptedWork(current,unitOfWork);// Restore the original properties of the fiber.\nassignFiberPropertiesInDEV(unitOfWork,originalWorkInProgressCopy);if(unitOfWork.mode&ProfileMode){// Reset the profiler timer.\nstartProfilerTimer(unitOfWork);}// Run beginWork again.\ninvokeGuardedCallback(null,beginWork,null,current,unitOfWork,lanes);if(hasCaughtError()){var replayError=clearCaughtError();if(typeof replayError==='object'&&replayError!==null&&replayError._suppressLogging&&typeof originalError==='object'&&originalError!==null&&!originalError._suppressLogging){// If suppressed, let the flag carry over to the original error which is the one we'll rethrow.\noriginalError._suppressLogging=true;}}// We always throw the original error in case the second render pass is not idempotent.\n// This can happen if a memoized function or CommonJS module doesn't throw after first invocation.\nthrow originalError;}};}var didWarnAboutUpdateInRender=false;var didWarnAboutUpdateInRenderForAnotherComponent;{didWarnAboutUpdateInRenderForAnotherComponent=new Set();}function warnAboutRenderPhaseUpdatesInDEV(fiber){{if(isRendering&&!getIsUpdatingOpaqueValueInRenderPhaseInDEV()){switch(fiber.tag){case FunctionComponent:case ForwardRef:case SimpleMemoComponent:{var renderingComponentName=workInProgress&&getComponentNameFromFiber(workInProgress)||'Unknown';// Dedupe by the rendering component because it's the one that needs to be fixed.\nvar dedupeKey=renderingComponentName;if(!didWarnAboutUpdateInRenderForAnotherComponent.has(dedupeKey)){didWarnAboutUpdateInRenderForAnotherComponent.add(dedupeKey);var setStateComponentName=getComponentNameFromFiber(fiber)||'Unknown';error('Cannot update a component (`%s`) while rendering a '+'different component (`%s`). To locate the bad setState() call inside `%s`, '+'follow the stack trace as described in https://reactjs.org/link/setstate-in-render',setStateComponentName,renderingComponentName,renderingComponentName);}break;}case ClassComponent:{if(!didWarnAboutUpdateInRender){error('Cannot update during an existing state transition (such as '+'within `render`). Render methods should be a pure '+'function of props and state.');didWarnAboutUpdateInRender=true;}break;}}}}}function restorePendingUpdaters(root,lanes){{if(isDevToolsPresent){var memoizedUpdaters=root.memoizedUpdaters;memoizedUpdaters.forEach(function(schedulingFiber){addFiberToLanesMap(root,schedulingFiber,lanes);});// This function intentionally does not clear memoized updaters.\n// Those may still be relevant to the current commit\n// and a future one (e.g. Suspense).\n}}}var fakeActCallbackNode={};function scheduleCallback$1(priorityLevel,callback){{// If we're currently inside an `act` scope, bypass Scheduler and push to\n// the `act` queue instead.\nvar actQueue=ReactCurrentActQueue$1.current;if(actQueue!==null){actQueue.push(callback);return fakeActCallbackNode;}else{return scheduleCallback(priorityLevel,callback);}}}function cancelCallback$1(callbackNode){if(callbackNode===fakeActCallbackNode){return;}// In production, always call Scheduler. This function will be stripped out.\nreturn cancelCallback(callbackNode);}function shouldForceFlushFallbacksInDEV(){// Never force flush in production. This function should get stripped out.\nreturn ReactCurrentActQueue$1.current!==null;}function warnIfUpdatesNotWrappedWithActDEV(fiber){{if(fiber.mode&ConcurrentMode){if(!isConcurrentActEnvironment()){// Not in an act environment. No need to warn.\nreturn;}}else{// Legacy mode has additional cases where we suppress a warning.\nif(!isLegacyActEnvironment()){// Not in an act environment. No need to warn.\nreturn;}if(executionContext!==NoContext){// Legacy mode doesn't warn if the update is batched, i.e.\n// batchedUpdates or flushSync.\nreturn;}if(fiber.tag!==FunctionComponent&&fiber.tag!==ForwardRef&&fiber.tag!==SimpleMemoComponent){// For backwards compatibility with pre-hooks code, legacy mode only\n// warns for updates that originate from a hook.\nreturn;}}if(ReactCurrentActQueue$1.current===null){var previousFiber=current;try{setCurrentFiber(fiber);error('An update to %s inside a test was not wrapped in act(...).\\n\\n'+'When testing, code that causes React state updates should be '+'wrapped into act(...):\\n\\n'+'act(() => {\\n'+'  /* fire events that update state */\\n'+'});\\n'+'/* assert on the output */\\n\\n'+\"This ensures that you're testing the behavior the user would see \"+'in the browser.'+' Learn more at https://reactjs.org/link/wrap-tests-with-act',getComponentNameFromFiber(fiber));}finally{if(previousFiber){setCurrentFiber(fiber);}else{resetCurrentFiber();}}}}}function warnIfSuspenseResolutionNotWrappedWithActDEV(root){{if(root.tag!==LegacyRoot&&isConcurrentActEnvironment()&&ReactCurrentActQueue$1.current===null){error('A suspended resource finished loading inside a test, but the event '+'was not wrapped in act(...).\\n\\n'+'When testing, code that resolves suspended data should be wrapped '+'into act(...):\\n\\n'+'act(() => {\\n'+'  /* finish loading suspended data */\\n'+'});\\n'+'/* assert on the output */\\n\\n'+\"This ensures that you're testing the behavior the user would see \"+'in the browser.'+' Learn more at https://reactjs.org/link/wrap-tests-with-act');}}}function setIsRunningInsertionEffect(isRunning){{isRunningInsertionEffect=isRunning;}}/* eslint-disable react-internal/prod-error-codes */var resolveFamily=null;// $FlowFixMe Flow gets confused by a WeakSet feature check below.\nvar failedBoundaries=null;var setRefreshHandler=function(handler){{resolveFamily=handler;}};function resolveFunctionForHotReloading(type){{if(resolveFamily===null){// Hot reloading is disabled.\nreturn type;}var family=resolveFamily(type);if(family===undefined){return type;}// Use the latest known implementation.\nreturn family.current;}}function resolveClassForHotReloading(type){// No implementation differences.\nreturn resolveFunctionForHotReloading(type);}function resolveForwardRefForHotReloading(type){{if(resolveFamily===null){// Hot reloading is disabled.\nreturn type;}var family=resolveFamily(type);if(family===undefined){// Check if we're dealing with a real forwardRef. Don't want to crash early.\nif(type!==null&&type!==undefined&&typeof type.render==='function'){// ForwardRef is special because its resolved .type is an object,\n// but it's possible that we only have its inner render function in the map.\n// If that inner render function is different, we'll build a new forwardRef type.\nvar currentRender=resolveFunctionForHotReloading(type.render);if(type.render!==currentRender){var syntheticType={$$typeof:REACT_FORWARD_REF_TYPE,render:currentRender};if(type.displayName!==undefined){syntheticType.displayName=type.displayName;}return syntheticType;}}return type;}// Use the latest known implementation.\nreturn family.current;}}function isCompatibleFamilyForHotReloading(fiber,element){{if(resolveFamily===null){// Hot reloading is disabled.\nreturn false;}var prevType=fiber.elementType;var nextType=element.type;// If we got here, we know types aren't === equal.\nvar needsCompareFamilies=false;var $$typeofNextType=typeof nextType==='object'&&nextType!==null?nextType.$$typeof:null;switch(fiber.tag){case ClassComponent:{if(typeof nextType==='function'){needsCompareFamilies=true;}break;}case FunctionComponent:{if(typeof nextType==='function'){needsCompareFamilies=true;}else if($$typeofNextType===REACT_LAZY_TYPE){// We don't know the inner type yet.\n// We're going to assume that the lazy inner type is stable,\n// and so it is sufficient to avoid reconciling it away.\n// We're not going to unwrap or actually use the new lazy type.\nneedsCompareFamilies=true;}break;}case ForwardRef:{if($$typeofNextType===REACT_FORWARD_REF_TYPE){needsCompareFamilies=true;}else if($$typeofNextType===REACT_LAZY_TYPE){needsCompareFamilies=true;}break;}case MemoComponent:case SimpleMemoComponent:{if($$typeofNextType===REACT_MEMO_TYPE){// TODO: if it was but can no longer be simple,\n// we shouldn't set this.\nneedsCompareFamilies=true;}else if($$typeofNextType===REACT_LAZY_TYPE){needsCompareFamilies=true;}break;}default:return false;}// Check if both types have a family and it's the same one.\nif(needsCompareFamilies){// Note: memo() and forwardRef() we'll compare outer rather than inner type.\n// This means both of them need to be registered to preserve state.\n// If we unwrapped and compared the inner types for wrappers instead,\n// then we would risk falsely saying two separate memo(Foo)\n// calls are equivalent because they wrap the same Foo function.\nvar prevFamily=resolveFamily(prevType);if(prevFamily!==undefined&&prevFamily===resolveFamily(nextType)){return true;}}return false;}}function markFailedErrorBoundaryForHotReloading(fiber){{if(resolveFamily===null){// Hot reloading is disabled.\nreturn;}if(typeof WeakSet!=='function'){return;}if(failedBoundaries===null){failedBoundaries=new WeakSet();}failedBoundaries.add(fiber);}}var scheduleRefresh=function(root,update){{if(resolveFamily===null){// Hot reloading is disabled.\nreturn;}var staleFamilies=update.staleFamilies,updatedFamilies=update.updatedFamilies;flushPassiveEffects();flushSync(function(){scheduleFibersWithFamiliesRecursively(root.current,updatedFamilies,staleFamilies);});}};var scheduleRoot=function(root,element){{if(root.context!==emptyContextObject){// Super edge case: root has a legacy _renderSubtree context\n// but we don't know the parentComponent so we can't pass it.\n// Just ignore. We'll delete this with _renderSubtree code path later.\nreturn;}flushPassiveEffects();flushSync(function(){updateContainer(element,root,null,null);});}};function scheduleFibersWithFamiliesRecursively(fiber,updatedFamilies,staleFamilies){{var alternate=fiber.alternate,child=fiber.child,sibling=fiber.sibling,tag=fiber.tag,type=fiber.type;var candidateType=null;switch(tag){case FunctionComponent:case SimpleMemoComponent:case ClassComponent:candidateType=type;break;case ForwardRef:candidateType=type.render;break;}if(resolveFamily===null){throw new Error('Expected resolveFamily to be set during hot reload.');}var needsRender=false;var needsRemount=false;if(candidateType!==null){var family=resolveFamily(candidateType);if(family!==undefined){if(staleFamilies.has(family)){needsRemount=true;}else if(updatedFamilies.has(family)){if(tag===ClassComponent){needsRemount=true;}else{needsRender=true;}}}}if(failedBoundaries!==null){if(failedBoundaries.has(fiber)||alternate!==null&&failedBoundaries.has(alternate)){needsRemount=true;}}if(needsRemount){fiber._debugNeedsRemount=true;}if(needsRemount||needsRender){var _root=enqueueConcurrentRenderForLane(fiber,SyncLane);if(_root!==null){scheduleUpdateOnFiber(_root,fiber,SyncLane,NoTimestamp);}}if(child!==null&&!needsRemount){scheduleFibersWithFamiliesRecursively(child,updatedFamilies,staleFamilies);}if(sibling!==null){scheduleFibersWithFamiliesRecursively(sibling,updatedFamilies,staleFamilies);}}}var findHostInstancesForRefresh=function(root,families){{var hostInstances=new Set();var types=new Set(families.map(function(family){return family.current;}));findHostInstancesForMatchingFibersRecursively(root.current,types,hostInstances);return hostInstances;}};function findHostInstancesForMatchingFibersRecursively(fiber,types,hostInstances){{var child=fiber.child,sibling=fiber.sibling,tag=fiber.tag,type=fiber.type;var candidateType=null;switch(tag){case FunctionComponent:case SimpleMemoComponent:case ClassComponent:candidateType=type;break;case ForwardRef:candidateType=type.render;break;}var didMatch=false;if(candidateType!==null){if(types.has(candidateType)){didMatch=true;}}if(didMatch){// We have a match. This only drills down to the closest host components.\n// There's no need to search deeper because for the purpose of giving\n// visual feedback, \"flashing\" outermost parent rectangles is sufficient.\nfindHostInstancesForFiberShallowly(fiber,hostInstances);}else{// If there's no match, maybe there will be one further down in the child tree.\nif(child!==null){findHostInstancesForMatchingFibersRecursively(child,types,hostInstances);}}if(sibling!==null){findHostInstancesForMatchingFibersRecursively(sibling,types,hostInstances);}}}function findHostInstancesForFiberShallowly(fiber,hostInstances){{var foundHostInstances=findChildHostInstancesForFiberShallowly(fiber,hostInstances);if(foundHostInstances){return;}// If we didn't find any host children, fallback to closest host parent.\nvar node=fiber;while(true){switch(node.tag){case HostComponent:hostInstances.add(node.stateNode);return;case HostPortal:hostInstances.add(node.stateNode.containerInfo);return;case HostRoot:hostInstances.add(node.stateNode.containerInfo);return;}if(node.return===null){throw new Error('Expected to reach root first.');}node=node.return;}}}function findChildHostInstancesForFiberShallowly(fiber,hostInstances){{var node=fiber;var foundHostInstances=false;while(true){if(node.tag===HostComponent){// We got a match.\nfoundHostInstances=true;hostInstances.add(node.stateNode);// There may still be more, so keep searching.\n}else if(node.child!==null){node.child.return=node;node=node.child;continue;}if(node===fiber){return foundHostInstances;}while(node.sibling===null){if(node.return===null||node.return===fiber){return foundHostInstances;}node=node.return;}node.sibling.return=node.return;node=node.sibling;}}return false;}var hasBadMapPolyfill;{hasBadMapPolyfill=false;try{var nonExtensibleObject=Object.preventExtensions({});/* eslint-disable no-new */new Map([[nonExtensibleObject,null]]);new Set([nonExtensibleObject]);/* eslint-enable no-new */}catch(e){// TODO: Consider warning about bad polyfills\nhasBadMapPolyfill=true;}}function FiberNode(tag,pendingProps,key,mode){// Instance\nthis.tag=tag;this.key=key;this.elementType=null;this.type=null;this.stateNode=null;// Fiber\nthis.return=null;this.child=null;this.sibling=null;this.index=0;this.ref=null;this.pendingProps=pendingProps;this.memoizedProps=null;this.updateQueue=null;this.memoizedState=null;this.dependencies=null;this.mode=mode;// Effects\nthis.flags=NoFlags;this.subtreeFlags=NoFlags;this.deletions=null;this.lanes=NoLanes;this.childLanes=NoLanes;this.alternate=null;{// Note: The following is done to avoid a v8 performance cliff.\n//\n// Initializing the fields below to smis and later updating them with\n// double values will cause Fibers to end up having separate shapes.\n// This behavior/bug has something to do with Object.preventExtension().\n// Fortunately this only impacts DEV builds.\n// Unfortunately it makes React unusably slow for some applications.\n// To work around this, initialize the fields below with doubles.\n//\n// Learn more about this here:\n// https://github.com/facebook/react/issues/14365\n// https://bugs.chromium.org/p/v8/issues/detail?id=8538\nthis.actualDuration=Number.NaN;this.actualStartTime=Number.NaN;this.selfBaseDuration=Number.NaN;this.treeBaseDuration=Number.NaN;// It's okay to replace the initial doubles with smis after initialization.\n// This won't trigger the performance cliff mentioned above,\n// and it simplifies other profiler code (including DevTools).\nthis.actualDuration=0;this.actualStartTime=-1;this.selfBaseDuration=0;this.treeBaseDuration=0;}{// This isn't directly used but is handy for debugging internals:\nthis._debugSource=null;this._debugOwner=null;this._debugNeedsRemount=false;this._debugHookTypes=null;if(!hasBadMapPolyfill&&typeof Object.preventExtensions==='function'){Object.preventExtensions(this);}}}// This is a constructor function, rather than a POJO constructor, still\n// please ensure we do the following:\n// 1) Nobody should add any instance methods on this. Instance methods can be\n//    more difficult to predict when they get optimized and they are almost\n//    never inlined properly in static compilers.\n// 2) Nobody should rely on `instanceof Fiber` for type testing. We should\n//    always know when it is a fiber.\n// 3) We might want to experiment with using numeric keys since they are easier\n//    to optimize in a non-JIT environment.\n// 4) We can easily go from a constructor to a createFiber object literal if that\n//    is faster.\n// 5) It should be easy to port this to a C struct and keep a C implementation\n//    compatible.\nvar createFiber=function(tag,pendingProps,key,mode){// $FlowFixMe: the shapes are exact here but Flow doesn't like constructors\nreturn new FiberNode(tag,pendingProps,key,mode);};function shouldConstruct$1(Component){var prototype=Component.prototype;return!!(prototype&&prototype.isReactComponent);}function isSimpleFunctionComponent(type){return typeof type==='function'&&!shouldConstruct$1(type)&&type.defaultProps===undefined;}function resolveLazyComponentTag(Component){if(typeof Component==='function'){return shouldConstruct$1(Component)?ClassComponent:FunctionComponent;}else if(Component!==undefined&&Component!==null){var $$typeof=Component.$$typeof;if($$typeof===REACT_FORWARD_REF_TYPE){return ForwardRef;}if($$typeof===REACT_MEMO_TYPE){return MemoComponent;}}return IndeterminateComponent;}// This is used to create an alternate fiber to do work on.\nfunction createWorkInProgress(current,pendingProps){var workInProgress=current.alternate;if(workInProgress===null){// We use a double buffering pooling technique because we know that we'll\n// only ever need at most two versions of a tree. We pool the \"other\" unused\n// node that we're free to reuse. This is lazily created to avoid allocating\n// extra objects for things that are never updated. It also allow us to\n// reclaim the extra memory if needed.\nworkInProgress=createFiber(current.tag,pendingProps,current.key,current.mode);workInProgress.elementType=current.elementType;workInProgress.type=current.type;workInProgress.stateNode=current.stateNode;{// DEV-only fields\nworkInProgress._debugSource=current._debugSource;workInProgress._debugOwner=current._debugOwner;workInProgress._debugHookTypes=current._debugHookTypes;}workInProgress.alternate=current;current.alternate=workInProgress;}else{workInProgress.pendingProps=pendingProps;// Needed because Blocks store data on type.\nworkInProgress.type=current.type;// We already have an alternate.\n// Reset the effect tag.\nworkInProgress.flags=NoFlags;// The effects are no longer valid.\nworkInProgress.subtreeFlags=NoFlags;workInProgress.deletions=null;{// We intentionally reset, rather than copy, actualDuration & actualStartTime.\n// This prevents time from endlessly accumulating in new commits.\n// This has the downside of resetting values for different priority renders,\n// But works for yielding (the common case) and should support resuming.\nworkInProgress.actualDuration=0;workInProgress.actualStartTime=-1;}}// Reset all effects except static ones.\n// Static effects are not specific to a render.\nworkInProgress.flags=current.flags&StaticMask;workInProgress.childLanes=current.childLanes;workInProgress.lanes=current.lanes;workInProgress.child=current.child;workInProgress.memoizedProps=current.memoizedProps;workInProgress.memoizedState=current.memoizedState;workInProgress.updateQueue=current.updateQueue;// Clone the dependencies object. This is mutated during the render phase, so\n// it cannot be shared with the current fiber.\nvar currentDependencies=current.dependencies;workInProgress.dependencies=currentDependencies===null?null:{lanes:currentDependencies.lanes,firstContext:currentDependencies.firstContext};// These will be overridden during the parent's reconciliation\nworkInProgress.sibling=current.sibling;workInProgress.index=current.index;workInProgress.ref=current.ref;{workInProgress.selfBaseDuration=current.selfBaseDuration;workInProgress.treeBaseDuration=current.treeBaseDuration;}{workInProgress._debugNeedsRemount=current._debugNeedsRemount;switch(workInProgress.tag){case IndeterminateComponent:case FunctionComponent:case SimpleMemoComponent:workInProgress.type=resolveFunctionForHotReloading(current.type);break;case ClassComponent:workInProgress.type=resolveClassForHotReloading(current.type);break;case ForwardRef:workInProgress.type=resolveForwardRefForHotReloading(current.type);break;}}return workInProgress;}// Used to reuse a Fiber for a second pass.\nfunction resetWorkInProgress(workInProgress,renderLanes){// This resets the Fiber to what createFiber or createWorkInProgress would\n// have set the values to before during the first pass. Ideally this wouldn't\n// be necessary but unfortunately many code paths reads from the workInProgress\n// when they should be reading from current and writing to workInProgress.\n// We assume pendingProps, index, key, ref, return are still untouched to\n// avoid doing another reconciliation.\n// Reset the effect flags but keep any Placement tags, since that's something\n// that child fiber is setting, not the reconciliation.\nworkInProgress.flags&=StaticMask|Placement;// The effects are no longer valid.\nvar current=workInProgress.alternate;if(current===null){// Reset to createFiber's initial values.\nworkInProgress.childLanes=NoLanes;workInProgress.lanes=renderLanes;workInProgress.child=null;workInProgress.subtreeFlags=NoFlags;workInProgress.memoizedProps=null;workInProgress.memoizedState=null;workInProgress.updateQueue=null;workInProgress.dependencies=null;workInProgress.stateNode=null;{// Note: We don't reset the actualTime counts. It's useful to accumulate\n// actual time across multiple render passes.\nworkInProgress.selfBaseDuration=0;workInProgress.treeBaseDuration=0;}}else{// Reset to the cloned values that createWorkInProgress would've.\nworkInProgress.childLanes=current.childLanes;workInProgress.lanes=current.lanes;workInProgress.child=current.child;workInProgress.subtreeFlags=NoFlags;workInProgress.deletions=null;workInProgress.memoizedProps=current.memoizedProps;workInProgress.memoizedState=current.memoizedState;workInProgress.updateQueue=current.updateQueue;// Needed because Blocks store data on type.\nworkInProgress.type=current.type;// Clone the dependencies object. This is mutated during the render phase, so\n// it cannot be shared with the current fiber.\nvar currentDependencies=current.dependencies;workInProgress.dependencies=currentDependencies===null?null:{lanes:currentDependencies.lanes,firstContext:currentDependencies.firstContext};{// Note: We don't reset the actualTime counts. It's useful to accumulate\n// actual time across multiple render passes.\nworkInProgress.selfBaseDuration=current.selfBaseDuration;workInProgress.treeBaseDuration=current.treeBaseDuration;}}return workInProgress;}function createHostRootFiber(tag,isStrictMode,concurrentUpdatesByDefaultOverride){var mode;if(tag===ConcurrentRoot){mode=ConcurrentMode;if(isStrictMode===true){mode|=StrictLegacyMode;{mode|=StrictEffectsMode;}}}else{mode=NoMode;}if(isDevToolsPresent){// Always collect profile timings when DevTools are present.\n// This enables DevTools to start capturing timing at any point–\n// Without some nodes in the tree having empty base times.\nmode|=ProfileMode;}return createFiber(HostRoot,null,null,mode);}function createFiberFromTypeAndProps(type,// React$ElementType\nkey,pendingProps,owner,mode,lanes){var fiberTag=IndeterminateComponent;// The resolved type is set if we know what the final type will be. I.e. it's not lazy.\nvar resolvedType=type;if(typeof type==='function'){if(shouldConstruct$1(type)){fiberTag=ClassComponent;{resolvedType=resolveClassForHotReloading(resolvedType);}}else{{resolvedType=resolveFunctionForHotReloading(resolvedType);}}}else if(typeof type==='string'){fiberTag=HostComponent;}else{getTag:switch(type){case REACT_FRAGMENT_TYPE:return createFiberFromFragment(pendingProps.children,mode,lanes,key);case REACT_STRICT_MODE_TYPE:fiberTag=Mode;mode|=StrictLegacyMode;if((mode&ConcurrentMode)!==NoMode){// Strict effects should never run on legacy roots\nmode|=StrictEffectsMode;}break;case REACT_PROFILER_TYPE:return createFiberFromProfiler(pendingProps,mode,lanes,key);case REACT_SUSPENSE_TYPE:return createFiberFromSuspense(pendingProps,mode,lanes,key);case REACT_SUSPENSE_LIST_TYPE:return createFiberFromSuspenseList(pendingProps,mode,lanes,key);case REACT_OFFSCREEN_TYPE:return createFiberFromOffscreen(pendingProps,mode,lanes,key);case REACT_LEGACY_HIDDEN_TYPE:// eslint-disable-next-line no-fallthrough\ncase REACT_SCOPE_TYPE:// eslint-disable-next-line no-fallthrough\ncase REACT_CACHE_TYPE:// eslint-disable-next-line no-fallthrough\ncase REACT_TRACING_MARKER_TYPE:// eslint-disable-next-line no-fallthrough\ncase REACT_DEBUG_TRACING_MODE_TYPE:// eslint-disable-next-line no-fallthrough\ndefault:{if(typeof type==='object'&&type!==null){switch(type.$$typeof){case REACT_PROVIDER_TYPE:fiberTag=ContextProvider;break getTag;case REACT_CONTEXT_TYPE:// This is a consumer\nfiberTag=ContextConsumer;break getTag;case REACT_FORWARD_REF_TYPE:fiberTag=ForwardRef;{resolvedType=resolveForwardRefForHotReloading(resolvedType);}break getTag;case REACT_MEMO_TYPE:fiberTag=MemoComponent;break getTag;case REACT_LAZY_TYPE:fiberTag=LazyComponent;resolvedType=null;break getTag;}}var info='';{if(type===undefined||typeof type==='object'&&type!==null&&Object.keys(type).length===0){info+=' You likely forgot to export your component from the file '+\"it's defined in, or you might have mixed up default and \"+'named imports.';}var ownerName=owner?getComponentNameFromFiber(owner):null;if(ownerName){info+='\\n\\nCheck the render method of `'+ownerName+'`.';}}throw new Error('Element type is invalid: expected a string (for built-in '+'components) or a class/function (for composite components) '+(\"but got: \"+(type==null?type:typeof type)+\".\"+info));}}}var fiber=createFiber(fiberTag,pendingProps,key,mode);fiber.elementType=type;fiber.type=resolvedType;fiber.lanes=lanes;{fiber._debugOwner=owner;}return fiber;}function createFiberFromElement(element,mode,lanes){var owner=null;{owner=element._owner;}var type=element.type;var key=element.key;var pendingProps=element.props;var fiber=createFiberFromTypeAndProps(type,key,pendingProps,owner,mode,lanes);{fiber._debugSource=element._source;fiber._debugOwner=element._owner;}return fiber;}function createFiberFromFragment(elements,mode,lanes,key){var fiber=createFiber(Fragment,elements,key,mode);fiber.lanes=lanes;return fiber;}function createFiberFromProfiler(pendingProps,mode,lanes,key){{if(typeof pendingProps.id!=='string'){error('Profiler must specify an \"id\" of type `string` as a prop. Received the type `%s` instead.',typeof pendingProps.id);}}var fiber=createFiber(Profiler,pendingProps,key,mode|ProfileMode);fiber.elementType=REACT_PROFILER_TYPE;fiber.lanes=lanes;{fiber.stateNode={effectDuration:0,passiveEffectDuration:0};}return fiber;}function createFiberFromSuspense(pendingProps,mode,lanes,key){var fiber=createFiber(SuspenseComponent,pendingProps,key,mode);fiber.elementType=REACT_SUSPENSE_TYPE;fiber.lanes=lanes;return fiber;}function createFiberFromSuspenseList(pendingProps,mode,lanes,key){var fiber=createFiber(SuspenseListComponent,pendingProps,key,mode);fiber.elementType=REACT_SUSPENSE_LIST_TYPE;fiber.lanes=lanes;return fiber;}function createFiberFromOffscreen(pendingProps,mode,lanes,key){var fiber=createFiber(OffscreenComponent,pendingProps,key,mode);fiber.elementType=REACT_OFFSCREEN_TYPE;fiber.lanes=lanes;var primaryChildInstance={isHidden:false};fiber.stateNode=primaryChildInstance;return fiber;}function createFiberFromText(content,mode,lanes){var fiber=createFiber(HostText,content,null,mode);fiber.lanes=lanes;return fiber;}function createFiberFromHostInstanceForDeletion(){var fiber=createFiber(HostComponent,null,null,NoMode);fiber.elementType='DELETED';return fiber;}function createFiberFromDehydratedFragment(dehydratedNode){var fiber=createFiber(DehydratedFragment,null,null,NoMode);fiber.stateNode=dehydratedNode;return fiber;}function createFiberFromPortal(portal,mode,lanes){var pendingProps=portal.children!==null?portal.children:[];var fiber=createFiber(HostPortal,pendingProps,portal.key,mode);fiber.lanes=lanes;fiber.stateNode={containerInfo:portal.containerInfo,pendingChildren:null,// Used by persistent updates\nimplementation:portal.implementation};return fiber;}// Used for stashing WIP properties to replay failed work in DEV.\nfunction assignFiberPropertiesInDEV(target,source){if(target===null){// This Fiber's initial properties will always be overwritten.\n// We only use a Fiber to ensure the same hidden class so DEV isn't slow.\ntarget=createFiber(IndeterminateComponent,null,null,NoMode);}// This is intentionally written as a list of all properties.\n// We tried to use Object.assign() instead but this is called in\n// the hottest path, and Object.assign() was too slow:\n// https://github.com/facebook/react/issues/12502\n// This code is DEV-only so size is not a concern.\ntarget.tag=source.tag;target.key=source.key;target.elementType=source.elementType;target.type=source.type;target.stateNode=source.stateNode;target.return=source.return;target.child=source.child;target.sibling=source.sibling;target.index=source.index;target.ref=source.ref;target.pendingProps=source.pendingProps;target.memoizedProps=source.memoizedProps;target.updateQueue=source.updateQueue;target.memoizedState=source.memoizedState;target.dependencies=source.dependencies;target.mode=source.mode;target.flags=source.flags;target.subtreeFlags=source.subtreeFlags;target.deletions=source.deletions;target.lanes=source.lanes;target.childLanes=source.childLanes;target.alternate=source.alternate;{target.actualDuration=source.actualDuration;target.actualStartTime=source.actualStartTime;target.selfBaseDuration=source.selfBaseDuration;target.treeBaseDuration=source.treeBaseDuration;}target._debugSource=source._debugSource;target._debugOwner=source._debugOwner;target._debugNeedsRemount=source._debugNeedsRemount;target._debugHookTypes=source._debugHookTypes;return target;}function FiberRootNode(containerInfo,tag,hydrate,identifierPrefix,onRecoverableError){this.tag=tag;this.containerInfo=containerInfo;this.pendingChildren=null;this.current=null;this.pingCache=null;this.finishedWork=null;this.timeoutHandle=noTimeout;this.context=null;this.pendingContext=null;this.callbackNode=null;this.callbackPriority=NoLane;this.eventTimes=createLaneMap(NoLanes);this.expirationTimes=createLaneMap(NoTimestamp);this.pendingLanes=NoLanes;this.suspendedLanes=NoLanes;this.pingedLanes=NoLanes;this.expiredLanes=NoLanes;this.mutableReadLanes=NoLanes;this.finishedLanes=NoLanes;this.entangledLanes=NoLanes;this.entanglements=createLaneMap(NoLanes);this.identifierPrefix=identifierPrefix;this.onRecoverableError=onRecoverableError;{this.mutableSourceEagerHydrationData=null;}{this.effectDuration=0;this.passiveEffectDuration=0;}{this.memoizedUpdaters=new Set();var pendingUpdatersLaneMap=this.pendingUpdatersLaneMap=[];for(var _i=0;_i<TotalLanes;_i++){pendingUpdatersLaneMap.push(new Set());}}{switch(tag){case ConcurrentRoot:this._debugRootType=hydrate?'hydrateRoot()':'createRoot()';break;case LegacyRoot:this._debugRootType=hydrate?'hydrate()':'render()';break;}}}function createFiberRoot(containerInfo,tag,hydrate,initialChildren,hydrationCallbacks,isStrictMode,concurrentUpdatesByDefaultOverride,// TODO: We have several of these arguments that are conceptually part of the\n// host config, but because they are passed in at runtime, we have to thread\n// them through the root constructor. Perhaps we should put them all into a\n// single type, like a DynamicHostConfig that is defined by the renderer.\nidentifierPrefix,onRecoverableError,transitionCallbacks){var root=new FiberRootNode(containerInfo,tag,hydrate,identifierPrefix,onRecoverableError);// stateNode is any.\nvar uninitializedFiber=createHostRootFiber(tag,isStrictMode);root.current=uninitializedFiber;uninitializedFiber.stateNode=root;{var _initialState={element:initialChildren,isDehydrated:hydrate,cache:null,// not enabled yet\ntransitions:null,pendingSuspenseBoundaries:null};uninitializedFiber.memoizedState=_initialState;}initializeUpdateQueue(uninitializedFiber);return root;}var ReactVersion='18.3.1';function createPortal(children,containerInfo,// TODO: figure out the API for cross-renderer implementation.\nimplementation){var key=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;{checkKeyStringCoercion(key);}return{// This tag allow us to uniquely identify this as a React Portal\n$$typeof:REACT_PORTAL_TYPE,key:key==null?null:''+key,children:children,containerInfo:containerInfo,implementation:implementation};}var didWarnAboutNestedUpdates;var didWarnAboutFindNodeInStrictMode;{didWarnAboutNestedUpdates=false;didWarnAboutFindNodeInStrictMode={};}function getContextForSubtree(parentComponent){if(!parentComponent){return emptyContextObject;}var fiber=get(parentComponent);var parentContext=findCurrentUnmaskedContext(fiber);if(fiber.tag===ClassComponent){var Component=fiber.type;if(isContextProvider(Component)){return processChildContext(fiber,Component,parentContext);}}return parentContext;}function findHostInstanceWithWarning(component,methodName){{var fiber=get(component);if(fiber===undefined){if(typeof component.render==='function'){throw new Error('Unable to find node on an unmounted component.');}else{var keys=Object.keys(component).join(',');throw new Error(\"Argument appears to not be a ReactComponent. Keys: \"+keys);}}var hostFiber=findCurrentHostFiber(fiber);if(hostFiber===null){return null;}if(hostFiber.mode&StrictLegacyMode){var componentName=getComponentNameFromFiber(fiber)||'Component';if(!didWarnAboutFindNodeInStrictMode[componentName]){didWarnAboutFindNodeInStrictMode[componentName]=true;var previousFiber=current;try{setCurrentFiber(hostFiber);if(fiber.mode&StrictLegacyMode){error('%s is deprecated in StrictMode. '+'%s was passed an instance of %s which is inside StrictMode. '+'Instead, add a ref directly to the element you want to reference. '+'Learn more about using refs safely here: '+'https://reactjs.org/link/strict-mode-find-node',methodName,methodName,componentName);}else{error('%s is deprecated in StrictMode. '+'%s was passed an instance of %s which renders StrictMode children. '+'Instead, add a ref directly to the element you want to reference. '+'Learn more about using refs safely here: '+'https://reactjs.org/link/strict-mode-find-node',methodName,methodName,componentName);}}finally{// Ideally this should reset to previous but this shouldn't be called in\n// render and there's another warning for that anyway.\nif(previousFiber){setCurrentFiber(previousFiber);}else{resetCurrentFiber();}}}}return hostFiber.stateNode;}}function createContainer(containerInfo,tag,hydrationCallbacks,isStrictMode,concurrentUpdatesByDefaultOverride,identifierPrefix,onRecoverableError,transitionCallbacks){var hydrate=false;var initialChildren=null;return createFiberRoot(containerInfo,tag,hydrate,initialChildren,hydrationCallbacks,isStrictMode,concurrentUpdatesByDefaultOverride,identifierPrefix,onRecoverableError);}function createHydrationContainer(initialChildren,// TODO: Remove `callback` when we delete legacy mode.\ncallback,containerInfo,tag,hydrationCallbacks,isStrictMode,concurrentUpdatesByDefaultOverride,identifierPrefix,onRecoverableError,transitionCallbacks){var hydrate=true;var root=createFiberRoot(containerInfo,tag,hydrate,initialChildren,hydrationCallbacks,isStrictMode,concurrentUpdatesByDefaultOverride,identifierPrefix,onRecoverableError);// TODO: Move this to FiberRoot constructor\nroot.context=getContextForSubtree(null);// Schedule the initial render. In a hydration root, this is different from\n// a regular update because the initial render must match was was rendered\n// on the server.\n// NOTE: This update intentionally doesn't have a payload. We're only using\n// the update to schedule work on the root fiber (and, for legacy roots, to\n// enqueue the callback if one is provided).\nvar current=root.current;var eventTime=requestEventTime();var lane=requestUpdateLane(current);var update=createUpdate(eventTime,lane);update.callback=callback!==undefined&&callback!==null?callback:null;enqueueUpdate(current,update,lane);scheduleInitialHydrationOnRoot(root,lane,eventTime);return root;}function updateContainer(element,container,parentComponent,callback){{onScheduleRoot(container,element);}var current$1=container.current;var eventTime=requestEventTime();var lane=requestUpdateLane(current$1);{markRenderScheduled(lane);}var context=getContextForSubtree(parentComponent);if(container.context===null){container.context=context;}else{container.pendingContext=context;}{if(isRendering&&current!==null&&!didWarnAboutNestedUpdates){didWarnAboutNestedUpdates=true;error('Render methods should be a pure function of props and state; '+'triggering nested component updates from render is not allowed. '+'If necessary, trigger nested updates in componentDidUpdate.\\n\\n'+'Check the render method of %s.',getComponentNameFromFiber(current)||'Unknown');}}var update=createUpdate(eventTime,lane);// Caution: React DevTools currently depends on this property\n// being called \"element\".\nupdate.payload={element:element};callback=callback===undefined?null:callback;if(callback!==null){{if(typeof callback!=='function'){error('render(...): Expected the last optional `callback` argument to be a '+'function. Instead received: %s.',callback);}}update.callback=callback;}var root=enqueueUpdate(current$1,update,lane);if(root!==null){scheduleUpdateOnFiber(root,current$1,lane,eventTime);entangleTransitions(root,current$1,lane);}return lane;}function getPublicRootInstance(container){var containerFiber=container.current;if(!containerFiber.child){return null;}switch(containerFiber.child.tag){case HostComponent:return getPublicInstance(containerFiber.child.stateNode);default:return containerFiber.child.stateNode;}}function attemptSynchronousHydration$1(fiber){switch(fiber.tag){case HostRoot:{var root=fiber.stateNode;if(isRootDehydrated(root)){// Flush the first scheduled \"update\".\nvar lanes=getHighestPriorityPendingLanes(root);flushRoot(root,lanes);}break;}case SuspenseComponent:{flushSync(function(){var root=enqueueConcurrentRenderForLane(fiber,SyncLane);if(root!==null){var eventTime=requestEventTime();scheduleUpdateOnFiber(root,fiber,SyncLane,eventTime);}});// If we're still blocked after this, we need to increase\n// the priority of any promises resolving within this\n// boundary so that they next attempt also has higher pri.\nvar retryLane=SyncLane;markRetryLaneIfNotHydrated(fiber,retryLane);break;}}}function markRetryLaneImpl(fiber,retryLane){var suspenseState=fiber.memoizedState;if(suspenseState!==null&&suspenseState.dehydrated!==null){suspenseState.retryLane=higherPriorityLane(suspenseState.retryLane,retryLane);}}// Increases the priority of thenables when they resolve within this boundary.\nfunction markRetryLaneIfNotHydrated(fiber,retryLane){markRetryLaneImpl(fiber,retryLane);var alternate=fiber.alternate;if(alternate){markRetryLaneImpl(alternate,retryLane);}}function attemptContinuousHydration$1(fiber){if(fiber.tag!==SuspenseComponent){// We ignore HostRoots here because we can't increase\n// their priority and they should not suspend on I/O,\n// since you have to wrap anything that might suspend in\n// Suspense.\nreturn;}var lane=SelectiveHydrationLane;var root=enqueueConcurrentRenderForLane(fiber,lane);if(root!==null){var eventTime=requestEventTime();scheduleUpdateOnFiber(root,fiber,lane,eventTime);}markRetryLaneIfNotHydrated(fiber,lane);}function attemptHydrationAtCurrentPriority$1(fiber){if(fiber.tag!==SuspenseComponent){// We ignore HostRoots here because we can't increase\n// their priority other than synchronously flush it.\nreturn;}var lane=requestUpdateLane(fiber);var root=enqueueConcurrentRenderForLane(fiber,lane);if(root!==null){var eventTime=requestEventTime();scheduleUpdateOnFiber(root,fiber,lane,eventTime);}markRetryLaneIfNotHydrated(fiber,lane);}function findHostInstanceWithNoPortals(fiber){var hostFiber=findCurrentHostFiberWithNoPortals(fiber);if(hostFiber===null){return null;}return hostFiber.stateNode;}var shouldErrorImpl=function(fiber){return null;};function shouldError(fiber){return shouldErrorImpl(fiber);}var shouldSuspendImpl=function(fiber){return false;};function shouldSuspend(fiber){return shouldSuspendImpl(fiber);}var overrideHookState=null;var overrideHookStateDeletePath=null;var overrideHookStateRenamePath=null;var overrideProps=null;var overridePropsDeletePath=null;var overridePropsRenamePath=null;var scheduleUpdate=null;var setErrorHandler=null;var setSuspenseHandler=null;{var copyWithDeleteImpl=function(obj,path,index){var key=path[index];var updated=isArray(obj)?obj.slice():assign({},obj);if(index+1===path.length){if(isArray(updated)){updated.splice(key,1);}else{delete updated[key];}return updated;}// $FlowFixMe number or string is fine here\nupdated[key]=copyWithDeleteImpl(obj[key],path,index+1);return updated;};var copyWithDelete=function(obj,path){return copyWithDeleteImpl(obj,path,0);};var copyWithRenameImpl=function(obj,oldPath,newPath,index){var oldKey=oldPath[index];var updated=isArray(obj)?obj.slice():assign({},obj);if(index+1===oldPath.length){var newKey=newPath[index];// $FlowFixMe number or string is fine here\nupdated[newKey]=updated[oldKey];if(isArray(updated)){updated.splice(oldKey,1);}else{delete updated[oldKey];}}else{// $FlowFixMe number or string is fine here\nupdated[oldKey]=copyWithRenameImpl(// $FlowFixMe number or string is fine here\nobj[oldKey],oldPath,newPath,index+1);}return updated;};var copyWithRename=function(obj,oldPath,newPath){if(oldPath.length!==newPath.length){warn('copyWithRename() expects paths of the same length');return;}else{for(var i=0;i<newPath.length-1;i++){if(oldPath[i]!==newPath[i]){warn('copyWithRename() expects paths to be the same except for the deepest key');return;}}}return copyWithRenameImpl(obj,oldPath,newPath,0);};var copyWithSetImpl=function(obj,path,index,value){if(index>=path.length){return value;}var key=path[index];var updated=isArray(obj)?obj.slice():assign({},obj);// $FlowFixMe number or string is fine here\nupdated[key]=copyWithSetImpl(obj[key],path,index+1,value);return updated;};var copyWithSet=function(obj,path,value){return copyWithSetImpl(obj,path,0,value);};var findHook=function(fiber,id){// For now, the \"id\" of stateful hooks is just the stateful hook index.\n// This may change in the future with e.g. nested hooks.\nvar currentHook=fiber.memoizedState;while(currentHook!==null&&id>0){currentHook=currentHook.next;id--;}return currentHook;};// Support DevTools editable values for useState and useReducer.\noverrideHookState=function(fiber,id,path,value){var hook=findHook(fiber,id);if(hook!==null){var newState=copyWithSet(hook.memoizedState,path,value);hook.memoizedState=newState;hook.baseState=newState;// We aren't actually adding an update to the queue,\n// because there is no update we can add for useReducer hooks that won't trigger an error.\n// (There's no appropriate action type for DevTools overrides.)\n// As a result though, React will see the scheduled update as a noop and bailout.\n// Shallow cloning props works as a workaround for now to bypass the bailout check.\nfiber.memoizedProps=assign({},fiber.memoizedProps);var root=enqueueConcurrentRenderForLane(fiber,SyncLane);if(root!==null){scheduleUpdateOnFiber(root,fiber,SyncLane,NoTimestamp);}}};overrideHookStateDeletePath=function(fiber,id,path){var hook=findHook(fiber,id);if(hook!==null){var newState=copyWithDelete(hook.memoizedState,path);hook.memoizedState=newState;hook.baseState=newState;// We aren't actually adding an update to the queue,\n// because there is no update we can add for useReducer hooks that won't trigger an error.\n// (There's no appropriate action type for DevTools overrides.)\n// As a result though, React will see the scheduled update as a noop and bailout.\n// Shallow cloning props works as a workaround for now to bypass the bailout check.\nfiber.memoizedProps=assign({},fiber.memoizedProps);var root=enqueueConcurrentRenderForLane(fiber,SyncLane);if(root!==null){scheduleUpdateOnFiber(root,fiber,SyncLane,NoTimestamp);}}};overrideHookStateRenamePath=function(fiber,id,oldPath,newPath){var hook=findHook(fiber,id);if(hook!==null){var newState=copyWithRename(hook.memoizedState,oldPath,newPath);hook.memoizedState=newState;hook.baseState=newState;// We aren't actually adding an update to the queue,\n// because there is no update we can add for useReducer hooks that won't trigger an error.\n// (There's no appropriate action type for DevTools overrides.)\n// As a result though, React will see the scheduled update as a noop and bailout.\n// Shallow cloning props works as a workaround for now to bypass the bailout check.\nfiber.memoizedProps=assign({},fiber.memoizedProps);var root=enqueueConcurrentRenderForLane(fiber,SyncLane);if(root!==null){scheduleUpdateOnFiber(root,fiber,SyncLane,NoTimestamp);}}};// Support DevTools props for function components, forwardRef, memo, host components, etc.\noverrideProps=function(fiber,path,value){fiber.pendingProps=copyWithSet(fiber.memoizedProps,path,value);if(fiber.alternate){fiber.alternate.pendingProps=fiber.pendingProps;}var root=enqueueConcurrentRenderForLane(fiber,SyncLane);if(root!==null){scheduleUpdateOnFiber(root,fiber,SyncLane,NoTimestamp);}};overridePropsDeletePath=function(fiber,path){fiber.pendingProps=copyWithDelete(fiber.memoizedProps,path);if(fiber.alternate){fiber.alternate.pendingProps=fiber.pendingProps;}var root=enqueueConcurrentRenderForLane(fiber,SyncLane);if(root!==null){scheduleUpdateOnFiber(root,fiber,SyncLane,NoTimestamp);}};overridePropsRenamePath=function(fiber,oldPath,newPath){fiber.pendingProps=copyWithRename(fiber.memoizedProps,oldPath,newPath);if(fiber.alternate){fiber.alternate.pendingProps=fiber.pendingProps;}var root=enqueueConcurrentRenderForLane(fiber,SyncLane);if(root!==null){scheduleUpdateOnFiber(root,fiber,SyncLane,NoTimestamp);}};scheduleUpdate=function(fiber){var root=enqueueConcurrentRenderForLane(fiber,SyncLane);if(root!==null){scheduleUpdateOnFiber(root,fiber,SyncLane,NoTimestamp);}};setErrorHandler=function(newShouldErrorImpl){shouldErrorImpl=newShouldErrorImpl;};setSuspenseHandler=function(newShouldSuspendImpl){shouldSuspendImpl=newShouldSuspendImpl;};}function findHostInstanceByFiber(fiber){var hostFiber=findCurrentHostFiber(fiber);if(hostFiber===null){return null;}return hostFiber.stateNode;}function emptyFindFiberByHostInstance(instance){return null;}function getCurrentFiberForDevTools(){return current;}function injectIntoDevTools(devToolsConfig){var findFiberByHostInstance=devToolsConfig.findFiberByHostInstance;var ReactCurrentDispatcher=ReactSharedInternals.ReactCurrentDispatcher;return injectInternals({bundleType:devToolsConfig.bundleType,version:devToolsConfig.version,rendererPackageName:devToolsConfig.rendererPackageName,rendererConfig:devToolsConfig.rendererConfig,overrideHookState:overrideHookState,overrideHookStateDeletePath:overrideHookStateDeletePath,overrideHookStateRenamePath:overrideHookStateRenamePath,overrideProps:overrideProps,overridePropsDeletePath:overridePropsDeletePath,overridePropsRenamePath:overridePropsRenamePath,setErrorHandler:setErrorHandler,setSuspenseHandler:setSuspenseHandler,scheduleUpdate:scheduleUpdate,currentDispatcherRef:ReactCurrentDispatcher,findHostInstanceByFiber:findHostInstanceByFiber,findFiberByHostInstance:findFiberByHostInstance||emptyFindFiberByHostInstance,// React Refresh\nfindHostInstancesForRefresh:findHostInstancesForRefresh,scheduleRefresh:scheduleRefresh,scheduleRoot:scheduleRoot,setRefreshHandler:setRefreshHandler,// Enables DevTools to append owner stacks to error messages in DEV mode.\ngetCurrentFiber:getCurrentFiberForDevTools,// Enables DevTools to detect reconciler version rather than renderer version\n// which may not match for third party renderers.\nreconcilerVersion:ReactVersion});}/* global reportError */var defaultOnRecoverableError=typeof reportError==='function'?// In modern browsers, reportError will dispatch an error event,\n// emulating an uncaught JavaScript error.\nreportError:function(error){// In older browsers and test environments, fallback to console.error.\n// eslint-disable-next-line react-internal/no-production-logging\nconsole['error'](error);};function ReactDOMRoot(internalRoot){this._internalRoot=internalRoot;}ReactDOMHydrationRoot.prototype.render=ReactDOMRoot.prototype.render=function(children){var root=this._internalRoot;if(root===null){throw new Error('Cannot update an unmounted root.');}{if(typeof arguments[1]==='function'){error('render(...): does not support the second callback argument. '+'To execute a side effect after rendering, declare it in a component body with useEffect().');}else if(isValidContainer(arguments[1])){error('You passed a container to the second argument of root.render(...). '+\"You don't need to pass it again since you already passed it to create the root.\");}else if(typeof arguments[1]!=='undefined'){error('You passed a second argument to root.render(...) but it only accepts '+'one argument.');}var container=root.containerInfo;if(container.nodeType!==COMMENT_NODE){var hostInstance=findHostInstanceWithNoPortals(root.current);if(hostInstance){if(hostInstance.parentNode!==container){error('render(...): It looks like the React-rendered content of the '+'root container was removed without using React. This is not '+'supported and will cause errors. Instead, call '+\"root.unmount() to empty a root's container.\");}}}}updateContainer(children,root,null,null);};ReactDOMHydrationRoot.prototype.unmount=ReactDOMRoot.prototype.unmount=function(){{if(typeof arguments[0]==='function'){error('unmount(...): does not support a callback argument. '+'To execute a side effect after rendering, declare it in a component body with useEffect().');}}var root=this._internalRoot;if(root!==null){this._internalRoot=null;var container=root.containerInfo;{if(isAlreadyRendering()){error('Attempted to synchronously unmount a root while React was already '+'rendering. React cannot finish unmounting the root until the '+'current render has completed, which may lead to a race condition.');}}flushSync(function(){updateContainer(null,root,null,null);});unmarkContainerAsRoot(container);}};function createRoot(container,options){if(!isValidContainer(container)){throw new Error('createRoot(...): Target container is not a DOM element.');}warnIfReactDOMContainerInDEV(container);var isStrictMode=false;var concurrentUpdatesByDefaultOverride=false;var identifierPrefix='';var onRecoverableError=defaultOnRecoverableError;var transitionCallbacks=null;if(options!==null&&options!==undefined){{if(options.hydrate){warn('hydrate through createRoot is deprecated. Use ReactDOMClient.hydrateRoot(container, <App />) instead.');}else{if(typeof options==='object'&&options!==null&&options.$$typeof===REACT_ELEMENT_TYPE){error('You passed a JSX element to createRoot. You probably meant to '+'call root.render instead. '+'Example usage:\\n\\n'+'  let root = createRoot(domContainer);\\n'+'  root.render(<App />);');}}}if(options.unstable_strictMode===true){isStrictMode=true;}if(options.identifierPrefix!==undefined){identifierPrefix=options.identifierPrefix;}if(options.onRecoverableError!==undefined){onRecoverableError=options.onRecoverableError;}if(options.transitionCallbacks!==undefined){transitionCallbacks=options.transitionCallbacks;}}var root=createContainer(container,ConcurrentRoot,null,isStrictMode,concurrentUpdatesByDefaultOverride,identifierPrefix,onRecoverableError);markContainerAsRoot(root.current,container);var rootContainerElement=container.nodeType===COMMENT_NODE?container.parentNode:container;listenToAllSupportedEvents(rootContainerElement);return new ReactDOMRoot(root);}function ReactDOMHydrationRoot(internalRoot){this._internalRoot=internalRoot;}function scheduleHydration(target){if(target){queueExplicitHydrationTarget(target);}}ReactDOMHydrationRoot.prototype.unstable_scheduleHydration=scheduleHydration;function hydrateRoot(container,initialChildren,options){if(!isValidContainer(container)){throw new Error('hydrateRoot(...): Target container is not a DOM element.');}warnIfReactDOMContainerInDEV(container);{if(initialChildren===undefined){error('Must provide initial children as second argument to hydrateRoot. '+'Example usage: hydrateRoot(domContainer, <App />)');}}// For now we reuse the whole bag of options since they contain\n// the hydration callbacks.\nvar hydrationCallbacks=options!=null?options:null;// TODO: Delete this option\nvar mutableSources=options!=null&&options.hydratedSources||null;var isStrictMode=false;var concurrentUpdatesByDefaultOverride=false;var identifierPrefix='';var onRecoverableError=defaultOnRecoverableError;if(options!==null&&options!==undefined){if(options.unstable_strictMode===true){isStrictMode=true;}if(options.identifierPrefix!==undefined){identifierPrefix=options.identifierPrefix;}if(options.onRecoverableError!==undefined){onRecoverableError=options.onRecoverableError;}}var root=createHydrationContainer(initialChildren,null,container,ConcurrentRoot,hydrationCallbacks,isStrictMode,concurrentUpdatesByDefaultOverride,identifierPrefix,onRecoverableError);markContainerAsRoot(root.current,container);// This can't be a comment node since hydration doesn't work on comment nodes anyway.\nlistenToAllSupportedEvents(container);if(mutableSources){for(var i=0;i<mutableSources.length;i++){var mutableSource=mutableSources[i];registerMutableSourceForHydration(root,mutableSource);}}return new ReactDOMHydrationRoot(root);}function isValidContainer(node){return!!(node&&(node.nodeType===ELEMENT_NODE||node.nodeType===DOCUMENT_NODE||node.nodeType===DOCUMENT_FRAGMENT_NODE||!disableCommentsAsDOMContainers));}// TODO: Remove this function which also includes comment nodes.\n// We only use it in places that are currently more relaxed.\nfunction isValidContainerLegacy(node){return!!(node&&(node.nodeType===ELEMENT_NODE||node.nodeType===DOCUMENT_NODE||node.nodeType===DOCUMENT_FRAGMENT_NODE||node.nodeType===COMMENT_NODE&&node.nodeValue===' react-mount-point-unstable '));}function warnIfReactDOMContainerInDEV(container){{if(container.nodeType===ELEMENT_NODE&&container.tagName&&container.tagName.toUpperCase()==='BODY'){error('createRoot(): Creating roots directly with document.body is '+'discouraged, since its children are often manipulated by third-party '+'scripts and browser extensions. This may lead to subtle '+'reconciliation issues. Try using a container element created '+'for your app.');}if(isContainerMarkedAsRoot(container)){if(container._reactRootContainer){error('You are calling ReactDOMClient.createRoot() on a container that was previously '+'passed to ReactDOM.render(). This is not supported.');}else{error('You are calling ReactDOMClient.createRoot() on a container that '+'has already been passed to createRoot() before. Instead, call '+'root.render() on the existing root instead if you want to update it.');}}}}var ReactCurrentOwner$3=ReactSharedInternals.ReactCurrentOwner;var topLevelUpdateWarnings;{topLevelUpdateWarnings=function(container){if(container._reactRootContainer&&container.nodeType!==COMMENT_NODE){var hostInstance=findHostInstanceWithNoPortals(container._reactRootContainer.current);if(hostInstance){if(hostInstance.parentNode!==container){error('render(...): It looks like the React-rendered content of this '+'container was removed without using React. This is not '+'supported and will cause errors. Instead, call '+'ReactDOM.unmountComponentAtNode to empty a container.');}}}var isRootRenderedBySomeReact=!!container._reactRootContainer;var rootEl=getReactRootElementInContainer(container);var hasNonRootReactChild=!!(rootEl&&getInstanceFromNode(rootEl));if(hasNonRootReactChild&&!isRootRenderedBySomeReact){error('render(...): Replacing React-rendered children with a new root '+'component. If you intended to update the children of this node, '+'you should instead have the existing children update their state '+'and render the new components instead of calling ReactDOM.render.');}if(container.nodeType===ELEMENT_NODE&&container.tagName&&container.tagName.toUpperCase()==='BODY'){error('render(): Rendering components directly into document.body is '+'discouraged, since its children are often manipulated by third-party '+'scripts and browser extensions. This may lead to subtle '+'reconciliation issues. Try rendering into a container element created '+'for your app.');}};}function getReactRootElementInContainer(container){if(!container){return null;}if(container.nodeType===DOCUMENT_NODE){return container.documentElement;}else{return container.firstChild;}}function noopOnRecoverableError(){// This isn't reachable because onRecoverableError isn't called in the\n// legacy API.\n}function legacyCreateRootFromDOMContainer(container,initialChildren,parentComponent,callback,isHydrationContainer){if(isHydrationContainer){if(typeof callback==='function'){var originalCallback=callback;callback=function(){var instance=getPublicRootInstance(root);originalCallback.call(instance);};}var root=createHydrationContainer(initialChildren,callback,container,LegacyRoot,null,// hydrationCallbacks\nfalse,// isStrictMode\nfalse,// concurrentUpdatesByDefaultOverride,\n'',// identifierPrefix\nnoopOnRecoverableError);container._reactRootContainer=root;markContainerAsRoot(root.current,container);var rootContainerElement=container.nodeType===COMMENT_NODE?container.parentNode:container;listenToAllSupportedEvents(rootContainerElement);flushSync();return root;}else{// First clear any existing content.\nvar rootSibling;while(rootSibling=container.lastChild){container.removeChild(rootSibling);}if(typeof callback==='function'){var _originalCallback=callback;callback=function(){var instance=getPublicRootInstance(_root);_originalCallback.call(instance);};}var _root=createContainer(container,LegacyRoot,null,// hydrationCallbacks\nfalse,// isStrictMode\nfalse,// concurrentUpdatesByDefaultOverride,\n'',// identifierPrefix\nnoopOnRecoverableError);container._reactRootContainer=_root;markContainerAsRoot(_root.current,container);var _rootContainerElement=container.nodeType===COMMENT_NODE?container.parentNode:container;listenToAllSupportedEvents(_rootContainerElement);// Initial mount should not be batched.\nflushSync(function(){updateContainer(initialChildren,_root,parentComponent,callback);});return _root;}}function warnOnInvalidCallback$1(callback,callerName){{if(callback!==null&&typeof callback!=='function'){error('%s(...): Expected the last optional `callback` argument to be a '+'function. Instead received: %s.',callerName,callback);}}}function legacyRenderSubtreeIntoContainer(parentComponent,children,container,forceHydrate,callback){{topLevelUpdateWarnings(container);warnOnInvalidCallback$1(callback===undefined?null:callback,'render');}var maybeRoot=container._reactRootContainer;var root;if(!maybeRoot){// Initial mount\nroot=legacyCreateRootFromDOMContainer(container,children,parentComponent,callback,forceHydrate);}else{root=maybeRoot;if(typeof callback==='function'){var originalCallback=callback;callback=function(){var instance=getPublicRootInstance(root);originalCallback.call(instance);};}// Update\nupdateContainer(children,root,parentComponent,callback);}return getPublicRootInstance(root);}var didWarnAboutFindDOMNode=false;function findDOMNode(componentOrElement){{if(!didWarnAboutFindDOMNode){didWarnAboutFindDOMNode=true;error('findDOMNode is deprecated and will be removed in the next major '+'release. Instead, add a ref directly to the element you want '+'to reference. Learn more about using refs safely here: '+'https://reactjs.org/link/strict-mode-find-node');}var owner=ReactCurrentOwner$3.current;if(owner!==null&&owner.stateNode!==null){var warnedAboutRefsInRender=owner.stateNode._warnedAboutRefsInRender;if(!warnedAboutRefsInRender){error('%s is accessing findDOMNode inside its render(). '+'render() should be a pure function of props and state. It should '+'never access something that requires stale data from the previous '+'render, such as refs. Move this logic to componentDidMount and '+'componentDidUpdate instead.',getComponentNameFromType(owner.type)||'A component');}owner.stateNode._warnedAboutRefsInRender=true;}}if(componentOrElement==null){return null;}if(componentOrElement.nodeType===ELEMENT_NODE){return componentOrElement;}{return findHostInstanceWithWarning(componentOrElement,'findDOMNode');}}function hydrate(element,container,callback){{error('ReactDOM.hydrate is no longer supported in React 18. Use hydrateRoot '+'instead. Until you switch to the new API, your app will behave as '+\"if it's running React 17. Learn \"+'more: https://reactjs.org/link/switch-to-createroot');}if(!isValidContainerLegacy(container)){throw new Error('Target container is not a DOM element.');}{var isModernRoot=isContainerMarkedAsRoot(container)&&container._reactRootContainer===undefined;if(isModernRoot){error('You are calling ReactDOM.hydrate() on a container that was previously '+'passed to ReactDOMClient.createRoot(). This is not supported. '+'Did you mean to call hydrateRoot(container, element)?');}}// TODO: throw or warn if we couldn't hydrate?\nreturn legacyRenderSubtreeIntoContainer(null,element,container,true,callback);}function render(element,container,callback){{error('ReactDOM.render is no longer supported in React 18. Use createRoot '+'instead. Until you switch to the new API, your app will behave as '+\"if it's running React 17. Learn \"+'more: https://reactjs.org/link/switch-to-createroot');}if(!isValidContainerLegacy(container)){throw new Error('Target container is not a DOM element.');}{var isModernRoot=isContainerMarkedAsRoot(container)&&container._reactRootContainer===undefined;if(isModernRoot){error('You are calling ReactDOM.render() on a container that was previously '+'passed to ReactDOMClient.createRoot(). This is not supported. '+'Did you mean to call root.render(element)?');}}return legacyRenderSubtreeIntoContainer(null,element,container,false,callback);}function unstable_renderSubtreeIntoContainer(parentComponent,element,containerNode,callback){{error('ReactDOM.unstable_renderSubtreeIntoContainer() is no longer supported '+'in React 18. Consider using a portal instead. Until you switch to '+\"the createRoot API, your app will behave as if it's running React \"+'17. Learn more: https://reactjs.org/link/switch-to-createroot');}if(!isValidContainerLegacy(containerNode)){throw new Error('Target container is not a DOM element.');}if(parentComponent==null||!has(parentComponent)){throw new Error('parentComponent must be a valid React Component');}return legacyRenderSubtreeIntoContainer(parentComponent,element,containerNode,false,callback);}var didWarnAboutUnmountComponentAtNode=false;function unmountComponentAtNode(container){{if(!didWarnAboutUnmountComponentAtNode){didWarnAboutUnmountComponentAtNode=true;error('unmountComponentAtNode is deprecated and will be removed in the '+'next major release. Switch to the createRoot API. Learn '+'more: https://reactjs.org/link/switch-to-createroot');}}if(!isValidContainerLegacy(container)){throw new Error('unmountComponentAtNode(...): Target container is not a DOM element.');}{var isModernRoot=isContainerMarkedAsRoot(container)&&container._reactRootContainer===undefined;if(isModernRoot){error('You are calling ReactDOM.unmountComponentAtNode() on a container that was previously '+'passed to ReactDOMClient.createRoot(). This is not supported. Did you mean to call root.unmount()?');}}if(container._reactRootContainer){{var rootEl=getReactRootElementInContainer(container);var renderedByDifferentReact=rootEl&&!getInstanceFromNode(rootEl);if(renderedByDifferentReact){error(\"unmountComponentAtNode(): The node you're attempting to unmount \"+'was rendered by another copy of React.');}}// Unmount should not be batched.\nflushSync(function(){legacyRenderSubtreeIntoContainer(null,null,container,false,function(){// $FlowFixMe This should probably use `delete container._reactRootContainer`\ncontainer._reactRootContainer=null;unmarkContainerAsRoot(container);});});// If you call unmountComponentAtNode twice in quick succession, you'll\n// get `true` twice. That's probably fine?\nreturn true;}else{{var _rootEl=getReactRootElementInContainer(container);var hasNonRootReactChild=!!(_rootEl&&getInstanceFromNode(_rootEl));// Check if the container itself is a React root node.\nvar isContainerReactRoot=container.nodeType===ELEMENT_NODE&&isValidContainerLegacy(container.parentNode)&&!!container.parentNode._reactRootContainer;if(hasNonRootReactChild){error(\"unmountComponentAtNode(): The node you're attempting to unmount \"+'was rendered by React and is not a top-level container. %s',isContainerReactRoot?'You may have accidentally passed in a React root node instead '+'of its container.':'Instead, have the parent component update its state and '+'rerender in order to remove this component.');}}return false;}}setAttemptSynchronousHydration(attemptSynchronousHydration$1);setAttemptContinuousHydration(attemptContinuousHydration$1);setAttemptHydrationAtCurrentPriority(attemptHydrationAtCurrentPriority$1);setGetCurrentUpdatePriority(getCurrentUpdatePriority);setAttemptHydrationAtPriority(runWithPriority);{if(typeof Map!=='function'||// $FlowIssue Flow incorrectly thinks Map has no prototype\nMap.prototype==null||typeof Map.prototype.forEach!=='function'||typeof Set!=='function'||// $FlowIssue Flow incorrectly thinks Set has no prototype\nSet.prototype==null||typeof Set.prototype.clear!=='function'||typeof Set.prototype.forEach!=='function'){error('React depends on Map and Set built-in types. Make sure that you load a '+'polyfill in older browsers. https://reactjs.org/link/react-polyfills');}}setRestoreImplementation(restoreControlledState$3);setBatchingImplementation(batchedUpdates$1,discreteUpdates,flushSync);function createPortal$1(children,container){var key=arguments.length>2&&arguments[2]!==undefined?arguments[2]:null;if(!isValidContainer(container)){throw new Error('Target container is not a DOM element.');}// TODO: pass ReactDOM portal implementation as third argument\n// $FlowFixMe The Flow type is opaque but there's no way to actually create it.\nreturn createPortal(children,container,null,key);}function renderSubtreeIntoContainer(parentComponent,element,containerNode,callback){return unstable_renderSubtreeIntoContainer(parentComponent,element,containerNode,callback);}var Internals={usingClientEntryPoint:false,// Keep in sync with ReactTestUtils.js.\n// This is an array for better minification.\nEvents:[getInstanceFromNode,getNodeFromInstance,getFiberCurrentPropsFromNode,enqueueStateRestore,restoreStateIfNeeded,batchedUpdates$1]};function createRoot$1(container,options){{if(!Internals.usingClientEntryPoint&&!false){error('You are importing createRoot from \"react-dom\" which is not supported. '+'You should instead import it from \"react-dom/client\".');}}return createRoot(container,options);}function hydrateRoot$1(container,initialChildren,options){{if(!Internals.usingClientEntryPoint&&!false){error('You are importing hydrateRoot from \"react-dom\" which is not supported. '+'You should instead import it from \"react-dom/client\".');}}return hydrateRoot(container,initialChildren,options);}// Overload the definition to the two valid signatures.\n// Warning, this opts-out of checking the function body.\n// eslint-disable-next-line no-redeclare\nfunction flushSync$1(fn){{if(isAlreadyRendering()){error('flushSync was called from inside a lifecycle method. React cannot '+'flush when React is already rendering. Consider moving this call to '+'a scheduler task or micro task.');}}return flushSync(fn);}var foundDevTools=injectIntoDevTools({findFiberByHostInstance:getClosestInstanceFromNode,bundleType:1,version:ReactVersion,rendererPackageName:'react-dom'});{if(!foundDevTools&&canUseDOM&&window.top===window.self){// If we're in Chrome or Firefox, provide a download link if not installed.\nif(navigator.userAgent.indexOf('Chrome')>-1&&navigator.userAgent.indexOf('Edge')===-1||navigator.userAgent.indexOf('Firefox')>-1){var protocol=window.location.protocol;// Don't warn in exotic cases like chrome-extension://.\nif(/^(https?|file):$/.test(protocol)){// eslint-disable-next-line react-internal/no-production-logging\nconsole.info('%cDownload the React DevTools '+'for a better development experience: '+'https://reactjs.org/link/react-devtools'+(protocol==='file:'?'\\nYou might need to use a local HTTP server (instead of file://): '+'https://reactjs.org/link/react-devtools-faq':''),'font-weight:bold');}}}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Internals;exports.createPortal=createPortal$1;exports.createRoot=createRoot$1;exports.findDOMNode=findDOMNode;exports.flushSync=flushSync$1;exports.hydrate=hydrate;exports.hydrateRoot=hydrateRoot$1;exports.render=render;exports.unmountComponentAtNode=unmountComponentAtNode;exports.unstable_batchedUpdates=batchedUpdates$1;exports.unstable_renderSubtreeIntoContainer=renderSubtreeIntoContainer;exports.version=ReactVersion;/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__!=='undefined'&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==='function'){__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());}})();}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dom/cjs/react-dom.development.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dom/client.js":
/*!****************************************************!*\
  !*** ../react-ui/node_modules/react-dom/client.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar m = __webpack_require__(/*! react-dom */ \"../react-ui/node_modules/react-dom/index.js\");\nif (false) // removed by dead control flow\n{} else {\n  var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n  exports.createRoot = function (c, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.createRoot(c, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n  exports.hydrateRoot = function (c, h, o) {\n    i.usingClientEntryPoint = true;\n    try {\n      return m.hydrateRoot(c, h, o);\n    } finally {\n      i.usingClientEntryPoint = false;\n    }\n  };\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dom/client.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-dom/index.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/react-dom/index.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function') {\n    return;\n  }\n  if (true) {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  // removed by dead control flow\n\n}\nif (false) // removed by dead control flow\n{} else {\n  module.exports = __webpack_require__(/*! ./cjs/react-dom.development.js */ \"../react-ui/node_modules/react-dom/cjs/react-dom.development.js\");\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-dom/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-flatpickr/build/index.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/react-flatpickr/build/index.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{\n\nfunction _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n    _typeof = function _typeof(obj) {\n      return typeof obj;\n    };\n  } else {\n    _typeof = function _typeof(obj) {\n      return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n    };\n  }\n  return _typeof(obj);\n}\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports[\"default\"] = void 0;\nvar _react = _interopRequireWildcard(__webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\"));\nvar _propTypes = _interopRequireDefault(__webpack_require__(/*! prop-types */ \"../react-ui/node_modules/prop-types/index.js\"));\nvar _flatpickr = _interopRequireDefault(__webpack_require__(/*! flatpickr */ \"../react-ui/node_modules/flatpickr/dist/esm/index.js\"));\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    \"default\": obj\n  };\n}\nfunction _getRequireWildcardCache() {\n  if (typeof WeakMap !== \"function\") return null;\n  var cache = new WeakMap();\n  _getRequireWildcardCache = function _getRequireWildcardCache() {\n    return cache;\n  };\n  return cache;\n}\nfunction _interopRequireWildcard(obj) {\n  if (obj && obj.__esModule) {\n    return obj;\n  }\n  if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n    return {\n      \"default\": obj\n    };\n  }\n  var cache = _getRequireWildcardCache();\n  if (cache && cache.has(obj)) {\n    return cache.get(obj);\n  }\n  var newObj = {};\n  var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n  for (var key in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, key)) {\n      var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n      if (desc && (desc.get || desc.set)) {\n        Object.defineProperty(newObj, key, desc);\n      } else {\n        newObj[key] = obj[key];\n      }\n    }\n  }\n  newObj[\"default\"] = obj;\n  if (cache) {\n    cache.set(obj, newObj);\n  }\n  return newObj;\n}\nfunction _toConsumableArray(arr) {\n  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _iterableToArray(iter) {\n  if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\nfunction _arrayWithoutHoles(arr) {\n  if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n  for (var i = 0, arr2 = new Array(len); i < len; i++) {\n    arr2[i] = arr[i];\n  }\n  return arr2;\n}\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\nfunction _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = _objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n  return target;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n  return target;\n}\nfunction ownKeys(object, enumerableOnly) {\n  var keys = Object.keys(object);\n  if (Object.getOwnPropertySymbols) {\n    var symbols = Object.getOwnPropertySymbols(object);\n    if (enumerableOnly) symbols = symbols.filter(function (sym) {\n      return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n    });\n    keys.push.apply(keys, symbols);\n  }\n  return keys;\n}\nfunction _objectSpread(target) {\n  for (var i = 1; i < arguments.length; i++) {\n    var source = arguments[i] != null ? arguments[i] : {};\n    if (i % 2) {\n      ownKeys(Object(source), true).forEach(function (key) {\n        _defineProperty(target, key, source[key]);\n      });\n    } else if (Object.getOwnPropertyDescriptors) {\n      Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n    } else {\n      ownKeys(Object(source)).forEach(function (key) {\n        Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n      });\n    }\n  }\n  return target;\n}\nfunction _classCallCheck(instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n}\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  return Constructor;\n}\nfunction _inherits(subClass, superClass) {\n  if (typeof superClass !== \"function\" && superClass !== null) {\n    throw new TypeError(\"Super expression must either be null or a function\");\n  }\n  subClass.prototype = Object.create(superClass && superClass.prototype, {\n    constructor: {\n      value: subClass,\n      writable: true,\n      configurable: true\n    }\n  });\n  if (superClass) _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n  return _setPrototypeOf(o, p);\n}\nfunction _createSuper(Derived) {\n  var hasNativeReflectConstruct = _isNativeReflectConstruct();\n  return function _createSuperInternal() {\n    var Super = _getPrototypeOf(Derived),\n      result;\n    if (hasNativeReflectConstruct) {\n      var NewTarget = _getPrototypeOf(this).constructor;\n      result = Reflect.construct(Super, arguments, NewTarget);\n    } else {\n      result = Super.apply(this, arguments);\n    }\n    return _possibleConstructorReturn(this, result);\n  };\n}\nfunction _possibleConstructorReturn(self, call) {\n  if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n    return call;\n  }\n  return _assertThisInitialized(self);\n}\nfunction _assertThisInitialized(self) {\n  if (self === void 0) {\n    throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n  }\n  return self;\n}\nfunction _isNativeReflectConstruct() {\n  if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n  if (Reflect.construct.sham) return false;\n  if (typeof Proxy === \"function\") return true;\n  try {\n    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\nfunction _getPrototypeOf(o) {\n  _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n    return o.__proto__ || Object.getPrototypeOf(o);\n  };\n  return _getPrototypeOf(o);\n}\nfunction _defineProperty(obj, key, value) {\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}\nvar hooks = ['onChange', 'onOpen', 'onClose', 'onMonthChange', 'onYearChange', 'onReady', 'onValueUpdate', 'onDayCreate'];\nvar hookPropType = _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].func, _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].func)]);\nvar callbacks = ['onCreate', 'onDestroy'];\nvar callbackPropTypes = _propTypes[\"default\"].func;\nvar DateTimePicker = /*#__PURE__*/function (_Component) {\n  _inherits(DateTimePicker, _Component);\n  var _super = _createSuper(DateTimePicker);\n  function DateTimePicker() {\n    var _this;\n    _classCallCheck(this, DateTimePicker);\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    _this = _super.call.apply(_super, [this].concat(args));\n    _defineProperty(_assertThisInitialized(_this), \"createFlatpickrInstance\", function () {\n      var options = _objectSpread({\n        onClose: function onClose() {\n          _this.node.blur && _this.node.blur();\n        }\n      }, _this.props.options); // Add prop hooks to options\n\n      options = mergeHooks(options, _this.props);\n      _this.flatpickr = (0, _flatpickr[\"default\"])(_this.node, options);\n      if (_this.props.hasOwnProperty('value')) {\n        _this.flatpickr.setDate(_this.props.value, false);\n      }\n      var onCreate = _this.props.onCreate;\n      if (onCreate) onCreate(_this.flatpickr);\n    });\n    _defineProperty(_assertThisInitialized(_this), \"destroyFlatpickrInstance\", function () {\n      var onDestroy = _this.props.onDestroy;\n      if (onDestroy) onDestroy(_this.flatpickr);\n      _this.flatpickr.destroy();\n      _this.flatpickr = null;\n    });\n    _defineProperty(_assertThisInitialized(_this), \"handleNodeChange\", function (node) {\n      _this.node = node;\n      if (_this.flatpickr) {\n        _this.destroyFlatpickrInstance();\n        _this.createFlatpickrInstance();\n      }\n    });\n    return _this;\n  }\n  _createClass(DateTimePicker, [{\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var options = this.props.options;\n      var prevOptions = prevProps.options;\n      options = mergeHooks(options, this.props); // Add prev ones too so we can compare against them later\n\n      prevOptions = mergeHooks(prevOptions, prevProps);\n      var optionsKeys = Object.getOwnPropertyNames(options);\n      for (var index = optionsKeys.length - 1; index >= 0; index--) {\n        var key = optionsKeys[index];\n        var value = options[key];\n        if (value !== prevOptions[key]) {\n          // Hook handlers must be set as an array\n          if (hooks.indexOf(key) !== -1 && !Array.isArray(value)) {\n            value = [value];\n          }\n          this.flatpickr.set(key, value);\n        }\n      }\n      if (this.props.hasOwnProperty('value') && !(this.props.value && Array.isArray(this.props.value) && prevProps.value && Array.isArray(prevProps.value) && this.props.value.every(function (v, i) {\n        prevProps[i] === v;\n      })) && this.props.value !== prevProps.value) {\n        this.flatpickr.setDate(this.props.value, false);\n      }\n    }\n  }, {\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.createFlatpickrInstance();\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.destroyFlatpickrInstance();\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      // eslint-disable-next-line no-unused-vars\n      var _this$props = this.props,\n        options = _this$props.options,\n        defaultValue = _this$props.defaultValue,\n        value = _this$props.value,\n        children = _this$props.children,\n        render = _this$props.render,\n        props = _objectWithoutProperties(_this$props, [\"options\", \"defaultValue\", \"value\", \"children\", \"render\"]); // Don't pass hooks and callbacks to dom node\n\n      hooks.forEach(function (hook) {\n        delete props[hook];\n      });\n      callbacks.forEach(function (callback) {\n        delete props[callback];\n      });\n      if (render) return render(_objectSpread(_objectSpread({}, props), {}, {\n        defaultValue: defaultValue,\n        value: value\n      }), this.handleNodeChange);\n      return options.wrap ? /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({}, props, {\n        ref: this.handleNodeChange\n      }), children) : /*#__PURE__*/_react[\"default\"].createElement(\"input\", _extends({}, props, {\n        defaultValue: defaultValue,\n        ref: this.handleNodeChange\n      }));\n    }\n  }]);\n  return DateTimePicker;\n}(_react.Component);\n_defineProperty(DateTimePicker, \"propTypes\", {\n  defaultValue: _propTypes[\"default\"].string,\n  options: _propTypes[\"default\"].object,\n  onChange: hookPropType,\n  onOpen: hookPropType,\n  onClose: hookPropType,\n  onMonthChange: hookPropType,\n  onYearChange: hookPropType,\n  onReady: hookPropType,\n  onValueUpdate: hookPropType,\n  onDayCreate: hookPropType,\n  onCreate: callbackPropTypes,\n  onDestroy: callbackPropTypes,\n  value: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].array, _propTypes[\"default\"].object, _propTypes[\"default\"].number]),\n  children: _propTypes[\"default\"].node,\n  className: _propTypes[\"default\"].string,\n  render: _propTypes[\"default\"].func\n});\n_defineProperty(DateTimePicker, \"defaultProps\", {\n  options: {}\n});\nfunction mergeHooks(inputOptions, props) {\n  var options = _objectSpread({}, inputOptions);\n  hooks.forEach(function (hook) {\n    if (props.hasOwnProperty(hook)) {\n      var _options$hook;\n      if (options[hook] && !Array.isArray(options[hook])) {\n        options[hook] = [options[hook]];\n      } else if (!options[hook]) {\n        options[hook] = [];\n      }\n      var propHook = Array.isArray(props[hook]) ? props[hook] : [props[hook]];\n      (_options$hook = options[hook]).push.apply(_options$hook, _toConsumableArray(propHook));\n    }\n  });\n  return options;\n}\nvar _default = DateTimePicker;\nexports[\"default\"] = _default;\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-flatpickr/build/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-images-uploading/dist/constants.js":
/*!*************************************************************************!*\
  !*** ../react-ui/node_modules/react-images-uploading/dist/constants.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.DEFAULT_DATA_URL_KEY = exports.INIT_MAX_NUMBER = exports.DEFAULT_NULL_INDEX = void 0;\nexports.DEFAULT_NULL_INDEX = -1;\nexports.INIT_MAX_NUMBER = 1000;\nexports.DEFAULT_DATA_URL_KEY = 'dataURL';\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-images-uploading/dist/constants.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-images-uploading/dist/index.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/react-images-uploading/dist/index.js ***!
  \*********************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("{\n\nvar __assign = this && this.__assign || function () {\n  __assign = Object.assign || function (t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n      s = arguments[i];\n      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n    }\n    return t;\n  };\n  return __assign.apply(this, arguments);\n};\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  Object.defineProperty(o, k2, {\n    enumerable: true,\n    get: function () {\n      return m[k];\n    }\n  });\n} : function (o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n  Object.defineProperty(o, \"default\", {\n    enumerable: true,\n    value: v\n  });\n} : function (o, v) {\n  o[\"default\"] = v;\n});\nvar __importStar = this && this.__importStar || function (mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n};\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n  function adopt(value) {\n    return value instanceof P ? value : new P(function (resolve) {\n      resolve(value);\n    });\n  }\n  return new (P || (P = Promise))(function (resolve, reject) {\n    function fulfilled(value) {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n};\nvar __generator = this && this.__generator || function (thisArg, body) {\n  var _ = {\n      label: 0,\n      sent: function () {\n        if (t[0] & 1) throw t[1];\n        return t[1];\n      },\n      trys: [],\n      ops: []\n    },\n    f,\n    y,\n    t,\n    g;\n  return g = {\n    next: verb(0),\n    \"throw\": verb(1),\n    \"return\": verb(2)\n  }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n    return this;\n  }), g;\n  function verb(n) {\n    return function (v) {\n      return step([n, v]);\n    };\n  }\n  function step(op) {\n    if (f) throw new TypeError(\"Generator is already executing.\");\n    while (_) try {\n      if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n      if (y = 0, t) op = [op[0] & 2, t.value];\n      switch (op[0]) {\n        case 0:\n        case 1:\n          t = op;\n          break;\n        case 4:\n          _.label++;\n          return {\n            value: op[1],\n            done: false\n          };\n        case 5:\n          _.label++;\n          y = op[1];\n          op = [0];\n          continue;\n        case 7:\n          op = _.ops.pop();\n          _.trys.pop();\n          continue;\n        default:\n          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n            _ = 0;\n            continue;\n          }\n          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n            _.label = op[1];\n            break;\n          }\n          if (op[0] === 6 && _.label < t[1]) {\n            _.label = t[1];\n            t = op;\n            break;\n          }\n          if (t && _.label < t[2]) {\n            _.label = t[2];\n            _.ops.push(op);\n            break;\n          }\n          if (t[2]) _.ops.pop();\n          _.trys.pop();\n          continue;\n      }\n      op = body.call(thisArg, _);\n    } catch (e) {\n      op = [6, e];\n      y = 0;\n    } finally {\n      f = t = 0;\n    }\n    if (op[0] & 5) throw op[1];\n    return {\n      value: op[0] ? op[1] : void 0,\n      done: true\n    };\n  }\n};\nvar __spreadArrays = this && this.__spreadArrays || function () {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  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];\n  return r;\n};\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar react_1 = __importStar(__webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\"));\nvar utils_1 = __webpack_require__(/*! ./utils */ \"../react-ui/node_modules/react-images-uploading/dist/utils.js\");\nvar validation_1 = __webpack_require__(/*! ./validation */ \"../react-ui/node_modules/react-images-uploading/dist/validation.js\");\nvar constants_1 = __webpack_require__(/*! ./constants */ \"../react-ui/node_modules/react-images-uploading/dist/constants.js\");\nvar ReactImageUploading = function (_a) {\n  var _b = _a.value,\n    value = _b === void 0 ? [] : _b,\n    onChange = _a.onChange,\n    onError = _a.onError,\n    children = _a.children,\n    _c = _a.dataURLKey,\n    dataURLKey = _c === void 0 ? constants_1.DEFAULT_DATA_URL_KEY : _c,\n    _d = _a.multiple,\n    multiple = _d === void 0 ? false : _d,\n    _e = _a.maxNumber,\n    maxNumber = _e === void 0 ? constants_1.INIT_MAX_NUMBER : _e,\n    acceptType = _a.acceptType,\n    maxFileSize = _a.maxFileSize,\n    resolutionWidth = _a.resolutionWidth,\n    resolutionHeight = _a.resolutionHeight,\n    resolutionType = _a.resolutionType,\n    _f = _a.inputProps,\n    inputProps = _f === void 0 ? {} : _f,\n    _g = _a.allowNonImageType,\n    allowNonImageType = _g === void 0 ? false : _g;\n  var inValue = value || [];\n  var inputRef = react_1.useRef(null);\n  var _h = react_1.useState(constants_1.DEFAULT_NULL_INDEX),\n    keyUpdate = _h[0],\n    setKeyUpdate = _h[1];\n  var _j = react_1.useState(null),\n    errors = _j[0],\n    setErrors = _j[1];\n  var _k = react_1.useState(false),\n    isDragging = _k[0],\n    setIsDragging = _k[1];\n  var handleClickInput = react_1.useCallback(function () {\n    return utils_1.openFileDialog(inputRef);\n  }, [inputRef]);\n  var onImageUpload = react_1.useCallback(function () {\n    setKeyUpdate(constants_1.DEFAULT_NULL_INDEX);\n    handleClickInput();\n  }, [handleClickInput]);\n  var onImageRemoveAll = react_1.useCallback(function () {\n    onChange === null || onChange === void 0 ? void 0 : onChange([]);\n  }, [onChange]);\n  var onImageRemove = function (index) {\n    var updatedList = __spreadArrays(inValue);\n    if (Array.isArray(index)) {\n      index.forEach(function (i) {\n        updatedList.splice(i, 1);\n      });\n    } else {\n      updatedList.splice(index, 1);\n    }\n    onChange === null || onChange === void 0 ? void 0 : onChange(updatedList);\n  };\n  var onImageUpdate = function (index) {\n    setKeyUpdate(index);\n    handleClickInput();\n  };\n  var validate = function (fileList) {\n    return __awaiter(void 0, void 0, void 0, function () {\n      var errorsValidation;\n      return __generator(this, function (_a) {\n        switch (_a.label) {\n          case 0:\n            return [4 /*yield*/, validation_1.getErrorValidation({\n              fileList: fileList,\n              maxFileSize: maxFileSize,\n              maxNumber: maxNumber,\n              acceptType: acceptType,\n              keyUpdate: keyUpdate,\n              resolutionType: resolutionType,\n              resolutionWidth: resolutionWidth,\n              resolutionHeight: resolutionHeight,\n              value: inValue,\n              allowNonImageType: allowNonImageType\n            })];\n          case 1:\n            errorsValidation = _a.sent();\n            if (errorsValidation) {\n              setErrors(errorsValidation);\n              onError === null || onError === void 0 ? void 0 : onError(errorsValidation, fileList);\n              return [2 /*return*/, false];\n            }\n            errors && setErrors(null);\n            return [2 /*return*/, true];\n        }\n      });\n    });\n  };\n  var handleChange = function (files) {\n    return __awaiter(void 0, void 0, void 0, function () {\n      var fileList, checkValidate, updatedFileList, updatedIndexes, firstFile, i;\n      return __generator(this, function (_a) {\n        switch (_a.label) {\n          case 0:\n            if (!files) return [2 /*return*/];\n            return [4 /*yield*/, utils_1.getListFiles(files, dataURLKey)];\n          case 1:\n            fileList = _a.sent();\n            if (!fileList.length) return [2 /*return*/];\n            return [4 /*yield*/, validate(fileList)];\n          case 2:\n            checkValidate = _a.sent();\n            if (!checkValidate) return [2 /*return*/];\n            updatedIndexes = [];\n            if (keyUpdate > constants_1.DEFAULT_NULL_INDEX) {\n              firstFile = fileList[0];\n              updatedFileList = __spreadArrays(inValue);\n              updatedFileList[keyUpdate] = firstFile;\n              updatedIndexes.push(keyUpdate);\n            } else if (multiple) {\n              updatedFileList = __spreadArrays(inValue, fileList);\n              for (i = inValue.length; i < updatedFileList.length; i += 1) {\n                updatedIndexes.push(i);\n              }\n            } else {\n              updatedFileList = [fileList[0]];\n              updatedIndexes.push(0);\n            }\n            onChange === null || onChange === void 0 ? void 0 : onChange(updatedFileList, updatedIndexes);\n            return [2 /*return*/];\n        }\n      });\n    });\n  };\n  var onInputChange = function (e) {\n    return __awaiter(void 0, void 0, void 0, function () {\n      return __generator(this, function (_a) {\n        switch (_a.label) {\n          case 0:\n            return [4 /*yield*/, handleChange(e.target.files)];\n          case 1:\n            _a.sent();\n            keyUpdate > constants_1.DEFAULT_NULL_INDEX && setKeyUpdate(constants_1.DEFAULT_NULL_INDEX);\n            if (inputRef.current) inputRef.current.value = '';\n            return [2 /*return*/];\n        }\n      });\n    });\n  };\n  var acceptTypeString = react_1.useMemo(function () {\n    return utils_1.getAcceptTypeString(acceptType, allowNonImageType);\n  }, [acceptType, allowNonImageType]);\n  var handleDrag = function (e) {\n    e.preventDefault();\n    e.stopPropagation();\n  };\n  var handleDragIn = function (e) {\n    e.preventDefault();\n    e.stopPropagation();\n    if (e.dataTransfer.items && e.dataTransfer.items.length > 0) {\n      setIsDragging(true);\n    }\n  };\n  var handleDragOut = function (e) {\n    e.preventDefault();\n    e.stopPropagation();\n    setIsDragging(false);\n  };\n  var handleDrop = function (e) {\n    e.preventDefault();\n    e.stopPropagation();\n    setIsDragging(false);\n    if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n      handleChange(e.dataTransfer.files);\n    }\n  };\n  var handleDragStart = function (e) {\n    e.preventDefault();\n    e.stopPropagation();\n    e.dataTransfer.clearData();\n  };\n  return react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement(\"input\", __assign({\n    type: \"file\",\n    accept: acceptTypeString,\n    ref: inputRef,\n    multiple: multiple && keyUpdate === constants_1.DEFAULT_NULL_INDEX,\n    onChange: onInputChange,\n    style: {\n      display: 'none'\n    }\n  }, inputProps)), children === null || children === void 0 ? void 0 : children({\n    imageList: inValue,\n    onImageUpload: onImageUpload,\n    onImageRemoveAll: onImageRemoveAll,\n    onImageUpdate: onImageUpdate,\n    onImageRemove: onImageRemove,\n    errors: errors,\n    dragProps: {\n      onDrop: handleDrop,\n      onDragEnter: handleDragIn,\n      onDragLeave: handleDragOut,\n      onDragOver: handleDrag,\n      onDragStart: handleDragStart\n    },\n    isDragging: isDragging\n  }));\n};\nexports[\"default\"] = ReactImageUploading;\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-images-uploading/dist/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-images-uploading/dist/utils.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/react-images-uploading/dist/utils.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{\n\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.getListFiles = exports.getImage = exports.getBase64 = exports.getAcceptTypeString = exports.openFileDialog = void 0;\nexports.openFileDialog = function (inputRef) {\n  if (inputRef.current) inputRef.current.click();\n};\nexports.getAcceptTypeString = function (acceptType, allowNonImageType) {\n  if (acceptType === null || acceptType === void 0 ? void 0 : acceptType.length) return acceptType.map(function (item) {\n    return \".\" + item;\n  }).join(', ');\n  if (allowNonImageType) return '';\n  return 'image/*';\n};\nexports.getBase64 = function (file) {\n  var reader = new FileReader();\n  return new Promise(function (resolve) {\n    reader.addEventListener('load', function () {\n      return resolve(String(reader.result));\n    });\n    reader.readAsDataURL(file);\n  });\n};\nexports.getImage = function (file) {\n  var image = new Image();\n  return new Promise(function (resolve) {\n    image.addEventListener('load', function () {\n      return resolve(image);\n    });\n    image.src = URL.createObjectURL(file);\n  });\n};\nexports.getListFiles = function (files, dataURLKey) {\n  var promiseFiles = [];\n  for (var i = 0; i < files.length; i += 1) {\n    promiseFiles.push(exports.getBase64(files[i]));\n  }\n  return Promise.all(promiseFiles).then(function (fileListBase64) {\n    var fileList = fileListBase64.map(function (base64, index) {\n      var _a;\n      return _a = {}, _a[dataURLKey] = base64, _a.file = files[index], _a;\n    });\n    return fileList;\n  });\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-images-uploading/dist/utils.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-images-uploading/dist/validation.js":
/*!**************************************************************************!*\
  !*** ../react-ui/node_modules/react-images-uploading/dist/validation.js ***!
  \**************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("{\n\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n  function adopt(value) {\n    return value instanceof P ? value : new P(function (resolve) {\n      resolve(value);\n    });\n  }\n  return new (P || (P = Promise))(function (resolve, reject) {\n    function fulfilled(value) {\n      try {\n        step(generator.next(value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function rejected(value) {\n      try {\n        step(generator[\"throw\"](value));\n      } catch (e) {\n        reject(e);\n      }\n    }\n    function step(result) {\n      result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n    }\n    step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n};\nvar __generator = this && this.__generator || function (thisArg, body) {\n  var _ = {\n      label: 0,\n      sent: function () {\n        if (t[0] & 1) throw t[1];\n        return t[1];\n      },\n      trys: [],\n      ops: []\n    },\n    f,\n    y,\n    t,\n    g;\n  return g = {\n    next: verb(0),\n    \"throw\": verb(1),\n    \"return\": verb(2)\n  }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n    return this;\n  }), g;\n  function verb(n) {\n    return function (v) {\n      return step([n, v]);\n    };\n  }\n  function step(op) {\n    if (f) throw new TypeError(\"Generator is already executing.\");\n    while (_) try {\n      if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n      if (y = 0, t) op = [op[0] & 2, t.value];\n      switch (op[0]) {\n        case 0:\n        case 1:\n          t = op;\n          break;\n        case 4:\n          _.label++;\n          return {\n            value: op[1],\n            done: false\n          };\n        case 5:\n          _.label++;\n          y = op[1];\n          op = [0];\n          continue;\n        case 7:\n          op = _.ops.pop();\n          _.trys.pop();\n          continue;\n        default:\n          if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n            _ = 0;\n            continue;\n          }\n          if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n            _.label = op[1];\n            break;\n          }\n          if (op[0] === 6 && _.label < t[1]) {\n            _.label = t[1];\n            t = op;\n            break;\n          }\n          if (t && _.label < t[2]) {\n            _.label = t[2];\n            _.ops.push(op);\n            break;\n          }\n          if (t[2]) _.ops.pop();\n          _.trys.pop();\n          continue;\n      }\n      op = body.call(thisArg, _);\n    } catch (e) {\n      op = [6, e];\n      y = 0;\n    } finally {\n      f = t = 0;\n    }\n    if (op[0] & 5) throw op[1];\n    return {\n      value: op[0] ? op[1] : void 0,\n      done: true\n    };\n  }\n};\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nexports.getErrorValidation = exports.isMaxNumberValid = exports.isAcceptTypeValid = exports.isMaxFileSizeValid = exports.isImageValid = exports.isResolutionValid = void 0;\nvar constants_1 = __webpack_require__(/*! ./constants */ \"../react-ui/node_modules/react-images-uploading/dist/constants.js\");\nvar utils_1 = __webpack_require__(/*! ./utils */ \"../react-ui/node_modules/react-images-uploading/dist/utils.js\");\nexports.isResolutionValid = function (image, resolutionType, resolutionWidth, resolutionHeight) {\n  if (resolutionWidth === void 0) {\n    resolutionWidth = 0;\n  }\n  if (resolutionHeight === void 0) {\n    resolutionHeight = 1;\n  }\n  if (!resolutionWidth || !resolutionHeight || !image.width || !image.height) return true;\n  switch (resolutionType) {\n    case 'absolute':\n      {\n        if (image.width === resolutionWidth && image.height === resolutionHeight) return true;\n        break;\n      }\n    case 'ratio':\n      {\n        var ratio = resolutionWidth / resolutionHeight;\n        if (image.width / image.height === ratio) return true;\n        break;\n      }\n    case 'less':\n      {\n        if (image.width <= resolutionWidth && image.height <= resolutionHeight) return true;\n        break;\n      }\n    case 'more':\n      {\n        if (image.width >= resolutionWidth && image.height >= resolutionHeight) return true;\n        break;\n      }\n    default:\n      break;\n  }\n  return false;\n};\nexports.isImageValid = function (fileType) {\n  if (fileType.includes('image')) {\n    return true;\n  }\n  return false;\n};\nexports.isMaxFileSizeValid = function (fileSize, maxFileSize) {\n  return maxFileSize ? fileSize <= maxFileSize : true;\n};\nexports.isAcceptTypeValid = function (acceptType, fileName) {\n  if (acceptType && acceptType.length > 0) {\n    var type_1 = fileName.split('.').pop() || '';\n    if (acceptType.findIndex(function (item) {\n      return item.toLowerCase() === type_1.toLowerCase();\n    }) < 0) return false;\n  }\n  return true;\n};\nexports.isMaxNumberValid = function (totalNumber, maxNumber, keyUpdate) {\n  if (maxNumber !== 0 && !maxNumber) return true;\n  if (keyUpdate === constants_1.DEFAULT_NULL_INDEX) {\n    if (totalNumber <= maxNumber) return true;\n  } else if (totalNumber <= maxNumber + 1) return true;\n  return false;\n};\nexports.getErrorValidation = function (_a) {\n  var fileList = _a.fileList,\n    value = _a.value,\n    maxNumber = _a.maxNumber,\n    keyUpdate = _a.keyUpdate,\n    acceptType = _a.acceptType,\n    maxFileSize = _a.maxFileSize,\n    resolutionType = _a.resolutionType,\n    resolutionWidth = _a.resolutionWidth,\n    resolutionHeight = _a.resolutionHeight,\n    allowNonImageType = _a.allowNonImageType;\n  return __awaiter(void 0, void 0, void 0, function () {\n    var newErrors, i, file, image, checkRes;\n    return __generator(this, function (_b) {\n      switch (_b.label) {\n        case 0:\n          newErrors = {};\n          if (!!exports.isMaxNumberValid(fileList.length + value.length, maxNumber, keyUpdate)) return [3 /*break*/, 1];\n          newErrors.maxNumber = true;\n          return [3 /*break*/, 5];\n        case 1:\n          i = 0;\n          _b.label = 2;\n        case 2:\n          if (!(i < fileList.length)) return [3 /*break*/, 5];\n          file = fileList[i].file;\n          if (!file) return [3 /*break*/, 4];\n          if (!allowNonImageType && !exports.isImageValid(file.type)) {\n            newErrors.acceptType = true;\n            return [3 /*break*/, 5];\n          }\n          if (!exports.isAcceptTypeValid(acceptType, file.name)) {\n            newErrors.acceptType = true;\n            return [3 /*break*/, 5];\n          }\n          if (!exports.isMaxFileSizeValid(file.size, maxFileSize)) {\n            newErrors.maxFileSize = true;\n            return [3 /*break*/, 5];\n          }\n          if (!resolutionType) return [3 /*break*/, 4];\n          return [4 /*yield*/, utils_1.getImage(file)];\n        case 3:\n          image = _b.sent();\n          checkRes = exports.isResolutionValid(image, resolutionType, resolutionWidth, resolutionHeight);\n          if (!checkRes) {\n            newErrors.resolution = true;\n            return [3 /*break*/, 5];\n          }\n          _b.label = 4;\n        case 4:\n          i += 1;\n          return [3 /*break*/, 2];\n        case 5:\n          if (Object.values(newErrors).find(Boolean)) return [2 /*return*/, newErrors];\n          return [2 /*return*/, null];\n      }\n    });\n  });\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-images-uploading/dist/validation.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-is/cjs/react-is.development.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/react-is/cjs/react-is.development.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n  (function () {\n    'use strict';\n\n    // The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n    // nor polyfill, then a plain number is used for performance.\n    var hasSymbol = typeof Symbol === 'function' && Symbol.for;\n    var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\n    var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\n    var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\n    var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\n    var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\n    var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\n    var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n    // (unstable) APIs that have been removed. Can we remove the symbols?\n\n    var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\n    var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\n    var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\n    var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\n    var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\n    var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\n    var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n    var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\n    var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\n    var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\n    var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n    function isValidElementType(type) {\n      return typeof type === 'string' || typeof type === 'function' ||\n      // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n      type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n    }\n    function typeOf(object) {\n      if (typeof object === 'object' && object !== null) {\n        var $$typeof = object.$$typeof;\n        switch ($$typeof) {\n          case REACT_ELEMENT_TYPE:\n            var type = object.type;\n            switch (type) {\n              case REACT_ASYNC_MODE_TYPE:\n              case REACT_CONCURRENT_MODE_TYPE:\n              case REACT_FRAGMENT_TYPE:\n              case REACT_PROFILER_TYPE:\n              case REACT_STRICT_MODE_TYPE:\n              case REACT_SUSPENSE_TYPE:\n                return type;\n              default:\n                var $$typeofType = type && type.$$typeof;\n                switch ($$typeofType) {\n                  case REACT_CONTEXT_TYPE:\n                  case REACT_FORWARD_REF_TYPE:\n                  case REACT_LAZY_TYPE:\n                  case REACT_MEMO_TYPE:\n                  case REACT_PROVIDER_TYPE:\n                    return $$typeofType;\n                  default:\n                    return $$typeof;\n                }\n            }\n          case REACT_PORTAL_TYPE:\n            return $$typeof;\n        }\n      }\n      return undefined;\n    } // AsyncMode is deprecated along with isAsyncMode\n\n    var AsyncMode = REACT_ASYNC_MODE_TYPE;\n    var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\n    var ContextConsumer = REACT_CONTEXT_TYPE;\n    var ContextProvider = REACT_PROVIDER_TYPE;\n    var Element = REACT_ELEMENT_TYPE;\n    var ForwardRef = REACT_FORWARD_REF_TYPE;\n    var Fragment = REACT_FRAGMENT_TYPE;\n    var Lazy = REACT_LAZY_TYPE;\n    var Memo = REACT_MEMO_TYPE;\n    var Portal = REACT_PORTAL_TYPE;\n    var Profiler = REACT_PROFILER_TYPE;\n    var StrictMode = REACT_STRICT_MODE_TYPE;\n    var Suspense = REACT_SUSPENSE_TYPE;\n    var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\n    function isAsyncMode(object) {\n      {\n        if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n          hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n          console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n        }\n      }\n      return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n    }\n    function isConcurrentMode(object) {\n      return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n    }\n    function isContextConsumer(object) {\n      return typeOf(object) === REACT_CONTEXT_TYPE;\n    }\n    function isContextProvider(object) {\n      return typeOf(object) === REACT_PROVIDER_TYPE;\n    }\n    function isElement(object) {\n      return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n    }\n    function isForwardRef(object) {\n      return typeOf(object) === REACT_FORWARD_REF_TYPE;\n    }\n    function isFragment(object) {\n      return typeOf(object) === REACT_FRAGMENT_TYPE;\n    }\n    function isLazy(object) {\n      return typeOf(object) === REACT_LAZY_TYPE;\n    }\n    function isMemo(object) {\n      return typeOf(object) === REACT_MEMO_TYPE;\n    }\n    function isPortal(object) {\n      return typeOf(object) === REACT_PORTAL_TYPE;\n    }\n    function isProfiler(object) {\n      return typeOf(object) === REACT_PROFILER_TYPE;\n    }\n    function isStrictMode(object) {\n      return typeOf(object) === REACT_STRICT_MODE_TYPE;\n    }\n    function isSuspense(object) {\n      return typeOf(object) === REACT_SUSPENSE_TYPE;\n    }\n    exports.AsyncMode = AsyncMode;\n    exports.ConcurrentMode = ConcurrentMode;\n    exports.ContextConsumer = ContextConsumer;\n    exports.ContextProvider = ContextProvider;\n    exports.Element = Element;\n    exports.ForwardRef = ForwardRef;\n    exports.Fragment = Fragment;\n    exports.Lazy = Lazy;\n    exports.Memo = Memo;\n    exports.Portal = Portal;\n    exports.Profiler = Profiler;\n    exports.StrictMode = StrictMode;\n    exports.Suspense = Suspense;\n    exports.isAsyncMode = isAsyncMode;\n    exports.isConcurrentMode = isConcurrentMode;\n    exports.isContextConsumer = isContextConsumer;\n    exports.isContextProvider = isContextProvider;\n    exports.isElement = isElement;\n    exports.isForwardRef = isForwardRef;\n    exports.isFragment = isFragment;\n    exports.isLazy = isLazy;\n    exports.isMemo = isMemo;\n    exports.isPortal = isPortal;\n    exports.isProfiler = isProfiler;\n    exports.isStrictMode = isStrictMode;\n    exports.isSuspense = isSuspense;\n    exports.isValidElementType = isValidElementType;\n    exports.typeOf = typeOf;\n  })();\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-is/cjs/react-is.development.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-is/index.js":
/*!**************************************************!*\
  !*** ../react-ui/node_modules/react-is/index.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nif (false) // removed by dead control flow\n{} else {\n  module.exports = __webpack_require__(/*! ./cjs/react-is.development.js */ \"../react-ui/node_modules/react-is/cjs/react-is.development.js\");\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-is/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-quill-new/dist/quill.snow.css":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/react-quill-new/dist/quill.snow.css ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../assets/node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ \"./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../assets/node_modules/style-loader/dist/runtime/styleDomAPI.js */ \"./node_modules/style-loader/dist/runtime/styleDomAPI.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../assets/node_modules/style-loader/dist/runtime/insertBySelector.js */ \"./node_modules/style-loader/dist/runtime/insertBySelector.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../assets/node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ \"./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../assets/node_modules/style-loader/dist/runtime/insertStyleElement.js */ \"./node_modules/style-loader/dist/runtime/insertStyleElement.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../assets/node_modules/style-loader/dist/runtime/styleTagTransform.js */ \"./node_modules/style-loader/dist/runtime/styleTagTransform.js\");\n/* harmony import */ var _assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_quill_snow_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../assets/node_modules/css-loader/dist/cjs.js!../../../../assets/node_modules/sass-loader/dist/cjs.js!./quill.snow.css */ \"./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/react-quill-new/dist/quill.snow.css\");\n\n      \n      \n      \n      \n      \n      \n      \n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = (_assets_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());\noptions.setAttributes = (_assets_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());\noptions.insert = _assets_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, \"head\");\noptions.domAPI = (_assets_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());\noptions.insertStyleElement = (_assets_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());\n\nvar update = _assets_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_quill_snow_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"], options);\n\n\n\n\n       /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_quill_snow_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"] && _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_quill_snow_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals ? _assets_node_modules_css_loader_dist_cjs_js_assets_node_modules_sass_loader_dist_cjs_js_quill_snow_css__WEBPACK_IMPORTED_MODULE_6__[\"default\"].locals : undefined);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-quill-new/dist/quill.snow.css?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-quill-new/lib/index.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/react-quill-new/lib/index.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   Quill: () => (/* reexport safe */ quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"]),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var lodash_es__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash-es */ \"../react-ui/node_modules/lodash-es/isEqual.js\");\n/* harmony import */ var quill__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! quill */ \"../react-ui/node_modules/quill/quill.js\");\n/*\nReact-Quill\nhttps://github.com/zenoamaro/react-quill\n*/\n\n\n\n\nclass ReactQuill extends react__WEBPACK_IMPORTED_MODULE_0__.Component {\n  constructor(props) {\n    super(props);\n    this.editingAreaRef = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createRef)();\n    this.containerRef = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createRef)();\n    /*\n    Changing one of these props should cause a full re-render and a\n    re-instantiation of the Quill editor.\n    */\n    this.dirtyProps = ['modules', 'formats', 'bounds', 'theme', 'children'];\n    /*\n    Changing one of these props should cause a regular update. These are mostly\n    props that act on the container, rather than the quillized editing area.\n    */\n    this.cleanProps = ['id', 'className', 'style', 'placeholder', 'tabIndex', 'onChange', 'onChangeSelection', 'onFocus', 'onBlur', 'onKeyPress', 'onKeyDown', 'onKeyUp'];\n    this.state = {\n      generation: 0\n    };\n    /*\n    Tracks the internal selection of the Quill editor\n    */\n    this.selection = null;\n    this.onEditorChange = (eventName, rangeOrDelta, oldRangeOrDelta, source) => {\n      if (eventName === 'text-change') {\n        this.onEditorChangeText?.(this.editor.root.innerHTML, rangeOrDelta, source, this.unprivilegedEditor);\n      } else if (eventName === 'selection-change') {\n        this.onEditorChangeSelection?.(rangeOrDelta, source, this.unprivilegedEditor);\n      }\n    };\n    const value = this.isControlled() ? props.value : props.defaultValue;\n    this.value = value ?? '';\n  }\n  validateProps(props) {\n    if (react__WEBPACK_IMPORTED_MODULE_0__.Children.count(props.children) > 1) throw new Error('The Quill editing area can only be composed of a single React element.');\n    if (react__WEBPACK_IMPORTED_MODULE_0__.Children.count(props.children)) {\n      const child = react__WEBPACK_IMPORTED_MODULE_0__.Children.only(props.children);\n      if (child?.type === 'textarea') throw new Error('Quill does not support editing on a <textarea>. Use a <div> instead.');\n    }\n    if (this.lastDeltaChangeSet && props.value === this.lastDeltaChangeSet) throw new Error('You are passing the `delta` object from the `onChange` event back ' + 'as `value`. You most probably want `editor.getContents()` instead. ' + 'See: https://github.com/zenoamaro/react-quill#using-deltas');\n  }\n  shouldComponentUpdate(nextProps, nextState) {\n    this.validateProps(nextProps);\n    // If the editor hasn't been instantiated yet, or the component has been\n    // regenerated, we already know we should update.\n    if (!this.editor || this.state.generation !== nextState.generation) {\n      return true;\n    }\n    // Handle value changes in-place\n    if ('value' in nextProps) {\n      const prevContents = this.getEditorContents();\n      const nextContents = nextProps.value ?? '';\n      // NOTE: Seeing that Quill is missing a way to prevent edits, we have to\n      //       settle for a hybrid between controlled and uncontrolled mode. We\n      //       can't prevent the change, but we'll still override content\n      //       whenever `value` differs from current state.\n      // NOTE: Comparing an HTML string and a Quill Delta will always trigger a\n      //       change, regardless of whether they represent the same document.\n      if (!this.isEqualValue(nextContents, prevContents)) {\n        this.setEditorContents(this.editor, nextContents);\n      }\n    }\n    // Handle read-only changes in-place\n    if (nextProps.readOnly !== this.props.readOnly) {\n      this.setEditorReadOnly(this.editor, nextProps.readOnly);\n    }\n    // Clean and Dirty props require a render\n    return [...this.cleanProps, ...this.dirtyProps].some(prop => {\n      return !(0,lodash_es__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nextProps[prop], this.props[prop]);\n    });\n  }\n  shouldComponentRegenerate(nextProps) {\n    // Whenever a `dirtyProp` changes, the editor needs reinstantiation.\n    return this.dirtyProps.some(prop => {\n      return !(0,lodash_es__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nextProps[prop], this.props[prop]);\n    });\n  }\n  componentDidMount() {\n    this.instantiateEditor();\n    this.setEditorContents(this.editor, this.getEditorContents());\n  }\n  componentWillUnmount() {\n    this.destroyEditor();\n  }\n  componentDidUpdate(prevProps, prevState) {\n    // If we're changing one of the `dirtyProps`, the entire Quill Editor needs\n    // to be re-instantiated. Regenerating the editor will cause the whole tree,\n    // including the container, to be cleaned up and re-rendered from scratch.\n    // Store the contents so they can be restored later.\n    if (this.editor && this.shouldComponentRegenerate(prevProps)) {\n      const delta = this.editor.getContents();\n      const selection = this.editor.getSelection();\n      this.regenerationSnapshot = {\n        delta,\n        selection\n      };\n      this.setState({\n        generation: this.state.generation + 1\n      });\n      this.destroyEditor();\n    }\n    // The component has been regenerated, so it must be re-instantiated, and\n    // its content must be restored to the previous values from the snapshot.\n    if (this.state.generation !== prevState.generation) {\n      const {\n        delta,\n        selection\n      } = this.regenerationSnapshot;\n      delete this.regenerationSnapshot;\n      this.instantiateEditor();\n      const editor = this.editor;\n      editor.setContents(delta);\n      postpone(() => this.setEditorSelection(editor, selection));\n    }\n  }\n  instantiateEditor() {\n    if (this.editor) {\n      this.hookEditor(this.editor);\n    } else {\n      this.editor = this.createEditor(this.getEditingArea(), this.getEditorConfig());\n    }\n  }\n  destroyEditor() {\n    if (!this.editor) return;\n    this.unhookEditor(this.editor);\n    // There is a buggy interaction between Quill and React 18+ strict mode, where\n    // strict mode re-renders this component twice in the span of time that Quill\n    // is mounting. This causes the toolbar to be rendered twice.\n    // We check for and remove the toolbar if it exists, but only if we're not using\n    // a custom external toolbar (which we don't want to remove).\n    const toolbar = this.props.modules?.toolbar;\n    const usingExternalToolbar = typeof toolbar === \"object\" && toolbar && \"container\" in toolbar && typeof toolbar.container === \"string\" || typeof toolbar === \"string\";\n    if (!usingExternalToolbar) {\n      const leftOverToolbar = this.containerRef.current?.querySelector(\".ql-toolbar\");\n      if (leftOverToolbar) {\n        leftOverToolbar.remove();\n      }\n    }\n    delete this.editor;\n  }\n  /*\n  We consider the component to be controlled if `value` is being sent in props.\n  */\n  isControlled() {\n    return 'value' in this.props;\n  }\n  getEditorConfig() {\n    return {\n      bounds: this.props.bounds,\n      formats: this.props.formats,\n      modules: this.props.modules,\n      placeholder: this.props.placeholder,\n      readOnly: this.props.readOnly,\n      tabIndex: this.props.tabIndex,\n      theme: this.props.theme\n    };\n  }\n  getEditor() {\n    if (!this.editor) throw new Error('Accessing non-instantiated editor');\n    return this.editor;\n  }\n  /**\n  Creates an editor on the given element. The editor will be passed the\n  configuration, have its events bound,\n  */\n  createEditor(element, config) {\n    const editor = new quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"](element, config);\n    if (config.tabIndex != null) {\n      this.setEditorTabIndex(editor, config.tabIndex);\n    }\n    this.hookEditor(editor);\n    return editor;\n  }\n  hookEditor(editor) {\n    // Expose the editor on change events via a weaker, unprivileged proxy\n    // object that does not allow accidentally modifying editor state.\n    this.unprivilegedEditor = this.makeUnprivilegedEditor(editor);\n    // Using `editor-change` allows picking up silent updates, like selection\n    // changes on typing.\n    editor.on('editor-change', this.onEditorChange);\n  }\n  unhookEditor(editor) {\n    editor.off('editor-change', this.onEditorChange);\n  }\n  getEditorContents() {\n    return this.value;\n  }\n  getEditorSelection() {\n    return this.selection;\n  }\n  /*\n  True if the value is a Delta instance or a Delta look-alike.\n  */\n  isDelta(value) {\n    return value && value.ops;\n  }\n  /*\n  Special comparison function that knows how to compare Deltas.\n  */\n  isEqualValue(value, nextValue) {\n    if (this.isDelta(value) && this.isDelta(nextValue)) {\n      return (0,lodash_es__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value.ops, nextValue.ops);\n    } else {\n      return (0,lodash_es__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(value, nextValue);\n    }\n  }\n  /*\n  Replace the contents of the editor, but keep the previous selection hanging\n  around so that the cursor won't move.\n  */\n  setEditorContents(editor, value) {\n    this.value = value;\n    const sel = this.getEditorSelection();\n    if (typeof value === 'string') {\n      editor.setContents(editor.clipboard.convert({\n        html: value\n      }));\n    } else {\n      editor.setContents(value);\n    }\n    postpone(() => this.setEditorSelection(editor, sel));\n  }\n  setEditorSelection(editor, range) {\n    this.selection = range;\n    if (range) {\n      // Validate bounds before applying.\n      const length = editor.getLength();\n      range.index = Math.max(0, Math.min(range.index, length - 1));\n      range.length = Math.max(0, Math.min(range.length, length - 1 - range.index));\n      editor.setSelection(range);\n    }\n  }\n  setEditorTabIndex(editor, tabIndex) {\n    if (editor?.scroll?.domNode) {\n      editor.scroll.domNode.tabIndex = tabIndex;\n    }\n  }\n  setEditorReadOnly(editor, value) {\n    if (value) {\n      editor.disable();\n    } else {\n      editor.enable();\n    }\n  }\n  /*\n  Returns a weaker, unprivileged proxy object that only exposes read-only\n  accessors found on the editor instance, without any state-modifying methods.\n  */\n  makeUnprivilegedEditor(editor) {\n    const e = editor;\n    return {\n      getHTML: () => e.root.innerHTML,\n      getSemanticHTML: e.getSemanticHTML.bind(e),\n      getLength: e.getLength.bind(e),\n      getText: e.getText.bind(e),\n      getContents: e.getContents.bind(e),\n      getSelection: e.getSelection.bind(e),\n      getBounds: e.getBounds.bind(e)\n    };\n  }\n  getEditingArea() {\n    const element = this.editingAreaRef.current;\n    if (!element) {\n      throw new Error('Cannot find element for editing area');\n    }\n    if (element.nodeType === 3) {\n      throw new Error('Editing area cannot be a text node');\n    }\n    return element;\n  }\n  /*\n  Renders an editor area, unless it has been provided one to clone.\n  */\n  renderEditingArea() {\n    const {\n      children,\n      preserveWhitespace\n    } = this.props;\n    const {\n      generation\n    } = this.state;\n    const properties = {\n      key: generation,\n      ref: this.editingAreaRef\n    };\n    if (react__WEBPACK_IMPORTED_MODULE_0__.Children.count(children)) {\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.cloneElement(react__WEBPACK_IMPORTED_MODULE_0__.Children.only(children), properties);\n    }\n    return preserveWhitespace ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"pre\", {\n      ...properties\n    }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n      ...properties\n    });\n  }\n  render() {\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(\"div\", {\n      ref: this.containerRef,\n      id: this.props.id,\n      style: this.props.style,\n      key: this.state.generation,\n      className: `quill ${this.props.className ?? ''}`,\n      onKeyPress: this.props.onKeyPress,\n      onKeyDown: this.props.onKeyDown,\n      onKeyUp: this.props.onKeyUp\n    }, this.renderEditingArea());\n  }\n  onEditorChangeText(value, delta, source, editor) {\n    if (!this.editor) return;\n    // We keep storing the same type of value as what the user gives us,\n    // so that value comparisons will be more stable and predictable.\n    const nextContents = this.isDelta(this.value) ? editor.getContents() : editor.getHTML();\n    if (nextContents !== this.getEditorContents()) {\n      // Taint this `delta` object, so we can recognize whether the user\n      // is trying to send it back as `value`, preventing a likely loop.\n      this.lastDeltaChangeSet = delta;\n      this.value = nextContents;\n      this.props.onChange?.(value, delta, source, editor);\n    }\n  }\n  onEditorChangeSelection(nextSelection, source, editor) {\n    if (!this.editor) return;\n    const currentSelection = this.getEditorSelection();\n    const hasGainedFocus = !currentSelection && nextSelection;\n    const hasLostFocus = currentSelection && !nextSelection;\n    if ((0,lodash_es__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nextSelection, currentSelection)) return;\n    this.selection = nextSelection;\n    this.props.onChangeSelection?.(nextSelection, source, editor);\n    if (hasGainedFocus) {\n      this.props.onFocus?.(nextSelection, source, editor);\n    } else if (hasLostFocus) {\n      this.props.onBlur?.(currentSelection, source, editor);\n    }\n  }\n  focus() {\n    if (!this.editor) return;\n    this.editor.focus();\n  }\n  blur() {\n    if (!this.editor) return;\n    this.selection = null;\n    this.editor.blur();\n  }\n}\nReactQuill.displayName = 'React Quill';\n/*\nExport Quill to be able to call `register`\n*/\nReactQuill.Quill = quill__WEBPACK_IMPORTED_MODULE_2__[\"default\"];\nReactQuill.defaultProps = {\n  theme: 'snow',\n  modules: {},\n  readOnly: false\n};\n/*\nSmall helper to execute a function in the next micro-tick.\n*/\nfunction postpone(fn) {\n  Promise.resolve().then(fn);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ReactQuill);\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-quill-new/lib/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-select/async-creatable/dist/react-select-async-creatable.esm.js":
/*!******************************************************************************************************!*\
  !*** ../react-ui/node_modules/react-select/async-creatable/dist/react-select-async-creatable.esm.js ***!
  \******************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AsyncCreatableSelect$1)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _dist_Select_ef7c0426_esm_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../dist/Select-ef7c0426.esm.js */ \"../react-ui/node_modules/react-select/dist/Select-ef7c0426.esm.js\");\n/* harmony import */ var _dist_useAsync_c64f5536_esm_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../dist/useAsync-c64f5536.esm.js */ \"../react-ui/node_modules/react-select/dist/useAsync-c64f5536.esm.js\");\n/* harmony import */ var _dist_useStateManager_7e1e8489_esm_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../dist/useStateManager-7e1e8489.esm.js */ \"../react-ui/node_modules/react-select/dist/useStateManager-7e1e8489.esm.js\");\n/* harmony import */ var _dist_useCreatable_09aaeb9a_esm_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../dist/useCreatable-09aaeb9a.esm.js */ \"../react-ui/node_modules/react-select/dist/useCreatable-09aaeb9a.esm.js\");\n/* harmony import */ var _babel_runtime_helpers_objectSpread2__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/objectSpread2 */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_createSuper__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @babel/runtime/helpers/createSuper */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/createSuper.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! react-dom */ \"../react-ui/node_modules/react-dom/index.js\");\n/* harmony import */ var use_isomorphic_layout_effect__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! use-isomorphic-layout-effect */ \"../react-ui/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar AsyncCreatableSelect = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function (props, ref) {\n  var stateManagerProps = (0,_dist_useAsync_c64f5536_esm_js__WEBPACK_IMPORTED_MODULE_3__.u)(props);\n  var creatableProps = (0,_dist_useStateManager_7e1e8489_esm_js__WEBPACK_IMPORTED_MODULE_4__.u)(stateManagerProps);\n  var selectProps = (0,_dist_useCreatable_09aaeb9a_esm_js__WEBPACK_IMPORTED_MODULE_5__.u)(creatableProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_dist_Select_ef7c0426_esm_js__WEBPACK_IMPORTED_MODULE_2__.S, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: ref\n  }, selectProps));\n});\nvar AsyncCreatableSelect$1 = AsyncCreatableSelect;\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-select/async-creatable/dist/react-select-async-creatable.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-select/async/dist/react-select-async.esm.js":
/*!**********************************************************************************!*\
  !*** ../react-ui/node_modules/react-select/async/dist/react-select-async.esm.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ AsyncSelect$1),\n/* harmony export */   useAsync: () => (/* reexport safe */ _dist_useAsync_c64f5536_esm_js__WEBPACK_IMPORTED_MODULE_4__.u)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _dist_Select_ef7c0426_esm_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../dist/Select-ef7c0426.esm.js */ \"../react-ui/node_modules/react-select/dist/Select-ef7c0426.esm.js\");\n/* harmony import */ var _dist_useStateManager_7e1e8489_esm_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../dist/useStateManager-7e1e8489.esm.js */ \"../react-ui/node_modules/react-select/dist/useStateManager-7e1e8489.esm.js\");\n/* harmony import */ var _dist_useAsync_c64f5536_esm_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../dist/useAsync-c64f5536.esm.js */ \"../react-ui/node_modules/react-select/dist/useAsync-c64f5536.esm.js\");\n/* harmony import */ var _babel_runtime_helpers_objectSpread2__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/objectSpread2 */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_createSuper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @babel/runtime/helpers/createSuper */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/createSuper.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! react-dom */ \"../react-ui/node_modules/react-dom/index.js\");\n/* harmony import */ var use_isomorphic_layout_effect__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! use-isomorphic-layout-effect */ \"../react-ui/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar AsyncSelect = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function (props, ref) {\n  var stateManagedProps = (0,_dist_useAsync_c64f5536_esm_js__WEBPACK_IMPORTED_MODULE_4__.u)(props);\n  var selectProps = (0,_dist_useStateManager_7e1e8489_esm_js__WEBPACK_IMPORTED_MODULE_3__.u)(stateManagedProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_dist_Select_ef7c0426_esm_js__WEBPACK_IMPORTED_MODULE_2__.S, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: ref\n  }, selectProps));\n});\nvar AsyncSelect$1 = AsyncSelect;\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-select/async/dist/react-select-async.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-select/creatable/dist/react-select-creatable.esm.js":
/*!******************************************************************************************!*\
  !*** ../react-ui/node_modules/react-select/creatable/dist/react-select-creatable.esm.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ CreatableSelect$1),\n/* harmony export */   useCreatable: () => (/* reexport safe */ _dist_useCreatable_09aaeb9a_esm_js__WEBPACK_IMPORTED_MODULE_4__.u)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _dist_Select_ef7c0426_esm_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../dist/Select-ef7c0426.esm.js */ \"../react-ui/node_modules/react-select/dist/Select-ef7c0426.esm.js\");\n/* harmony import */ var _dist_useStateManager_7e1e8489_esm_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../dist/useStateManager-7e1e8489.esm.js */ \"../react-ui/node_modules/react-select/dist/useStateManager-7e1e8489.esm.js\");\n/* harmony import */ var _dist_useCreatable_09aaeb9a_esm_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../dist/useCreatable-09aaeb9a.esm.js */ \"../react-ui/node_modules/react-select/dist/useCreatable-09aaeb9a.esm.js\");\n/* harmony import */ var _babel_runtime_helpers_objectSpread2__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/objectSpread2 */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_createSuper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @babel/runtime/helpers/createSuper */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/createSuper.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! react-dom */ \"../react-ui/node_modules/react-dom/index.js\");\n/* harmony import */ var use_isomorphic_layout_effect__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! use-isomorphic-layout-effect */ \"../react-ui/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar CreatableSelect = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)(function (props, ref) {\n  var creatableProps = (0,_dist_useStateManager_7e1e8489_esm_js__WEBPACK_IMPORTED_MODULE_3__.u)(props);\n  var selectProps = (0,_dist_useCreatable_09aaeb9a_esm_js__WEBPACK_IMPORTED_MODULE_4__.u)(creatableProps);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1__.createElement(_dist_Select_ef7c0426_esm_js__WEBPACK_IMPORTED_MODULE_2__.S, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: ref\n  }, selectProps));\n});\nvar CreatableSelect$1 = CreatableSelect;\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-select/creatable/dist/react-select-creatable.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-select/dist/Select-ef7c0426.esm.js":
/*!*************************************************************************!*\
  !*** ../react-ui/node_modules/react-select/dist/Select-ef7c0426.esm.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   S: () => (/* binding */ Select),\n/* harmony export */   a: () => (/* binding */ defaultProps),\n/* harmony export */   b: () => (/* binding */ getOptionLabel$1),\n/* harmony export */   c: () => (/* binding */ createFilter),\n/* harmony export */   d: () => (/* binding */ defaultTheme),\n/* harmony export */   g: () => (/* binding */ getOptionValue$1),\n/* harmony export */   m: () => (/* binding */ mergeStyles)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/classCallCheck */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createClass */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inherits */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/createSuper */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/createSuper.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./index-641ee5b8.esm.js */ \"../react-ui/node_modules/react-select/dist/index-641ee5b8.esm.js\");\n/* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @emotion/react */ \"../react-ui/node_modules/@emotion/react/dist/emotion-react.browser.development.esm.js\");\n/* harmony import */ var memoize_one__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! memoize-one */ \"../react-ui/node_modules/memoize-one/dist/memoize-one.esm.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$2() {\n  return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n}\n\n// Assistive text to describe visual elements. Hidden for sighted users.\nvar _ref =  false ? 0 : {\n  name: \"1f43avz-a11yText-A11yText\",\n  styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;label:A11yText;\",\n  map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPSSIsImZpbGUiOiJBMTF5VGV4dC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IEpTWCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLy8gQXNzaXN0aXZlIHRleHQgdG8gZGVzY3JpYmUgdmlzdWFsIGVsZW1lbnRzLiBIaWRkZW4gZm9yIHNpZ2h0ZWQgdXNlcnMuXG5jb25zdCBBMTF5VGV4dCA9IChwcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ10pID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAnYTExeVRleHQnLFxuICAgICAgekluZGV4OiA5OTk5LFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogJ3JlY3QoMXB4LCAxcHgsIDFweCwgMXB4KScsXG4gICAgICBoZWlnaHQ6IDEsXG4gICAgICB3aWR0aDogMSxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQTExeVRleHQ7XG4iXX0= */\",\n  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$2\n};\nvar A11yText = function A11yText(props) {\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(\"span\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    css: _ref\n  }, props));\n};\nvar A11yText$1 = A11yText;\nvar defaultAriaLiveMessages = {\n  guidance: function guidance(props) {\n    var isSearchable = props.isSearchable,\n      isMulti = props.isMulti,\n      tabSelectsValue = props.tabSelectsValue,\n      context = props.context,\n      isInitialFocus = props.isInitialFocus;\n    switch (context) {\n      case 'menu':\n        return \"Use Up and Down to choose options, press Enter to select the currently focused option, press Escape to exit the menu\".concat(tabSelectsValue ? ', press Tab to select the option and exit the menu' : '', \".\");\n      case 'input':\n        return isInitialFocus ? \"\".concat(props['aria-label'] || 'Select', \" is focused \").concat(isSearchable ? ',type to refine list' : '', \", press Down to open the menu, \").concat(isMulti ? ' press left to focus selected values' : '') : '';\n      case 'value':\n        return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n      default:\n        return '';\n    }\n  },\n  onChange: function onChange(props) {\n    var action = props.action,\n      _props$label = props.label,\n      label = _props$label === void 0 ? '' : _props$label,\n      labels = props.labels,\n      isDisabled = props.isDisabled;\n    switch (action) {\n      case 'deselect-option':\n      case 'pop-value':\n      case 'remove-value':\n        return \"option \".concat(label, \", deselected.\");\n      case 'clear':\n        return 'All selected options have been cleared.';\n      case 'initial-input-focus':\n        return \"option\".concat(labels.length > 1 ? 's' : '', \" \").concat(labels.join(','), \", selected.\");\n      case 'select-option':\n        return isDisabled ? \"option \".concat(label, \" is disabled. Select another option.\") : \"option \".concat(label, \", selected.\");\n      default:\n        return '';\n    }\n  },\n  onFocus: function onFocus(props) {\n    var context = props.context,\n      focused = props.focused,\n      options = props.options,\n      _props$label2 = props.label,\n      label = _props$label2 === void 0 ? '' : _props$label2,\n      selectValue = props.selectValue,\n      isDisabled = props.isDisabled,\n      isSelected = props.isSelected,\n      isAppleDevice = props.isAppleDevice;\n    var getArrayIndex = function getArrayIndex(arr, item) {\n      return arr && arr.length ? \"\".concat(arr.indexOf(item) + 1, \" of \").concat(arr.length) : '';\n    };\n    if (context === 'value' && selectValue) {\n      return \"value \".concat(label, \" focused, \").concat(getArrayIndex(selectValue, focused), \".\");\n    }\n    if (context === 'menu' && isAppleDevice) {\n      var disabled = isDisabled ? ' disabled' : '';\n      var status = \"\".concat(isSelected ? ' selected' : '').concat(disabled);\n      return \"\".concat(label).concat(status, \", \").concat(getArrayIndex(options, focused), \".\");\n    }\n    return '';\n  },\n  onFilter: function onFilter(props) {\n    var inputValue = props.inputValue,\n      resultsMessage = props.resultsMessage;\n    return \"\".concat(resultsMessage).concat(inputValue ? ' for search term ' + inputValue : '', \".\");\n  }\n};\nvar LiveRegion = function LiveRegion(props) {\n  var ariaSelection = props.ariaSelection,\n    focusedOption = props.focusedOption,\n    focusedValue = props.focusedValue,\n    focusableOptions = props.focusableOptions,\n    isFocused = props.isFocused,\n    selectValue = props.selectValue,\n    selectProps = props.selectProps,\n    id = props.id,\n    isAppleDevice = props.isAppleDevice;\n  var ariaLiveMessages = selectProps.ariaLiveMessages,\n    getOptionLabel = selectProps.getOptionLabel,\n    inputValue = selectProps.inputValue,\n    isMulti = selectProps.isMulti,\n    isOptionDisabled = selectProps.isOptionDisabled,\n    isSearchable = selectProps.isSearchable,\n    menuIsOpen = selectProps.menuIsOpen,\n    options = selectProps.options,\n    screenReaderStatus = selectProps.screenReaderStatus,\n    tabSelectsValue = selectProps.tabSelectsValue,\n    isLoading = selectProps.isLoading;\n  var ariaLabel = selectProps['aria-label'];\n  var ariaLive = selectProps['aria-live'];\n\n  // Update aria live message configuration when prop changes\n  var messages = (0,react__WEBPACK_IMPORTED_MODULE_7__.useMemo)(function () {\n    return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, defaultAriaLiveMessages), ariaLiveMessages || {});\n  }, [ariaLiveMessages]);\n\n  // Update aria live selected option when prop changes\n  var ariaSelected = (0,react__WEBPACK_IMPORTED_MODULE_7__.useMemo)(function () {\n    var message = '';\n    if (ariaSelection && messages.onChange) {\n      var option = ariaSelection.option,\n        selectedOptions = ariaSelection.options,\n        removedValue = ariaSelection.removedValue,\n        removedValues = ariaSelection.removedValues,\n        value = ariaSelection.value;\n      // select-option when !isMulti does not return option so we assume selected option is value\n      var asOption = function asOption(val) {\n        return !Array.isArray(val) ? val : null;\n      };\n\n      // If there is just one item from the action then get its label\n      var selected = removedValue || option || asOption(value);\n      var label = selected ? getOptionLabel(selected) : '';\n\n      // If there are multiple items from the action then return an array of labels\n      var multiSelected = selectedOptions || removedValues || undefined;\n      var labels = multiSelected ? multiSelected.map(getOptionLabel) : [];\n      var onChangeProps = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n        // multiSelected items are usually items that have already been selected\n        // or set by the user as a default value so we assume they are not disabled\n        isDisabled: selected && isOptionDisabled(selected, selectValue),\n        label: label,\n        labels: labels\n      }, ariaSelection);\n      message = messages.onChange(onChangeProps);\n    }\n    return message;\n  }, [ariaSelection, messages, isOptionDisabled, selectValue, getOptionLabel]);\n  var ariaFocused = (0,react__WEBPACK_IMPORTED_MODULE_7__.useMemo)(function () {\n    var focusMsg = '';\n    var focused = focusedOption || focusedValue;\n    var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));\n    if (focused && messages.onFocus) {\n      var onFocusProps = {\n        focused: focused,\n        label: getOptionLabel(focused),\n        isDisabled: isOptionDisabled(focused, selectValue),\n        isSelected: isSelected,\n        options: focusableOptions,\n        context: focused === focusedOption ? 'menu' : 'value',\n        selectValue: selectValue,\n        isAppleDevice: isAppleDevice\n      };\n      focusMsg = messages.onFocus(onFocusProps);\n    }\n    return focusMsg;\n  }, [focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, focusableOptions, selectValue, isAppleDevice]);\n  var ariaResults = (0,react__WEBPACK_IMPORTED_MODULE_7__.useMemo)(function () {\n    var resultsMsg = '';\n    if (menuIsOpen && options.length && !isLoading && messages.onFilter) {\n      var resultsMessage = screenReaderStatus({\n        count: focusableOptions.length\n      });\n      resultsMsg = messages.onFilter({\n        inputValue: inputValue,\n        resultsMessage: resultsMessage\n      });\n    }\n    return resultsMsg;\n  }, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus, isLoading]);\n  var isInitialFocus = (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus';\n  var ariaGuidance = (0,react__WEBPACK_IMPORTED_MODULE_7__.useMemo)(function () {\n    var guidanceMsg = '';\n    if (messages.guidance) {\n      var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';\n      guidanceMsg = messages.guidance({\n        'aria-label': ariaLabel,\n        context: context,\n        isDisabled: focusedOption && isOptionDisabled(focusedOption, selectValue),\n        isMulti: isMulti,\n        isSearchable: isSearchable,\n        tabSelectsValue: tabSelectsValue,\n        isInitialFocus: isInitialFocus\n      });\n    }\n    return guidanceMsg;\n  }, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, selectValue, tabSelectsValue, isInitialFocus]);\n  var ScreenReaderText = (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(react__WEBPACK_IMPORTED_MODULE_7__.Fragment, null, (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(\"span\", {\n    id: \"aria-selection\"\n  }, ariaSelected), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(\"span\", {\n    id: \"aria-focused\"\n  }, ariaFocused), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(\"span\", {\n    id: \"aria-results\"\n  }, ariaResults), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(\"span\", {\n    id: \"aria-guidance\"\n  }, ariaGuidance));\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(react__WEBPACK_IMPORTED_MODULE_7__.Fragment, null, (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(A11yText$1, {\n    id: id\n  }, isInitialFocus && ScreenReaderText), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(A11yText$1, {\n    \"aria-live\": ariaLive,\n    \"aria-atomic\": \"false\",\n    \"aria-relevant\": \"additions text\",\n    role: \"log\"\n  }, isFocused && !isInitialFocus && ScreenReaderText));\n};\nvar LiveRegion$1 = LiveRegion;\nvar diacritics = [{\n  base: 'A',\n  letters: \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\"\n}, {\n  base: 'AA',\n  letters: \"\\uA732\"\n}, {\n  base: 'AE',\n  letters: \"\\xC6\\u01FC\\u01E2\"\n}, {\n  base: 'AO',\n  letters: \"\\uA734\"\n}, {\n  base: 'AU',\n  letters: \"\\uA736\"\n}, {\n  base: 'AV',\n  letters: \"\\uA738\\uA73A\"\n}, {\n  base: 'AY',\n  letters: \"\\uA73C\"\n}, {\n  base: 'B',\n  letters: \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\"\n}, {\n  base: 'C',\n  letters: \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\"\n}, {\n  base: 'D',\n  letters: \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\"\n}, {\n  base: 'DZ',\n  letters: \"\\u01F1\\u01C4\"\n}, {\n  base: 'Dz',\n  letters: \"\\u01F2\\u01C5\"\n}, {\n  base: 'E',\n  letters: \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\"\n}, {\n  base: 'F',\n  letters: \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\"\n}, {\n  base: 'G',\n  letters: \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\"\n}, {\n  base: 'H',\n  letters: \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\"\n}, {\n  base: 'I',\n  letters: \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\"\n}, {\n  base: 'J',\n  letters: \"J\\u24BF\\uFF2A\\u0134\\u0248\"\n}, {\n  base: 'K',\n  letters: \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\"\n}, {\n  base: 'L',\n  letters: \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\"\n}, {\n  base: 'LJ',\n  letters: \"\\u01C7\"\n}, {\n  base: 'Lj',\n  letters: \"\\u01C8\"\n}, {\n  base: 'M',\n  letters: \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\"\n}, {\n  base: 'N',\n  letters: \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\"\n}, {\n  base: 'NJ',\n  letters: \"\\u01CA\"\n}, {\n  base: 'Nj',\n  letters: \"\\u01CB\"\n}, {\n  base: 'O',\n  letters: \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\"\n}, {\n  base: 'OI',\n  letters: \"\\u01A2\"\n}, {\n  base: 'OO',\n  letters: \"\\uA74E\"\n}, {\n  base: 'OU',\n  letters: \"\\u0222\"\n}, {\n  base: 'P',\n  letters: \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\"\n}, {\n  base: 'Q',\n  letters: \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\"\n}, {\n  base: 'R',\n  letters: \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\"\n}, {\n  base: 'S',\n  letters: \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\"\n}, {\n  base: 'T',\n  letters: \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\"\n}, {\n  base: 'TZ',\n  letters: \"\\uA728\"\n}, {\n  base: 'U',\n  letters: \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\"\n}, {\n  base: 'V',\n  letters: \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\"\n}, {\n  base: 'VY',\n  letters: \"\\uA760\"\n}, {\n  base: 'W',\n  letters: \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\"\n}, {\n  base: 'X',\n  letters: \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\"\n}, {\n  base: 'Y',\n  letters: \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\"\n}, {\n  base: 'Z',\n  letters: \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\"\n}, {\n  base: 'a',\n  letters: \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\"\n}, {\n  base: 'aa',\n  letters: \"\\uA733\"\n}, {\n  base: 'ae',\n  letters: \"\\xE6\\u01FD\\u01E3\"\n}, {\n  base: 'ao',\n  letters: \"\\uA735\"\n}, {\n  base: 'au',\n  letters: \"\\uA737\"\n}, {\n  base: 'av',\n  letters: \"\\uA739\\uA73B\"\n}, {\n  base: 'ay',\n  letters: \"\\uA73D\"\n}, {\n  base: 'b',\n  letters: \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\"\n}, {\n  base: 'c',\n  letters: \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\"\n}, {\n  base: 'd',\n  letters: \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\"\n}, {\n  base: 'dz',\n  letters: \"\\u01F3\\u01C6\"\n}, {\n  base: 'e',\n  letters: \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\"\n}, {\n  base: 'f',\n  letters: \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\"\n}, {\n  base: 'g',\n  letters: \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\"\n}, {\n  base: 'h',\n  letters: \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\"\n}, {\n  base: 'hv',\n  letters: \"\\u0195\"\n}, {\n  base: 'i',\n  letters: \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\"\n}, {\n  base: 'j',\n  letters: \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\"\n}, {\n  base: 'k',\n  letters: \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\"\n}, {\n  base: 'l',\n  letters: \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\"\n}, {\n  base: 'lj',\n  letters: \"\\u01C9\"\n}, {\n  base: 'm',\n  letters: \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\"\n}, {\n  base: 'n',\n  letters: \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\"\n}, {\n  base: 'nj',\n  letters: \"\\u01CC\"\n}, {\n  base: 'o',\n  letters: \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\"\n}, {\n  base: 'oi',\n  letters: \"\\u01A3\"\n}, {\n  base: 'ou',\n  letters: \"\\u0223\"\n}, {\n  base: 'oo',\n  letters: \"\\uA74F\"\n}, {\n  base: 'p',\n  letters: \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\"\n}, {\n  base: 'q',\n  letters: \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\"\n}, {\n  base: 'r',\n  letters: \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\"\n}, {\n  base: 's',\n  letters: \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\"\n}, {\n  base: 't',\n  letters: \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\"\n}, {\n  base: 'tz',\n  letters: \"\\uA729\"\n}, {\n  base: 'u',\n  letters: \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\"\n}, {\n  base: 'v',\n  letters: \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\"\n}, {\n  base: 'vy',\n  letters: \"\\uA761\"\n}, {\n  base: 'w',\n  letters: \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\"\n}, {\n  base: 'x',\n  letters: \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\"\n}, {\n  base: 'y',\n  letters: \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\"\n}, {\n  base: 'z',\n  letters: \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\"\n}];\nvar anyDiacritic = new RegExp('[' + diacritics.map(function (d) {\n  return d.letters;\n}).join('') + ']', 'g');\nvar diacriticToBase = {};\nfor (var i = 0; i < diacritics.length; i++) {\n  var diacritic = diacritics[i];\n  for (var j = 0; j < diacritic.letters.length; j++) {\n    diacriticToBase[diacritic.letters[j]] = diacritic.base;\n  }\n}\nvar stripDiacritics = function stripDiacritics(str) {\n  return str.replace(anyDiacritic, function (match) {\n    return diacriticToBase[match];\n  });\n};\nvar memoizedStripDiacriticsForInput = (0,memoize_one__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(stripDiacritics);\nvar trimString = function trimString(str) {\n  return str.replace(/^\\s+|\\s+$/g, '');\n};\nvar defaultStringify = function defaultStringify(option) {\n  return \"\".concat(option.label, \" \").concat(option.value);\n};\nvar createFilter = function createFilter(config) {\n  return function (option, rawInput) {\n    // eslint-disable-next-line no-underscore-dangle\n    if (option.data.__isNew__) return true;\n    var _ignoreCase$ignoreAcc = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n        ignoreCase: true,\n        ignoreAccents: true,\n        stringify: defaultStringify,\n        trim: true,\n        matchFrom: 'any'\n      }, config),\n      ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n      ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n      stringify = _ignoreCase$ignoreAcc.stringify,\n      trim = _ignoreCase$ignoreAcc.trim,\n      matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n    var input = trim ? trimString(rawInput) : rawInput;\n    var candidate = trim ? trimString(stringify(option)) : stringify(option);\n    if (ignoreCase) {\n      input = input.toLowerCase();\n      candidate = candidate.toLowerCase();\n    }\n    if (ignoreAccents) {\n      input = memoizedStripDiacriticsForInput(input);\n      candidate = stripDiacritics(candidate);\n    }\n    return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n  };\n};\nvar _excluded = [\"innerRef\"];\nfunction DummyInput(_ref) {\n  var innerRef = _ref.innerRef,\n    props = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(_ref, _excluded);\n  // Remove animation props not meant for HTML elements\n  var filteredProps = (0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.r)(props, 'onExited', 'in', 'enter', 'exit', 'appear');\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(\"input\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    ref: innerRef\n  }, filteredProps, {\n    css: /*#__PURE__*/(0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.css)({\n      label: 'dummyInput',\n      // get rid of any default styles\n      background: 0,\n      border: 0,\n      // important! this hides the flashing cursor\n      caretColor: 'transparent',\n      fontSize: 'inherit',\n      gridArea: '1 / 1 / 2 / 3',\n      outline: 0,\n      padding: 0,\n      // important! without `width` browsers won't allow focus\n      width: 1,\n      // remove cursor on desktop\n      color: 'transparent',\n      // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n      left: -100,\n      opacity: 0,\n      position: 'relative',\n      transform: 'scale(.01)'\n    },  false ? 0 : \";label:DummyInput;\",  false ? 0 : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCTSIsImZpbGUiOiJEdW1teUlucHV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgSlNYLCBSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgeyByZW1vdmVQcm9wcyB9IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRHVtbXlJbnB1dCh7XG4gIGlubmVyUmVmLFxuICAuLi5wcm9wc1xufTogSlNYLkludHJpbnNpY0VsZW1lbnRzWydpbnB1dCddICYge1xuICByZWFkb25seSBpbm5lclJlZjogUmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xufSkge1xuICAvLyBSZW1vdmUgYW5pbWF0aW9uIHByb3BzIG5vdCBtZWFudCBmb3IgSFRNTCBlbGVtZW50c1xuICBjb25zdCBmaWx0ZXJlZFByb3BzID0gcmVtb3ZlUHJvcHMoXG4gICAgcHJvcHMsXG4gICAgJ29uRXhpdGVkJyxcbiAgICAnaW4nLFxuICAgICdlbnRlcicsXG4gICAgJ2V4aXQnLFxuICAgICdhcHBlYXInXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8aW5wdXRcbiAgICAgIHJlZj17aW5uZXJSZWZ9XG4gICAgICB7Li4uZmlsdGVyZWRQcm9wc31cbiAgICAgIGNzcz17e1xuICAgICAgICBsYWJlbDogJ2R1bW15SW5wdXQnLFxuICAgICAgICAvLyBnZXQgcmlkIG9mIGFueSBkZWZhdWx0IHN0eWxlc1xuICAgICAgICBiYWNrZ3JvdW5kOiAwLFxuICAgICAgICBib3JkZXI6IDAsXG4gICAgICAgIC8vIGltcG9ydGFudCEgdGhpcyBoaWRlcyB0aGUgZmxhc2hpbmcgY3Vyc29yXG4gICAgICAgIGNhcmV0Q29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgIGZvbnRTaXplOiAnaW5oZXJpdCcsXG4gICAgICAgIGdyaWRBcmVhOiAnMSAvIDEgLyAyIC8gMycsXG4gICAgICAgIG91dGxpbmU6IDAsXG4gICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgIC8vIGltcG9ydGFudCEgd2l0aG91dCBgd2lkdGhgIGJyb3dzZXJzIHdvbid0IGFsbG93IGZvY3VzXG4gICAgICAgIHdpZHRoOiAxLFxuXG4gICAgICAgIC8vIHJlbW92ZSBjdXJzb3Igb24gZGVza3RvcFxuICAgICAgICBjb2xvcjogJ3RyYW5zcGFyZW50JyxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIG1vYmlsZSB3aGlsc3QgbWFpbnRhaW5pbmcgXCJzY3JvbGwgaW50byB2aWV3XCIgYmVoYXZpb3VyXG4gICAgICAgIGxlZnQ6IC0xMDAsXG4gICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZSguMDEpJyxcbiAgICAgIH19XG4gICAgLz5cbiAgKTtcbn1cbiJdfQ== */\")\n  }));\n}\nvar cancelScroll = function cancelScroll(event) {\n  if (event.cancelable) event.preventDefault();\n  event.stopPropagation();\n};\nfunction useScrollCapture(_ref) {\n  var isEnabled = _ref.isEnabled,\n    onBottomArrive = _ref.onBottomArrive,\n    onBottomLeave = _ref.onBottomLeave,\n    onTopArrive = _ref.onTopArrive,\n    onTopLeave = _ref.onTopLeave;\n  var isBottom = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)(false);\n  var isTop = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)(false);\n  var touchStart = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)(0);\n  var scrollTarget = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)(null);\n  var handleEventDelta = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (event, delta) {\n    if (scrollTarget.current === null) return;\n    var _scrollTarget$current = scrollTarget.current,\n      scrollTop = _scrollTarget$current.scrollTop,\n      scrollHeight = _scrollTarget$current.scrollHeight,\n      clientHeight = _scrollTarget$current.clientHeight;\n    var target = scrollTarget.current;\n    var isDeltaPositive = delta > 0;\n    var availableScroll = scrollHeight - clientHeight - scrollTop;\n    var shouldCancelScroll = false;\n\n    // reset bottom/top flags\n    if (availableScroll > delta && isBottom.current) {\n      if (onBottomLeave) onBottomLeave(event);\n      isBottom.current = false;\n    }\n    if (isDeltaPositive && isTop.current) {\n      if (onTopLeave) onTopLeave(event);\n      isTop.current = false;\n    }\n\n    // bottom limit\n    if (isDeltaPositive && delta > availableScroll) {\n      if (onBottomArrive && !isBottom.current) {\n        onBottomArrive(event);\n      }\n      target.scrollTop = scrollHeight;\n      shouldCancelScroll = true;\n      isBottom.current = true;\n\n      // top limit\n    } else if (!isDeltaPositive && -delta > scrollTop) {\n      if (onTopArrive && !isTop.current) {\n        onTopArrive(event);\n      }\n      target.scrollTop = 0;\n      shouldCancelScroll = true;\n      isTop.current = true;\n    }\n\n    // cancel scroll\n    if (shouldCancelScroll) {\n      cancelScroll(event);\n    }\n  }, [onBottomArrive, onBottomLeave, onTopArrive, onTopLeave]);\n  var onWheel = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (event) {\n    handleEventDelta(event, event.deltaY);\n  }, [handleEventDelta]);\n  var onTouchStart = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (event) {\n    // set touch start so we can calculate touchmove delta\n    touchStart.current = event.changedTouches[0].clientY;\n  }, []);\n  var onTouchMove = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (event) {\n    var deltaY = touchStart.current - event.changedTouches[0].clientY;\n    handleEventDelta(event, deltaY);\n  }, [handleEventDelta]);\n  var startListening = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (el) {\n    // bail early if no element is available to attach to\n    if (!el) return;\n    var notPassive = _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.s ? {\n      passive: false\n    } : false;\n    el.addEventListener('wheel', onWheel, notPassive);\n    el.addEventListener('touchstart', onTouchStart, notPassive);\n    el.addEventListener('touchmove', onTouchMove, notPassive);\n  }, [onTouchMove, onTouchStart, onWheel]);\n  var stopListening = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (el) {\n    // bail early if no element is available to detach from\n    if (!el) return;\n    el.removeEventListener('wheel', onWheel, false);\n    el.removeEventListener('touchstart', onTouchStart, false);\n    el.removeEventListener('touchmove', onTouchMove, false);\n  }, [onTouchMove, onTouchStart, onWheel]);\n  (0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {\n    if (!isEnabled) return;\n    var element = scrollTarget.current;\n    startListening(element);\n    return function () {\n      stopListening(element);\n    };\n  }, [isEnabled, startListening, stopListening]);\n  return function (element) {\n    scrollTarget.current = element;\n  };\n}\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n  boxSizing: 'border-box',\n  // account for possible declaration `width: 100%;` on body\n  overflow: 'hidden',\n  position: 'relative',\n  height: '100%'\n};\nfunction preventTouchMove(e) {\n  if (e.cancelable) e.preventDefault();\n}\nfunction allowTouchMove(e) {\n  e.stopPropagation();\n}\nfunction preventInertiaScroll() {\n  var top = this.scrollTop;\n  var totalScroll = this.scrollHeight;\n  var currentScroll = top + this.offsetHeight;\n  if (top === 0) {\n    this.scrollTop = 1;\n  } else if (currentScroll === totalScroll) {\n    this.scrollTop = top - 1;\n  }\n}\n\n// `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\nfunction isTouchDevice() {\n  return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar activeScrollLocks = 0;\nvar listenerOptions = {\n  capture: false,\n  passive: false\n};\nfunction useScrollLock(_ref) {\n  var isEnabled = _ref.isEnabled,\n    _ref$accountForScroll = _ref.accountForScrollbars,\n    accountForScrollbars = _ref$accountForScroll === void 0 ? true : _ref$accountForScroll;\n  var originalStyles = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)({});\n  var scrollTarget = (0,react__WEBPACK_IMPORTED_MODULE_7__.useRef)(null);\n  var addScrollLock = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (touchScrollTarget) {\n    if (!canUseDOM) return;\n    var target = document.body;\n    var targetStyle = target && target.style;\n    if (accountForScrollbars) {\n      // store any styles already applied to the body\n      STYLE_KEYS.forEach(function (key) {\n        var val = targetStyle && targetStyle[key];\n        originalStyles.current[key] = val;\n      });\n    }\n\n    // apply the lock styles and padding if this is the first scroll lock\n    if (accountForScrollbars && activeScrollLocks < 1) {\n      var currentPadding = parseInt(originalStyles.current.paddingRight, 10) || 0;\n      var clientWidth = document.body ? document.body.clientWidth : 0;\n      var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n      Object.keys(LOCK_STYLES).forEach(function (key) {\n        var val = LOCK_STYLES[key];\n        if (targetStyle) {\n          targetStyle[key] = val;\n        }\n      });\n      if (targetStyle) {\n        targetStyle.paddingRight = \"\".concat(adjustedPadding, \"px\");\n      }\n    }\n\n    // account for touch devices\n    if (target && isTouchDevice()) {\n      // Mobile Safari ignores { overflow: hidden } declaration on the body.\n      target.addEventListener('touchmove', preventTouchMove, listenerOptions);\n\n      // Allow scroll on provided target\n      if (touchScrollTarget) {\n        touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, listenerOptions);\n        touchScrollTarget.addEventListener('touchmove', allowTouchMove, listenerOptions);\n      }\n    }\n\n    // increment active scroll locks\n    activeScrollLocks += 1;\n  }, [accountForScrollbars]);\n  var removeScrollLock = (0,react__WEBPACK_IMPORTED_MODULE_7__.useCallback)(function (touchScrollTarget) {\n    if (!canUseDOM) return;\n    var target = document.body;\n    var targetStyle = target && target.style;\n\n    // safely decrement active scroll locks\n    activeScrollLocks = Math.max(activeScrollLocks - 1, 0);\n\n    // reapply original body styles, if any\n    if (accountForScrollbars && activeScrollLocks < 1) {\n      STYLE_KEYS.forEach(function (key) {\n        var val = originalStyles.current[key];\n        if (targetStyle) {\n          targetStyle[key] = val;\n        }\n      });\n    }\n\n    // remove touch listeners\n    if (target && isTouchDevice()) {\n      target.removeEventListener('touchmove', preventTouchMove, listenerOptions);\n      if (touchScrollTarget) {\n        touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, listenerOptions);\n        touchScrollTarget.removeEventListener('touchmove', allowTouchMove, listenerOptions);\n      }\n    }\n  }, [accountForScrollbars]);\n  (0,react__WEBPACK_IMPORTED_MODULE_7__.useEffect)(function () {\n    if (!isEnabled) return;\n    var element = scrollTarget.current;\n    addScrollLock(element);\n    return function () {\n      removeScrollLock(element);\n    };\n  }, [isEnabled, addScrollLock, removeScrollLock]);\n  return function (element) {\n    scrollTarget.current = element;\n  };\n}\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$1() {\n  return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n}\nvar blurSelectInput = function blurSelectInput(event) {\n  var element = event.target;\n  return element.ownerDocument.activeElement && element.ownerDocument.activeElement.blur();\n};\nvar _ref2$1 =  false ? 0 : {\n  name: \"bp8cua-ScrollManager\",\n  styles: \"position:fixed;left:0;bottom:0;right:0;top:0;label:ScrollManager;\",\n  map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbE1hbmFnZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9EVSIsImZpbGUiOiJTY3JvbGxNYW5hZ2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgRnJhZ21lbnQsIFJlYWN0RWxlbWVudCwgUmVmQ2FsbGJhY2ssIE1vdXNlRXZlbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlU2Nyb2xsQ2FwdHVyZSBmcm9tICcuL3VzZVNjcm9sbENhcHR1cmUnO1xuaW1wb3J0IHVzZVNjcm9sbExvY2sgZnJvbSAnLi91c2VTY3JvbGxMb2NrJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IChyZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PikgPT4gUmVhY3RFbGVtZW50O1xuICByZWFkb25seSBsb2NrRW5hYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgY2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IG9uQm90dG9tQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Cb3R0b21MZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IG9uVG9wQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Ub3BMZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IGJsdXJTZWxlY3RJbnB1dCA9IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgcmV0dXJuIChcbiAgICBlbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJlxuICAgIChlbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuYmx1cigpXG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTY3JvbGxNYW5hZ2VyKHtcbiAgY2hpbGRyZW4sXG4gIGxvY2tFbmFibGVkLFxuICBjYXB0dXJlRW5hYmxlZCA9IHRydWUsXG4gIG9uQm90dG9tQXJyaXZlLFxuICBvbkJvdHRvbUxlYXZlLFxuICBvblRvcEFycml2ZSxcbiAgb25Ub3BMZWF2ZSxcbn06IFByb3BzKSB7XG4gIGNvbnN0IHNldFNjcm9sbENhcHR1cmVUYXJnZXQgPSB1c2VTY3JvbGxDYXB0dXJlKHtcbiAgICBpc0VuYWJsZWQ6IGNhcHR1cmVFbmFibGVkLFxuICAgIG9uQm90dG9tQXJyaXZlLFxuICAgIG9uQm90dG9tTGVhdmUsXG4gICAgb25Ub3BBcnJpdmUsXG4gICAgb25Ub3BMZWF2ZSxcbiAgfSk7XG4gIGNvbnN0IHNldFNjcm9sbExvY2tUYXJnZXQgPSB1c2VTY3JvbGxMb2NrKHsgaXNFbmFibGVkOiBsb2NrRW5hYmxlZCB9KTtcblxuICBjb25zdCB0YXJnZXRSZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PiA9IChlbGVtZW50KSA9PiB7XG4gICAgc2V0U2Nyb2xsQ2FwdHVyZVRhcmdldChlbGVtZW50KTtcbiAgICBzZXRTY3JvbGxMb2NrVGFyZ2V0KGVsZW1lbnQpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPEZyYWdtZW50PlxuICAgICAge2xvY2tFbmFibGVkICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIG9uQ2xpY2s9e2JsdXJTZWxlY3RJbnB1dH1cbiAgICAgICAgICBjc3M9e3sgcG9zaXRpb246ICdmaXhlZCcsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAsIHRvcDogMCB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtjaGlsZHJlbih0YXJnZXRSZWYpfVxuICAgIDwvRnJhZ21lbnQ+XG4gICk7XG59XG4iXX0= */\",\n  toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1\n};\nfunction ScrollManager(_ref) {\n  var children = _ref.children,\n    lockEnabled = _ref.lockEnabled,\n    _ref$captureEnabled = _ref.captureEnabled,\n    captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,\n    onBottomArrive = _ref.onBottomArrive,\n    onBottomLeave = _ref.onBottomLeave,\n    onTopArrive = _ref.onTopArrive,\n    onTopLeave = _ref.onTopLeave;\n  var setScrollCaptureTarget = useScrollCapture({\n    isEnabled: captureEnabled,\n    onBottomArrive: onBottomArrive,\n    onBottomLeave: onBottomLeave,\n    onTopArrive: onTopArrive,\n    onTopLeave: onTopLeave\n  });\n  var setScrollLockTarget = useScrollLock({\n    isEnabled: lockEnabled\n  });\n  var targetRef = function targetRef(element) {\n    setScrollCaptureTarget(element);\n    setScrollLockTarget(element);\n  };\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(react__WEBPACK_IMPORTED_MODULE_7__.Fragment, null, lockEnabled && (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(\"div\", {\n    onClick: blurSelectInput,\n    css: _ref2$1\n  }), children(targetRef));\n}\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() {\n  return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n}\nvar _ref2 =  false ? 0 : {\n  name: \"5kkxb2-requiredInput-RequiredInput\",\n  styles: \"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%;label:RequiredInput;\",\n  map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJlcXVpcmVkSW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNJIiwiZmlsZSI6IlJlcXVpcmVkSW5wdXQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBGb2N1c0V2ZW50SGFuZGxlciwgRnVuY3Rpb25Db21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmNvbnN0IFJlcXVpcmVkSW5wdXQ6IEZ1bmN0aW9uQ29tcG9uZW50PHtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgb25Gb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG59PiA9ICh7IG5hbWUsIG9uRm9jdXMgfSkgPT4gKFxuICA8aW5wdXRcbiAgICByZXF1aXJlZFxuICAgIG5hbWU9e25hbWV9XG4gICAgdGFiSW5kZXg9ey0xfVxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAncmVxdWlyZWRJbnB1dCcsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICBib3R0b206IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgcmlnaHQ6IDAsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgIH19XG4gICAgLy8gUHJldmVudCBgU3dpdGNoaW5nIGZyb20gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWRgIGVycm9yXG4gICAgdmFsdWU9XCJcIlxuICAgIG9uQ2hhbmdlPXsoKSA9PiB7fX1cbiAgLz5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IFJlcXVpcmVkSW5wdXQ7XG4iXX0= */\",\n  toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\nvar RequiredInput = function RequiredInput(_ref) {\n  var name = _ref.name,\n    onFocus = _ref.onFocus;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_9__.jsx)(\"input\", {\n    required: true,\n    name: name,\n    tabIndex: -1,\n    \"aria-hidden\": \"true\",\n    onFocus: onFocus,\n    css: _ref2\n    // Prevent `Switching from uncontrolled to controlled` error\n    ,\n\n    value: \"\",\n    onChange: function onChange() {}\n  });\n};\nvar RequiredInput$1 = RequiredInput;\n\n/// <reference types=\"user-agent-data-types\" />\n\nfunction testPlatform(re) {\n  var _window$navigator$use;\n  return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window$navigator$use = window.navigator['userAgentData']) === null || _window$navigator$use === void 0 ? void 0 : _window$navigator$use.platform) || window.navigator.platform) : false;\n}\nfunction isIPhone() {\n  return testPlatform(/^iPhone/i);\n}\nfunction isMac() {\n  return testPlatform(/^Mac/i);\n}\nfunction isIPad() {\n  return testPlatform(/^iPad/i) ||\n  // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n  isMac() && navigator.maxTouchPoints > 1;\n}\nfunction isIOS() {\n  return isIPhone() || isIPad();\n}\nfunction isAppleDevice() {\n  return isMac() || isIOS();\n}\nvar formatGroupLabel = function formatGroupLabel(group) {\n  return group.label;\n};\nvar getOptionLabel$1 = function getOptionLabel(option) {\n  return option.label;\n};\nvar getOptionValue$1 = function getOptionValue(option) {\n  return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n  return !!option.isDisabled;\n};\nvar defaultStyles = {\n  clearIndicator: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.a,\n  container: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.b,\n  control: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.d,\n  dropdownIndicator: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.e,\n  group: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.g,\n  groupHeading: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.f,\n  indicatorsContainer: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.i,\n  indicatorSeparator: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.h,\n  input: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.j,\n  loadingIndicator: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.l,\n  loadingMessage: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.k,\n  menu: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.m,\n  menuList: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.n,\n  menuPortal: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.o,\n  multiValue: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.p,\n  multiValueLabel: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.q,\n  multiValueRemove: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.t,\n  noOptionsMessage: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.u,\n  option: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.v,\n  placeholder: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.w,\n  singleValue: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.x,\n  valueContainer: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.y\n};\n// Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n  var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  // initialize with source styles\n  var styles = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, source);\n\n  // massage in target styles\n  Object.keys(target).forEach(function (keyAsString) {\n    var key = keyAsString;\n    if (source[key]) {\n      styles[key] = function (rsCss, props) {\n        return target[key](source[key](rsCss, props), props);\n      };\n    } else {\n      styles[key] = target[key];\n    }\n  });\n  return styles;\n}\nvar colors = {\n  primary: '#2684FF',\n  primary75: '#4C9AFF',\n  primary50: '#B2D4FF',\n  primary25: '#DEEBFF',\n  danger: '#DE350B',\n  dangerLight: '#FFBDAD',\n  neutral0: 'hsl(0, 0%, 100%)',\n  neutral5: 'hsl(0, 0%, 95%)',\n  neutral10: 'hsl(0, 0%, 90%)',\n  neutral20: 'hsl(0, 0%, 80%)',\n  neutral30: 'hsl(0, 0%, 70%)',\n  neutral40: 'hsl(0, 0%, 60%)',\n  neutral50: 'hsl(0, 0%, 50%)',\n  neutral60: 'hsl(0, 0%, 40%)',\n  neutral70: 'hsl(0, 0%, 30%)',\n  neutral80: 'hsl(0, 0%, 20%)',\n  neutral90: 'hsl(0, 0%, 10%)'\n};\nvar borderRadius = 4;\n// Used to calculate consistent margin/padding on elements\nvar baseUnit = 4;\n// The minimum height of the control\nvar controlHeight = 38;\n// The amount of space between the control and menu */\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n  baseUnit: baseUnit,\n  controlHeight: controlHeight,\n  menuGutter: menuGutter\n};\nvar defaultTheme = {\n  borderRadius: borderRadius,\n  colors: colors,\n  spacing: spacing\n};\nvar defaultProps = {\n  'aria-live': 'polite',\n  backspaceRemovesValue: true,\n  blurInputOnSelect: (0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.z)(),\n  captureMenuScroll: !(0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.z)(),\n  classNames: {},\n  closeMenuOnSelect: true,\n  closeMenuOnScroll: false,\n  components: {},\n  controlShouldRenderValue: true,\n  escapeClearsValue: false,\n  filterOption: createFilter(),\n  formatGroupLabel: formatGroupLabel,\n  getOptionLabel: getOptionLabel$1,\n  getOptionValue: getOptionValue$1,\n  isDisabled: false,\n  isLoading: false,\n  isMulti: false,\n  isRtl: false,\n  isSearchable: true,\n  isOptionDisabled: isOptionDisabled,\n  loadingMessage: function loadingMessage() {\n    return 'Loading...';\n  },\n  maxMenuHeight: 300,\n  minMenuHeight: 140,\n  menuIsOpen: false,\n  menuPlacement: 'bottom',\n  menuPosition: 'absolute',\n  menuShouldBlockScroll: false,\n  menuShouldScrollIntoView: !(0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.A)(),\n  noOptionsMessage: function noOptionsMessage() {\n    return 'No options';\n  },\n  openMenuOnFocus: false,\n  openMenuOnClick: true,\n  options: [],\n  pageSize: 5,\n  placeholder: 'Select...',\n  screenReaderStatus: function screenReaderStatus(_ref) {\n    var count = _ref.count;\n    return \"\".concat(count, \" result\").concat(count !== 1 ? 's' : '', \" available\");\n  },\n  styles: {},\n  tabIndex: 0,\n  tabSelectsValue: true,\n  unstyled: false\n};\nfunction toCategorizedOption(props, option, selectValue, index) {\n  var isDisabled = _isOptionDisabled(props, option, selectValue);\n  var isSelected = _isOptionSelected(props, option, selectValue);\n  var label = getOptionLabel(props, option);\n  var value = getOptionValue(props, option);\n  return {\n    type: 'option',\n    data: option,\n    isDisabled: isDisabled,\n    isSelected: isSelected,\n    label: label,\n    value: value,\n    index: index\n  };\n}\nfunction buildCategorizedOptions(props, selectValue) {\n  return props.options.map(function (groupOrOption, groupOrOptionIndex) {\n    if ('options' in groupOrOption) {\n      var categorizedOptions = groupOrOption.options.map(function (option, optionIndex) {\n        return toCategorizedOption(props, option, selectValue, optionIndex);\n      }).filter(function (categorizedOption) {\n        return isFocusable(props, categorizedOption);\n      });\n      return categorizedOptions.length > 0 ? {\n        type: 'group',\n        data: groupOrOption,\n        options: categorizedOptions,\n        index: groupOrOptionIndex\n      } : undefined;\n    }\n    var categorizedOption = toCategorizedOption(props, groupOrOption, selectValue, groupOrOptionIndex);\n    return isFocusable(props, categorizedOption) ? categorizedOption : undefined;\n  }).filter(_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.K);\n}\nfunction buildFocusableOptionsFromCategorizedOptions(categorizedOptions) {\n  return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {\n    if (categorizedOption.type === 'group') {\n      optionsAccumulator.push.apply(optionsAccumulator, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(categorizedOption.options.map(function (option) {\n        return option.data;\n      })));\n    } else {\n      optionsAccumulator.push(categorizedOption.data);\n    }\n    return optionsAccumulator;\n  }, []);\n}\nfunction buildFocusableOptionsWithIds(categorizedOptions, optionId) {\n  return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {\n    if (categorizedOption.type === 'group') {\n      optionsAccumulator.push.apply(optionsAccumulator, (0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(categorizedOption.options.map(function (option) {\n        return {\n          data: option.data,\n          id: \"\".concat(optionId, \"-\").concat(categorizedOption.index, \"-\").concat(option.index)\n        };\n      })));\n    } else {\n      optionsAccumulator.push({\n        data: categorizedOption.data,\n        id: \"\".concat(optionId, \"-\").concat(categorizedOption.index)\n      });\n    }\n    return optionsAccumulator;\n  }, []);\n}\nfunction buildFocusableOptions(props, selectValue) {\n  return buildFocusableOptionsFromCategorizedOptions(buildCategorizedOptions(props, selectValue));\n}\nfunction isFocusable(props, categorizedOption) {\n  var _props$inputValue = props.inputValue,\n    inputValue = _props$inputValue === void 0 ? '' : _props$inputValue;\n  var data = categorizedOption.data,\n    isSelected = categorizedOption.isSelected,\n    label = categorizedOption.label,\n    value = categorizedOption.value;\n  return (!shouldHideSelectedOptions(props) || !isSelected) && _filterOption(props, {\n    label: label,\n    value: value,\n    data: data\n  }, inputValue);\n}\nfunction getNextFocusedValue(state, nextSelectValue) {\n  var focusedValue = state.focusedValue,\n    lastSelectValue = state.selectValue;\n  var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n  if (lastFocusedIndex > -1) {\n    var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n    if (nextFocusedIndex > -1) {\n      // the focused value is still in the selectValue, return it\n      return focusedValue;\n    } else if (lastFocusedIndex < nextSelectValue.length) {\n      // the focusedValue is not present in the next selectValue array by\n      // reference, so return the new value at the same index\n      return nextSelectValue[lastFocusedIndex];\n    }\n  }\n  return null;\n}\nfunction getNextFocusedOption(state, options) {\n  var lastFocusedOption = state.focusedOption;\n  return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n}\nvar getFocusedOptionId = function getFocusedOptionId(focusableOptionsWithIds, focusedOption) {\n  var _focusableOptionsWith;\n  var focusedOptionId = (_focusableOptionsWith = focusableOptionsWithIds.find(function (option) {\n    return option.data === focusedOption;\n  })) === null || _focusableOptionsWith === void 0 ? void 0 : _focusableOptionsWith.id;\n  return focusedOptionId || null;\n};\nvar getOptionLabel = function getOptionLabel(props, data) {\n  return props.getOptionLabel(data);\n};\nvar getOptionValue = function getOptionValue(props, data) {\n  return props.getOptionValue(data);\n};\nfunction _isOptionDisabled(props, option, selectValue) {\n  return typeof props.isOptionDisabled === 'function' ? props.isOptionDisabled(option, selectValue) : false;\n}\nfunction _isOptionSelected(props, option, selectValue) {\n  if (selectValue.indexOf(option) > -1) return true;\n  if (typeof props.isOptionSelected === 'function') {\n    return props.isOptionSelected(option, selectValue);\n  }\n  var candidate = getOptionValue(props, option);\n  return selectValue.some(function (i) {\n    return getOptionValue(props, i) === candidate;\n  });\n}\nfunction _filterOption(props, option, inputValue) {\n  return props.filterOption ? props.filterOption(option, inputValue) : true;\n}\nvar shouldHideSelectedOptions = function shouldHideSelectedOptions(props) {\n  var hideSelectedOptions = props.hideSelectedOptions,\n    isMulti = props.isMulti;\n  if (hideSelectedOptions === undefined) return isMulti;\n  return hideSelectedOptions;\n};\nvar instanceId = 1;\nvar Select = /*#__PURE__*/function (_Component) {\n  (0,_babel_runtime_helpers_esm_inherits__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(Select, _Component);\n  var _super = (0,_babel_runtime_helpers_esm_createSuper__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Select);\n  // Misc. Instance Properties\n  // ------------------------------\n\n  // TODO\n\n  // Refs\n  // ------------------------------\n\n  // Lifecycle\n  // ------------------------------\n\n  function Select(_props) {\n    var _this;\n    (0,_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this, Select);\n    _this = _super.call(this, _props);\n    _this.state = {\n      ariaSelection: null,\n      focusedOption: null,\n      focusedOptionId: null,\n      focusableOptionsWithIds: [],\n      focusedValue: null,\n      inputIsHidden: false,\n      isFocused: false,\n      selectValue: [],\n      clearFocusValueOnUpdate: false,\n      prevWasFocused: false,\n      inputIsHiddenAfterUpdate: undefined,\n      prevProps: undefined,\n      instancePrefix: '',\n      isAppleDevice: false\n    };\n    _this.blockOptionHover = false;\n    _this.isComposing = false;\n    _this.commonProps = void 0;\n    _this.initialTouchX = 0;\n    _this.initialTouchY = 0;\n    _this.openAfterFocus = false;\n    _this.scrollToFocusedOptionOnUpdate = false;\n    _this.userIsDragging = void 0;\n    _this.controlRef = null;\n    _this.getControlRef = function (ref) {\n      _this.controlRef = ref;\n    };\n    _this.focusedOptionRef = null;\n    _this.getFocusedOptionRef = function (ref) {\n      _this.focusedOptionRef = ref;\n    };\n    _this.menuListRef = null;\n    _this.getMenuListRef = function (ref) {\n      _this.menuListRef = ref;\n    };\n    _this.inputRef = null;\n    _this.getInputRef = function (ref) {\n      _this.inputRef = ref;\n    };\n    _this.focus = _this.focusInput;\n    _this.blur = _this.blurInput;\n    _this.onChange = function (newValue, actionMeta) {\n      var _this$props = _this.props,\n        onChange = _this$props.onChange,\n        name = _this$props.name;\n      actionMeta.name = name;\n      _this.ariaOnChange(newValue, actionMeta);\n      onChange(newValue, actionMeta);\n    };\n    _this.setValue = function (newValue, action, option) {\n      var _this$props2 = _this.props,\n        closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n        isMulti = _this$props2.isMulti,\n        inputValue = _this$props2.inputValue;\n      _this.onInputChange('', {\n        action: 'set-value',\n        prevInputValue: inputValue\n      });\n      if (closeMenuOnSelect) {\n        _this.setState({\n          inputIsHiddenAfterUpdate: !isMulti\n        });\n        _this.onMenuClose();\n      }\n      // when the select value should change, we should reset focusedValue\n      _this.setState({\n        clearFocusValueOnUpdate: true\n      });\n      _this.onChange(newValue, {\n        action: action,\n        option: option\n      });\n    };\n    _this.selectOption = function (newValue) {\n      var _this$props3 = _this.props,\n        blurInputOnSelect = _this$props3.blurInputOnSelect,\n        isMulti = _this$props3.isMulti,\n        name = _this$props3.name;\n      var selectValue = _this.state.selectValue;\n      var deselected = isMulti && _this.isOptionSelected(newValue, selectValue);\n      var isDisabled = _this.isOptionDisabled(newValue, selectValue);\n      if (deselected) {\n        var candidate = _this.getOptionValue(newValue);\n        _this.setValue((0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.B)(selectValue.filter(function (i) {\n          return _this.getOptionValue(i) !== candidate;\n        })), 'deselect-option', newValue);\n      } else if (!isDisabled) {\n        // Select option if option is not disabled\n        if (isMulti) {\n          _this.setValue((0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.B)([].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(selectValue), [newValue])), 'select-option', newValue);\n        } else {\n          _this.setValue((0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.C)(newValue), 'select-option');\n        }\n      } else {\n        _this.ariaOnChange((0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.C)(newValue), {\n          action: 'select-option',\n          option: newValue,\n          name: name\n        });\n        return;\n      }\n      if (blurInputOnSelect) {\n        _this.blurInput();\n      }\n    };\n    _this.removeValue = function (removedValue) {\n      var isMulti = _this.props.isMulti;\n      var selectValue = _this.state.selectValue;\n      var candidate = _this.getOptionValue(removedValue);\n      var newValueArray = selectValue.filter(function (i) {\n        return _this.getOptionValue(i) !== candidate;\n      });\n      var newValue = (0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.D)(isMulti, newValueArray, newValueArray[0] || null);\n      _this.onChange(newValue, {\n        action: 'remove-value',\n        removedValue: removedValue\n      });\n      _this.focusInput();\n    };\n    _this.clearValue = function () {\n      var selectValue = _this.state.selectValue;\n      _this.onChange((0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.D)(_this.props.isMulti, [], null), {\n        action: 'clear',\n        removedValues: selectValue\n      });\n    };\n    _this.popValue = function () {\n      var isMulti = _this.props.isMulti;\n      var selectValue = _this.state.selectValue;\n      var lastSelectedValue = selectValue[selectValue.length - 1];\n      var newValueArray = selectValue.slice(0, selectValue.length - 1);\n      var newValue = (0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.D)(isMulti, newValueArray, newValueArray[0] || null);\n      if (lastSelectedValue) {\n        _this.onChange(newValue, {\n          action: 'pop-value',\n          removedValue: lastSelectedValue\n        });\n      }\n    };\n    _this.getFocusedOptionId = function (focusedOption) {\n      return getFocusedOptionId(_this.state.focusableOptionsWithIds, focusedOption);\n    };\n    _this.getFocusableOptionsWithIds = function () {\n      return buildFocusableOptionsWithIds(buildCategorizedOptions(_this.props, _this.state.selectValue), _this.getElementId('option'));\n    };\n    _this.getValue = function () {\n      return _this.state.selectValue;\n    };\n    _this.cx = function () {\n      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n        args[_key] = arguments[_key];\n      }\n      return _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.E.apply(void 0, [_this.props.classNamePrefix].concat(args));\n    };\n    _this.getOptionLabel = function (data) {\n      return getOptionLabel(_this.props, data);\n    };\n    _this.getOptionValue = function (data) {\n      return getOptionValue(_this.props, data);\n    };\n    _this.getStyles = function (key, props) {\n      var unstyled = _this.props.unstyled;\n      var base = defaultStyles[key](props, unstyled);\n      base.boxSizing = 'border-box';\n      var custom = _this.props.styles[key];\n      return custom ? custom(base, props) : base;\n    };\n    _this.getClassNames = function (key, props) {\n      var _this$props$className, _this$props$className2;\n      return (_this$props$className = (_this$props$className2 = _this.props.classNames)[key]) === null || _this$props$className === void 0 ? void 0 : _this$props$className.call(_this$props$className2, props);\n    };\n    _this.getElementId = function (element) {\n      return \"\".concat(_this.state.instancePrefix, \"-\").concat(element);\n    };\n    _this.getComponents = function () {\n      return (0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.F)(_this.props);\n    };\n    _this.buildCategorizedOptions = function () {\n      return buildCategorizedOptions(_this.props, _this.state.selectValue);\n    };\n    _this.getCategorizedOptions = function () {\n      return _this.props.menuIsOpen ? _this.buildCategorizedOptions() : [];\n    };\n    _this.buildFocusableOptions = function () {\n      return buildFocusableOptionsFromCategorizedOptions(_this.buildCategorizedOptions());\n    };\n    _this.getFocusableOptions = function () {\n      return _this.props.menuIsOpen ? _this.buildFocusableOptions() : [];\n    };\n    _this.ariaOnChange = function (value, actionMeta) {\n      _this.setState({\n        ariaSelection: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n          value: value\n        }, actionMeta)\n      });\n    };\n    _this.onMenuMouseDown = function (event) {\n      if (event.button !== 0) {\n        return;\n      }\n      event.stopPropagation();\n      event.preventDefault();\n      _this.focusInput();\n    };\n    _this.onMenuMouseMove = function (event) {\n      _this.blockOptionHover = false;\n    };\n    _this.onControlMouseDown = function (event) {\n      // Event captured by dropdown indicator\n      if (event.defaultPrevented) {\n        return;\n      }\n      var openMenuOnClick = _this.props.openMenuOnClick;\n      if (!_this.state.isFocused) {\n        if (openMenuOnClick) {\n          _this.openAfterFocus = true;\n        }\n        _this.focusInput();\n      } else if (!_this.props.menuIsOpen) {\n        if (openMenuOnClick) {\n          _this.openMenu('first');\n        }\n      } else {\n        if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n          _this.onMenuClose();\n        }\n      }\n      if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n        event.preventDefault();\n      }\n    };\n    _this.onDropdownIndicatorMouseDown = function (event) {\n      // ignore mouse events that weren't triggered by the primary button\n      if (event && event.type === 'mousedown' && event.button !== 0) {\n        return;\n      }\n      if (_this.props.isDisabled) return;\n      var _this$props4 = _this.props,\n        isMulti = _this$props4.isMulti,\n        menuIsOpen = _this$props4.menuIsOpen;\n      _this.focusInput();\n      if (menuIsOpen) {\n        _this.setState({\n          inputIsHiddenAfterUpdate: !isMulti\n        });\n        _this.onMenuClose();\n      } else {\n        _this.openMenu('first');\n      }\n      event.preventDefault();\n    };\n    _this.onClearIndicatorMouseDown = function (event) {\n      // ignore mouse events that weren't triggered by the primary button\n      if (event && event.type === 'mousedown' && event.button !== 0) {\n        return;\n      }\n      _this.clearValue();\n      event.preventDefault();\n      _this.openAfterFocus = false;\n      if (event.type === 'touchend') {\n        _this.focusInput();\n      } else {\n        setTimeout(function () {\n          return _this.focusInput();\n        });\n      }\n    };\n    _this.onScroll = function (event) {\n      if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n        if (event.target instanceof HTMLElement && (0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.G)(event.target)) {\n          _this.props.onMenuClose();\n        }\n      } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n        if (_this.props.closeMenuOnScroll(event)) {\n          _this.props.onMenuClose();\n        }\n      }\n    };\n    _this.onCompositionStart = function () {\n      _this.isComposing = true;\n    };\n    _this.onCompositionEnd = function () {\n      _this.isComposing = false;\n    };\n    _this.onTouchStart = function (_ref2) {\n      var touches = _ref2.touches;\n      var touch = touches && touches.item(0);\n      if (!touch) {\n        return;\n      }\n      _this.initialTouchX = touch.clientX;\n      _this.initialTouchY = touch.clientY;\n      _this.userIsDragging = false;\n    };\n    _this.onTouchMove = function (_ref3) {\n      var touches = _ref3.touches;\n      var touch = touches && touches.item(0);\n      if (!touch) {\n        return;\n      }\n      var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n      var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n      var moveThreshold = 5;\n      _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n    };\n    _this.onTouchEnd = function (event) {\n      if (_this.userIsDragging) return;\n\n      // close the menu if the user taps outside\n      // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n      // on events on child elements, not the document (which we've attached this handler to).\n      if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n        _this.blurInput();\n      }\n\n      // reset move vars\n      _this.initialTouchX = 0;\n      _this.initialTouchY = 0;\n    };\n    _this.onControlTouchEnd = function (event) {\n      if (_this.userIsDragging) return;\n      _this.onControlMouseDown(event);\n    };\n    _this.onClearIndicatorTouchEnd = function (event) {\n      if (_this.userIsDragging) return;\n      _this.onClearIndicatorMouseDown(event);\n    };\n    _this.onDropdownIndicatorTouchEnd = function (event) {\n      if (_this.userIsDragging) return;\n      _this.onDropdownIndicatorMouseDown(event);\n    };\n    _this.handleInputChange = function (event) {\n      var prevInputValue = _this.props.inputValue;\n      var inputValue = event.currentTarget.value;\n      _this.setState({\n        inputIsHiddenAfterUpdate: false\n      });\n      _this.onInputChange(inputValue, {\n        action: 'input-change',\n        prevInputValue: prevInputValue\n      });\n      if (!_this.props.menuIsOpen) {\n        _this.onMenuOpen();\n      }\n    };\n    _this.onInputFocus = function (event) {\n      if (_this.props.onFocus) {\n        _this.props.onFocus(event);\n      }\n      _this.setState({\n        inputIsHiddenAfterUpdate: false,\n        isFocused: true\n      });\n      if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n        _this.openMenu('first');\n      }\n      _this.openAfterFocus = false;\n    };\n    _this.onInputBlur = function (event) {\n      var prevInputValue = _this.props.inputValue;\n      if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n        _this.inputRef.focus();\n        return;\n      }\n      if (_this.props.onBlur) {\n        _this.props.onBlur(event);\n      }\n      _this.onInputChange('', {\n        action: 'input-blur',\n        prevInputValue: prevInputValue\n      });\n      _this.onMenuClose();\n      _this.setState({\n        focusedValue: null,\n        isFocused: false\n      });\n    };\n    _this.onOptionHover = function (focusedOption) {\n      if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n        return;\n      }\n      var options = _this.getFocusableOptions();\n      var focusedOptionIndex = options.indexOf(focusedOption);\n      _this.setState({\n        focusedOption: focusedOption,\n        focusedOptionId: focusedOptionIndex > -1 ? _this.getFocusedOptionId(focusedOption) : null\n      });\n    };\n    _this.shouldHideSelectedOptions = function () {\n      return shouldHideSelectedOptions(_this.props);\n    };\n    _this.onValueInputFocus = function (e) {\n      e.preventDefault();\n      e.stopPropagation();\n      _this.focus();\n    };\n    _this.onKeyDown = function (event) {\n      var _this$props5 = _this.props,\n        isMulti = _this$props5.isMulti,\n        backspaceRemovesValue = _this$props5.backspaceRemovesValue,\n        escapeClearsValue = _this$props5.escapeClearsValue,\n        inputValue = _this$props5.inputValue,\n        isClearable = _this$props5.isClearable,\n        isDisabled = _this$props5.isDisabled,\n        menuIsOpen = _this$props5.menuIsOpen,\n        onKeyDown = _this$props5.onKeyDown,\n        tabSelectsValue = _this$props5.tabSelectsValue,\n        openMenuOnFocus = _this$props5.openMenuOnFocus;\n      var _this$state = _this.state,\n        focusedOption = _this$state.focusedOption,\n        focusedValue = _this$state.focusedValue,\n        selectValue = _this$state.selectValue;\n      if (isDisabled) return;\n      if (typeof onKeyDown === 'function') {\n        onKeyDown(event);\n        if (event.defaultPrevented) {\n          return;\n        }\n      }\n\n      // Block option hover events when the user has just pressed a key\n      _this.blockOptionHover = true;\n      switch (event.key) {\n        case 'ArrowLeft':\n          if (!isMulti || inputValue) return;\n          _this.focusValue('previous');\n          break;\n        case 'ArrowRight':\n          if (!isMulti || inputValue) return;\n          _this.focusValue('next');\n          break;\n        case 'Delete':\n        case 'Backspace':\n          if (inputValue) return;\n          if (focusedValue) {\n            _this.removeValue(focusedValue);\n          } else {\n            if (!backspaceRemovesValue) return;\n            if (isMulti) {\n              _this.popValue();\n            } else if (isClearable) {\n              _this.clearValue();\n            }\n          }\n          break;\n        case 'Tab':\n          if (_this.isComposing) return;\n          if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption ||\n          // don't capture the event if the menu opens on focus and the focused\n          // option is already selected; it breaks the flow of navigation\n          openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {\n            return;\n          }\n          _this.selectOption(focusedOption);\n          break;\n        case 'Enter':\n          if (event.keyCode === 229) {\n            // ignore the keydown event from an Input Method Editor(IME)\n            // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n            break;\n          }\n          if (menuIsOpen) {\n            if (!focusedOption) return;\n            if (_this.isComposing) return;\n            _this.selectOption(focusedOption);\n            break;\n          }\n          return;\n        case 'Escape':\n          if (menuIsOpen) {\n            _this.setState({\n              inputIsHiddenAfterUpdate: false\n            });\n            _this.onInputChange('', {\n              action: 'menu-close',\n              prevInputValue: inputValue\n            });\n            _this.onMenuClose();\n          } else if (isClearable && escapeClearsValue) {\n            _this.clearValue();\n          }\n          break;\n        case ' ':\n          // space\n          if (inputValue) {\n            return;\n          }\n          if (!menuIsOpen) {\n            _this.openMenu('first');\n            break;\n          }\n          if (!focusedOption) return;\n          _this.selectOption(focusedOption);\n          break;\n        case 'ArrowUp':\n          if (menuIsOpen) {\n            _this.focusOption('up');\n          } else {\n            _this.openMenu('last');\n          }\n          break;\n        case 'ArrowDown':\n          if (menuIsOpen) {\n            _this.focusOption('down');\n          } else {\n            _this.openMenu('first');\n          }\n          break;\n        case 'PageUp':\n          if (!menuIsOpen) return;\n          _this.focusOption('pageup');\n          break;\n        case 'PageDown':\n          if (!menuIsOpen) return;\n          _this.focusOption('pagedown');\n          break;\n        case 'Home':\n          if (!menuIsOpen) return;\n          _this.focusOption('first');\n          break;\n        case 'End':\n          if (!menuIsOpen) return;\n          _this.focusOption('last');\n          break;\n        default:\n          return;\n      }\n      event.preventDefault();\n    };\n    _this.state.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n    _this.state.selectValue = (0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.H)(_props.value);\n    // Set focusedOption if menuIsOpen is set on init (e.g. defaultMenuIsOpen)\n    if (_props.menuIsOpen && _this.state.selectValue.length) {\n      var focusableOptionsWithIds = _this.getFocusableOptionsWithIds();\n      var focusableOptions = _this.buildFocusableOptions();\n      var optionIndex = focusableOptions.indexOf(_this.state.selectValue[0]);\n      _this.state.focusableOptionsWithIds = focusableOptionsWithIds;\n      _this.state.focusedOption = focusableOptions[optionIndex];\n      _this.state.focusedOptionId = getFocusedOptionId(focusableOptionsWithIds, focusableOptions[optionIndex]);\n    }\n    return _this;\n  }\n  (0,_babel_runtime_helpers_esm_createClass__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(Select, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.startListeningComposition();\n      this.startListeningToTouch();\n      if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n        // Listen to all scroll events, and filter them out inside of 'onScroll'\n        document.addEventListener('scroll', this.onScroll, true);\n      }\n      if (this.props.autoFocus) {\n        this.focusInput();\n      }\n\n      // Scroll focusedOption into view if menuIsOpen is set on mount (e.g. defaultMenuIsOpen)\n      if (this.props.menuIsOpen && this.state.focusedOption && this.menuListRef && this.focusedOptionRef) {\n        (0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.I)(this.menuListRef, this.focusedOptionRef);\n      }\n      if (isAppleDevice()) {\n        // eslint-disable-next-line react/no-did-mount-set-state\n        this.setState({\n          isAppleDevice: true\n        });\n      }\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var _this$props6 = this.props,\n        isDisabled = _this$props6.isDisabled,\n        menuIsOpen = _this$props6.menuIsOpen;\n      var isFocused = this.state.isFocused;\n      if (\n      // ensure focus is restored correctly when the control becomes enabled\n      isFocused && !isDisabled && prevProps.isDisabled ||\n      // ensure focus is on the Input when the menu opens\n      isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n        this.focusInput();\n      }\n      if (isFocused && isDisabled && !prevProps.isDisabled) {\n        // ensure select state gets blurred in case Select is programmatically disabled while focused\n        // eslint-disable-next-line react/no-did-update-set-state\n        this.setState({\n          isFocused: false\n        }, this.onMenuClose);\n      } else if (!isFocused && !isDisabled && prevProps.isDisabled && this.inputRef === document.activeElement) {\n        // ensure select state gets focused in case Select is programatically re-enabled while focused (Firefox)\n        // eslint-disable-next-line react/no-did-update-set-state\n        this.setState({\n          isFocused: true\n        });\n      }\n\n      // scroll the focused option into view if necessary\n      if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n        (0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.I)(this.menuListRef, this.focusedOptionRef);\n        this.scrollToFocusedOptionOnUpdate = false;\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this.stopListeningComposition();\n      this.stopListeningToTouch();\n      document.removeEventListener('scroll', this.onScroll, true);\n    }\n\n    // ==============================\n    // Consumer Handlers\n    // ==============================\n  }, {\n    key: \"onMenuOpen\",\n    value: function onMenuOpen() {\n      this.props.onMenuOpen();\n    }\n  }, {\n    key: \"onMenuClose\",\n    value: function onMenuClose() {\n      this.onInputChange('', {\n        action: 'menu-close',\n        prevInputValue: this.props.inputValue\n      });\n      this.props.onMenuClose();\n    }\n  }, {\n    key: \"onInputChange\",\n    value: function onInputChange(newValue, actionMeta) {\n      this.props.onInputChange(newValue, actionMeta);\n    }\n\n    // ==============================\n    // Methods\n    // ==============================\n  }, {\n    key: \"focusInput\",\n    value: function focusInput() {\n      if (!this.inputRef) return;\n      this.inputRef.focus();\n    }\n  }, {\n    key: \"blurInput\",\n    value: function blurInput() {\n      if (!this.inputRef) return;\n      this.inputRef.blur();\n    }\n\n    // aliased for consumers\n  }, {\n    key: \"openMenu\",\n    value: function openMenu(focusOption) {\n      var _this2 = this;\n      var _this$state2 = this.state,\n        selectValue = _this$state2.selectValue,\n        isFocused = _this$state2.isFocused;\n      var focusableOptions = this.buildFocusableOptions();\n      var openAtIndex = focusOption === 'first' ? 0 : focusableOptions.length - 1;\n      if (!this.props.isMulti) {\n        var selectedIndex = focusableOptions.indexOf(selectValue[0]);\n        if (selectedIndex > -1) {\n          openAtIndex = selectedIndex;\n        }\n      }\n\n      // only scroll if the menu isn't already open\n      this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n      this.setState({\n        inputIsHiddenAfterUpdate: false,\n        focusedValue: null,\n        focusedOption: focusableOptions[openAtIndex],\n        focusedOptionId: this.getFocusedOptionId(focusableOptions[openAtIndex])\n      }, function () {\n        return _this2.onMenuOpen();\n      });\n    }\n  }, {\n    key: \"focusValue\",\n    value: function focusValue(direction) {\n      var _this$state3 = this.state,\n        selectValue = _this$state3.selectValue,\n        focusedValue = _this$state3.focusedValue;\n\n      // Only multiselects support value focusing\n      if (!this.props.isMulti) return;\n      this.setState({\n        focusedOption: null\n      });\n      var focusedIndex = selectValue.indexOf(focusedValue);\n      if (!focusedValue) {\n        focusedIndex = -1;\n      }\n      var lastIndex = selectValue.length - 1;\n      var nextFocus = -1;\n      if (!selectValue.length) return;\n      switch (direction) {\n        case 'previous':\n          if (focusedIndex === 0) {\n            // don't cycle from the start to the end\n            nextFocus = 0;\n          } else if (focusedIndex === -1) {\n            // if nothing is focused, focus the last value first\n            nextFocus = lastIndex;\n          } else {\n            nextFocus = focusedIndex - 1;\n          }\n          break;\n        case 'next':\n          if (focusedIndex > -1 && focusedIndex < lastIndex) {\n            nextFocus = focusedIndex + 1;\n          }\n          break;\n      }\n      this.setState({\n        inputIsHidden: nextFocus !== -1,\n        focusedValue: selectValue[nextFocus]\n      });\n    }\n  }, {\n    key: \"focusOption\",\n    value: function focusOption() {\n      var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n      var pageSize = this.props.pageSize;\n      var focusedOption = this.state.focusedOption;\n      var options = this.getFocusableOptions();\n      if (!options.length) return;\n      var nextFocus = 0; // handles 'first'\n      var focusedIndex = options.indexOf(focusedOption);\n      if (!focusedOption) {\n        focusedIndex = -1;\n      }\n      if (direction === 'up') {\n        nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n      } else if (direction === 'down') {\n        nextFocus = (focusedIndex + 1) % options.length;\n      } else if (direction === 'pageup') {\n        nextFocus = focusedIndex - pageSize;\n        if (nextFocus < 0) nextFocus = 0;\n      } else if (direction === 'pagedown') {\n        nextFocus = focusedIndex + pageSize;\n        if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n      } else if (direction === 'last') {\n        nextFocus = options.length - 1;\n      }\n      this.scrollToFocusedOptionOnUpdate = true;\n      this.setState({\n        focusedOption: options[nextFocus],\n        focusedValue: null,\n        focusedOptionId: this.getFocusedOptionId(options[nextFocus])\n      });\n    }\n  }, {\n    key: \"getTheme\",\n    value:\n    // ==============================\n    // Getters\n    // ==============================\n\n    function getTheme() {\n      // Use the default theme if there are no customisations.\n      if (!this.props.theme) {\n        return defaultTheme;\n      }\n      // If the theme prop is a function, assume the function\n      // knows how to merge the passed-in default theme with\n      // its own modifications.\n      if (typeof this.props.theme === 'function') {\n        return this.props.theme(defaultTheme);\n      }\n      // Otherwise, if a plain theme object was passed in,\n      // overlay it with the default theme.\n      return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, defaultTheme), this.props.theme);\n    }\n  }, {\n    key: \"getCommonProps\",\n    value: function getCommonProps() {\n      var clearValue = this.clearValue,\n        cx = this.cx,\n        getStyles = this.getStyles,\n        getClassNames = this.getClassNames,\n        getValue = this.getValue,\n        selectOption = this.selectOption,\n        setValue = this.setValue,\n        props = this.props;\n      var isMulti = props.isMulti,\n        isRtl = props.isRtl,\n        options = props.options;\n      var hasValue = this.hasValue();\n      return {\n        clearValue: clearValue,\n        cx: cx,\n        getStyles: getStyles,\n        getClassNames: getClassNames,\n        getValue: getValue,\n        hasValue: hasValue,\n        isMulti: isMulti,\n        isRtl: isRtl,\n        options: options,\n        selectOption: selectOption,\n        selectProps: props,\n        setValue: setValue,\n        theme: this.getTheme()\n      };\n    }\n  }, {\n    key: \"hasValue\",\n    value: function hasValue() {\n      var selectValue = this.state.selectValue;\n      return selectValue.length > 0;\n    }\n  }, {\n    key: \"hasOptions\",\n    value: function hasOptions() {\n      return !!this.getFocusableOptions().length;\n    }\n  }, {\n    key: \"isClearable\",\n    value: function isClearable() {\n      var _this$props7 = this.props,\n        isClearable = _this$props7.isClearable,\n        isMulti = _this$props7.isMulti;\n\n      // single select, by default, IS NOT clearable\n      // multi select, by default, IS clearable\n      if (isClearable === undefined) return isMulti;\n      return isClearable;\n    }\n  }, {\n    key: \"isOptionDisabled\",\n    value: function isOptionDisabled(option, selectValue) {\n      return _isOptionDisabled(this.props, option, selectValue);\n    }\n  }, {\n    key: \"isOptionSelected\",\n    value: function isOptionSelected(option, selectValue) {\n      return _isOptionSelected(this.props, option, selectValue);\n    }\n  }, {\n    key: \"filterOption\",\n    value: function filterOption(option, inputValue) {\n      return _filterOption(this.props, option, inputValue);\n    }\n  }, {\n    key: \"formatOptionLabel\",\n    value: function formatOptionLabel(data, context) {\n      if (typeof this.props.formatOptionLabel === 'function') {\n        var _inputValue = this.props.inputValue;\n        var _selectValue = this.state.selectValue;\n        return this.props.formatOptionLabel(data, {\n          context: context,\n          inputValue: _inputValue,\n          selectValue: _selectValue\n        });\n      } else {\n        return this.getOptionLabel(data);\n      }\n    }\n  }, {\n    key: \"formatGroupLabel\",\n    value: function formatGroupLabel(data) {\n      return this.props.formatGroupLabel(data);\n    }\n\n    // ==============================\n    // Mouse Handlers\n    // ==============================\n  }, {\n    key: \"startListeningComposition\",\n    value:\n    // ==============================\n    // Composition Handlers\n    // ==============================\n\n    function startListeningComposition() {\n      if (document && document.addEventListener) {\n        document.addEventListener('compositionstart', this.onCompositionStart, false);\n        document.addEventListener('compositionend', this.onCompositionEnd, false);\n      }\n    }\n  }, {\n    key: \"stopListeningComposition\",\n    value: function stopListeningComposition() {\n      if (document && document.removeEventListener) {\n        document.removeEventListener('compositionstart', this.onCompositionStart);\n        document.removeEventListener('compositionend', this.onCompositionEnd);\n      }\n    }\n  }, {\n    key: \"startListeningToTouch\",\n    value:\n    // ==============================\n    // Touch Handlers\n    // ==============================\n\n    function startListeningToTouch() {\n      if (document && document.addEventListener) {\n        document.addEventListener('touchstart', this.onTouchStart, false);\n        document.addEventListener('touchmove', this.onTouchMove, false);\n        document.addEventListener('touchend', this.onTouchEnd, false);\n      }\n    }\n  }, {\n    key: \"stopListeningToTouch\",\n    value: function stopListeningToTouch() {\n      if (document && document.removeEventListener) {\n        document.removeEventListener('touchstart', this.onTouchStart);\n        document.removeEventListener('touchmove', this.onTouchMove);\n        document.removeEventListener('touchend', this.onTouchEnd);\n      }\n    }\n  }, {\n    key: \"renderInput\",\n    value:\n    // ==============================\n    // Renderers\n    // ==============================\n    function renderInput() {\n      var _this$props8 = this.props,\n        isDisabled = _this$props8.isDisabled,\n        isSearchable = _this$props8.isSearchable,\n        inputId = _this$props8.inputId,\n        inputValue = _this$props8.inputValue,\n        tabIndex = _this$props8.tabIndex,\n        form = _this$props8.form,\n        menuIsOpen = _this$props8.menuIsOpen,\n        required = _this$props8.required;\n      var _this$getComponents = this.getComponents(),\n        Input = _this$getComponents.Input;\n      var _this$state4 = this.state,\n        inputIsHidden = _this$state4.inputIsHidden,\n        ariaSelection = _this$state4.ariaSelection;\n      var commonProps = this.commonProps;\n      var id = inputId || this.getElementId('input');\n\n      // aria attributes makes the JSX \"noisy\", separated for clarity\n      var ariaAttributes = (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n        'aria-autocomplete': 'list',\n        'aria-expanded': menuIsOpen,\n        'aria-haspopup': true,\n        'aria-errormessage': this.props['aria-errormessage'],\n        'aria-invalid': this.props['aria-invalid'],\n        'aria-label': this.props['aria-label'],\n        'aria-labelledby': this.props['aria-labelledby'],\n        'aria-required': required,\n        role: 'combobox',\n        'aria-activedescendant': this.state.isAppleDevice ? undefined : this.state.focusedOptionId || ''\n      }, menuIsOpen && {\n        'aria-controls': this.getElementId('listbox')\n      }), !isSearchable && {\n        'aria-readonly': true\n      }), this.hasValue() ? (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus' && {\n        'aria-describedby': this.getElementId('live-region')\n      } : {\n        'aria-describedby': this.getElementId('placeholder')\n      });\n      if (!isSearchable) {\n        // use a dummy input to maintain focus/blur functionality\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(DummyInput, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n          id: id,\n          innerRef: this.getInputRef,\n          onBlur: this.onInputBlur,\n          onChange: _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.J,\n          onFocus: this.onInputFocus,\n          disabled: isDisabled,\n          tabIndex: tabIndex,\n          inputMode: \"none\",\n          form: form,\n          value: \"\"\n        }, ariaAttributes));\n      }\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(Input, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n        autoCapitalize: \"none\",\n        autoComplete: \"off\",\n        autoCorrect: \"off\",\n        id: id,\n        innerRef: this.getInputRef,\n        isDisabled: isDisabled,\n        isHidden: inputIsHidden,\n        onBlur: this.onInputBlur,\n        onChange: this.handleInputChange,\n        onFocus: this.onInputFocus,\n        spellCheck: \"false\",\n        tabIndex: tabIndex,\n        form: form,\n        type: \"text\",\n        value: inputValue\n      }, ariaAttributes));\n    }\n  }, {\n    key: \"renderPlaceholderOrValue\",\n    value: function renderPlaceholderOrValue() {\n      var _this3 = this;\n      var _this$getComponents2 = this.getComponents(),\n        MultiValue = _this$getComponents2.MultiValue,\n        MultiValueContainer = _this$getComponents2.MultiValueContainer,\n        MultiValueLabel = _this$getComponents2.MultiValueLabel,\n        MultiValueRemove = _this$getComponents2.MultiValueRemove,\n        SingleValue = _this$getComponents2.SingleValue,\n        Placeholder = _this$getComponents2.Placeholder;\n      var commonProps = this.commonProps;\n      var _this$props9 = this.props,\n        controlShouldRenderValue = _this$props9.controlShouldRenderValue,\n        isDisabled = _this$props9.isDisabled,\n        isMulti = _this$props9.isMulti,\n        inputValue = _this$props9.inputValue,\n        placeholder = _this$props9.placeholder;\n      var _this$state5 = this.state,\n        selectValue = _this$state5.selectValue,\n        focusedValue = _this$state5.focusedValue,\n        isFocused = _this$state5.isFocused;\n      if (!this.hasValue() || !controlShouldRenderValue) {\n        return inputValue ? null : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(Placeholder, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n          key: \"placeholder\",\n          isDisabled: isDisabled,\n          isFocused: isFocused,\n          innerProps: {\n            id: this.getElementId('placeholder')\n          }\n        }), placeholder);\n      }\n      if (isMulti) {\n        return selectValue.map(function (opt, index) {\n          var isOptionFocused = opt === focusedValue;\n          var key = \"\".concat(_this3.getOptionLabel(opt), \"-\").concat(_this3.getOptionValue(opt));\n          return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(MultiValue, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n            components: {\n              Container: MultiValueContainer,\n              Label: MultiValueLabel,\n              Remove: MultiValueRemove\n            },\n            isFocused: isOptionFocused,\n            isDisabled: isDisabled,\n            key: key,\n            index: index,\n            removeProps: {\n              onClick: function onClick() {\n                return _this3.removeValue(opt);\n              },\n              onTouchEnd: function onTouchEnd() {\n                return _this3.removeValue(opt);\n              },\n              onMouseDown: function onMouseDown(e) {\n                e.preventDefault();\n              }\n            },\n            data: opt\n          }), _this3.formatOptionLabel(opt, 'value'));\n        });\n      }\n      if (inputValue) {\n        return null;\n      }\n      var singleValue = selectValue[0];\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(SingleValue, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n        data: singleValue,\n        isDisabled: isDisabled\n      }), this.formatOptionLabel(singleValue, 'value'));\n    }\n  }, {\n    key: \"renderClearIndicator\",\n    value: function renderClearIndicator() {\n      var _this$getComponents3 = this.getComponents(),\n        ClearIndicator = _this$getComponents3.ClearIndicator;\n      var commonProps = this.commonProps;\n      var _this$props10 = this.props,\n        isDisabled = _this$props10.isDisabled,\n        isLoading = _this$props10.isLoading;\n      var isFocused = this.state.isFocused;\n      if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n        return null;\n      }\n      var innerProps = {\n        onMouseDown: this.onClearIndicatorMouseDown,\n        onTouchEnd: this.onClearIndicatorTouchEnd,\n        'aria-hidden': 'true'\n      };\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(ClearIndicator, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n        innerProps: innerProps,\n        isFocused: isFocused\n      }));\n    }\n  }, {\n    key: \"renderLoadingIndicator\",\n    value: function renderLoadingIndicator() {\n      var _this$getComponents4 = this.getComponents(),\n        LoadingIndicator = _this$getComponents4.LoadingIndicator;\n      var commonProps = this.commonProps;\n      var _this$props11 = this.props,\n        isDisabled = _this$props11.isDisabled,\n        isLoading = _this$props11.isLoading;\n      var isFocused = this.state.isFocused;\n      if (!LoadingIndicator || !isLoading) return null;\n      var innerProps = {\n        'aria-hidden': 'true'\n      };\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(LoadingIndicator, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n        innerProps: innerProps,\n        isDisabled: isDisabled,\n        isFocused: isFocused\n      }));\n    }\n  }, {\n    key: \"renderIndicatorSeparator\",\n    value: function renderIndicatorSeparator() {\n      var _this$getComponents5 = this.getComponents(),\n        DropdownIndicator = _this$getComponents5.DropdownIndicator,\n        IndicatorSeparator = _this$getComponents5.IndicatorSeparator;\n\n      // separator doesn't make sense without the dropdown indicator\n      if (!DropdownIndicator || !IndicatorSeparator) return null;\n      var commonProps = this.commonProps;\n      var isDisabled = this.props.isDisabled;\n      var isFocused = this.state.isFocused;\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(IndicatorSeparator, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n        isDisabled: isDisabled,\n        isFocused: isFocused\n      }));\n    }\n  }, {\n    key: \"renderDropdownIndicator\",\n    value: function renderDropdownIndicator() {\n      var _this$getComponents6 = this.getComponents(),\n        DropdownIndicator = _this$getComponents6.DropdownIndicator;\n      if (!DropdownIndicator) return null;\n      var commonProps = this.commonProps;\n      var isDisabled = this.props.isDisabled;\n      var isFocused = this.state.isFocused;\n      var innerProps = {\n        onMouseDown: this.onDropdownIndicatorMouseDown,\n        onTouchEnd: this.onDropdownIndicatorTouchEnd,\n        'aria-hidden': 'true'\n      };\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(DropdownIndicator, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n        innerProps: innerProps,\n        isDisabled: isDisabled,\n        isFocused: isFocused\n      }));\n    }\n  }, {\n    key: \"renderMenu\",\n    value: function renderMenu() {\n      var _this4 = this;\n      var _this$getComponents7 = this.getComponents(),\n        Group = _this$getComponents7.Group,\n        GroupHeading = _this$getComponents7.GroupHeading,\n        Menu = _this$getComponents7.Menu,\n        MenuList = _this$getComponents7.MenuList,\n        MenuPortal = _this$getComponents7.MenuPortal,\n        LoadingMessage = _this$getComponents7.LoadingMessage,\n        NoOptionsMessage = _this$getComponents7.NoOptionsMessage,\n        Option = _this$getComponents7.Option;\n      var commonProps = this.commonProps;\n      var focusedOption = this.state.focusedOption;\n      var _this$props12 = this.props,\n        captureMenuScroll = _this$props12.captureMenuScroll,\n        inputValue = _this$props12.inputValue,\n        isLoading = _this$props12.isLoading,\n        loadingMessage = _this$props12.loadingMessage,\n        minMenuHeight = _this$props12.minMenuHeight,\n        maxMenuHeight = _this$props12.maxMenuHeight,\n        menuIsOpen = _this$props12.menuIsOpen,\n        menuPlacement = _this$props12.menuPlacement,\n        menuPosition = _this$props12.menuPosition,\n        menuPortalTarget = _this$props12.menuPortalTarget,\n        menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,\n        menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,\n        noOptionsMessage = _this$props12.noOptionsMessage,\n        onMenuScrollToTop = _this$props12.onMenuScrollToTop,\n        onMenuScrollToBottom = _this$props12.onMenuScrollToBottom;\n      if (!menuIsOpen) return null;\n\n      // TODO: Internal Option Type here\n      var render = function render(props, id) {\n        var type = props.type,\n          data = props.data,\n          isDisabled = props.isDisabled,\n          isSelected = props.isSelected,\n          label = props.label,\n          value = props.value;\n        var isFocused = focusedOption === data;\n        var onHover = isDisabled ? undefined : function () {\n          return _this4.onOptionHover(data);\n        };\n        var onSelect = isDisabled ? undefined : function () {\n          return _this4.selectOption(data);\n        };\n        var optionId = \"\".concat(_this4.getElementId('option'), \"-\").concat(id);\n        var innerProps = {\n          id: optionId,\n          onClick: onSelect,\n          onMouseMove: onHover,\n          onMouseOver: onHover,\n          tabIndex: -1,\n          role: 'option',\n          'aria-selected': _this4.state.isAppleDevice ? undefined : isSelected // is not supported on Apple devices\n        };\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(Option, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n          innerProps: innerProps,\n          data: data,\n          isDisabled: isDisabled,\n          isSelected: isSelected,\n          key: optionId,\n          label: label,\n          type: type,\n          value: value,\n          isFocused: isFocused,\n          innerRef: isFocused ? _this4.getFocusedOptionRef : undefined\n        }), _this4.formatOptionLabel(props.data, 'menu'));\n      };\n      var menuUI;\n      if (this.hasOptions()) {\n        menuUI = this.getCategorizedOptions().map(function (item) {\n          if (item.type === 'group') {\n            var _data = item.data,\n              options = item.options,\n              groupIndex = item.index;\n            var groupId = \"\".concat(_this4.getElementId('group'), \"-\").concat(groupIndex);\n            var headingId = \"\".concat(groupId, \"-heading\");\n            return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(Group, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n              key: groupId,\n              data: _data,\n              options: options,\n              Heading: GroupHeading,\n              headingProps: {\n                id: headingId,\n                data: item.data\n              },\n              label: _this4.formatGroupLabel(item.data)\n            }), item.options.map(function (option) {\n              return render(option, \"\".concat(groupIndex, \"-\").concat(option.index));\n            }));\n          } else if (item.type === 'option') {\n            return render(item, \"\".concat(item.index));\n          }\n        });\n      } else if (isLoading) {\n        var message = loadingMessage({\n          inputValue: inputValue\n        });\n        if (message === null) return null;\n        menuUI = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(LoadingMessage, commonProps, message);\n      } else {\n        var _message = noOptionsMessage({\n          inputValue: inputValue\n        });\n        if (_message === null) return null;\n        menuUI = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(NoOptionsMessage, commonProps, _message);\n      }\n      var menuPlacementProps = {\n        minMenuHeight: minMenuHeight,\n        maxMenuHeight: maxMenuHeight,\n        menuPlacement: menuPlacement,\n        menuPosition: menuPosition,\n        menuShouldScrollIntoView: menuShouldScrollIntoView\n      };\n      var menuElement = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.M, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, menuPlacementProps), function (_ref4) {\n        var ref = _ref4.ref,\n          _ref4$placerProps = _ref4.placerProps,\n          placement = _ref4$placerProps.placement,\n          maxHeight = _ref4$placerProps.maxHeight;\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(Menu, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, menuPlacementProps, {\n          innerRef: ref,\n          innerProps: {\n            onMouseDown: _this4.onMenuMouseDown,\n            onMouseMove: _this4.onMenuMouseMove\n          },\n          isLoading: isLoading,\n          placement: placement\n        }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(ScrollManager, {\n          captureEnabled: captureMenuScroll,\n          onTopArrive: onMenuScrollToTop,\n          onBottomArrive: onMenuScrollToBottom,\n          lockEnabled: menuShouldBlockScroll\n        }, function (scrollTargetRef) {\n          return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(MenuList, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n            innerRef: function innerRef(instance) {\n              _this4.getMenuListRef(instance);\n              scrollTargetRef(instance);\n            },\n            innerProps: {\n              role: 'listbox',\n              'aria-multiselectable': commonProps.isMulti,\n              id: _this4.getElementId('listbox')\n            },\n            isLoading: isLoading,\n            maxHeight: maxHeight,\n            focusedOption: focusedOption\n          }), menuUI);\n        }));\n      });\n\n      // positioning behaviour is almost identical for portalled and fixed,\n      // so we use the same component. the actual portalling logic is forked\n      // within the component based on `menuPosition`\n      return menuPortalTarget || menuPosition === 'fixed' ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(MenuPortal, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n        appendTo: menuPortalTarget,\n        controlElement: this.controlRef,\n        menuPlacement: menuPlacement,\n        menuPosition: menuPosition\n      }), menuElement) : menuElement;\n    }\n  }, {\n    key: \"renderFormField\",\n    value: function renderFormField() {\n      var _this5 = this;\n      var _this$props13 = this.props,\n        delimiter = _this$props13.delimiter,\n        isDisabled = _this$props13.isDisabled,\n        isMulti = _this$props13.isMulti,\n        name = _this$props13.name,\n        required = _this$props13.required;\n      var selectValue = this.state.selectValue;\n      if (required && !this.hasValue() && !isDisabled) {\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(RequiredInput$1, {\n          name: name,\n          onFocus: this.onValueInputFocus\n        });\n      }\n      if (!name || isDisabled) return;\n      if (isMulti) {\n        if (delimiter) {\n          var value = selectValue.map(function (opt) {\n            return _this5.getOptionValue(opt);\n          }).join(delimiter);\n          return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"input\", {\n            name: name,\n            type: \"hidden\",\n            value: value\n          });\n        } else {\n          var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n            return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"input\", {\n              key: \"i-\".concat(i),\n              name: name,\n              type: \"hidden\",\n              value: _this5.getOptionValue(opt)\n            });\n          }) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"input\", {\n            name: name,\n            type: \"hidden\",\n            value: \"\"\n          });\n          return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"div\", null, input);\n        }\n      } else {\n        var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n        return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(\"input\", {\n          name: name,\n          type: \"hidden\",\n          value: _value\n        });\n      }\n    }\n  }, {\n    key: \"renderLiveRegion\",\n    value: function renderLiveRegion() {\n      var commonProps = this.commonProps;\n      var _this$state6 = this.state,\n        ariaSelection = _this$state6.ariaSelection,\n        focusedOption = _this$state6.focusedOption,\n        focusedValue = _this$state6.focusedValue,\n        isFocused = _this$state6.isFocused,\n        selectValue = _this$state6.selectValue;\n      var focusableOptions = this.getFocusableOptions();\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(LiveRegion$1, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n        id: this.getElementId('live-region'),\n        ariaSelection: ariaSelection,\n        focusedOption: focusedOption,\n        focusedValue: focusedValue,\n        isFocused: isFocused,\n        selectValue: selectValue,\n        focusableOptions: focusableOptions,\n        isAppleDevice: this.state.isAppleDevice\n      }));\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$getComponents8 = this.getComponents(),\n        Control = _this$getComponents8.Control,\n        IndicatorsContainer = _this$getComponents8.IndicatorsContainer,\n        SelectContainer = _this$getComponents8.SelectContainer,\n        ValueContainer = _this$getComponents8.ValueContainer;\n      var _this$props14 = this.props,\n        className = _this$props14.className,\n        id = _this$props14.id,\n        isDisabled = _this$props14.isDisabled,\n        menuIsOpen = _this$props14.menuIsOpen;\n      var isFocused = this.state.isFocused;\n      var commonProps = this.commonProps = this.getCommonProps();\n      return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(SelectContainer, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n        className: className,\n        innerProps: {\n          id: id,\n          onKeyDown: this.onKeyDown\n        },\n        isDisabled: isDisabled,\n        isFocused: isFocused\n      }), this.renderLiveRegion(), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(Control, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n        innerRef: this.getControlRef,\n        innerProps: {\n          onMouseDown: this.onControlMouseDown,\n          onTouchEnd: this.onControlTouchEnd\n        },\n        isDisabled: isDisabled,\n        isFocused: isFocused,\n        menuIsOpen: menuIsOpen\n      }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(ValueContainer, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n        isDisabled: isDisabled\n      }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_7__.createElement(IndicatorsContainer, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, commonProps, {\n        isDisabled: isDisabled\n      }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(props, state) {\n      var prevProps = state.prevProps,\n        clearFocusValueOnUpdate = state.clearFocusValueOnUpdate,\n        inputIsHiddenAfterUpdate = state.inputIsHiddenAfterUpdate,\n        ariaSelection = state.ariaSelection,\n        isFocused = state.isFocused,\n        prevWasFocused = state.prevWasFocused,\n        instancePrefix = state.instancePrefix;\n      var options = props.options,\n        value = props.value,\n        menuIsOpen = props.menuIsOpen,\n        inputValue = props.inputValue,\n        isMulti = props.isMulti;\n      var selectValue = (0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.H)(value);\n      var newMenuOptionsState = {};\n      if (prevProps && (value !== prevProps.value || options !== prevProps.options || menuIsOpen !== prevProps.menuIsOpen || inputValue !== prevProps.inputValue)) {\n        var focusableOptions = menuIsOpen ? buildFocusableOptions(props, selectValue) : [];\n        var focusableOptionsWithIds = menuIsOpen ? buildFocusableOptionsWithIds(buildCategorizedOptions(props, selectValue), \"\".concat(instancePrefix, \"-option\")) : [];\n        var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state, selectValue) : null;\n        var focusedOption = getNextFocusedOption(state, focusableOptions);\n        var focusedOptionId = getFocusedOptionId(focusableOptionsWithIds, focusedOption);\n        newMenuOptionsState = {\n          selectValue: selectValue,\n          focusedOption: focusedOption,\n          focusedOptionId: focusedOptionId,\n          focusableOptionsWithIds: focusableOptionsWithIds,\n          focusedValue: focusedValue,\n          clearFocusValueOnUpdate: false\n        };\n      }\n      // some updates should toggle the state of the input visibility\n      var newInputIsHiddenState = inputIsHiddenAfterUpdate != null && props !== prevProps ? {\n        inputIsHidden: inputIsHiddenAfterUpdate,\n        inputIsHiddenAfterUpdate: undefined\n      } : {};\n      var newAriaSelection = ariaSelection;\n      var hasKeptFocus = isFocused && prevWasFocused;\n      if (isFocused && !hasKeptFocus) {\n        // If `value` or `defaultValue` props are not empty then announce them\n        // when the Select is initially focused\n        newAriaSelection = {\n          value: (0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_8__.D)(isMulti, selectValue, selectValue[0] || null),\n          options: selectValue,\n          action: 'initial-input-focus'\n        };\n        hasKeptFocus = !prevWasFocused;\n      }\n\n      // If the 'initial-input-focus' action has been set already\n      // then reset the ariaSelection to null\n      if ((ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus') {\n        newAriaSelection = null;\n      }\n      return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, newMenuOptionsState), newInputIsHiddenState), {}, {\n        prevProps: props,\n        ariaSelection: newAriaSelection,\n        prevWasFocused: hasKeptFocus\n      });\n    }\n  }]);\n  return Select;\n}(react__WEBPACK_IMPORTED_MODULE_7__.Component);\nSelect.defaultProps = defaultProps;\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-select/dist/Select-ef7c0426.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-select/dist/index-641ee5b8.esm.js":
/*!************************************************************************!*\
  !*** ../react-ui/node_modules/react-select/dist/index-641ee5b8.esm.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   A: () => (/* binding */ isMobileDevice),\n/* harmony export */   B: () => (/* binding */ multiValueAsValue),\n/* harmony export */   C: () => (/* binding */ singleValueAsValue),\n/* harmony export */   D: () => (/* binding */ valueTernary),\n/* harmony export */   E: () => (/* binding */ classNames),\n/* harmony export */   F: () => (/* binding */ defaultComponents),\n/* harmony export */   G: () => (/* binding */ isDocumentElement),\n/* harmony export */   H: () => (/* binding */ cleanValue),\n/* harmony export */   I: () => (/* binding */ scrollIntoView),\n/* harmony export */   J: () => (/* binding */ noop),\n/* harmony export */   K: () => (/* binding */ notNullish),\n/* harmony export */   L: () => (/* binding */ handleInputChange),\n/* harmony export */   M: () => (/* binding */ MenuPlacer),\n/* harmony export */   a: () => (/* binding */ clearIndicatorCSS),\n/* harmony export */   b: () => (/* binding */ containerCSS),\n/* harmony export */   c: () => (/* binding */ components),\n/* harmony export */   d: () => (/* binding */ css$1),\n/* harmony export */   e: () => (/* binding */ dropdownIndicatorCSS),\n/* harmony export */   f: () => (/* binding */ groupHeadingCSS),\n/* harmony export */   g: () => (/* binding */ groupCSS),\n/* harmony export */   h: () => (/* binding */ indicatorSeparatorCSS),\n/* harmony export */   i: () => (/* binding */ indicatorsContainerCSS),\n/* harmony export */   j: () => (/* binding */ inputCSS),\n/* harmony export */   k: () => (/* binding */ loadingMessageCSS),\n/* harmony export */   l: () => (/* binding */ loadingIndicatorCSS),\n/* harmony export */   m: () => (/* binding */ menuCSS),\n/* harmony export */   n: () => (/* binding */ menuListCSS),\n/* harmony export */   o: () => (/* binding */ menuPortalCSS),\n/* harmony export */   p: () => (/* binding */ multiValueCSS),\n/* harmony export */   q: () => (/* binding */ multiValueLabelCSS),\n/* harmony export */   r: () => (/* binding */ removeProps),\n/* harmony export */   s: () => (/* binding */ supportsPassiveEvents),\n/* harmony export */   t: () => (/* binding */ multiValueRemoveCSS),\n/* harmony export */   u: () => (/* binding */ noOptionsMessageCSS),\n/* harmony export */   v: () => (/* binding */ optionCSS),\n/* harmony export */   w: () => (/* binding */ placeholderCSS),\n/* harmony export */   x: () => (/* binding */ css),\n/* harmony export */   y: () => (/* binding */ valueContainerCSS),\n/* harmony export */   z: () => (/* binding */ isTouchCapable)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @emotion/react */ \"../react-ui/node_modules/@emotion/react/dist/emotion-react.browser.development.esm.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @babel/runtime/helpers/esm/typeof */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @babel/runtime/helpers/esm/taggedTemplateLiteral */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! react-dom */ \"../react-ui/node_modules/react-dom/index.js\");\n/* harmony import */ var _floating_ui_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @floating-ui/dom */ \"../react-ui/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs\");\n/* harmony import */ var use_isomorphic_layout_effect__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! use-isomorphic-layout-effect */ \"../react-ui/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\nvar _excluded$4 = [\"className\", \"clearValue\", \"cx\", \"getStyles\", \"getClassNames\", \"getValue\", \"hasValue\", \"isMulti\", \"isRtl\", \"options\", \"selectOption\", \"selectProps\", \"setValue\", \"theme\"];\n// ==============================\n// NO OP\n// ==============================\n\nvar noop = function noop() {};\n\n// ==============================\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n   @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n   @returns 'react-select__comp react-select__comp--some'\n*/\nfunction applyPrefixToName(prefix, name) {\n  if (!name) {\n    return prefix;\n  } else if (name[0] === '-') {\n    return prefix + name;\n  } else {\n    return prefix + '__' + name;\n  }\n}\nfunction classNames(prefix, state) {\n  for (var _len = arguments.length, classNameList = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    classNameList[_key - 2] = arguments[_key];\n  }\n  var arr = [].concat(classNameList);\n  if (state && prefix) {\n    for (var key in state) {\n      if (state.hasOwnProperty(key) && state[key]) {\n        arr.push(\"\".concat(applyPrefixToName(prefix, key)));\n      }\n    }\n  }\n  return arr.filter(function (i) {\n    return i;\n  }).map(function (i) {\n    return String(i).trim();\n  }).join(' ');\n}\n// ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n  if (isArray(value)) return value.filter(Boolean);\n  if ((0,_babel_runtime_helpers_esm_typeof__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(value) === 'object' && value !== null) return [value];\n  return [];\n};\n\n// ==============================\n// Clean Common Props\n// ==============================\n\nvar cleanCommonProps = function cleanCommonProps(props) {\n  //className\n  props.className;\n  props.clearValue;\n  props.cx;\n  props.getStyles;\n  props.getClassNames;\n  props.getValue;\n  props.hasValue;\n  props.isMulti;\n  props.isRtl;\n  props.options;\n  props.selectOption;\n  props.selectProps;\n  props.setValue;\n  props.theme;\n  var innerProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(props, _excluded$4);\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, innerProps);\n};\n\n// ==============================\n// Get Style Props\n// ==============================\n\nvar getStyleProps = function getStyleProps(props, name, classNamesState) {\n  var cx = props.cx,\n    getStyles = props.getStyles,\n    getClassNames = props.getClassNames,\n    className = props.className;\n  return {\n    css: getStyles(name, props),\n    className: cx(classNamesState !== null && classNamesState !== void 0 ? classNamesState : {}, getClassNames(name, props), className)\n  };\n};\n\n// ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n  if (onInputChange) {\n    var _newValue = onInputChange(inputValue, actionMeta);\n    if (typeof _newValue === 'string') return _newValue;\n  }\n  return inputValue;\n}\n\n// ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n  return [document.documentElement, document.body, window].indexOf(el) > -1;\n}\n\n// Normalized Scroll Top\n// ------------------------------\n\nfunction normalizedHeight(el) {\n  if (isDocumentElement(el)) {\n    return window.innerHeight;\n  }\n  return el.clientHeight;\n}\n\n// Normalized scrollTo & scrollTop\n// ------------------------------\n\nfunction getScrollTop(el) {\n  if (isDocumentElement(el)) {\n    return window.pageYOffset;\n  }\n  return el.scrollTop;\n}\nfunction scrollTo(el, top) {\n  // with a scroll distance, we perform scroll on the element\n  if (isDocumentElement(el)) {\n    window.scrollTo(0, top);\n    return;\n  }\n  el.scrollTop = top;\n}\n\n// Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n  var style = getComputedStyle(element);\n  var excludeStaticParent = style.position === 'absolute';\n  var overflowRx = /(auto|scroll)/;\n  if (style.position === 'fixed') return document.documentElement;\n  for (var parent = element; parent = parent.parentElement;) {\n    style = getComputedStyle(parent);\n    if (excludeStaticParent && style.position === 'static') {\n      continue;\n    }\n    if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n      return parent;\n    }\n  }\n  return document.documentElement;\n}\n\n// Animated Scroll To\n// ------------------------------\n\n/**\n  @param t: time (elapsed)\n  @param b: initial value\n  @param c: amount of change\n  @param d: duration\n*/\nfunction easeOutCubic(t, b, c, d) {\n  return c * ((t = t / d - 1) * t * t + 1) + b;\n}\nfunction animatedScrollTo(element, to) {\n  var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n  var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n  var start = getScrollTop(element);\n  var change = to - start;\n  var increment = 10;\n  var currentTime = 0;\n  function animateScroll() {\n    currentTime += increment;\n    var val = easeOutCubic(currentTime, start, change, duration);\n    scrollTo(element, val);\n    if (currentTime < duration) {\n      window.requestAnimationFrame(animateScroll);\n    } else {\n      callback(element);\n    }\n  }\n  animateScroll();\n}\n\n// Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n  var menuRect = menuEl.getBoundingClientRect();\n  var focusedRect = focusedEl.getBoundingClientRect();\n  var overScroll = focusedEl.offsetHeight / 3;\n  if (focusedRect.bottom + overScroll > menuRect.bottom) {\n    scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n  } else if (focusedRect.top - overScroll < menuRect.top) {\n    scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n  }\n}\n\n// ==============================\n// Get bounding client object\n// ==============================\n\n// cannot get keys using array notation with DOMRect\nfunction getBoundingClientObj(element) {\n  var rect = element.getBoundingClientRect();\n  return {\n    bottom: rect.bottom,\n    height: rect.height,\n    left: rect.left,\n    right: rect.right,\n    top: rect.top,\n    width: rect.width\n  };\n}\n\n// ==============================\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n  try {\n    document.createEvent('TouchEvent');\n    return true;\n  } catch (e) {\n    return false;\n  }\n}\n\n// ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n  try {\n    return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n  } catch (e) {\n    return false;\n  }\n}\n\n// ==============================\n// Passive Event Detector\n// ==============================\n\n// https://github.com/rafgraph/detect-it/blob/main/src/index.ts#L19-L36\nvar passiveOptionAccessed = false;\nvar options = {\n  get passive() {\n    return passiveOptionAccessed = true;\n  }\n};\n// check for SSR\nvar w = typeof window !== 'undefined' ? window : {};\nif (w.addEventListener && w.removeEventListener) {\n  w.addEventListener('p', noop, options);\n  w.removeEventListener('p', noop, false);\n}\nvar supportsPassiveEvents = passiveOptionAccessed;\nfunction notNullish(item) {\n  return item != null;\n}\nfunction isArray(arg) {\n  return Array.isArray(arg);\n}\nfunction valueTernary(isMulti, multiValue, singleValue) {\n  return isMulti ? multiValue : singleValue;\n}\nfunction singleValueAsValue(singleValue) {\n  return singleValue;\n}\nfunction multiValueAsValue(multiValue) {\n  return multiValue;\n}\nvar removeProps = function removeProps(propsObj) {\n  for (var _len2 = arguments.length, properties = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n    properties[_key2 - 1] = arguments[_key2];\n  }\n  var propsMap = Object.entries(propsObj).filter(function (_ref) {\n    var _ref2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_ref, 1),\n      key = _ref2[0];\n    return !properties.includes(key);\n  });\n  return propsMap.reduce(function (newProps, _ref3) {\n    var _ref4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_ref3, 2),\n      key = _ref4[0],\n      val = _ref4[1];\n    newProps[key] = val;\n    return newProps;\n  }, {});\n};\nvar _excluded$3 = [\"children\", \"innerProps\"],\n  _excluded2$1 = [\"children\", \"innerProps\"];\nfunction getMenuPlacement(_ref) {\n  var preferredMaxHeight = _ref.maxHeight,\n    menuEl = _ref.menuEl,\n    minHeight = _ref.minHeight,\n    preferredPlacement = _ref.placement,\n    shouldScroll = _ref.shouldScroll,\n    isFixedPosition = _ref.isFixedPosition,\n    controlHeight = _ref.controlHeight;\n  var scrollParent = getScrollParent(menuEl);\n  var defaultState = {\n    placement: 'bottom',\n    maxHeight: preferredMaxHeight\n  };\n\n  // something went wrong, return default state\n  if (!menuEl || !menuEl.offsetParent) return defaultState;\n\n  // we can't trust `scrollParent.scrollHeight` --> it may increase when\n  // the menu is rendered\n  var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n    scrollHeight = _scrollParent$getBoun.height;\n  var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n    menuBottom = _menuEl$getBoundingCl.bottom,\n    menuHeight = _menuEl$getBoundingCl.height,\n    menuTop = _menuEl$getBoundingCl.top;\n  var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n    containerTop = _menuEl$offsetParent$.top;\n  var viewHeight = isFixedPosition ? window.innerHeight : normalizedHeight(scrollParent);\n  var scrollTop = getScrollTop(scrollParent);\n  var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n  var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n  var viewSpaceAbove = containerTop - marginTop;\n  var viewSpaceBelow = viewHeight - menuTop;\n  var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n  var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n  var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n  var scrollUp = scrollTop + menuTop - marginTop;\n  var scrollDuration = 160;\n  switch (preferredPlacement) {\n    case 'auto':\n    case 'bottom':\n      // 1: the menu will fit, do nothing\n      if (viewSpaceBelow >= menuHeight) {\n        return {\n          placement: 'bottom',\n          maxHeight: preferredMaxHeight\n        };\n      }\n\n      // 2: the menu will fit, if scrolled\n      if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n        if (shouldScroll) {\n          animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n        }\n        return {\n          placement: 'bottom',\n          maxHeight: preferredMaxHeight\n        };\n      }\n\n      // 3: the menu will fit, if constrained\n      if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n        if (shouldScroll) {\n          animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n        }\n\n        // we want to provide as much of the menu as possible to the user,\n        // so give them whatever is available below rather than the minHeight.\n        var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n        return {\n          placement: 'bottom',\n          maxHeight: constrainedHeight\n        };\n      }\n\n      // 4. Forked beviour when there isn't enough space below\n\n      // AUTO: flip the menu, render above\n      if (preferredPlacement === 'auto' || isFixedPosition) {\n        // may need to be constrained after flipping\n        var _constrainedHeight = preferredMaxHeight;\n        var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n        if (spaceAbove >= minHeight) {\n          _constrainedHeight = Math.min(spaceAbove - marginBottom - controlHeight, preferredMaxHeight);\n        }\n        return {\n          placement: 'top',\n          maxHeight: _constrainedHeight\n        };\n      }\n\n      // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n      if (preferredPlacement === 'bottom') {\n        if (shouldScroll) {\n          scrollTo(scrollParent, scrollDown);\n        }\n        return {\n          placement: 'bottom',\n          maxHeight: preferredMaxHeight\n        };\n      }\n      break;\n    case 'top':\n      // 1: the menu will fit, do nothing\n      if (viewSpaceAbove >= menuHeight) {\n        return {\n          placement: 'top',\n          maxHeight: preferredMaxHeight\n        };\n      }\n\n      // 2: the menu will fit, if scrolled\n      if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n        if (shouldScroll) {\n          animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n        }\n        return {\n          placement: 'top',\n          maxHeight: preferredMaxHeight\n        };\n      }\n\n      // 3: the menu will fit, if constrained\n      if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n        var _constrainedHeight2 = preferredMaxHeight;\n\n        // we want to provide as much of the menu as possible to the user,\n        // so give them whatever is available below rather than the minHeight.\n        if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n          _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n        }\n        if (shouldScroll) {\n          animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n        }\n        return {\n          placement: 'top',\n          maxHeight: _constrainedHeight2\n        };\n      }\n\n      // 4. not enough space, the browser WILL NOT increase scrollable area when\n      // absolutely positioned element rendered above the viewport (only below).\n      // Flip the menu, render below\n      return {\n        placement: 'bottom',\n        maxHeight: preferredMaxHeight\n      };\n    default:\n      throw new Error(\"Invalid placement provided \\\"\".concat(preferredPlacement, \"\\\".\"));\n  }\n  return defaultState;\n}\n\n// Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n  var placementToCSSProp = {\n    bottom: 'top',\n    top: 'bottom'\n  };\n  return placement ? placementToCSSProp[placement] : 'bottom';\n}\nvar coercePlacement = function coercePlacement(p) {\n  return p === 'auto' ? 'bottom' : p;\n};\nvar menuCSS = function menuCSS(_ref2, unstyled) {\n  var _objectSpread2;\n  var placement = _ref2.placement,\n    _ref2$theme = _ref2.theme,\n    borderRadius = _ref2$theme.borderRadius,\n    spacing = _ref2$theme.spacing,\n    colors = _ref2$theme.colors;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((_objectSpread2 = {\n    label: 'menu'\n  }, (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(_objectSpread2, alignToControl(placement), '100%'), (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(_objectSpread2, \"position\", 'absolute'), (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(_objectSpread2, \"width\", '100%'), (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(_objectSpread2, \"zIndex\", 1), _objectSpread2), unstyled ? {} : {\n    backgroundColor: colors.neutral0,\n    borderRadius: borderRadius,\n    boxShadow: '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)',\n    marginBottom: spacing.menuGutter,\n    marginTop: spacing.menuGutter\n  });\n};\nvar PortalPlacementContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_8__.createContext)(null);\n\n// NOTE: internal only\nvar MenuPlacer = function MenuPlacer(props) {\n  var children = props.children,\n    minMenuHeight = props.minMenuHeight,\n    maxMenuHeight = props.maxMenuHeight,\n    menuPlacement = props.menuPlacement,\n    menuPosition = props.menuPosition,\n    menuShouldScrollIntoView = props.menuShouldScrollIntoView,\n    theme = props.theme;\n  var _ref3 = (0,react__WEBPACK_IMPORTED_MODULE_8__.useContext)(PortalPlacementContext) || {},\n    setPortalPlacement = _ref3.setPortalPlacement;\n  var ref = (0,react__WEBPACK_IMPORTED_MODULE_8__.useRef)(null);\n  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_8__.useState)(maxMenuHeight),\n    _useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState, 2),\n    maxHeight = _useState2[0],\n    setMaxHeight = _useState2[1];\n  var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_8__.useState)(null),\n    _useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState3, 2),\n    placement = _useState4[0],\n    setPlacement = _useState4[1];\n  var controlHeight = theme.spacing.controlHeight;\n  (0,use_isomorphic_layout_effect__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(function () {\n    var menuEl = ref.current;\n    if (!menuEl) return;\n\n    // DO NOT scroll if position is fixed\n    var isFixedPosition = menuPosition === 'fixed';\n    var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n    var state = getMenuPlacement({\n      maxHeight: maxMenuHeight,\n      menuEl: menuEl,\n      minHeight: minMenuHeight,\n      placement: menuPlacement,\n      shouldScroll: shouldScroll,\n      isFixedPosition: isFixedPosition,\n      controlHeight: controlHeight\n    });\n    setMaxHeight(state.maxHeight);\n    setPlacement(state.placement);\n    setPortalPlacement === null || setPortalPlacement === void 0 ? void 0 : setPortalPlacement(state.placement);\n  }, [maxMenuHeight, menuPlacement, menuPosition, menuShouldScrollIntoView, minMenuHeight, setPortalPlacement, controlHeight]);\n  return children({\n    ref: ref,\n    placerProps: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, props), {}, {\n      placement: placement || coercePlacement(menuPlacement),\n      maxHeight: maxHeight\n    })\n  });\n};\nvar Menu = function Menu(props) {\n  var children = props.children,\n    innerRef = props.innerRef,\n    innerProps = props.innerProps;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps(props, 'menu', {\n    menu: true\n  }), {\n    ref: innerRef\n  }, innerProps), children);\n};\nvar Menu$1 = Menu;\n\n// ==============================\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref4, unstyled) {\n  var maxHeight = _ref4.maxHeight,\n    baseUnit = _ref4.theme.spacing.baseUnit;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    maxHeight: maxHeight,\n    overflowY: 'auto',\n    position: 'relative',\n    // required for offset[Height, Top] > keyboard scroll\n    WebkitOverflowScrolling: 'touch'\n  }, unstyled ? {} : {\n    paddingBottom: baseUnit,\n    paddingTop: baseUnit\n  });\n};\nvar MenuList = function MenuList(props) {\n  var children = props.children,\n    innerProps = props.innerProps,\n    innerRef = props.innerRef,\n    isMulti = props.isMulti;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps(props, 'menuList', {\n    'menu-list': true,\n    'menu-list--is-multi': isMulti\n  }), {\n    ref: innerRef\n  }, innerProps), children);\n};\n\n// ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref5, unstyled) {\n  var _ref5$theme = _ref5.theme,\n    baseUnit = _ref5$theme.spacing.baseUnit,\n    colors = _ref5$theme.colors;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    textAlign: 'center'\n  }, unstyled ? {} : {\n    color: colors.neutral40,\n    padding: \"\".concat(baseUnit * 2, \"px \").concat(baseUnit * 3, \"px\")\n  });\n};\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\nvar NoOptionsMessage = function NoOptionsMessage(_ref6) {\n  var _ref6$children = _ref6.children,\n    children = _ref6$children === void 0 ? 'No options' : _ref6$children,\n    innerProps = _ref6.innerProps,\n    restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_ref6, _excluded$3);\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, restProps), {}, {\n    children: children,\n    innerProps: innerProps\n  }), 'noOptionsMessage', {\n    'menu-notice': true,\n    'menu-notice--no-options': true\n  }), innerProps), children);\n};\nvar LoadingMessage = function LoadingMessage(_ref7) {\n  var _ref7$children = _ref7.children,\n    children = _ref7$children === void 0 ? 'Loading...' : _ref7$children,\n    innerProps = _ref7.innerProps,\n    restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_ref7, _excluded2$1);\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, restProps), {}, {\n    children: children,\n    innerProps: innerProps\n  }), 'loadingMessage', {\n    'menu-notice': true,\n    'menu-notice--loading': true\n  }), innerProps), children);\n};\n\n// ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref8) {\n  var rect = _ref8.rect,\n    offset = _ref8.offset,\n    position = _ref8.position;\n  return {\n    left: rect.left,\n    position: position,\n    top: offset,\n    width: rect.width,\n    zIndex: 1\n  };\n};\nvar MenuPortal = function MenuPortal(props) {\n  var appendTo = props.appendTo,\n    children = props.children,\n    controlElement = props.controlElement,\n    innerProps = props.innerProps,\n    menuPlacement = props.menuPlacement,\n    menuPosition = props.menuPosition;\n  var menuPortalRef = (0,react__WEBPACK_IMPORTED_MODULE_8__.useRef)(null);\n  var cleanupRef = (0,react__WEBPACK_IMPORTED_MODULE_8__.useRef)(null);\n  var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_8__.useState)(coercePlacement(menuPlacement)),\n    _useState6 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState5, 2),\n    placement = _useState6[0],\n    setPortalPlacement = _useState6[1];\n  var portalPlacementContext = (0,react__WEBPACK_IMPORTED_MODULE_8__.useMemo)(function () {\n    return {\n      setPortalPlacement: setPortalPlacement\n    };\n  }, []);\n  var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_8__.useState)(null),\n    _useState8 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_useState7, 2),\n    computedPosition = _useState8[0],\n    setComputedPosition = _useState8[1];\n  var updateComputedPosition = (0,react__WEBPACK_IMPORTED_MODULE_8__.useCallback)(function () {\n    if (!controlElement) return;\n    var rect = getBoundingClientObj(controlElement);\n    var scrollDistance = menuPosition === 'fixed' ? 0 : window.pageYOffset;\n    var offset = rect[placement] + scrollDistance;\n    if (offset !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset) || rect.left !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left) || rect.width !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width)) {\n      setComputedPosition({\n        offset: offset,\n        rect: rect\n      });\n    }\n  }, [controlElement, menuPosition, placement, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width]);\n  (0,use_isomorphic_layout_effect__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(function () {\n    updateComputedPosition();\n  }, [updateComputedPosition]);\n  var runAutoUpdate = (0,react__WEBPACK_IMPORTED_MODULE_8__.useCallback)(function () {\n    if (typeof cleanupRef.current === 'function') {\n      cleanupRef.current();\n      cleanupRef.current = null;\n    }\n    if (controlElement && menuPortalRef.current) {\n      cleanupRef.current = (0,_floating_ui_dom__WEBPACK_IMPORTED_MODULE_10__.autoUpdate)(controlElement, menuPortalRef.current, updateComputedPosition, {\n        elementResize: 'ResizeObserver' in window\n      });\n    }\n  }, [controlElement, updateComputedPosition]);\n  (0,use_isomorphic_layout_effect__WEBPACK_IMPORTED_MODULE_11__[\"default\"])(function () {\n    runAutoUpdate();\n  }, [runAutoUpdate]);\n  var setMenuPortalElement = (0,react__WEBPACK_IMPORTED_MODULE_8__.useCallback)(function (menuPortalElement) {\n    menuPortalRef.current = menuPortalElement;\n    runAutoUpdate();\n  }, [runAutoUpdate]);\n\n  // bail early if required elements aren't present\n  if (!appendTo && menuPosition !== 'fixed' || !computedPosition) return null;\n\n  // same wrapper element whether fixed or portalled\n  var menuWrapper = (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    ref: setMenuPortalElement\n  }, getStyleProps((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, props), {}, {\n    offset: computedPosition.offset,\n    position: menuPosition,\n    rect: computedPosition.rect\n  }), 'menuPortal', {\n    'menu-portal': true\n  }), innerProps), children);\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(PortalPlacementContext.Provider, {\n    value: portalPlacementContext\n  }, appendTo ? /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_9__.createPortal)(menuWrapper, appendTo) : menuWrapper);\n};\n\n// ==============================\n// Root Container\n// ==============================\n\nvar containerCSS = function containerCSS(_ref) {\n  var isDisabled = _ref.isDisabled,\n    isRtl = _ref.isRtl;\n  return {\n    label: 'container',\n    direction: isRtl ? 'rtl' : undefined,\n    pointerEvents: isDisabled ? 'none' : undefined,\n    // cancel mouse events when disabled\n    position: 'relative'\n  };\n};\nvar SelectContainer = function SelectContainer(props) {\n  var children = props.children,\n    innerProps = props.innerProps,\n    isDisabled = props.isDisabled,\n    isRtl = props.isRtl;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps(props, 'container', {\n    '--is-disabled': isDisabled,\n    '--is-rtl': isRtl\n  }), innerProps), children);\n};\n\n// ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2, unstyled) {\n  var spacing = _ref2.theme.spacing,\n    isMulti = _ref2.isMulti,\n    hasValue = _ref2.hasValue,\n    controlShouldRenderValue = _ref2.selectProps.controlShouldRenderValue;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    alignItems: 'center',\n    display: isMulti && hasValue && controlShouldRenderValue ? 'flex' : 'grid',\n    flex: 1,\n    flexWrap: 'wrap',\n    WebkitOverflowScrolling: 'touch',\n    position: 'relative',\n    overflow: 'hidden'\n  }, unstyled ? {} : {\n    padding: \"\".concat(spacing.baseUnit / 2, \"px \").concat(spacing.baseUnit * 2, \"px\")\n  });\n};\nvar ValueContainer = function ValueContainer(props) {\n  var children = props.children,\n    innerProps = props.innerProps,\n    isMulti = props.isMulti,\n    hasValue = props.hasValue;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps(props, 'valueContainer', {\n    'value-container': true,\n    'value-container--is-multi': isMulti,\n    'value-container--has-value': hasValue\n  }), innerProps), children);\n};\n\n// ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n  return {\n    alignItems: 'center',\n    alignSelf: 'stretch',\n    display: 'flex',\n    flexShrink: 0\n  };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n  var children = props.children,\n    innerProps = props.innerProps;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps(props, 'indicatorsContainer', {\n    indicators: true\n  }), innerProps), children);\n};\nvar _templateObject;\nvar _excluded$2 = [\"size\"],\n  _excluded2 = [\"innerProps\", \"isRtl\", \"size\"];\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() {\n  return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n}\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\nvar _ref2 =  false ? 0 : {\n  name: \"tj5bde-Svg\",\n  styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;label:Svg;\",\n  map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,  */\",\n  toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\nvar Svg = function Svg(_ref) {\n  var size = _ref.size,\n    props = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_ref, _excluded$2);\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"svg\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    height: size,\n    width: size,\n    viewBox: \"0 0 20 20\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\",\n    css: _ref2\n  }, props));\n};\nvar CrossIcon = function CrossIcon(props) {\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(Svg, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    size: 20\n  }, props), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n    d: \"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z\"\n  }));\n};\nvar DownChevron = function DownChevron(props) {\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(Svg, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    size: 20\n  }, props), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"path\", {\n    d: \"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\"\n  }));\n};\n\n// ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref3, unstyled) {\n  var isFocused = _ref3.isFocused,\n    _ref3$theme = _ref3.theme,\n    baseUnit = _ref3$theme.spacing.baseUnit,\n    colors = _ref3$theme.colors;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    label: 'indicatorContainer',\n    display: 'flex',\n    transition: 'color 150ms'\n  }, unstyled ? {} : {\n    color: isFocused ? colors.neutral60 : colors.neutral20,\n    padding: baseUnit * 2,\n    ':hover': {\n      color: isFocused ? colors.neutral80 : colors.neutral40\n    }\n  });\n};\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n  var children = props.children,\n    innerProps = props.innerProps;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps(props, 'dropdownIndicator', {\n    indicator: true,\n    'dropdown-indicator': true\n  }), innerProps), children || (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(DownChevron, null));\n};\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n  var children = props.children,\n    innerProps = props.innerProps;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps(props, 'clearIndicator', {\n    indicator: true,\n    'clear-indicator': true\n  }), innerProps), children || (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(CrossIcon, null));\n};\n\n// ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4, unstyled) {\n  var isDisabled = _ref4.isDisabled,\n    _ref4$theme = _ref4.theme,\n    baseUnit = _ref4$theme.spacing.baseUnit,\n    colors = _ref4$theme.colors;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    label: 'indicatorSeparator',\n    alignSelf: 'stretch',\n    width: 1\n  }, unstyled ? {} : {\n    backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n    marginBottom: baseUnit * 2,\n    marginTop: baseUnit * 2\n  });\n};\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n  var innerProps = props.innerProps;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"span\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, innerProps, getStyleProps(props, 'indicatorSeparator', {\n    'indicator-separator': true\n  })));\n};\n\n// ==============================\n// Loading\n// ==============================\n\nvar loadingDotAnimations = (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.keyframes)(_templateObject || (_templateObject = (0,_babel_runtime_helpers_esm_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_6__[\"default\"])([\"\\n  0%, 80%, 100% { opacity: 0; }\\n  40% { opacity: 1; }\\n\"])));\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref5, unstyled) {\n  var isFocused = _ref5.isFocused,\n    size = _ref5.size,\n    _ref5$theme = _ref5.theme,\n    colors = _ref5$theme.colors,\n    baseUnit = _ref5$theme.spacing.baseUnit;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    label: 'loadingIndicator',\n    display: 'flex',\n    transition: 'color 150ms',\n    alignSelf: 'center',\n    fontSize: size,\n    lineHeight: 1,\n    marginRight: size,\n    textAlign: 'center',\n    verticalAlign: 'middle'\n  }, unstyled ? {} : {\n    color: isFocused ? colors.neutral60 : colors.neutral20,\n    padding: baseUnit * 2\n  });\n};\nvar LoadingDot = function LoadingDot(_ref6) {\n  var delay = _ref6.delay,\n    offset = _ref6.offset;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"span\", {\n    css: /*#__PURE__*/(0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.css)({\n      animation: \"\".concat(loadingDotAnimations, \" 1s ease-in-out \").concat(delay, \"ms infinite;\"),\n      backgroundColor: 'currentColor',\n      borderRadius: '1em',\n      display: 'inline-block',\n      marginLeft: offset ? '1em' : undefined,\n      height: '1em',\n      verticalAlign: 'top',\n      width: '1em'\n    },  false ? 0 : \";label:LoadingDot;\",  false ? 0 : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,  */\")\n  });\n};\nvar LoadingIndicator = function LoadingIndicator(_ref7) {\n  var innerProps = _ref7.innerProps,\n    isRtl = _ref7.isRtl,\n    _ref7$size = _ref7.size,\n    size = _ref7$size === void 0 ? 4 : _ref7$size,\n    restProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_ref7, _excluded2);\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, restProps), {}, {\n    innerProps: innerProps,\n    isRtl: isRtl,\n    size: size\n  }), 'loadingIndicator', {\n    indicator: true,\n    'loading-indicator': true\n  }), innerProps), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(LoadingDot, {\n    delay: 0,\n    offset: isRtl\n  }), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(LoadingDot, {\n    delay: 160,\n    offset: true\n  }), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(LoadingDot, {\n    delay: 320,\n    offset: !isRtl\n  }));\n};\nvar css$1 = function css(_ref, unstyled) {\n  var isDisabled = _ref.isDisabled,\n    isFocused = _ref.isFocused,\n    _ref$theme = _ref.theme,\n    colors = _ref$theme.colors,\n    borderRadius = _ref$theme.borderRadius,\n    spacing = _ref$theme.spacing;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    label: 'control',\n    alignItems: 'center',\n    cursor: 'default',\n    display: 'flex',\n    flexWrap: 'wrap',\n    justifyContent: 'space-between',\n    minHeight: spacing.controlHeight,\n    outline: '0 !important',\n    position: 'relative',\n    transition: 'all 100ms'\n  }, unstyled ? {} : {\n    backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n    borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n    borderRadius: borderRadius,\n    borderStyle: 'solid',\n    borderWidth: 1,\n    boxShadow: isFocused ? \"0 0 0 1px \".concat(colors.primary) : undefined,\n    '&:hover': {\n      borderColor: isFocused ? colors.primary : colors.neutral30\n    }\n  });\n};\nvar Control = function Control(props) {\n  var children = props.children,\n    isDisabled = props.isDisabled,\n    isFocused = props.isFocused,\n    innerRef = props.innerRef,\n    innerProps = props.innerProps,\n    menuIsOpen = props.menuIsOpen;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    ref: innerRef\n  }, getStyleProps(props, 'control', {\n    control: true,\n    'control--is-disabled': isDisabled,\n    'control--is-focused': isFocused,\n    'control--menu-is-open': menuIsOpen\n  }), innerProps, {\n    \"aria-disabled\": isDisabled || undefined\n  }), children);\n};\nvar Control$1 = Control;\nvar _excluded$1 = [\"data\"];\nvar groupCSS = function groupCSS(_ref, unstyled) {\n  var spacing = _ref.theme.spacing;\n  return unstyled ? {} : {\n    paddingBottom: spacing.baseUnit * 2,\n    paddingTop: spacing.baseUnit * 2\n  };\n};\nvar Group = function Group(props) {\n  var children = props.children,\n    cx = props.cx,\n    getStyles = props.getStyles,\n    getClassNames = props.getClassNames,\n    Heading = props.Heading,\n    headingProps = props.headingProps,\n    innerProps = props.innerProps,\n    label = props.label,\n    theme = props.theme,\n    selectProps = props.selectProps;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps(props, 'group', {\n    group: true\n  }), innerProps), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(Heading, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, headingProps, {\n    selectProps: selectProps,\n    theme: theme,\n    getStyles: getStyles,\n    getClassNames: getClassNames,\n    cx: cx\n  }), label), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", null, children));\n};\nvar groupHeadingCSS = function groupHeadingCSS(_ref2, unstyled) {\n  var _ref2$theme = _ref2.theme,\n    colors = _ref2$theme.colors,\n    spacing = _ref2$theme.spacing;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    label: 'group',\n    cursor: 'default',\n    display: 'block'\n  }, unstyled ? {} : {\n    color: colors.neutral40,\n    fontSize: '75%',\n    fontWeight: 500,\n    marginBottom: '0.25em',\n    paddingLeft: spacing.baseUnit * 3,\n    paddingRight: spacing.baseUnit * 3,\n    textTransform: 'uppercase'\n  });\n};\nvar GroupHeading = function GroupHeading(props) {\n  var _cleanCommonProps = cleanCommonProps(props);\n  _cleanCommonProps.data;\n  var innerProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_cleanCommonProps, _excluded$1);\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps(props, 'groupHeading', {\n    'group-heading': true\n  }), innerProps));\n};\nvar Group$1 = Group;\nvar _excluded = [\"innerRef\", \"isDisabled\", \"isHidden\", \"inputClassName\"];\nvar inputCSS = function inputCSS(_ref, unstyled) {\n  var isDisabled = _ref.isDisabled,\n    value = _ref.value,\n    _ref$theme = _ref.theme,\n    spacing = _ref$theme.spacing,\n    colors = _ref$theme.colors;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    visibility: isDisabled ? 'hidden' : 'visible',\n    // force css to recompute when value change due to @emotion bug.\n    // We can remove it whenever the bug is fixed.\n    transform: value ? 'translateZ(0)' : ''\n  }, containerStyle), unstyled ? {} : {\n    margin: spacing.baseUnit / 2,\n    paddingBottom: spacing.baseUnit / 2,\n    paddingTop: spacing.baseUnit / 2,\n    color: colors.neutral80\n  });\n};\nvar spacingStyle = {\n  gridArea: '1 / 2',\n  font: 'inherit',\n  minWidth: '2px',\n  border: 0,\n  margin: 0,\n  outline: 0,\n  padding: 0\n};\nvar containerStyle = {\n  flex: '1 1 auto',\n  display: 'inline-grid',\n  gridArea: '1 / 1 / 2 / 3',\n  gridTemplateColumns: '0 min-content',\n  '&:after': (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    content: 'attr(data-value) \" \"',\n    visibility: 'hidden',\n    whiteSpace: 'pre'\n  }, spacingStyle)\n};\nvar inputStyle = function inputStyle(isHidden) {\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    label: 'input',\n    color: 'inherit',\n    background: 0,\n    opacity: isHidden ? 0 : 1,\n    width: '100%'\n  }, spacingStyle);\n};\nvar Input = function Input(props) {\n  var cx = props.cx,\n    value = props.value;\n  var _cleanCommonProps = cleanCommonProps(props),\n    innerRef = _cleanCommonProps.innerRef,\n    isDisabled = _cleanCommonProps.isDisabled,\n    isHidden = _cleanCommonProps.isHidden,\n    inputClassName = _cleanCommonProps.inputClassName,\n    innerProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(_cleanCommonProps, _excluded);\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps(props, 'input', {\n    'input-container': true\n  }), {\n    \"data-value\": value || ''\n  }), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"input\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    className: cx({\n      input: true\n    }, inputClassName),\n    ref: innerRef,\n    style: inputStyle(isHidden),\n    disabled: isDisabled\n  }, innerProps)));\n};\nvar Input$1 = Input;\nvar multiValueCSS = function multiValueCSS(_ref, unstyled) {\n  var _ref$theme = _ref.theme,\n    spacing = _ref$theme.spacing,\n    borderRadius = _ref$theme.borderRadius,\n    colors = _ref$theme.colors;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    label: 'multiValue',\n    display: 'flex',\n    minWidth: 0\n  }, unstyled ? {} : {\n    backgroundColor: colors.neutral10,\n    borderRadius: borderRadius / 2,\n    margin: spacing.baseUnit / 2\n  });\n};\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2, unstyled) {\n  var _ref2$theme = _ref2.theme,\n    borderRadius = _ref2$theme.borderRadius,\n    colors = _ref2$theme.colors,\n    cropWithEllipsis = _ref2.cropWithEllipsis;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    overflow: 'hidden',\n    textOverflow: cropWithEllipsis || cropWithEllipsis === undefined ? 'ellipsis' : undefined,\n    whiteSpace: 'nowrap'\n  }, unstyled ? {} : {\n    borderRadius: borderRadius / 2,\n    color: colors.neutral80,\n    fontSize: '85%',\n    padding: 3,\n    paddingLeft: 6\n  });\n};\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3, unstyled) {\n  var _ref3$theme = _ref3.theme,\n    spacing = _ref3$theme.spacing,\n    borderRadius = _ref3$theme.borderRadius,\n    colors = _ref3$theme.colors,\n    isFocused = _ref3.isFocused;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    alignItems: 'center',\n    display: 'flex'\n  }, unstyled ? {} : {\n    borderRadius: borderRadius / 2,\n    backgroundColor: isFocused ? colors.dangerLight : undefined,\n    paddingLeft: spacing.baseUnit,\n    paddingRight: spacing.baseUnit,\n    ':hover': {\n      backgroundColor: colors.dangerLight,\n      color: colors.danger\n    }\n  });\n};\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n  var children = _ref4.children,\n    innerProps = _ref4.innerProps;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", innerProps, children);\n};\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\nfunction MultiValueRemove(_ref5) {\n  var children = _ref5.children,\n    innerProps = _ref5.innerProps;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    role: \"button\"\n  }, innerProps), children || (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(CrossIcon, {\n    size: 14\n  }));\n}\nvar MultiValue = function MultiValue(props) {\n  var children = props.children,\n    components = props.components,\n    data = props.data,\n    innerProps = props.innerProps,\n    isDisabled = props.isDisabled,\n    removeProps = props.removeProps,\n    selectProps = props.selectProps;\n  var Container = components.Container,\n    Label = components.Label,\n    Remove = components.Remove;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(Container, {\n    data: data,\n    innerProps: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, getStyleProps(props, 'multiValue', {\n      'multi-value': true,\n      'multi-value--is-disabled': isDisabled\n    })), innerProps),\n    selectProps: selectProps\n  }, (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(Label, {\n    data: data,\n    innerProps: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, getStyleProps(props, 'multiValueLabel', {\n      'multi-value__label': true\n    })),\n    selectProps: selectProps\n  }, children), (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(Remove, {\n    data: data,\n    innerProps: (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, getStyleProps(props, 'multiValueRemove', {\n      'multi-value__remove': true\n    })), {}, {\n      'aria-label': \"Remove \".concat(children || 'option')\n    }, removeProps),\n    selectProps: selectProps\n  }));\n};\nvar MultiValue$1 = MultiValue;\nvar optionCSS = function optionCSS(_ref, unstyled) {\n  var isDisabled = _ref.isDisabled,\n    isFocused = _ref.isFocused,\n    isSelected = _ref.isSelected,\n    _ref$theme = _ref.theme,\n    spacing = _ref$theme.spacing,\n    colors = _ref$theme.colors;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    label: 'option',\n    cursor: 'default',\n    display: 'block',\n    fontSize: 'inherit',\n    width: '100%',\n    userSelect: 'none',\n    WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)'\n  }, unstyled ? {} : {\n    backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n    color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n    padding: \"\".concat(spacing.baseUnit * 2, \"px \").concat(spacing.baseUnit * 3, \"px\"),\n    // provide some affordance on touch devices\n    ':active': {\n      backgroundColor: !isDisabled ? isSelected ? colors.primary : colors.primary50 : undefined\n    }\n  });\n};\nvar Option = function Option(props) {\n  var children = props.children,\n    isDisabled = props.isDisabled,\n    isFocused = props.isFocused,\n    isSelected = props.isSelected,\n    innerRef = props.innerRef,\n    innerProps = props.innerProps;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps(props, 'option', {\n    option: true,\n    'option--is-disabled': isDisabled,\n    'option--is-focused': isFocused,\n    'option--is-selected': isSelected\n  }), {\n    ref: innerRef,\n    \"aria-disabled\": isDisabled\n  }, innerProps), children);\n};\nvar Option$1 = Option;\nvar placeholderCSS = function placeholderCSS(_ref, unstyled) {\n  var _ref$theme = _ref.theme,\n    spacing = _ref$theme.spacing,\n    colors = _ref$theme.colors;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    label: 'placeholder',\n    gridArea: '1 / 1 / 2 / 3'\n  }, unstyled ? {} : {\n    color: colors.neutral50,\n    marginLeft: spacing.baseUnit / 2,\n    marginRight: spacing.baseUnit / 2\n  });\n};\nvar Placeholder = function Placeholder(props) {\n  var children = props.children,\n    innerProps = props.innerProps;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps(props, 'placeholder', {\n    placeholder: true\n  }), innerProps), children);\n};\nvar Placeholder$1 = Placeholder;\nvar css = function css(_ref, unstyled) {\n  var isDisabled = _ref.isDisabled,\n    _ref$theme = _ref.theme,\n    spacing = _ref$theme.spacing,\n    colors = _ref$theme.colors;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({\n    label: 'singleValue',\n    gridArea: '1 / 1 / 2 / 3',\n    maxWidth: '100%',\n    overflow: 'hidden',\n    textOverflow: 'ellipsis',\n    whiteSpace: 'nowrap'\n  }, unstyled ? {} : {\n    color: isDisabled ? colors.neutral40 : colors.neutral80,\n    marginLeft: spacing.baseUnit / 2,\n    marginRight: spacing.baseUnit / 2\n  });\n};\nvar SingleValue = function SingleValue(props) {\n  var children = props.children,\n    isDisabled = props.isDisabled,\n    innerProps = props.innerProps;\n  return (0,_emotion_react__WEBPACK_IMPORTED_MODULE_2__.jsx)(\"div\", (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, getStyleProps(props, 'singleValue', {\n    'single-value': true,\n    'single-value--is-disabled': isDisabled\n  }), innerProps), children);\n};\nvar SingleValue$1 = SingleValue;\nvar components = {\n  ClearIndicator: ClearIndicator,\n  Control: Control$1,\n  DropdownIndicator: DropdownIndicator,\n  DownChevron: DownChevron,\n  CrossIcon: CrossIcon,\n  Group: Group$1,\n  GroupHeading: GroupHeading,\n  IndicatorsContainer: IndicatorsContainer,\n  IndicatorSeparator: IndicatorSeparator,\n  Input: Input$1,\n  LoadingIndicator: LoadingIndicator,\n  Menu: Menu$1,\n  MenuList: MenuList,\n  MenuPortal: MenuPortal,\n  LoadingMessage: LoadingMessage,\n  NoOptionsMessage: NoOptionsMessage,\n  MultiValue: MultiValue$1,\n  MultiValueContainer: MultiValueContainer,\n  MultiValueLabel: MultiValueLabel,\n  MultiValueRemove: MultiValueRemove,\n  Option: Option$1,\n  Placeholder: Placeholder$1,\n  SelectContainer: SelectContainer,\n  SingleValue: SingleValue$1,\n  ValueContainer: ValueContainer\n};\nvar defaultComponents = function defaultComponents(props) {\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, components), props.components);\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-select/dist/index-641ee5b8.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-select/dist/react-select.esm.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/react-select/dist/react-select.esm.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   NonceProvider: () => (/* binding */ NonceProvider),\n/* harmony export */   components: () => (/* reexport safe */ _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_6__.c),\n/* harmony export */   createFilter: () => (/* reexport safe */ _Select_ef7c0426_esm_js__WEBPACK_IMPORTED_MODULE_3__.c),\n/* harmony export */   \"default\": () => (/* binding */ StateManagedSelect$1),\n/* harmony export */   defaultTheme: () => (/* reexport safe */ _Select_ef7c0426_esm_js__WEBPACK_IMPORTED_MODULE_3__.d),\n/* harmony export */   mergeStyles: () => (/* reexport safe */ _Select_ef7c0426_esm_js__WEBPACK_IMPORTED_MODULE_3__.m),\n/* harmony export */   useStateManager: () => (/* reexport safe */ _useStateManager_7e1e8489_esm_js__WEBPACK_IMPORTED_MODULE_0__.u)\n/* harmony export */ });\n/* harmony import */ var _useStateManager_7e1e8489_esm_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./useStateManager-7e1e8489.esm.js */ \"../react-ui/node_modules/react-select/dist/useStateManager-7e1e8489.esm.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _Select_ef7c0426_esm_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Select-ef7c0426.esm.js */ \"../react-ui/node_modules/react-select/dist/Select-ef7c0426.esm.js\");\n/* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @emotion/react */ \"../react-ui/node_modules/@emotion/react/dist/emotion-element-489459f2.browser.development.esm.js\");\n/* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @emotion/cache */ \"../react-ui/node_modules/@emotion/cache/dist/emotion-cache.browser.development.esm.js\");\n/* harmony import */ var _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./index-641ee5b8.esm.js */ \"../react-ui/node_modules/react-select/dist/index-641ee5b8.esm.js\");\n/* harmony import */ var _babel_runtime_helpers_objectSpread2__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @babel/runtime/helpers/objectSpread2 */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var _babel_runtime_helpers_classCallCheck__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\");\n/* harmony import */ var _babel_runtime_helpers_createClass__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @babel/runtime/helpers/createClass */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/createClass.js\");\n/* harmony import */ var _babel_runtime_helpers_inherits__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @babel/runtime/helpers/inherits */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/inherits.js\");\n/* harmony import */ var _babel_runtime_helpers_createSuper__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @babel/runtime/helpers/createSuper */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/createSuper.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_taggedTemplateLiteral__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @babel/runtime/helpers/taggedTemplateLiteral */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js\");\n/* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! react-dom */ \"../react-ui/node_modules/react-dom/index.js\");\n/* harmony import */ var use_isomorphic_layout_effect__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! use-isomorphic-layout-effect */ \"../react-ui/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar StateManagedSelect = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_2__.forwardRef)(function (props, ref) {\n  var baseSelectProps = (0,_useStateManager_7e1e8489_esm_js__WEBPACK_IMPORTED_MODULE_0__.u)(props);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_Select_ef7c0426_esm_js__WEBPACK_IMPORTED_MODULE_3__.S, (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({\n    ref: ref\n  }, baseSelectProps));\n});\nvar StateManagedSelect$1 = StateManagedSelect;\nvar NonceProvider = function (_ref) {\n  var nonce = _ref.nonce,\n    children = _ref.children,\n    cacheKey = _ref.cacheKey;\n  var emotionCache = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)(function () {\n    return (0,_emotion_cache__WEBPACK_IMPORTED_MODULE_5__[\"default\"])({\n      key: cacheKey,\n      nonce: nonce\n    });\n  }, [cacheKey, nonce]);\n  return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_2__.createElement(_emotion_react__WEBPACK_IMPORTED_MODULE_4__.C, {\n    value: emotionCache\n  }, children);\n};\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-select/dist/react-select.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-select/dist/useAsync-c64f5536.esm.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/react-select/dist/useAsync-c64f5536.esm.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   u: () => (/* binding */ useAsync)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/defineProperty */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/defineProperty.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./index-641ee5b8.esm.js */ \"../react-ui/node_modules/react-select/dist/index-641ee5b8.esm.js\");\n\n\n\n\n\n\nvar _excluded = [\"defaultOptions\", \"cacheOptions\", \"loadOptions\", \"options\", \"isLoading\", \"onInputChange\", \"filterOption\"];\nfunction useAsync(_ref) {\n  var _ref$defaultOptions = _ref.defaultOptions,\n    propsDefaultOptions = _ref$defaultOptions === void 0 ? false : _ref$defaultOptions,\n    _ref$cacheOptions = _ref.cacheOptions,\n    cacheOptions = _ref$cacheOptions === void 0 ? false : _ref$cacheOptions,\n    propsLoadOptions = _ref.loadOptions;\n  _ref.options;\n  var _ref$isLoading = _ref.isLoading,\n    propsIsLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,\n    propsOnInputChange = _ref.onInputChange,\n    _ref$filterOption = _ref.filterOption,\n    filterOption = _ref$filterOption === void 0 ? null : _ref$filterOption,\n    restSelectProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(_ref, _excluded);\n  var propsInputValue = restSelectProps.inputValue;\n  var lastRequest = (0,react__WEBPACK_IMPORTED_MODULE_4__.useRef)(undefined);\n  var mounted = (0,react__WEBPACK_IMPORTED_MODULE_4__.useRef)(false);\n  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(Array.isArray(propsDefaultOptions) ? propsDefaultOptions : undefined),\n    _useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState, 2),\n    defaultOptions = _useState2[0],\n    setDefaultOptions = _useState2[1];\n  var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(typeof propsInputValue !== 'undefined' ? propsInputValue : ''),\n    _useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState3, 2),\n    stateInputValue = _useState4[0],\n    setStateInputValue = _useState4[1];\n  var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(propsDefaultOptions === true),\n    _useState6 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState5, 2),\n    isLoading = _useState6[0],\n    setIsLoading = _useState6[1];\n  var _useState7 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(undefined),\n    _useState8 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState7, 2),\n    loadedInputValue = _useState8[0],\n    setLoadedInputValue = _useState8[1];\n  var _useState9 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)([]),\n    _useState10 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState9, 2),\n    loadedOptions = _useState10[0],\n    setLoadedOptions = _useState10[1];\n  var _useState11 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(false),\n    _useState12 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState11, 2),\n    passEmptyOptions = _useState12[0],\n    setPassEmptyOptions = _useState12[1];\n  var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)({}),\n    _useState14 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState13, 2),\n    optionsCache = _useState14[0],\n    setOptionsCache = _useState14[1];\n  var _useState15 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(undefined),\n    _useState16 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState15, 2),\n    prevDefaultOptions = _useState16[0],\n    setPrevDefaultOptions = _useState16[1];\n  var _useState17 = (0,react__WEBPACK_IMPORTED_MODULE_4__.useState)(undefined),\n    _useState18 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_useState17, 2),\n    prevCacheOptions = _useState18[0],\n    setPrevCacheOptions = _useState18[1];\n  if (cacheOptions !== prevCacheOptions) {\n    setOptionsCache({});\n    setPrevCacheOptions(cacheOptions);\n  }\n  if (propsDefaultOptions !== prevDefaultOptions) {\n    setDefaultOptions(Array.isArray(propsDefaultOptions) ? propsDefaultOptions : undefined);\n    setPrevDefaultOptions(propsDefaultOptions);\n  }\n  (0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {\n    mounted.current = true;\n    return function () {\n      mounted.current = false;\n    };\n  }, []);\n  var loadOptions = (0,react__WEBPACK_IMPORTED_MODULE_4__.useCallback)(function (inputValue, callback) {\n    if (!propsLoadOptions) return callback();\n    var loader = propsLoadOptions(inputValue, callback);\n    if (loader && typeof loader.then === 'function') {\n      loader.then(callback, function () {\n        return callback();\n      });\n    }\n  }, [propsLoadOptions]);\n  (0,react__WEBPACK_IMPORTED_MODULE_4__.useEffect)(function () {\n    if (propsDefaultOptions === true) {\n      loadOptions(stateInputValue, function (options) {\n        if (!mounted.current) return;\n        setDefaultOptions(options || []);\n        setIsLoading(!!lastRequest.current);\n      });\n    }\n    // NOTE: this effect is designed to only run when the component mounts,\n    // so we don't want to include any hook dependencies\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n  var onInputChange = (0,react__WEBPACK_IMPORTED_MODULE_4__.useCallback)(function (newValue, actionMeta) {\n    var inputValue = (0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_5__.L)(newValue, actionMeta, propsOnInputChange);\n    if (!inputValue) {\n      lastRequest.current = undefined;\n      setStateInputValue('');\n      setLoadedInputValue('');\n      setLoadedOptions([]);\n      setIsLoading(false);\n      setPassEmptyOptions(false);\n      return;\n    }\n    if (cacheOptions && optionsCache[inputValue]) {\n      setStateInputValue(inputValue);\n      setLoadedInputValue(inputValue);\n      setLoadedOptions(optionsCache[inputValue]);\n      setIsLoading(false);\n      setPassEmptyOptions(false);\n    } else {\n      var request = lastRequest.current = {};\n      setStateInputValue(inputValue);\n      setIsLoading(true);\n      setPassEmptyOptions(!loadedInputValue);\n      loadOptions(inputValue, function (options) {\n        if (!mounted) return;\n        if (request !== lastRequest.current) return;\n        lastRequest.current = undefined;\n        setIsLoading(false);\n        setLoadedInputValue(inputValue);\n        setLoadedOptions(options || []);\n        setPassEmptyOptions(false);\n        setOptionsCache(options ? (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, optionsCache), {}, (0,_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, inputValue, options)) : optionsCache);\n      });\n    }\n  }, [cacheOptions, loadOptions, loadedInputValue, optionsCache, propsOnInputChange]);\n  var options = passEmptyOptions ? [] : stateInputValue && loadedInputValue ? loadedOptions : defaultOptions || [];\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_1__[\"default\"])({}, restSelectProps), {}, {\n    options: options,\n    isLoading: isLoading || propsIsLoading,\n    onInputChange: onInputChange,\n    filterOption: filterOption\n  });\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-select/dist/useAsync-c64f5536.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-select/dist/useCreatable-09aaeb9a.esm.js":
/*!*******************************************************************************!*\
  !*** ../react-ui/node_modules/react-select/dist/useCreatable-09aaeb9a.esm.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   u: () => (/* binding */ useCreatable)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./index-641ee5b8.esm.js */ \"../react-ui/node_modules/react-select/dist/index-641ee5b8.esm.js\");\n/* harmony import */ var _Select_ef7c0426_esm_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Select-ef7c0426.esm.js */ \"../react-ui/node_modules/react-select/dist/Select-ef7c0426.esm.js\");\n\n\n\n\n\n\nvar _excluded = [\"allowCreateWhileLoading\", \"createOptionPosition\", \"formatCreateLabel\", \"isValidNewOption\", \"getNewOptionData\", \"onCreateOption\", \"options\", \"onChange\"];\nvar compareOption = function compareOption() {\n  var inputValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n  var option = arguments.length > 1 ? arguments[1] : undefined;\n  var accessors = arguments.length > 2 ? arguments[2] : undefined;\n  var candidate = String(inputValue).toLowerCase();\n  var optionValue = String(accessors.getOptionValue(option)).toLowerCase();\n  var optionLabel = String(accessors.getOptionLabel(option)).toLowerCase();\n  return optionValue === candidate || optionLabel === candidate;\n};\nvar builtins = {\n  formatCreateLabel: function formatCreateLabel(inputValue) {\n    return \"Create \\\"\".concat(inputValue, \"\\\"\");\n  },\n  isValidNewOption: function isValidNewOption(inputValue, selectValue, selectOptions, accessors) {\n    return !(!inputValue || selectValue.some(function (option) {\n      return compareOption(inputValue, option, accessors);\n    }) || selectOptions.some(function (option) {\n      return compareOption(inputValue, option, accessors);\n    }));\n  },\n  getNewOptionData: function getNewOptionData(inputValue, optionLabel) {\n    return {\n      label: optionLabel,\n      value: inputValue,\n      __isNew__: true\n    };\n  }\n};\nfunction useCreatable(_ref) {\n  var _ref$allowCreateWhile = _ref.allowCreateWhileLoading,\n    allowCreateWhileLoading = _ref$allowCreateWhile === void 0 ? false : _ref$allowCreateWhile,\n    _ref$createOptionPosi = _ref.createOptionPosition,\n    createOptionPosition = _ref$createOptionPosi === void 0 ? 'last' : _ref$createOptionPosi,\n    _ref$formatCreateLabe = _ref.formatCreateLabel,\n    formatCreateLabel = _ref$formatCreateLabe === void 0 ? builtins.formatCreateLabel : _ref$formatCreateLabe,\n    _ref$isValidNewOption = _ref.isValidNewOption,\n    isValidNewOption = _ref$isValidNewOption === void 0 ? builtins.isValidNewOption : _ref$isValidNewOption,\n    _ref$getNewOptionData = _ref.getNewOptionData,\n    getNewOptionData = _ref$getNewOptionData === void 0 ? builtins.getNewOptionData : _ref$getNewOptionData,\n    onCreateOption = _ref.onCreateOption,\n    _ref$options = _ref.options,\n    propsOptions = _ref$options === void 0 ? [] : _ref$options,\n    propsOnChange = _ref.onChange,\n    restSelectProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_ref, _excluded);\n  var _restSelectProps$getO = restSelectProps.getOptionValue,\n    getOptionValue$1 = _restSelectProps$getO === void 0 ? _Select_ef7c0426_esm_js__WEBPACK_IMPORTED_MODULE_5__.g : _restSelectProps$getO,\n    _restSelectProps$getO2 = restSelectProps.getOptionLabel,\n    getOptionLabel$1 = _restSelectProps$getO2 === void 0 ? _Select_ef7c0426_esm_js__WEBPACK_IMPORTED_MODULE_5__.b : _restSelectProps$getO2,\n    inputValue = restSelectProps.inputValue,\n    isLoading = restSelectProps.isLoading,\n    isMulti = restSelectProps.isMulti,\n    value = restSelectProps.value,\n    name = restSelectProps.name;\n  var newOption = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n    return isValidNewOption(inputValue, (0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_4__.H)(value), propsOptions, {\n      getOptionValue: getOptionValue$1,\n      getOptionLabel: getOptionLabel$1\n    }) ? getNewOptionData(inputValue, formatCreateLabel(inputValue)) : undefined;\n  }, [formatCreateLabel, getNewOptionData, getOptionLabel$1, getOptionValue$1, inputValue, isValidNewOption, propsOptions, value]);\n  var options = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(function () {\n    return (allowCreateWhileLoading || !isLoading) && newOption ? createOptionPosition === 'first' ? [newOption].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(propsOptions)) : [].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(propsOptions), [newOption]) : propsOptions;\n  }, [allowCreateWhileLoading, createOptionPosition, isLoading, newOption, propsOptions]);\n  var onChange = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(function (newValue, actionMeta) {\n    if (actionMeta.action !== 'select-option') {\n      return propsOnChange(newValue, actionMeta);\n    }\n    var valueArray = Array.isArray(newValue) ? newValue : [newValue];\n    if (valueArray[valueArray.length - 1] === newOption) {\n      if (onCreateOption) onCreateOption(inputValue);else {\n        var newOptionData = getNewOptionData(inputValue, inputValue);\n        var newActionMeta = {\n          action: 'create-option',\n          name: name,\n          option: newOptionData\n        };\n        propsOnChange((0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_4__.D)(isMulti, [].concat((0,_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])((0,_index_641ee5b8_esm_js__WEBPACK_IMPORTED_MODULE_4__.H)(value)), [newOptionData]), newOptionData), newActionMeta);\n      }\n      return;\n    }\n    propsOnChange(newValue, actionMeta);\n  }, [getNewOptionData, inputValue, isMulti, name, newOption, onCreateOption, propsOnChange, value]);\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, restSelectProps), {}, {\n    options: options,\n    onChange: onChange\n  });\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-select/dist/useCreatable-09aaeb9a.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-select/dist/useStateManager-7e1e8489.esm.js":
/*!**********************************************************************************!*\
  !*** ../react-ui/node_modules/react-select/dist/useStateManager-7e1e8489.esm.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   u: () => (/* binding */ useStateManager)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectSpread2 */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectSpread2.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/slicedToArray */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutProperties */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n\n\n\n\nvar _excluded = [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\", \"inputValue\", \"menuIsOpen\", \"onChange\", \"onInputChange\", \"onMenuClose\", \"onMenuOpen\", \"value\"];\nfunction useStateManager(_ref) {\n  var _ref$defaultInputValu = _ref.defaultInputValue,\n    defaultInputValue = _ref$defaultInputValu === void 0 ? '' : _ref$defaultInputValu,\n    _ref$defaultMenuIsOpe = _ref.defaultMenuIsOpen,\n    defaultMenuIsOpen = _ref$defaultMenuIsOpe === void 0 ? false : _ref$defaultMenuIsOpe,\n    _ref$defaultValue = _ref.defaultValue,\n    defaultValue = _ref$defaultValue === void 0 ? null : _ref$defaultValue,\n    propsInputValue = _ref.inputValue,\n    propsMenuIsOpen = _ref.menuIsOpen,\n    propsOnChange = _ref.onChange,\n    propsOnInputChange = _ref.onInputChange,\n    propsOnMenuClose = _ref.onMenuClose,\n    propsOnMenuOpen = _ref.onMenuOpen,\n    propsValue = _ref.value,\n    restSelectProps = (0,_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(_ref, _excluded);\n  var _useState = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(propsInputValue !== undefined ? propsInputValue : defaultInputValue),\n    _useState2 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState, 2),\n    stateInputValue = _useState2[0],\n    setStateInputValue = _useState2[1];\n  var _useState3 = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(propsMenuIsOpen !== undefined ? propsMenuIsOpen : defaultMenuIsOpen),\n    _useState4 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState3, 2),\n    stateMenuIsOpen = _useState4[0],\n    setStateMenuIsOpen = _useState4[1];\n  var _useState5 = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(propsValue !== undefined ? propsValue : defaultValue),\n    _useState6 = (0,_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_useState5, 2),\n    stateValue = _useState6[0],\n    setStateValue = _useState6[1];\n  var onChange = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(function (value, actionMeta) {\n    if (typeof propsOnChange === 'function') {\n      propsOnChange(value, actionMeta);\n    }\n    setStateValue(value);\n  }, [propsOnChange]);\n  var onInputChange = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(function (value, actionMeta) {\n    var newValue;\n    if (typeof propsOnInputChange === 'function') {\n      newValue = propsOnInputChange(value, actionMeta);\n    }\n    setStateInputValue(newValue !== undefined ? newValue : value);\n  }, [propsOnInputChange]);\n  var onMenuOpen = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(function () {\n    if (typeof propsOnMenuOpen === 'function') {\n      propsOnMenuOpen();\n    }\n    setStateMenuIsOpen(true);\n  }, [propsOnMenuOpen]);\n  var onMenuClose = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(function () {\n    if (typeof propsOnMenuClose === 'function') {\n      propsOnMenuClose();\n    }\n    setStateMenuIsOpen(false);\n  }, [propsOnMenuClose]);\n  var inputValue = propsInputValue !== undefined ? propsInputValue : stateInputValue;\n  var menuIsOpen = propsMenuIsOpen !== undefined ? propsMenuIsOpen : stateMenuIsOpen;\n  var value = propsValue !== undefined ? propsValue : stateValue;\n  return (0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])((0,_babel_runtime_helpers_esm_objectSpread2__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, restSelectProps), {}, {\n    inputValue: inputValue,\n    menuIsOpen: menuIsOpen,\n    onChange: onChange,\n    onInputChange: onInputChange,\n    onMenuClose: onMenuClose,\n    onMenuOpen: onMenuOpen,\n    value: value\n  });\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-select/dist/useStateManager-7e1e8489.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-simple-code-editor/lib/index.js":
/*!**********************************************************************!*\
  !*** ../react-ui/node_modules/react-simple-code-editor/lib/index.js ***!
  \**********************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("{\n\nvar __assign = this && this.__assign || function () {\n  __assign = Object.assign || function (t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n      s = arguments[i];\n      for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n    }\n    return t;\n  };\n  return __assign.apply(this, arguments);\n};\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n    desc = {\n      enumerable: true,\n      get: function () {\n        return m[k];\n      }\n    };\n  }\n  Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n  Object.defineProperty(o, \"default\", {\n    enumerable: true,\n    value: v\n  });\n} : function (o, v) {\n  o[\"default\"] = v;\n});\nvar __importStar = this && this.__importStar || function (mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n};\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\nObject.defineProperty(exports, \"__esModule\", ({\n  value: true\n}));\nvar React = __importStar(__webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\"));\nvar KEYCODE_Y = 89;\nvar KEYCODE_Z = 90;\nvar KEYCODE_M = 77;\nvar KEYCODE_PARENS = 57;\nvar KEYCODE_BRACKETS = 219;\nvar KEYCODE_QUOTE = 222;\nvar KEYCODE_BACK_QUOTE = 192;\nvar HISTORY_LIMIT = 100;\nvar HISTORY_TIME_GAP = 3000;\nvar isWindows = typeof window !== 'undefined' && 'navigator' in window && /Win/i.test(navigator.platform);\nvar isMacLike = typeof window !== 'undefined' && 'navigator' in window && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\nvar className = 'npm__react-simple-code-editor__textarea';\nvar cssText = /* CSS */\"\\n/**\\n * Reset the text fill color so that placeholder is visible\\n */\\n.\".concat(className, \":empty {\\n  -webkit-text-fill-color: inherit !important;\\n}\\n\\n/**\\n * Hack to apply on some CSS on IE10 and IE11\\n */\\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\\n  /**\\n    * IE doesn't support '-webkit-text-fill-color'\\n    * So we use 'color: transparent' to make the text transparent on IE\\n    * Unlike other browsers, it doesn't affect caret color in IE\\n    */\\n  .\").concat(className, \" {\\n    color: transparent !important;\\n  }\\n\\n  .\").concat(className, \"::selection {\\n    background-color: #accef7 !important;\\n    color: transparent !important;\\n  }\\n}\\n\");\nvar Editor = React.forwardRef(function Editor(props, ref) {\n  var autoFocus = props.autoFocus,\n    disabled = props.disabled,\n    form = props.form,\n    highlight = props.highlight,\n    _a = props.ignoreTabKey,\n    ignoreTabKey = _a === void 0 ? false : _a,\n    _b = props.insertSpaces,\n    insertSpaces = _b === void 0 ? true : _b,\n    maxLength = props.maxLength,\n    minLength = props.minLength,\n    name = props.name,\n    onBlur = props.onBlur,\n    onClick = props.onClick,\n    onFocus = props.onFocus,\n    onKeyDown = props.onKeyDown,\n    onKeyUp = props.onKeyUp,\n    onValueChange = props.onValueChange,\n    _c = props.padding,\n    padding = _c === void 0 ? 0 : _c,\n    placeholder = props.placeholder,\n    preClassName = props.preClassName,\n    readOnly = props.readOnly,\n    required = props.required,\n    style = props.style,\n    _d = props.tabSize,\n    tabSize = _d === void 0 ? 2 : _d,\n    textareaClassName = props.textareaClassName,\n    textareaId = props.textareaId,\n    value = props.value,\n    rest = __rest(props, [\"autoFocus\", \"disabled\", \"form\", \"highlight\", \"ignoreTabKey\", \"insertSpaces\", \"maxLength\", \"minLength\", \"name\", \"onBlur\", \"onClick\", \"onFocus\", \"onKeyDown\", \"onKeyUp\", \"onValueChange\", \"padding\", \"placeholder\", \"preClassName\", \"readOnly\", \"required\", \"style\", \"tabSize\", \"textareaClassName\", \"textareaId\", \"value\"]);\n  var historyRef = React.useRef({\n    stack: [],\n    offset: -1\n  });\n  var inputRef = React.useRef(null);\n  var _e = React.useState(true),\n    capture = _e[0],\n    setCapture = _e[1];\n  var contentStyle = {\n    paddingTop: typeof padding === 'object' ? padding.top : padding,\n    paddingRight: typeof padding === 'object' ? padding.right : padding,\n    paddingBottom: typeof padding === 'object' ? padding.bottom : padding,\n    paddingLeft: typeof padding === 'object' ? padding.left : padding\n  };\n  var highlighted = highlight(value);\n  var getLines = function (text, position) {\n    return text.substring(0, position).split('\\n');\n  };\n  var recordChange = React.useCallback(function (record, overwrite) {\n    var _a, _b, _c;\n    if (overwrite === void 0) {\n      overwrite = false;\n    }\n    var _d = historyRef.current,\n      stack = _d.stack,\n      offset = _d.offset;\n    if (stack.length && offset > -1) {\n      // When something updates, drop the redo operations\n      historyRef.current.stack = stack.slice(0, offset + 1);\n      // Limit the number of operations to 100\n      var count = historyRef.current.stack.length;\n      if (count > HISTORY_LIMIT) {\n        var extras = count - HISTORY_LIMIT;\n        historyRef.current.stack = stack.slice(extras, count);\n        historyRef.current.offset = Math.max(historyRef.current.offset - extras, 0);\n      }\n    }\n    var timestamp = Date.now();\n    if (overwrite) {\n      var last = historyRef.current.stack[historyRef.current.offset];\n      if (last && timestamp - last.timestamp < HISTORY_TIME_GAP) {\n        // A previous entry exists and was in short interval\n        // Match the last word in the line\n        var re = /[^a-z0-9]([a-z0-9]+)$/i;\n        // Get the previous line\n        var previous = (_a = getLines(last.value, last.selectionStart).pop()) === null || _a === void 0 ? void 0 : _a.match(re);\n        // Get the current line\n        var current = (_b = getLines(record.value, record.selectionStart).pop()) === null || _b === void 0 ? void 0 : _b.match(re);\n        if ((previous === null || previous === void 0 ? void 0 : previous[1]) && ((_c = current === null || current === void 0 ? void 0 : current[1]) === null || _c === void 0 ? void 0 : _c.startsWith(previous[1]))) {\n          // The last word of the previous line and current line match\n          // Overwrite previous entry so that undo will remove whole word\n          historyRef.current.stack[historyRef.current.offset] = __assign(__assign({}, record), {\n            timestamp: timestamp\n          });\n          return;\n        }\n      }\n    }\n    // Add the new operation to the stack\n    historyRef.current.stack.push(__assign(__assign({}, record), {\n      timestamp: timestamp\n    }));\n    historyRef.current.offset++;\n  }, []);\n  var recordCurrentState = React.useCallback(function () {\n    var input = inputRef.current;\n    if (!input) return;\n    // Save current state of the input\n    var value = input.value,\n      selectionStart = input.selectionStart,\n      selectionEnd = input.selectionEnd;\n    recordChange({\n      value: value,\n      selectionStart: selectionStart,\n      selectionEnd: selectionEnd\n    });\n  }, [recordChange]);\n  var updateInput = function (record) {\n    var input = inputRef.current;\n    if (!input) return;\n    // Update values and selection state\n    input.value = record.value;\n    input.selectionStart = record.selectionStart;\n    input.selectionEnd = record.selectionEnd;\n    onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(record.value);\n  };\n  var applyEdits = function (record) {\n    // Save last selection state\n    var input = inputRef.current;\n    var last = historyRef.current.stack[historyRef.current.offset];\n    if (last && input) {\n      historyRef.current.stack[historyRef.current.offset] = __assign(__assign({}, last), {\n        selectionStart: input.selectionStart,\n        selectionEnd: input.selectionEnd\n      });\n    }\n    // Save the changes\n    recordChange(record);\n    updateInput(record);\n  };\n  var undoEdit = function () {\n    var _a = historyRef.current,\n      stack = _a.stack,\n      offset = _a.offset;\n    // Get the previous edit\n    var record = stack[offset - 1];\n    if (record) {\n      // Apply the changes and update the offset\n      updateInput(record);\n      historyRef.current.offset = Math.max(offset - 1, 0);\n    }\n  };\n  var redoEdit = function () {\n    var _a = historyRef.current,\n      stack = _a.stack,\n      offset = _a.offset;\n    // Get the next edit\n    var record = stack[offset + 1];\n    if (record) {\n      // Apply the changes and update the offset\n      updateInput(record);\n      historyRef.current.offset = Math.min(offset + 1, stack.length - 1);\n    }\n  };\n  var handleKeyDown = function (e) {\n    if (onKeyDown) {\n      onKeyDown(e);\n      if (e.defaultPrevented) {\n        return;\n      }\n    }\n    if (e.key === 'Escape') {\n      e.currentTarget.blur();\n    }\n    var _a = e.currentTarget,\n      value = _a.value,\n      selectionStart = _a.selectionStart,\n      selectionEnd = _a.selectionEnd;\n    var tabCharacter = (insertSpaces ? ' ' : '\\t').repeat(tabSize);\n    if (e.key === 'Tab' && !ignoreTabKey && capture) {\n      // Prevent focus change\n      e.preventDefault();\n      if (e.shiftKey) {\n        // Unindent selected lines\n        var linesBeforeCaret = getLines(value, selectionStart);\n        var startLine_1 = linesBeforeCaret.length - 1;\n        var endLine_1 = getLines(value, selectionEnd).length - 1;\n        var nextValue = value.split('\\n').map(function (line, i) {\n          if (i >= startLine_1 && i <= endLine_1 && line.startsWith(tabCharacter)) {\n            return line.substring(tabCharacter.length);\n          }\n          return line;\n        }).join('\\n');\n        if (value !== nextValue) {\n          var startLineText = linesBeforeCaret[startLine_1];\n          applyEdits({\n            value: nextValue,\n            // Move the start cursor if first line in selection was modified\n            // It was modified only if it started with a tab\n            selectionStart: (startLineText === null || startLineText === void 0 ? void 0 : startLineText.startsWith(tabCharacter)) ? selectionStart - tabCharacter.length : selectionStart,\n            // Move the end cursor by total number of characters removed\n            selectionEnd: selectionEnd - (value.length - nextValue.length)\n          });\n        }\n      } else if (selectionStart !== selectionEnd) {\n        // Indent selected lines\n        var linesBeforeCaret = getLines(value, selectionStart);\n        var startLine_2 = linesBeforeCaret.length - 1;\n        var endLine_2 = getLines(value, selectionEnd).length - 1;\n        var startLineText = linesBeforeCaret[startLine_2];\n        applyEdits({\n          value: value.split('\\n').map(function (line, i) {\n            if (i >= startLine_2 && i <= endLine_2) {\n              return tabCharacter + line;\n            }\n            return line;\n          }).join('\\n'),\n          // Move the start cursor by number of characters added in first line of selection\n          // Don't move it if it there was no text before cursor\n          selectionStart: startLineText && /\\S/.test(startLineText) ? selectionStart + tabCharacter.length : selectionStart,\n          // Move the end cursor by total number of characters added\n          selectionEnd: selectionEnd + tabCharacter.length * (endLine_2 - startLine_2 + 1)\n        });\n      } else {\n        var updatedSelection = selectionStart + tabCharacter.length;\n        applyEdits({\n          // Insert tab character at caret\n          value: value.substring(0, selectionStart) + tabCharacter + value.substring(selectionEnd),\n          // Update caret position\n          selectionStart: updatedSelection,\n          selectionEnd: updatedSelection\n        });\n      }\n    } else if (e.key === 'Backspace') {\n      var hasSelection = selectionStart !== selectionEnd;\n      var textBeforeCaret = value.substring(0, selectionStart);\n      if (textBeforeCaret.endsWith(tabCharacter) && !hasSelection) {\n        // Prevent default delete behaviour\n        e.preventDefault();\n        var updatedSelection = selectionStart - tabCharacter.length;\n        applyEdits({\n          // Remove tab character at caret\n          value: value.substring(0, selectionStart - tabCharacter.length) + value.substring(selectionEnd),\n          // Update caret position\n          selectionStart: updatedSelection,\n          selectionEnd: updatedSelection\n        });\n      }\n    } else if (e.key === 'Enter') {\n      // Ignore selections\n      if (selectionStart === selectionEnd) {\n        // Get the current line\n        var line = getLines(value, selectionStart).pop();\n        var matches = line === null || line === void 0 ? void 0 : line.match(/^\\s+/);\n        if (matches === null || matches === void 0 ? void 0 : matches[0]) {\n          e.preventDefault();\n          // Preserve indentation on inserting a new line\n          var indent = '\\n' + matches[0];\n          var updatedSelection = selectionStart + indent.length;\n          applyEdits({\n            // Insert indentation character at caret\n            value: value.substring(0, selectionStart) + indent + value.substring(selectionEnd),\n            // Update caret position\n            selectionStart: updatedSelection,\n            selectionEnd: updatedSelection\n          });\n        }\n      }\n    } else if (e.keyCode === KEYCODE_PARENS || e.keyCode === KEYCODE_BRACKETS || e.keyCode === KEYCODE_QUOTE || e.keyCode === KEYCODE_BACK_QUOTE) {\n      var chars = void 0;\n      if (e.keyCode === KEYCODE_PARENS && e.shiftKey) {\n        chars = ['(', ')'];\n      } else if (e.keyCode === KEYCODE_BRACKETS) {\n        if (e.shiftKey) {\n          chars = ['{', '}'];\n        } else {\n          chars = ['[', ']'];\n        }\n      } else if (e.keyCode === KEYCODE_QUOTE) {\n        if (e.shiftKey) {\n          chars = ['\"', '\"'];\n        } else {\n          chars = [\"'\", \"'\"];\n        }\n      } else if (e.keyCode === KEYCODE_BACK_QUOTE && !e.shiftKey) {\n        chars = ['`', '`'];\n      }\n      // If text is selected, wrap them in the characters\n      if (selectionStart !== selectionEnd && chars) {\n        e.preventDefault();\n        applyEdits({\n          value: value.substring(0, selectionStart) + chars[0] + value.substring(selectionStart, selectionEnd) + chars[1] + value.substring(selectionEnd),\n          // Update caret position\n          selectionStart: selectionStart,\n          selectionEnd: selectionEnd + 2\n        });\n      }\n    } else if ((isMacLike ?\n    // Trigger undo with ⌘+Z on Mac\n    e.metaKey && e.keyCode === KEYCODE_Z :\n    // Trigger undo with Ctrl+Z on other platforms\n    e.ctrlKey && e.keyCode === KEYCODE_Z) && !e.shiftKey && !e.altKey) {\n      e.preventDefault();\n      undoEdit();\n    } else if ((isMacLike ?\n    // Trigger redo with ⌘+Shift+Z on Mac\n    e.metaKey && e.keyCode === KEYCODE_Z && e.shiftKey : isWindows ?\n    // Trigger redo with Ctrl+Y on Windows\n    e.ctrlKey && e.keyCode === KEYCODE_Y :\n    // Trigger redo with Ctrl+Shift+Z on other platforms\n    e.ctrlKey && e.keyCode === KEYCODE_Z && e.shiftKey) && !e.altKey) {\n      e.preventDefault();\n      redoEdit();\n    } else if (e.keyCode === KEYCODE_M && e.ctrlKey && (isMacLike ? e.shiftKey : true)) {\n      e.preventDefault();\n      // Toggle capturing tab key so users can focus away\n      setCapture(function (prev) {\n        return !prev;\n      });\n    }\n  };\n  var handleChange = function (e) {\n    var _a = e.currentTarget,\n      value = _a.value,\n      selectionStart = _a.selectionStart,\n      selectionEnd = _a.selectionEnd;\n    recordChange({\n      value: value,\n      selectionStart: selectionStart,\n      selectionEnd: selectionEnd\n    }, true);\n    onValueChange(value);\n  };\n  React.useEffect(function () {\n    recordCurrentState();\n  }, [recordCurrentState]);\n  React.useImperativeHandle(ref, function () {\n    return {\n      get session() {\n        return {\n          history: historyRef.current\n        };\n      },\n      set session(session) {\n        historyRef.current = session.history;\n      }\n    };\n  }, []);\n  return React.createElement(\"div\", __assign({}, rest, {\n    style: __assign(__assign({}, styles.container), style)\n  }), React.createElement(\"pre\", __assign({\n    className: preClassName,\n    \"aria-hidden\": \"true\",\n    style: __assign(__assign(__assign({}, styles.editor), styles.highlight), contentStyle)\n  }, typeof highlighted === 'string' ? {\n    dangerouslySetInnerHTML: {\n      __html: highlighted + '<br />'\n    }\n  } : {\n    children: highlighted\n  })), React.createElement(\"textarea\", {\n    ref: function (c) {\n      return inputRef.current = c;\n    },\n    style: __assign(__assign(__assign({}, styles.editor), styles.textarea), contentStyle),\n    className: className + (textareaClassName ? \" \".concat(textareaClassName) : ''),\n    id: textareaId,\n    value: value,\n    onChange: handleChange,\n    onKeyDown: handleKeyDown,\n    onClick: onClick,\n    onKeyUp: onKeyUp,\n    onFocus: onFocus,\n    onBlur: onBlur,\n    disabled: disabled,\n    form: form,\n    maxLength: maxLength,\n    minLength: minLength,\n    name: name,\n    placeholder: placeholder,\n    readOnly: readOnly,\n    required: required,\n    autoFocus: autoFocus,\n    autoCapitalize: \"off\",\n    autoComplete: \"off\",\n    autoCorrect: \"off\",\n    spellCheck: false,\n    \"data-gramm\": false\n  }), React.createElement(\"style\", {\n    dangerouslySetInnerHTML: {\n      __html: cssText\n    }\n  }));\n});\nvar styles = {\n  container: {\n    position: 'relative',\n    textAlign: 'left',\n    boxSizing: 'border-box',\n    padding: 0,\n    overflow: 'hidden'\n  },\n  textarea: {\n    position: 'absolute',\n    top: 0,\n    left: 0,\n    height: '100%',\n    width: '100%',\n    resize: 'none',\n    color: 'inherit',\n    overflow: 'hidden',\n    MozOsxFontSmoothing: 'grayscale',\n    WebkitFontSmoothing: 'antialiased',\n    WebkitTextFillColor: 'transparent'\n  },\n  highlight: {\n    position: 'relative',\n    pointerEvents: 'none'\n  },\n  editor: {\n    margin: 0,\n    border: 0,\n    background: 'none',\n    boxSizing: 'inherit',\n    display: 'inherit',\n    fontFamily: 'inherit',\n    fontSize: 'inherit',\n    fontStyle: 'inherit',\n    fontVariantLigatures: 'inherit',\n    fontWeight: 'inherit',\n    letterSpacing: 'inherit',\n    lineHeight: 'inherit',\n    tabSize: 'inherit',\n    textIndent: 'inherit',\n    textRendering: 'inherit',\n    textTransform: 'inherit',\n    whiteSpace: 'pre-wrap',\n    wordBreak: 'keep-all',\n    overflowWrap: 'break-word'\n  }\n};\nexports[\"default\"] = Editor;\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-simple-code-editor/lib/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-tag-input/dist/index.js":
/*!**************************************************************!*\
  !*** ../react-ui/node_modules/react-tag-input/dist/index.js ***!
  \**************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   KEYS: () => (/* binding */ KEYS),\n/* harmony export */   SEPARATORS: () => (/* binding */ SEPARATORS),\n/* harmony export */   WithContext: () => (/* binding */ WithContext),\n/* harmony export */   WithOutContext: () => (/* binding */ ReactTagsWrapper)\n/* harmony export */ });\n/* harmony import */ var react_dnd__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-dnd */ \"../react-ui/node_modules/react-dnd/dist/core/DndProvider.js\");\n/* harmony import */ var react_dnd_html5_backend__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dnd-html5-backend */ \"../react-ui/node_modules/react-dnd-html5-backend/dist/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react_dnd__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-dnd */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrag/useDrag.js\");\n/* harmony import */ var react_dnd__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-dnd */ \"../react-ui/node_modules/react-dnd/dist/hooks/useDrop/useDrop.js\");\n/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ \"../react-ui/node_modules/react/jsx-runtime.js\");\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __commonJS = (cb, mod) => function __require() {\n  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = {\n    exports: {}\n  }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n      get: () => from[key],\n      enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n    });\n  }\n  return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n// If the importer is in node compatibility mode or this is not an ESM\n// file that has been converted to a CommonJS file using a Babel-\n// compatible transform (i.e. \"__esModule\" has not been set), then set\n// \"default\" to the CommonJS \"module.exports\" for node compatibility.\nisNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n  value: mod,\n  enumerable: true\n}) : target, mod));\n\n// node_modules/classnames/index.js\nvar require_classnames = __commonJS({\n  \"node_modules/classnames/index.js\"(exports2, module2) {\n    (function () {\n      \"use strict\";\n\n      var hasOwn = {}.hasOwnProperty;\n      var nativeCodeString = \"[native code]\";\n      function classNames() {\n        var classes = [];\n        for (var i = 0; i < arguments.length; i++) {\n          var arg = arguments[i];\n          if (!arg) continue;\n          var argType = typeof arg;\n          if (argType === \"string\" || argType === \"number\") {\n            classes.push(arg);\n          } else if (Array.isArray(arg)) {\n            if (arg.length) {\n              var inner = classNames.apply(null, arg);\n              if (inner) {\n                classes.push(inner);\n              }\n            }\n          } else if (argType === \"object\") {\n            if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes(\"[native code]\")) {\n              classes.push(arg.toString());\n              continue;\n            }\n            for (var key in arg) {\n              if (hasOwn.call(arg, key) && arg[key]) {\n                classes.push(key);\n              }\n            }\n          }\n        }\n        return classes.join(\" \");\n      }\n      if (typeof module2 !== \"undefined\" && module2.exports) {\n        classNames.default = classNames;\n        module2.exports = classNames;\n      } else if (typeof define === \"function\" && typeof define.amd === \"object\" && define.amd) {\n        define(\"classnames\", [], function () {\n          return classNames;\n        });\n      } else {\n        window.classNames = classNames;\n      }\n    })();\n  }\n});\n\n// src/index.tsx\n\n\n\n// src/components/SingleTag.tsx\nvar import_classnames = __toESM(require_classnames(), 1);\n\n\n\n// node_modules/lodash-es/_freeGlobal.js\nvar freeGlobal = typeof global == \"object\" && global && global.Object === Object && global;\nvar freeGlobal_default = freeGlobal;\n\n// node_modules/lodash-es/_root.js\nvar freeSelf = typeof self == \"object\" && self && self.Object === Object && self;\nvar root = freeGlobal_default || freeSelf || Function(\"return this\")();\nvar root_default = root;\n\n// node_modules/lodash-es/_Symbol.js\nvar Symbol2 = root_default.Symbol;\nvar Symbol_default = Symbol2;\n\n// node_modules/lodash-es/_getRawTag.js\nvar objectProto = Object.prototype;\nvar hasOwnProperty = objectProto.hasOwnProperty;\nvar nativeObjectToString = objectProto.toString;\nvar symToStringTag = Symbol_default ? Symbol_default.toStringTag : void 0;\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n    tag = value[symToStringTag];\n  try {\n    value[symToStringTag] = void 0;\n    var unmasked = true;\n  } catch (e) {}\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\nvar getRawTag_default = getRawTag;\n\n// node_modules/lodash-es/_objectToString.js\nvar objectProto2 = Object.prototype;\nvar nativeObjectToString2 = objectProto2.toString;\nfunction objectToString(value) {\n  return nativeObjectToString2.call(value);\n}\nvar objectToString_default = objectToString;\n\n// node_modules/lodash-es/_baseGetTag.js\nvar nullTag = \"[object Null]\";\nvar undefinedTag = \"[object Undefined]\";\nvar symToStringTag2 = Symbol_default ? Symbol_default.toStringTag : void 0;\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === void 0 ? undefinedTag : nullTag;\n  }\n  return symToStringTag2 && symToStringTag2 in Object(value) ? getRawTag_default(value) : objectToString_default(value);\n}\nvar baseGetTag_default = baseGetTag;\n\n// node_modules/lodash-es/isObjectLike.js\nfunction isObjectLike(value) {\n  return value != null && typeof value == \"object\";\n}\nvar isObjectLike_default = isObjectLike;\n\n// node_modules/lodash-es/isSymbol.js\nvar symbolTag = \"[object Symbol]\";\nfunction isSymbol(value) {\n  return typeof value == \"symbol\" || isObjectLike_default(value) && baseGetTag_default(value) == symbolTag;\n}\nvar isSymbol_default = isSymbol;\n\n// node_modules/lodash-es/_arrayMap.js\nfunction arrayMap(array, iteratee) {\n  var index = -1,\n    length = array == null ? 0 : array.length,\n    result = Array(length);\n  while (++index < length) {\n    result[index] = iteratee(array[index], index, array);\n  }\n  return result;\n}\nvar arrayMap_default = arrayMap;\n\n// node_modules/lodash-es/isArray.js\nvar isArray = Array.isArray;\nvar isArray_default = isArray;\n\n// node_modules/lodash-es/_baseToString.js\nvar INFINITY = 1 / 0;\nvar symbolProto = Symbol_default ? Symbol_default.prototype : void 0;\nvar symbolToString = symbolProto ? symbolProto.toString : void 0;\nfunction baseToString(value) {\n  if (typeof value == \"string\") {\n    return value;\n  }\n  if (isArray_default(value)) {\n    return arrayMap_default(value, baseToString) + \"\";\n  }\n  if (isSymbol_default(value)) {\n    return symbolToString ? symbolToString.call(value) : \"\";\n  }\n  var result = value + \"\";\n  return result == \"0\" && 1 / value == -INFINITY ? \"-0\" : result;\n}\nvar baseToString_default = baseToString;\n\n// node_modules/lodash-es/isObject.js\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == \"object\" || type == \"function\");\n}\nvar isObject_default = isObject;\n\n// node_modules/lodash-es/isFunction.js\nvar asyncTag = \"[object AsyncFunction]\";\nvar funcTag = \"[object Function]\";\nvar genTag = \"[object GeneratorFunction]\";\nvar proxyTag = \"[object Proxy]\";\nfunction isFunction(value) {\n  if (!isObject_default(value)) {\n    return false;\n  }\n  var tag = baseGetTag_default(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\nvar isFunction_default = isFunction;\n\n// node_modules/lodash-es/_coreJsData.js\nvar coreJsData = root_default[\"__core-js_shared__\"];\nvar coreJsData_default = coreJsData;\n\n// node_modules/lodash-es/_isMasked.js\nvar maskSrcKey = function () {\n  var uid = /[^.]+$/.exec(coreJsData_default && coreJsData_default.keys && coreJsData_default.keys.IE_PROTO || \"\");\n  return uid ? \"Symbol(src)_1.\" + uid : \"\";\n}();\nfunction isMasked(func) {\n  return !!maskSrcKey && maskSrcKey in func;\n}\nvar isMasked_default = isMasked;\n\n// node_modules/lodash-es/_toSource.js\nvar funcProto = Function.prototype;\nvar funcToString = funcProto.toString;\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return func + \"\";\n    } catch (e) {}\n  }\n  return \"\";\n}\nvar toSource_default = toSource;\n\n// node_modules/lodash-es/_baseIsNative.js\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\nvar funcProto2 = Function.prototype;\nvar objectProto3 = Object.prototype;\nvar funcToString2 = funcProto2.toString;\nvar hasOwnProperty2 = objectProto3.hasOwnProperty;\nvar reIsNative = RegExp(\"^\" + funcToString2.call(hasOwnProperty2).replace(reRegExpChar, \"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, \"$1.*?\") + \"$\");\nfunction baseIsNative(value) {\n  if (!isObject_default(value) || isMasked_default(value)) {\n    return false;\n  }\n  var pattern = isFunction_default(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource_default(value));\n}\nvar baseIsNative_default = baseIsNative;\n\n// node_modules/lodash-es/_getValue.js\nfunction getValue(object, key) {\n  return object == null ? void 0 : object[key];\n}\nvar getValue_default = getValue;\n\n// node_modules/lodash-es/_getNative.js\nfunction getNative(object, key) {\n  var value = getValue_default(object, key);\n  return baseIsNative_default(value) ? value : void 0;\n}\nvar getNative_default = getNative;\n\n// node_modules/lodash-es/_WeakMap.js\nvar WeakMap = getNative_default(root_default, \"WeakMap\");\nvar WeakMap_default = WeakMap;\n\n// node_modules/lodash-es/noop.js\nfunction noop() {}\nvar noop_default = noop;\n\n// node_modules/lodash-es/_baseFindIndex.js\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n  var length = array.length,\n    index = fromIndex + (fromRight ? 1 : -1);\n  while (fromRight ? index-- : ++index < length) {\n    if (predicate(array[index], index, array)) {\n      return index;\n    }\n  }\n  return -1;\n}\nvar baseFindIndex_default = baseFindIndex;\n\n// node_modules/lodash-es/_baseIsNaN.js\nfunction baseIsNaN(value) {\n  return value !== value;\n}\nvar baseIsNaN_default = baseIsNaN;\n\n// node_modules/lodash-es/_strictIndexOf.js\nfunction strictIndexOf(array, value, fromIndex) {\n  var index = fromIndex - 1,\n    length = array.length;\n  while (++index < length) {\n    if (array[index] === value) {\n      return index;\n    }\n  }\n  return -1;\n}\nvar strictIndexOf_default = strictIndexOf;\n\n// node_modules/lodash-es/_baseIndexOf.js\nfunction baseIndexOf(array, value, fromIndex) {\n  return value === value ? strictIndexOf_default(array, value, fromIndex) : baseFindIndex_default(array, baseIsNaN_default, fromIndex);\n}\nvar baseIndexOf_default = baseIndexOf;\n\n// node_modules/lodash-es/_arrayIncludes.js\nfunction arrayIncludes(array, value) {\n  var length = array == null ? 0 : array.length;\n  return !!length && baseIndexOf_default(array, value, 0) > -1;\n}\nvar arrayIncludes_default = arrayIncludes;\n\n// node_modules/lodash-es/_isIndex.js\nvar MAX_SAFE_INTEGER = 9007199254740991;\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n  return !!length && (type == \"number\" || type != \"symbol\" && reIsUint.test(value)) && value > -1 && value % 1 == 0 && value < length;\n}\nvar isIndex_default = isIndex;\n\n// node_modules/lodash-es/eq.js\nfunction eq(value, other) {\n  return value === other || value !== value && other !== other;\n}\nvar eq_default = eq;\n\n// node_modules/lodash-es/isLength.js\nvar MAX_SAFE_INTEGER2 = 9007199254740991;\nfunction isLength(value) {\n  return typeof value == \"number\" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER2;\n}\nvar isLength_default = isLength;\n\n// node_modules/lodash-es/isArrayLike.js\nfunction isArrayLike(value) {\n  return value != null && isLength_default(value.length) && !isFunction_default(value);\n}\nvar isArrayLike_default = isArrayLike;\n\n// node_modules/lodash-es/_isPrototype.js\nvar objectProto4 = Object.prototype;\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n    proto = typeof Ctor == \"function\" && Ctor.prototype || objectProto4;\n  return value === proto;\n}\nvar isPrototype_default = isPrototype;\n\n// node_modules/lodash-es/_baseTimes.js\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n    result = Array(n);\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\nvar baseTimes_default = baseTimes;\n\n// node_modules/lodash-es/_baseIsArguments.js\nvar argsTag = \"[object Arguments]\";\nfunction baseIsArguments(value) {\n  return isObjectLike_default(value) && baseGetTag_default(value) == argsTag;\n}\nvar baseIsArguments_default = baseIsArguments;\n\n// node_modules/lodash-es/isArguments.js\nvar objectProto5 = Object.prototype;\nvar hasOwnProperty3 = objectProto5.hasOwnProperty;\nvar propertyIsEnumerable = objectProto5.propertyIsEnumerable;\nvar isArguments = baseIsArguments_default(/* @__PURE__ */function () {\n  return arguments;\n}()) ? baseIsArguments_default : function (value) {\n  return isObjectLike_default(value) && hasOwnProperty3.call(value, \"callee\") && !propertyIsEnumerable.call(value, \"callee\");\n};\nvar isArguments_default = isArguments;\n\n// node_modules/lodash-es/stubFalse.js\nfunction stubFalse() {\n  return false;\n}\nvar stubFalse_default = stubFalse;\n\n// node_modules/lodash-es/isBuffer.js\nvar freeExports = typeof exports == \"object\" && exports && !exports.nodeType && exports;\nvar freeModule = freeExports && typeof module == \"object\" && module && !module.nodeType && module;\nvar moduleExports = freeModule && freeModule.exports === freeExports;\nvar Buffer2 = moduleExports ? root_default.Buffer : void 0;\nvar nativeIsBuffer = Buffer2 ? Buffer2.isBuffer : void 0;\nvar isBuffer = nativeIsBuffer || stubFalse_default;\nvar isBuffer_default = isBuffer;\n\n// node_modules/lodash-es/_baseIsTypedArray.js\nvar argsTag2 = \"[object Arguments]\";\nvar arrayTag = \"[object Array]\";\nvar boolTag = \"[object Boolean]\";\nvar dateTag = \"[object Date]\";\nvar errorTag = \"[object Error]\";\nvar funcTag2 = \"[object Function]\";\nvar mapTag = \"[object Map]\";\nvar numberTag = \"[object Number]\";\nvar objectTag = \"[object Object]\";\nvar regexpTag = \"[object RegExp]\";\nvar setTag = \"[object Set]\";\nvar stringTag = \"[object String]\";\nvar weakMapTag = \"[object WeakMap]\";\nvar arrayBufferTag = \"[object ArrayBuffer]\";\nvar dataViewTag = \"[object DataView]\";\nvar float32Tag = \"[object Float32Array]\";\nvar float64Tag = \"[object Float64Array]\";\nvar int8Tag = \"[object Int8Array]\";\nvar int16Tag = \"[object Int16Array]\";\nvar int32Tag = \"[object Int32Array]\";\nvar uint8Tag = \"[object Uint8Array]\";\nvar uint8ClampedTag = \"[object Uint8ClampedArray]\";\nvar uint16Tag = \"[object Uint16Array]\";\nvar uint32Tag = \"[object Uint32Array]\";\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag2] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag2] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\nfunction baseIsTypedArray(value) {\n  return isObjectLike_default(value) && isLength_default(value.length) && !!typedArrayTags[baseGetTag_default(value)];\n}\nvar baseIsTypedArray_default = baseIsTypedArray;\n\n// node_modules/lodash-es/_baseUnary.js\nfunction baseUnary(func) {\n  return function (value) {\n    return func(value);\n  };\n}\nvar baseUnary_default = baseUnary;\n\n// node_modules/lodash-es/_nodeUtil.js\nvar freeExports2 = typeof exports == \"object\" && exports && !exports.nodeType && exports;\nvar freeModule2 = freeExports2 && typeof module == \"object\" && module && !module.nodeType && module;\nvar moduleExports2 = freeModule2 && freeModule2.exports === freeExports2;\nvar freeProcess = moduleExports2 && freeGlobal_default.process;\nvar nodeUtil = function () {\n  try {\n    var types = freeModule2 && freeModule2.require && freeModule2.require(\"util\").types;\n    if (types) {\n      return types;\n    }\n    return freeProcess && freeProcess.binding && freeProcess.binding(\"util\");\n  } catch (e) {}\n}();\nvar nodeUtil_default = nodeUtil;\n\n// node_modules/lodash-es/isTypedArray.js\nvar nodeIsTypedArray = nodeUtil_default && nodeUtil_default.isTypedArray;\nvar isTypedArray = nodeIsTypedArray ? baseUnary_default(nodeIsTypedArray) : baseIsTypedArray_default;\nvar isTypedArray_default = isTypedArray;\n\n// node_modules/lodash-es/_arrayLikeKeys.js\nvar objectProto6 = Object.prototype;\nvar hasOwnProperty4 = objectProto6.hasOwnProperty;\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray_default(value),\n    isArg = !isArr && isArguments_default(value),\n    isBuff = !isArr && !isArg && isBuffer_default(value),\n    isType = !isArr && !isArg && !isBuff && isTypedArray_default(value),\n    skipIndexes = isArr || isArg || isBuff || isType,\n    result = skipIndexes ? baseTimes_default(value.length, String) : [],\n    length = result.length;\n  for (var key in value) {\n    if ((inherited || hasOwnProperty4.call(value, key)) && !(skipIndexes && (\n    // Safari 9 has enumerable `arguments.length` in strict mode.\n    key == \"length\" ||\n    // Node.js 0.10 has enumerable non-index properties on buffers.\n    isBuff && (key == \"offset\" || key == \"parent\") ||\n    // PhantomJS 2 has enumerable non-index properties on typed arrays.\n    isType && (key == \"buffer\" || key == \"byteLength\" || key == \"byteOffset\") ||\n    // Skip index properties.\n    isIndex_default(key, length)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\nvar arrayLikeKeys_default = arrayLikeKeys;\n\n// node_modules/lodash-es/_overArg.js\nfunction overArg(func, transform) {\n  return function (arg) {\n    return func(transform(arg));\n  };\n}\nvar overArg_default = overArg;\n\n// node_modules/lodash-es/_nativeKeys.js\nvar nativeKeys = overArg_default(Object.keys, Object);\nvar nativeKeys_default = nativeKeys;\n\n// node_modules/lodash-es/_baseKeys.js\nvar objectProto7 = Object.prototype;\nvar hasOwnProperty5 = objectProto7.hasOwnProperty;\nfunction baseKeys(object) {\n  if (!isPrototype_default(object)) {\n    return nativeKeys_default(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty5.call(object, key) && key != \"constructor\") {\n      result.push(key);\n    }\n  }\n  return result;\n}\nvar baseKeys_default = baseKeys;\n\n// node_modules/lodash-es/keys.js\nfunction keys(object) {\n  return isArrayLike_default(object) ? arrayLikeKeys_default(object) : baseKeys_default(object);\n}\nvar keys_default = keys;\n\n// node_modules/lodash-es/_nativeCreate.js\nvar nativeCreate = getNative_default(Object, \"create\");\nvar nativeCreate_default = nativeCreate;\n\n// node_modules/lodash-es/_hashClear.js\nfunction hashClear() {\n  this.__data__ = nativeCreate_default ? nativeCreate_default(null) : {};\n  this.size = 0;\n}\nvar hashClear_default = hashClear;\n\n// node_modules/lodash-es/_hashDelete.js\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\nvar hashDelete_default = hashDelete;\n\n// node_modules/lodash-es/_hashGet.js\nvar HASH_UNDEFINED = \"__lodash_hash_undefined__\";\nvar objectProto8 = Object.prototype;\nvar hasOwnProperty6 = objectProto8.hasOwnProperty;\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate_default) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? void 0 : result;\n  }\n  return hasOwnProperty6.call(data, key) ? data[key] : void 0;\n}\nvar hashGet_default = hashGet;\n\n// node_modules/lodash-es/_hashHas.js\nvar objectProto9 = Object.prototype;\nvar hasOwnProperty7 = objectProto9.hasOwnProperty;\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate_default ? data[key] !== void 0 : hasOwnProperty7.call(data, key);\n}\nvar hashHas_default = hashHas;\n\n// node_modules/lodash-es/_hashSet.js\nvar HASH_UNDEFINED2 = \"__lodash_hash_undefined__\";\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = nativeCreate_default && value === void 0 ? HASH_UNDEFINED2 : value;\n  return this;\n}\nvar hashSet_default = hashSet;\n\n// node_modules/lodash-es/_Hash.js\nfunction Hash(entries) {\n  var index = -1,\n    length = entries == null ? 0 : entries.length;\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\nHash.prototype.clear = hashClear_default;\nHash.prototype[\"delete\"] = hashDelete_default;\nHash.prototype.get = hashGet_default;\nHash.prototype.has = hashHas_default;\nHash.prototype.set = hashSet_default;\nvar Hash_default = Hash;\n\n// node_modules/lodash-es/_listCacheClear.js\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\nvar listCacheClear_default = listCacheClear;\n\n// node_modules/lodash-es/_assocIndexOf.js\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq_default(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\nvar assocIndexOf_default = assocIndexOf;\n\n// node_modules/lodash-es/_listCacheDelete.js\nvar arrayProto = Array.prototype;\nvar splice = arrayProto.splice;\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n    index = assocIndexOf_default(data, key);\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\nvar listCacheDelete_default = listCacheDelete;\n\n// node_modules/lodash-es/_listCacheGet.js\nfunction listCacheGet(key) {\n  var data = this.__data__,\n    index = assocIndexOf_default(data, key);\n  return index < 0 ? void 0 : data[index][1];\n}\nvar listCacheGet_default = listCacheGet;\n\n// node_modules/lodash-es/_listCacheHas.js\nfunction listCacheHas(key) {\n  return assocIndexOf_default(this.__data__, key) > -1;\n}\nvar listCacheHas_default = listCacheHas;\n\n// node_modules/lodash-es/_listCacheSet.js\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n    index = assocIndexOf_default(data, key);\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\nvar listCacheSet_default = listCacheSet;\n\n// node_modules/lodash-es/_ListCache.js\nfunction ListCache(entries) {\n  var index = -1,\n    length = entries == null ? 0 : entries.length;\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\nListCache.prototype.clear = listCacheClear_default;\nListCache.prototype[\"delete\"] = listCacheDelete_default;\nListCache.prototype.get = listCacheGet_default;\nListCache.prototype.has = listCacheHas_default;\nListCache.prototype.set = listCacheSet_default;\nvar ListCache_default = ListCache;\n\n// node_modules/lodash-es/_Map.js\nvar Map = getNative_default(root_default, \"Map\");\nvar Map_default = Map;\n\n// node_modules/lodash-es/_mapCacheClear.js\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    \"hash\": new Hash_default(),\n    \"map\": new (Map_default || ListCache_default)(),\n    \"string\": new Hash_default()\n  };\n}\nvar mapCacheClear_default = mapCacheClear;\n\n// node_modules/lodash-es/_isKeyable.js\nfunction isKeyable(value) {\n  var type = typeof value;\n  return type == \"string\" || type == \"number\" || type == \"symbol\" || type == \"boolean\" ? value !== \"__proto__\" : value === null;\n}\nvar isKeyable_default = isKeyable;\n\n// node_modules/lodash-es/_getMapData.js\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable_default(key) ? data[typeof key == \"string\" ? \"string\" : \"hash\"] : data.map;\n}\nvar getMapData_default = getMapData;\n\n// node_modules/lodash-es/_mapCacheDelete.js\nfunction mapCacheDelete(key) {\n  var result = getMapData_default(this, key)[\"delete\"](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\nvar mapCacheDelete_default = mapCacheDelete;\n\n// node_modules/lodash-es/_mapCacheGet.js\nfunction mapCacheGet(key) {\n  return getMapData_default(this, key).get(key);\n}\nvar mapCacheGet_default = mapCacheGet;\n\n// node_modules/lodash-es/_mapCacheHas.js\nfunction mapCacheHas(key) {\n  return getMapData_default(this, key).has(key);\n}\nvar mapCacheHas_default = mapCacheHas;\n\n// node_modules/lodash-es/_mapCacheSet.js\nfunction mapCacheSet(key, value) {\n  var data = getMapData_default(this, key),\n    size = data.size;\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\nvar mapCacheSet_default = mapCacheSet;\n\n// node_modules/lodash-es/_MapCache.js\nfunction MapCache(entries) {\n  var index = -1,\n    length = entries == null ? 0 : entries.length;\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\nMapCache.prototype.clear = mapCacheClear_default;\nMapCache.prototype[\"delete\"] = mapCacheDelete_default;\nMapCache.prototype.get = mapCacheGet_default;\nMapCache.prototype.has = mapCacheHas_default;\nMapCache.prototype.set = mapCacheSet_default;\nvar MapCache_default = MapCache;\n\n// node_modules/lodash-es/toString.js\nfunction toString(value) {\n  return value == null ? \"\" : baseToString_default(value);\n}\nvar toString_default = toString;\n\n// node_modules/lodash-es/_arrayPush.js\nfunction arrayPush(array, values) {\n  var index = -1,\n    length = values.length,\n    offset = array.length;\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\nvar arrayPush_default = arrayPush;\n\n// node_modules/lodash-es/_basePropertyOf.js\nfunction basePropertyOf(object) {\n  return function (key) {\n    return object == null ? void 0 : object[key];\n  };\n}\nvar basePropertyOf_default = basePropertyOf;\n\n// node_modules/lodash-es/_stackClear.js\nfunction stackClear() {\n  this.__data__ = new ListCache_default();\n  this.size = 0;\n}\nvar stackClear_default = stackClear;\n\n// node_modules/lodash-es/_stackDelete.js\nfunction stackDelete(key) {\n  var data = this.__data__,\n    result = data[\"delete\"](key);\n  this.size = data.size;\n  return result;\n}\nvar stackDelete_default = stackDelete;\n\n// node_modules/lodash-es/_stackGet.js\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\nvar stackGet_default = stackGet;\n\n// node_modules/lodash-es/_stackHas.js\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\nvar stackHas_default = stackHas;\n\n// node_modules/lodash-es/_stackSet.js\nvar LARGE_ARRAY_SIZE = 200;\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache_default) {\n    var pairs = data.__data__;\n    if (!Map_default || pairs.length < LARGE_ARRAY_SIZE - 1) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache_default(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\nvar stackSet_default = stackSet;\n\n// node_modules/lodash-es/_Stack.js\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache_default(entries);\n  this.size = data.size;\n}\nStack.prototype.clear = stackClear_default;\nStack.prototype[\"delete\"] = stackDelete_default;\nStack.prototype.get = stackGet_default;\nStack.prototype.has = stackHas_default;\nStack.prototype.set = stackSet_default;\nvar Stack_default = Stack;\n\n// node_modules/lodash-es/_arrayFilter.js\nfunction arrayFilter(array, predicate) {\n  var index = -1,\n    length = array == null ? 0 : array.length,\n    resIndex = 0,\n    result = [];\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result[resIndex++] = value;\n    }\n  }\n  return result;\n}\nvar arrayFilter_default = arrayFilter;\n\n// node_modules/lodash-es/stubArray.js\nfunction stubArray() {\n  return [];\n}\nvar stubArray_default = stubArray;\n\n// node_modules/lodash-es/_getSymbols.js\nvar objectProto10 = Object.prototype;\nvar propertyIsEnumerable2 = objectProto10.propertyIsEnumerable;\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\nvar getSymbols = !nativeGetSymbols ? stubArray_default : function (object) {\n  if (object == null) {\n    return [];\n  }\n  object = Object(object);\n  return arrayFilter_default(nativeGetSymbols(object), function (symbol) {\n    return propertyIsEnumerable2.call(object, symbol);\n  });\n};\nvar getSymbols_default = getSymbols;\n\n// node_modules/lodash-es/_baseGetAllKeys.js\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return isArray_default(object) ? result : arrayPush_default(result, symbolsFunc(object));\n}\nvar baseGetAllKeys_default = baseGetAllKeys;\n\n// node_modules/lodash-es/_getAllKeys.js\nfunction getAllKeys(object) {\n  return baseGetAllKeys_default(object, keys_default, getSymbols_default);\n}\nvar getAllKeys_default = getAllKeys;\n\n// node_modules/lodash-es/_DataView.js\nvar DataView = getNative_default(root_default, \"DataView\");\nvar DataView_default = DataView;\n\n// node_modules/lodash-es/_Promise.js\nvar Promise2 = getNative_default(root_default, \"Promise\");\nvar Promise_default = Promise2;\n\n// node_modules/lodash-es/_Set.js\nvar Set = getNative_default(root_default, \"Set\");\nvar Set_default = Set;\n\n// node_modules/lodash-es/_getTag.js\nvar mapTag2 = \"[object Map]\";\nvar objectTag2 = \"[object Object]\";\nvar promiseTag = \"[object Promise]\";\nvar setTag2 = \"[object Set]\";\nvar weakMapTag2 = \"[object WeakMap]\";\nvar dataViewTag2 = \"[object DataView]\";\nvar dataViewCtorString = toSource_default(DataView_default);\nvar mapCtorString = toSource_default(Map_default);\nvar promiseCtorString = toSource_default(Promise_default);\nvar setCtorString = toSource_default(Set_default);\nvar weakMapCtorString = toSource_default(WeakMap_default);\nvar getTag = baseGetTag_default;\nif (DataView_default && getTag(new DataView_default(new ArrayBuffer(1))) != dataViewTag2 || Map_default && getTag(new Map_default()) != mapTag2 || Promise_default && getTag(Promise_default.resolve()) != promiseTag || Set_default && getTag(new Set_default()) != setTag2 || WeakMap_default && getTag(new WeakMap_default()) != weakMapTag2) {\n  getTag = function (value) {\n    var result = baseGetTag_default(value),\n      Ctor = result == objectTag2 ? value.constructor : void 0,\n      ctorString = Ctor ? toSource_default(Ctor) : \"\";\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString:\n          return dataViewTag2;\n        case mapCtorString:\n          return mapTag2;\n        case promiseCtorString:\n          return promiseTag;\n        case setCtorString:\n          return setTag2;\n        case weakMapCtorString:\n          return weakMapTag2;\n      }\n    }\n    return result;\n  };\n}\nvar getTag_default = getTag;\n\n// node_modules/lodash-es/_Uint8Array.js\nvar Uint8Array2 = root_default.Uint8Array;\nvar Uint8Array_default = Uint8Array2;\n\n// node_modules/lodash-es/_setCacheAdd.js\nvar HASH_UNDEFINED3 = \"__lodash_hash_undefined__\";\nfunction setCacheAdd(value) {\n  this.__data__.set(value, HASH_UNDEFINED3);\n  return this;\n}\nvar setCacheAdd_default = setCacheAdd;\n\n// node_modules/lodash-es/_setCacheHas.js\nfunction setCacheHas(value) {\n  return this.__data__.has(value);\n}\nvar setCacheHas_default = setCacheHas;\n\n// node_modules/lodash-es/_SetCache.js\nfunction SetCache(values) {\n  var index = -1,\n    length = values == null ? 0 : values.length;\n  this.__data__ = new MapCache_default();\n  while (++index < length) {\n    this.add(values[index]);\n  }\n}\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd_default;\nSetCache.prototype.has = setCacheHas_default;\nvar SetCache_default = SetCache;\n\n// node_modules/lodash-es/_arraySome.js\nfunction arraySome(array, predicate) {\n  var index = -1,\n    length = array == null ? 0 : array.length;\n  while (++index < length) {\n    if (predicate(array[index], index, array)) {\n      return true;\n    }\n  }\n  return false;\n}\nvar arraySome_default = arraySome;\n\n// node_modules/lodash-es/_cacheHas.js\nfunction cacheHas(cache, key) {\n  return cache.has(key);\n}\nvar cacheHas_default = cacheHas;\n\n// node_modules/lodash-es/_equalArrays.js\nvar COMPARE_PARTIAL_FLAG = 1;\nvar COMPARE_UNORDERED_FLAG = 2;\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n    arrLength = array.length,\n    othLength = other.length;\n  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n    return false;\n  }\n  var arrStacked = stack.get(array);\n  var othStacked = stack.get(other);\n  if (arrStacked && othStacked) {\n    return arrStacked == other && othStacked == array;\n  }\n  var index = -1,\n    result = true,\n    seen = bitmask & COMPARE_UNORDERED_FLAG ? new SetCache_default() : void 0;\n  stack.set(array, other);\n  stack.set(other, array);\n  while (++index < arrLength) {\n    var arrValue = array[index],\n      othValue = other[index];\n    if (customizer) {\n      var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack);\n    }\n    if (compared !== void 0) {\n      if (compared) {\n        continue;\n      }\n      result = false;\n      break;\n    }\n    if (seen) {\n      if (!arraySome_default(other, function (othValue2, othIndex) {\n        if (!cacheHas_default(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {\n          return seen.push(othIndex);\n        }\n      })) {\n        result = false;\n        break;\n      }\n    } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n      result = false;\n      break;\n    }\n  }\n  stack[\"delete\"](array);\n  stack[\"delete\"](other);\n  return result;\n}\nvar equalArrays_default = equalArrays;\n\n// node_modules/lodash-es/_mapToArray.js\nfunction mapToArray(map) {\n  var index = -1,\n    result = Array(map.size);\n  map.forEach(function (value, key) {\n    result[++index] = [key, value];\n  });\n  return result;\n}\nvar mapToArray_default = mapToArray;\n\n// node_modules/lodash-es/_setToArray.js\nfunction setToArray(set) {\n  var index = -1,\n    result = Array(set.size);\n  set.forEach(function (value) {\n    result[++index] = value;\n  });\n  return result;\n}\nvar setToArray_default = setToArray;\n\n// node_modules/lodash-es/_equalByTag.js\nvar COMPARE_PARTIAL_FLAG2 = 1;\nvar COMPARE_UNORDERED_FLAG2 = 2;\nvar boolTag2 = \"[object Boolean]\";\nvar dateTag2 = \"[object Date]\";\nvar errorTag2 = \"[object Error]\";\nvar mapTag3 = \"[object Map]\";\nvar numberTag2 = \"[object Number]\";\nvar regexpTag2 = \"[object RegExp]\";\nvar setTag3 = \"[object Set]\";\nvar stringTag2 = \"[object String]\";\nvar symbolTag2 = \"[object Symbol]\";\nvar arrayBufferTag2 = \"[object ArrayBuffer]\";\nvar dataViewTag3 = \"[object DataView]\";\nvar symbolProto2 = Symbol_default ? Symbol_default.prototype : void 0;\nvar symbolValueOf = symbolProto2 ? symbolProto2.valueOf : void 0;\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n  switch (tag) {\n    case dataViewTag3:\n      if (object.byteLength != other.byteLength || object.byteOffset != other.byteOffset) {\n        return false;\n      }\n      object = object.buffer;\n      other = other.buffer;\n    case arrayBufferTag2:\n      if (object.byteLength != other.byteLength || !equalFunc(new Uint8Array_default(object), new Uint8Array_default(other))) {\n        return false;\n      }\n      return true;\n    case boolTag2:\n    case dateTag2:\n    case numberTag2:\n      return eq_default(+object, +other);\n    case errorTag2:\n      return object.name == other.name && object.message == other.message;\n    case regexpTag2:\n    case stringTag2:\n      return object == other + \"\";\n    case mapTag3:\n      var convert = mapToArray_default;\n    case setTag3:\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG2;\n      convert || (convert = setToArray_default);\n      if (object.size != other.size && !isPartial) {\n        return false;\n      }\n      var stacked = stack.get(object);\n      if (stacked) {\n        return stacked == other;\n      }\n      bitmask |= COMPARE_UNORDERED_FLAG2;\n      stack.set(object, other);\n      var result = equalArrays_default(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n      stack[\"delete\"](object);\n      return result;\n    case symbolTag2:\n      if (symbolValueOf) {\n        return symbolValueOf.call(object) == symbolValueOf.call(other);\n      }\n  }\n  return false;\n}\nvar equalByTag_default = equalByTag;\n\n// node_modules/lodash-es/_equalObjects.js\nvar COMPARE_PARTIAL_FLAG3 = 1;\nvar objectProto11 = Object.prototype;\nvar hasOwnProperty8 = objectProto11.hasOwnProperty;\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG3,\n    objProps = getAllKeys_default(object),\n    objLength = objProps.length,\n    othProps = getAllKeys_default(other),\n    othLength = othProps.length;\n  if (objLength != othLength && !isPartial) {\n    return false;\n  }\n  var index = objLength;\n  while (index--) {\n    var key = objProps[index];\n    if (!(isPartial ? key in other : hasOwnProperty8.call(other, key))) {\n      return false;\n    }\n  }\n  var objStacked = stack.get(object);\n  var othStacked = stack.get(other);\n  if (objStacked && othStacked) {\n    return objStacked == other && othStacked == object;\n  }\n  var result = true;\n  stack.set(object, other);\n  stack.set(other, object);\n  var skipCtor = isPartial;\n  while (++index < objLength) {\n    key = objProps[index];\n    var objValue = object[key],\n      othValue = other[key];\n    if (customizer) {\n      var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack);\n    }\n    if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {\n      result = false;\n      break;\n    }\n    skipCtor || (skipCtor = key == \"constructor\");\n  }\n  if (result && !skipCtor) {\n    var objCtor = object.constructor,\n      othCtor = other.constructor;\n    if (objCtor != othCtor && \"constructor\" in object && \"constructor\" in other && !(typeof objCtor == \"function\" && objCtor instanceof objCtor && typeof othCtor == \"function\" && othCtor instanceof othCtor)) {\n      result = false;\n    }\n  }\n  stack[\"delete\"](object);\n  stack[\"delete\"](other);\n  return result;\n}\nvar equalObjects_default = equalObjects;\n\n// node_modules/lodash-es/_baseIsEqualDeep.js\nvar COMPARE_PARTIAL_FLAG4 = 1;\nvar argsTag3 = \"[object Arguments]\";\nvar arrayTag2 = \"[object Array]\";\nvar objectTag3 = \"[object Object]\";\nvar objectProto12 = Object.prototype;\nvar hasOwnProperty9 = objectProto12.hasOwnProperty;\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n  var objIsArr = isArray_default(object),\n    othIsArr = isArray_default(other),\n    objTag = objIsArr ? arrayTag2 : getTag_default(object),\n    othTag = othIsArr ? arrayTag2 : getTag_default(other);\n  objTag = objTag == argsTag3 ? objectTag3 : objTag;\n  othTag = othTag == argsTag3 ? objectTag3 : othTag;\n  var objIsObj = objTag == objectTag3,\n    othIsObj = othTag == objectTag3,\n    isSameTag = objTag == othTag;\n  if (isSameTag && isBuffer_default(object)) {\n    if (!isBuffer_default(other)) {\n      return false;\n    }\n    objIsArr = true;\n    objIsObj = false;\n  }\n  if (isSameTag && !objIsObj) {\n    stack || (stack = new Stack_default());\n    return objIsArr || isTypedArray_default(object) ? equalArrays_default(object, other, bitmask, customizer, equalFunc, stack) : equalByTag_default(object, other, objTag, bitmask, customizer, equalFunc, stack);\n  }\n  if (!(bitmask & COMPARE_PARTIAL_FLAG4)) {\n    var objIsWrapped = objIsObj && hasOwnProperty9.call(object, \"__wrapped__\"),\n      othIsWrapped = othIsObj && hasOwnProperty9.call(other, \"__wrapped__\");\n    if (objIsWrapped || othIsWrapped) {\n      var objUnwrapped = objIsWrapped ? object.value() : object,\n        othUnwrapped = othIsWrapped ? other.value() : other;\n      stack || (stack = new Stack_default());\n      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n    }\n  }\n  if (!isSameTag) {\n    return false;\n  }\n  stack || (stack = new Stack_default());\n  return equalObjects_default(object, other, bitmask, customizer, equalFunc, stack);\n}\nvar baseIsEqualDeep_default = baseIsEqualDeep;\n\n// node_modules/lodash-es/_baseIsEqual.js\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n  if (value === other) {\n    return true;\n  }\n  if (value == null || other == null || !isObjectLike_default(value) && !isObjectLike_default(other)) {\n    return value !== value && other !== other;\n  }\n  return baseIsEqualDeep_default(value, other, bitmask, customizer, baseIsEqual, stack);\n}\nvar baseIsEqual_default = baseIsEqual;\n\n// node_modules/lodash-es/_arrayIncludesWith.js\nfunction arrayIncludesWith(array, value, comparator) {\n  var index = -1,\n    length = array == null ? 0 : array.length;\n  while (++index < length) {\n    if (comparator(value, array[index])) {\n      return true;\n    }\n  }\n  return false;\n}\nvar arrayIncludesWith_default = arrayIncludesWith;\n\n// node_modules/lodash-es/_escapeHtmlChar.js\nvar htmlEscapes = {\n  \"&\": \"&amp;\",\n  \"<\": \"&lt;\",\n  \">\": \"&gt;\",\n  '\"': \"&quot;\",\n  \"'\": \"&#39;\"\n};\nvar escapeHtmlChar = basePropertyOf_default(htmlEscapes);\nvar escapeHtmlChar_default = escapeHtmlChar;\n\n// node_modules/lodash-es/escape.js\nvar reUnescapedHtml = /[&<>\"']/g;\nvar reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\nfunction escape(string) {\n  string = toString_default(string);\n  return string && reHasUnescapedHtml.test(string) ? string.replace(reUnescapedHtml, escapeHtmlChar_default) : string;\n}\nvar escape_default = escape;\n\n// node_modules/lodash-es/escapeRegExp.js\nvar reRegExpChar2 = /[\\\\^$.*+?()[\\]{}|]/g;\nvar reHasRegExpChar = RegExp(reRegExpChar2.source);\nfunction escapeRegExp(string) {\n  string = toString_default(string);\n  return string && reHasRegExpChar.test(string) ? string.replace(reRegExpChar2, \"\\\\$&\") : string;\n}\nvar escapeRegExp_default = escapeRegExp;\n\n// node_modules/lodash-es/isEqual.js\nfunction isEqual(value, other) {\n  return baseIsEqual_default(value, other);\n}\nvar isEqual_default = isEqual;\n\n// node_modules/lodash-es/_createSet.js\nvar INFINITY2 = 1 / 0;\nvar createSet = !(Set_default && 1 / setToArray_default(new Set_default([, -0]))[1] == INFINITY2) ? noop_default : function (values) {\n  return new Set_default(values);\n};\nvar createSet_default = createSet;\n\n// node_modules/lodash-es/_baseUniq.js\nvar LARGE_ARRAY_SIZE2 = 200;\nfunction baseUniq(array, iteratee, comparator) {\n  var index = -1,\n    includes = arrayIncludes_default,\n    length = array.length,\n    isCommon = true,\n    result = [],\n    seen = result;\n  if (comparator) {\n    isCommon = false;\n    includes = arrayIncludesWith_default;\n  } else if (length >= LARGE_ARRAY_SIZE2) {\n    var set = iteratee ? null : createSet_default(array);\n    if (set) {\n      return setToArray_default(set);\n    }\n    isCommon = false;\n    includes = cacheHas_default;\n    seen = new SetCache_default();\n  } else {\n    seen = iteratee ? [] : result;\n  }\n  outer: while (++index < length) {\n    var value = array[index],\n      computed = iteratee ? iteratee(value) : value;\n    value = comparator || value !== 0 ? value : 0;\n    if (isCommon && computed === computed) {\n      var seenIndex = seen.length;\n      while (seenIndex--) {\n        if (seen[seenIndex] === computed) {\n          continue outer;\n        }\n      }\n      if (iteratee) {\n        seen.push(computed);\n      }\n      result.push(value);\n    } else if (!includes(seen, computed, comparator)) {\n      if (seen !== result) {\n        seen.push(computed);\n      }\n      result.push(value);\n    }\n  }\n  return result;\n}\nvar baseUniq_default = baseUniq;\n\n// node_modules/lodash-es/uniq.js\nfunction uniq(array) {\n  return array && array.length ? baseUniq_default(array) : [];\n}\nvar uniq_default = uniq;\n\n// src/components/constants.ts\nvar KEYS = {\n  ENTER: [10, 13],\n  TAB: 9,\n  BACKSPACE: 8,\n  UP_ARROW: 38,\n  DOWN_ARROW: 40,\n  ESCAPE: 27,\n  SPACE: 32,\n  COMMA: 188\n};\nvar SEPARATORS = {\n  ENTER: \"Enter\",\n  TAB: \"Tab\",\n  COMMA: \",\",\n  SPACE: \" \",\n  SEMICOLON: \";\"\n};\nvar DEFAULT_PLACEHOLDER = \"Press enter to add new tag\";\nvar DEFAULT_LABEL_FIELD = \"text\";\nvar DEFAULT_CLASSNAMES = {\n  tags: \"ReactTags__tags\",\n  tagInput: \"ReactTags__tagInput\",\n  tagInputField: \"ReactTags__tagInputField\",\n  selected: \"ReactTags__selected\",\n  tag: \"ReactTags__tag\",\n  remove: \"ReactTags__remove\",\n  suggestions: \"ReactTags__suggestions\",\n  activeSuggestion: \"ReactTags__activeSuggestion\",\n  editTagInput: \"ReactTags__editTagInput\",\n  editTagInputField: \"ReactTags__editTagInputField\",\n  clearAll: \"ReactTags__clearAll\"\n};\nvar INPUT_FIELD_POSITIONS = {\n  INLINE: \"inline\",\n  TOP: \"top\",\n  BOTTOM: \"bottom\"\n};\nvar ERRORS = {\n  TAG_LIMIT: \"Tag limit reached!\"\n};\n\n// src/components/utils.ts\nfunction buildRegExpFromDelimiters(delimiters) {\n  const delimiterChars = delimiters.map(delimiter => {\n    const chrCode = delimiter - 48 * Math.floor(delimiter / 48);\n    return String.fromCharCode(96 <= delimiter ? chrCode : delimiter);\n  }).join(\"\");\n  const escapedDelimiterChars = escapeRegExp_default(delimiterChars);\n  return new RegExp(`[${escapedDelimiterChars}]+`);\n}\nfunction getKeyCodeFromSeparator(separator) {\n  switch (separator) {\n    case SEPARATORS.ENTER:\n      return [10, 13];\n    case SEPARATORS.TAB:\n      return 9;\n    case SEPARATORS.COMMA:\n      return 188;\n    case SEPARATORS.SPACE:\n      return 32;\n    case SEPARATORS.SEMICOLON:\n      return 186;\n    default:\n      return 0;\n  }\n}\nfunction canDrag(params) {\n  const {\n    moveTag,\n    readOnly,\n    allowDragDrop\n  } = params;\n  return moveTag !== void 0 && !readOnly && allowDragDrop;\n}\nfunction canDrop(params) {\n  const {\n    readOnly,\n    allowDragDrop\n  } = params;\n  return !readOnly && allowDragDrop;\n}\n\n// src/components/RemoveComponent.tsx\n\nvar RemoveComponent = props => {\n  const {\n    readOnly,\n    removeComponent,\n    onRemove,\n    className,\n    tag,\n    index\n  } = props;\n  const onKeydown = event => {\n    if (KEYS.ENTER.includes(event.keyCode) || event.keyCode === KEYS.SPACE) {\n      event.preventDefault();\n      event.stopPropagation();\n      return;\n    }\n    if (event.keyCode === KEYS.BACKSPACE) {\n      onRemove(event);\n    }\n  };\n  if (readOnly) {\n    return /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"span\", {});\n  }\n  const ariaLabel = `Tag at index ${index} with value ${tag.id} focussed. Press backspace to remove`;\n  if (removeComponent) {\n    const Component = removeComponent;\n    return /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(Component, {\n      \"data-testid\": \"remove\",\n      onRemove,\n      onKeyDown: onKeydown,\n      className,\n      \"aria-label\": ariaLabel,\n      tag,\n      index\n    });\n  }\n  return /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"button\", {\n    \"data-testid\": \"remove\",\n    onClick: onRemove,\n    onKeyDown: onKeydown,\n    className,\n    type: \"button\",\n    \"aria-label\": ariaLabel,\n    children: /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"svg\", {\n      xmlns: \"http://www.w3.org/2000/svg\",\n      viewBox: \"0 0 512 512\",\n      height: \"12\",\n      width: \"12\",\n      fill: \"#fff\",\n      children: /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"path\", {\n        d: \"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"\n      })\n    })\n  });\n};\nvar RemoveComponent_default = RemoveComponent;\n\n// src/components/SingleTag.tsx\n\nvar ItemTypes = {\n  TAG: \"tag\"\n};\nvar SingleTag = props => {\n  const tagRef = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n  const {\n    readOnly = false,\n    tag,\n    classNames,\n    index,\n    moveTag,\n    allowDragDrop = true,\n    labelField = \"text\",\n    tags\n  } = props;\n  const [{\n    isDragging\n  }, drag] = (0,react_dnd__WEBPACK_IMPORTED_MODULE_3__.useDrag)(() => ({\n    type: ItemTypes.TAG,\n    collect: monitor => ({\n      isDragging: !!monitor.isDragging()\n    }),\n    item: props,\n    canDrag: () => canDrag({\n      moveTag,\n      readOnly,\n      allowDragDrop\n    })\n  }), [tags]);\n  const [, drop] = (0,react_dnd__WEBPACK_IMPORTED_MODULE_4__.useDrop)(() => ({\n    accept: ItemTypes.TAG,\n    drop: item => {\n      const dragIndex = item.index;\n      const hoverIndex = index;\n      if (dragIndex === hoverIndex) {\n        return;\n      }\n      props?.moveTag?.(dragIndex, hoverIndex);\n    },\n    canDrop: item => canDrop(item)\n  }), [tags]);\n  drag(drop(tagRef));\n  const label = props.tag[labelField];\n  const {\n    className = \"\"\n  } = tag;\n  const opacity = isDragging ? 0 : 1;\n  return /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(\"span\", {\n    ref: tagRef,\n    className: (0, import_classnames.default)(\"tag-wrapper\", classNames.tag, className),\n    style: {\n      opacity,\n      cursor: canDrag({\n        moveTag,\n        readOnly,\n        allowDragDrop\n      }) ? \"move\" : \"auto\"\n    },\n    \"data-testid\": \"tag\",\n    onClick: props.onTagClicked,\n    onTouchStart: props.onTagClicked,\n    children: [label, /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(RemoveComponent_default, {\n      tag: props.tag,\n      className: classNames.remove,\n      removeComponent: props.removeComponent,\n      onRemove: props.onDelete,\n      readOnly,\n      index\n    })]\n  });\n};\n\n// src/components/ReactTags.tsx\n\n\n// src/components/ClearAllTags.tsx\n\nvar ClearAllTags = props => {\n  return /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"button\", {\n    \"aria-label\": props[\"aria-label\"],\n    className: props.classNames.clearAll,\n    onClick: props.onClick,\n    children: \"Clear all\"\n  });\n};\nvar ClearAllTags_default = ClearAllTags;\n\n// src/components/Suggestions.tsx\n\n\nvar maybeScrollSuggestionIntoView = (suggestionEl, suggestionsContainer) => {\n  const containerHeight = suggestionsContainer.offsetHeight;\n  const suggestionHeight = suggestionEl.offsetHeight;\n  const relativeSuggestionTop = suggestionEl.offsetTop - suggestionsContainer.scrollTop;\n  if (relativeSuggestionTop + suggestionHeight >= containerHeight) {\n    suggestionsContainer.scrollTop += relativeSuggestionTop - containerHeight + suggestionHeight;\n  } else if (relativeSuggestionTop < 0) {\n    suggestionsContainer.scrollTop += relativeSuggestionTop;\n  }\n};\nvar shouldRenderSuggestions = (query, minQueryLength, isFocused, shouldRenderSuggestionsCb) => {\n  if (typeof shouldRenderSuggestionsCb === \"function\") {\n    return shouldRenderSuggestionsCb(query);\n  }\n  return query.length >= minQueryLength && isFocused;\n};\nvar SuggestionsComp = props => {\n  const suggestionsContainerRef = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_2__.createRef)();\n  const {\n    labelField,\n    minQueryLength,\n    isFocused,\n    classNames,\n    selectedIndex,\n    query\n  } = props;\n  (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {\n    if (!suggestionsContainerRef.current) {\n      return;\n    }\n    const activeSuggestion = suggestionsContainerRef.current.querySelector(`.${classNames.activeSuggestion}`);\n    if (activeSuggestion) {\n      maybeScrollSuggestionIntoView(activeSuggestion, suggestionsContainerRef.current);\n    }\n  }, [selectedIndex]);\n  const markIt = (tag, query2) => {\n    const escapedRegex = query2.trim().replace(/[-\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\");\n    const {\n      [labelField]: labelValue\n    } = tag;\n    return {\n      __html: labelValue.replace(RegExp(escapedRegex, \"gi\"), x => {\n        return `<mark>${escape_default(x)}</mark>`;\n      })\n    };\n  };\n  const renderSuggestion = (tag, query2) => {\n    if (typeof props.renderSuggestion === \"function\") {\n      return props.renderSuggestion(tag, query2);\n    }\n    return /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"span\", {\n      dangerouslySetInnerHTML: markIt(tag, query2)\n    });\n  };\n  const suggestions = props.suggestions.map((tag, index) => {\n    return /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"li\", {\n      onMouseDown: props.handleClick.bind(null, index),\n      onTouchStart: props.handleClick.bind(null, index),\n      onMouseOver: props.handleHover.bind(null, index),\n      className: index === props.selectedIndex ? props.classNames.activeSuggestion : \"\",\n      children: renderSuggestion(tag, props.query)\n    }, index);\n  });\n  if (suggestions.length === 0 || !shouldRenderSuggestions(query, minQueryLength || 2, isFocused, props.shouldRenderSuggestions)) {\n    return null;\n  }\n  return /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"div\", {\n    ref: suggestionsContainerRef,\n    className: classNames.suggestions,\n    \"data-testid\": \"suggestions\",\n    children: /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(\"ul\", {\n      children: [\" \", suggestions, \" \"]\n    })\n  });\n};\nvar arePropsEqual = (prevProps, nextProps) => {\n  const {\n    query,\n    minQueryLength = 2,\n    isFocused,\n    suggestions\n  } = nextProps;\n  if (prevProps.isFocused === isFocused && isEqual_default(prevProps.suggestions, suggestions) && shouldRenderSuggestions(query, minQueryLength, isFocused, nextProps.shouldRenderSuggestions) === shouldRenderSuggestions(prevProps.query, prevProps.minQueryLength ?? 2, prevProps.isFocused, prevProps.shouldRenderSuggestions) && prevProps.selectedIndex === nextProps.selectedIndex) {\n    return true;\n  }\n  return false;\n};\nvar Suggestions = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_2__.memo)(SuggestionsComp, arePropsEqual);\nvar Suggestions_default = Suggestions;\n\n// src/components/ReactTags.tsx\nvar import_classnames2 = __toESM(require_classnames(), 1);\n\nvar ReactTags = props => {\n  const {\n    autofocus,\n    autoFocus,\n    readOnly,\n    labelField,\n    allowDeleteFromEmptyInput,\n    allowAdditionFromPaste,\n    allowDragDrop,\n    minQueryLength,\n    shouldRenderSuggestions: shouldRenderSuggestions2,\n    removeComponent,\n    autocomplete,\n    inline,\n    maxTags,\n    allowUnique,\n    editable,\n    placeholder,\n    delimiters,\n    separators,\n    tags,\n    inputFieldPosition,\n    inputProps,\n    classNames,\n    maxLength,\n    inputValue,\n    clearAll,\n    ariaAttrs\n  } = props;\n  const [suggestions, setSuggestions] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(props.suggestions);\n  const [query, setQuery] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(\"\");\n  const [isFocused, setIsFocused] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n  const [selectedIndex, setSelectedIndex] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(-1);\n  const [selectionMode, setSelectionMode] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n  const [ariaLiveStatus, setAriaLiveStatus] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(\"\");\n  const [currentEditIndex, setCurrentEditIndex] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(-1);\n  const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(\"\");\n  const reactTagsRef = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_2__.createRef)();\n  const textInput = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n  const tagInput = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)(null);\n  (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {\n    if (delimiters.length) {\n      console.warn(\"[Deprecation] The delimiters prop is deprecated and will be removed in v7.x.x, please use separators instead. If you have any concerns regarding this, please share your thoughts in https://github.com/react-tags/react-tags/issues/960\");\n    }\n  }, []);\n  (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {\n    if (typeof inline !== \"undefined\") {\n      console.warn(\"[Deprecation] The inline attribute is deprecated and will be removed in v7.x.x, please use inputFieldPosition instead.\");\n    }\n  }, [inline]);\n  (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {\n    if (typeof autofocus !== \"undefined\") {\n      console.warn(\"[Deprecated] autofocus prop will be removed in 7.x so please migrate to autoFocus prop.\");\n    }\n    if ((autofocus || autoFocus && autofocus !== false) && !readOnly) {\n      resetAndFocusInput();\n    }\n  }, [autoFocus, autoFocus, readOnly]);\n  (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(() => {\n    updateSuggestions();\n  }, [query, props.suggestions]);\n  const filteredSuggestions = query2 => {\n    let updatedSuggestions = props.suggestions.slice();\n    if (allowUnique) {\n      const existingTags = tags.map(tag => tag.id.trim().toLowerCase());\n      updatedSuggestions = updatedSuggestions.filter(suggestion => !existingTags.includes(suggestion.id.toLowerCase()));\n    }\n    if (props.handleFilterSuggestions) {\n      return props.handleFilterSuggestions(query2, updatedSuggestions);\n    }\n    const exactSuggestions = updatedSuggestions.filter(item => getQueryIndex(query2, item) === 0);\n    const partialSuggestions = updatedSuggestions.filter(item => getQueryIndex(query2, item) > 0);\n    return exactSuggestions.concat(partialSuggestions);\n  };\n  const getQueryIndex = (query2, item) => {\n    return item[labelField].toLowerCase().indexOf(query2.toLowerCase());\n  };\n  const resetAndFocusInput = () => {\n    setQuery(\"\");\n    if (!textInput.current) {\n      return;\n    }\n    textInput.current.value = \"\";\n    textInput.current.focus();\n  };\n  const handleDelete = (index, event) => {\n    event.preventDefault();\n    event.stopPropagation();\n    const currentTags = tags.slice();\n    if (currentTags.length === 0) {\n      return;\n    }\n    setError(\"\");\n    props?.handleDelete?.(index, event);\n    updateAriaLiveStatus(index, currentTags);\n  };\n  const updateAriaLiveStatus = (index, tags2) => {\n    if (!reactTagsRef?.current) {\n      return;\n    }\n    const tagRemoveButtons = reactTagsRef.current.querySelectorAll(\".ReactTags__remove\");\n    let ariaLiveStatus2 = \"\";\n    if (index === 0 && tags2.length > 1) {\n      ariaLiveStatus2 = `Tag at index ${index} with value ${tags2[index].id} deleted. Tag at index 0 with value ${tags2[1].id} focussed. Press backspace to remove`;\n      tagRemoveButtons[0].focus();\n    } else if (index > 0) {\n      ariaLiveStatus2 = `Tag at index ${index} with value ${tags2[index].id} deleted. Tag at index ${index - 1} with value ${tags2[index - 1].id} focussed. Press backspace to remove`;\n      tagRemoveButtons[index - 1].focus();\n    } else {\n      ariaLiveStatus2 = `Tag at index ${index} with value ${tags2[index].id} deleted. Input focussed. Press enter to add a new tag`;\n      textInput.current?.focus();\n    }\n    setAriaLiveStatus(ariaLiveStatus2);\n  };\n  const handleTagClick = (index, tag, event) => {\n    if (readOnly) {\n      return;\n    }\n    if (editable) {\n      setCurrentEditIndex(index);\n      setQuery(tag[labelField]);\n      tagInput.current?.focus();\n    }\n    props.handleTagClick?.(index, event);\n  };\n  const handleChange = event => {\n    if (props.handleInputChange) {\n      props.handleInputChange(event.target.value, event);\n    }\n    const query2 = event.target.value.trim();\n    setQuery(query2);\n  };\n  const updateSuggestions = () => {\n    const newSuggestions = filteredSuggestions(query);\n    setSuggestions(newSuggestions);\n    setSelectedIndex(selectedIndex >= newSuggestions.length ? newSuggestions.length - 1 : selectedIndex);\n  };\n  const handleFocus = event => {\n    const value = event.target.value;\n    if (props.handleInputFocus) {\n      props.handleInputFocus(value, event);\n    }\n    setIsFocused(true);\n  };\n  const handleBlur = event => {\n    const value = event.target.value;\n    if (props.handleInputBlur) {\n      props.handleInputBlur(value, event);\n      if (textInput.current) {\n        textInput.current.value = \"\";\n      }\n    }\n    setIsFocused(false);\n    setCurrentEditIndex(-1);\n  };\n  const handleKeyDown = event => {\n    const nativeEvent = event.nativeEvent;\n    if (nativeEvent.isComposing) {\n      return;\n    }\n    if (event.key === \"Escape\") {\n      event.preventDefault();\n      event.stopPropagation();\n      setSelectedIndex(-1);\n      setSelectionMode(false);\n      setSuggestions([]);\n      setCurrentEditIndex(-1);\n    }\n    if ((separators.indexOf(event.key) !== -1 || delimiters.indexOf(event.keyCode) !== -1) && !event.shiftKey) {\n      if (event.keyCode !== KEYS.TAB || query !== \"\") {\n        event.preventDefault();\n      }\n      const selectedQuery = selectionMode && selectedIndex !== -1 ? suggestions[selectedIndex] : {\n        id: query.trim(),\n        [labelField]: query.trim(),\n        className: \"\"\n      };\n      if (Object.keys(selectedQuery)) {\n        addTag(selectedQuery);\n      }\n    }\n    if (event.key === \"Backspace\" && query === \"\" && (allowDeleteFromEmptyInput || inputFieldPosition === INPUT_FIELD_POSITIONS.INLINE)) {\n      handleDelete(tags.length - 1, event);\n    }\n    if (event.keyCode === KEYS.UP_ARROW) {\n      event.preventDefault();\n      setSelectedIndex(selectedIndex <= 0 ? suggestions.length - 1 : selectedIndex - 1);\n      setSelectionMode(true);\n    }\n    if (event.keyCode === KEYS.DOWN_ARROW) {\n      event.preventDefault();\n      setSelectionMode(true);\n      suggestions.length === 0 ? setSelectedIndex(-1) : setSelectedIndex((selectedIndex + 1) % suggestions.length);\n    }\n  };\n  const tagLimitReached = () => {\n    return maxTags && tags.length >= maxTags;\n  };\n  const handlePaste = event => {\n    if (!allowAdditionFromPaste) {\n      return;\n    }\n    if (tagLimitReached()) {\n      setError(ERRORS.TAG_LIMIT);\n      resetAndFocusInput();\n      return;\n    }\n    setError(\"\");\n    event.preventDefault();\n    const clipboardData = event.clipboardData || window.clipboardData;\n    const clipboardText = clipboardData.getData(\"text\");\n    const {\n      maxLength: maxLength2 = clipboardText.length\n    } = props;\n    const maxTextLength = Math.min(maxLength2, clipboardText.length);\n    const pastedText = clipboardData.getData(\"text\").substr(0, maxTextLength);\n    let keycodes = delimiters;\n    if (separators.length) {\n      keycodes = [];\n      separators.forEach(separator => {\n        const keycode = getKeyCodeFromSeparator(separator);\n        if (Array.isArray(keycode)) {\n          keycodes = [...keycodes, ...keycode];\n        } else {\n          keycodes.push(keycode);\n        }\n      });\n    }\n    const delimiterRegExp = buildRegExpFromDelimiters(keycodes);\n    const tags2 = pastedText.split(delimiterRegExp).map(tag => tag.trim());\n    uniq_default(tags2).forEach(tag => addTag({\n      id: tag.trim(),\n      [labelField]: tag.trim(),\n      className: \"\"\n    }));\n  };\n  const addTag = tag => {\n    if (!tag.id || !tag[labelField]) {\n      return;\n    }\n    if (currentEditIndex === -1) {\n      if (tagLimitReached()) {\n        setError(ERRORS.TAG_LIMIT);\n        resetAndFocusInput();\n        return;\n      }\n      setError(\"\");\n    }\n    const existingKeys = tags.map(tag2 => tag2.id.toLowerCase());\n    if (allowUnique && existingKeys.indexOf(tag.id.trim().toLowerCase()) >= 0) {\n      return;\n    }\n    if (autocomplete) {\n      const possibleMatches = filteredSuggestions(tag[labelField]);\n      console.warn(\"[Deprecation] The autocomplete prop will be removed in 7.x to simplify the integration and make it more intutive. If you have any concerns regarding this, please share your thoughts in https://github.com/react-tags/react-tags/issues/949\");\n      if (autocomplete === 1 && possibleMatches.length === 1 || autocomplete === true && possibleMatches.length) {\n        tag = possibleMatches[0];\n      }\n    }\n    if (currentEditIndex !== -1 && props.onTagUpdate) props.onTagUpdate(currentEditIndex, tag);else props?.handleAddition?.(tag);\n    setQuery(\"\");\n    setSelectionMode(false);\n    setSelectedIndex(-1);\n    setCurrentEditIndex(-1);\n    resetAndFocusInput();\n  };\n  const handleSuggestionClick = index => {\n    addTag(suggestions[index]);\n  };\n  const handleClearAll = () => {\n    if (props.onClearAll) {\n      props.onClearAll();\n    }\n    setError(\"\");\n    resetAndFocusInput();\n  };\n  const handleSuggestionHover = index => {\n    setSelectedIndex(index);\n    setSelectionMode(true);\n  };\n  const moveTag = (dragIndex, hoverIndex) => {\n    const dragTag = tags[dragIndex];\n    props?.handleDrag?.(dragTag, dragIndex, hoverIndex);\n  };\n  const getTagItems = () => {\n    const allClassNames2 = {\n      ...DEFAULT_CLASSNAMES,\n      ...props.classNames\n    };\n    return tags.map((tag, index) => {\n      return /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(react__WEBPACK_IMPORTED_MODULE_2__.Fragment, {\n        children: currentEditIndex === index ? /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"div\", {\n          className: allClassNames2.editTagInput,\n          children: /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"input\", {\n            ref: input => {\n              tagInput.current = input;\n            },\n            onFocus: handleFocus,\n            value: query,\n            onChange: handleChange,\n            onKeyDown: handleKeyDown,\n            onBlur: handleBlur,\n            className: allClassNames2.editTagInputField,\n            onPaste: handlePaste,\n            \"data-testid\": \"tag-edit\"\n          })\n        }) : /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(SingleTag, {\n          index,\n          tag,\n          tags,\n          labelField,\n          onDelete: event => handleDelete(index, event),\n          moveTag: allowDragDrop ? moveTag : void 0,\n          removeComponent,\n          onTagClicked: event => handleTagClick(index, tag, event),\n          readOnly,\n          classNames: allClassNames2,\n          allowDragDrop\n        })\n      }, index);\n    });\n  };\n  const tagItems = getTagItems();\n  const allClassNames = {\n    ...DEFAULT_CLASSNAMES,\n    ...classNames\n  };\n  const {\n    name: inputName,\n    id: inputId\n  } = props;\n  const position = inline === false ? INPUT_FIELD_POSITIONS.BOTTOM : inputFieldPosition;\n  const tagsComponent = !readOnly ? /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(\"div\", {\n    className: allClassNames.tagInput,\n    children: [/* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"input\", {\n      ...inputProps,\n      ref: input => {\n        textInput.current = input;\n      },\n      className: allClassNames.tagInputField,\n      type: \"text\",\n      placeholder,\n      \"aria-label\": placeholder,\n      onFocus: handleFocus,\n      onBlur: handleBlur,\n      onChange: handleChange,\n      onKeyDown: handleKeyDown,\n      onPaste: handlePaste,\n      name: inputName,\n      id: inputId,\n      maxLength,\n      value: inputValue,\n      \"data-automation\": \"input\",\n      \"data-testid\": \"input\"\n    }), /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(Suggestions_default, {\n      query: query.trim(),\n      suggestions,\n      labelField,\n      selectedIndex,\n      handleClick: handleSuggestionClick,\n      handleHover: handleSuggestionHover,\n      minQueryLength,\n      shouldRenderSuggestions: shouldRenderSuggestions2,\n      isFocused,\n      classNames: allClassNames,\n      renderSuggestion: props.renderSuggestion\n    }), clearAll && tags.length > 0 && /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(ClearAllTags_default, {\n      \"aria-label\": ariaAttrs?.clearAllLabel,\n      classNames: allClassNames,\n      onClick: handleClearAll\n    }), error && /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(\"div\", {\n      \"data-testid\": \"error\",\n      className: \"ReactTags__error\",\n      children: [/* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"svg\", {\n        xmlns: \"http://www.w3.org/2000/svg\",\n        viewBox: \"0 0 512 512\",\n        height: \"24\",\n        width: \"24\",\n        fill: \"#e03131\",\n        children: /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"path\", {\n          d: \"M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"\n        })\n      }), error]\n    })]\n  }) : null;\n  return /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(\"div\", {\n    className: (0, import_classnames2.default)(allClassNames.tags, \"react-tags-wrapper\"),\n    ref: reactTagsRef,\n    children: [/* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(\"p\", {\n      role: \"alert\",\n      className: \"sr-only\",\n      style: {\n        position: \"absolute\",\n        overflow: \"hidden\",\n        clip: \"rect(0 0 0 0)\",\n        margin: \"-1px\",\n        padding: 0,\n        width: \"1px\",\n        height: \"1px\",\n        border: 0\n      },\n      children: ariaLiveStatus\n    }), position === INPUT_FIELD_POSITIONS.TOP && tagsComponent, /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(\"div\", {\n      className: allClassNames.selected,\n      children: [tagItems, position === INPUT_FIELD_POSITIONS.INLINE && tagsComponent]\n    }), position === INPUT_FIELD_POSITIONS.BOTTOM && tagsComponent]\n  });\n};\nvar ReactTags_default = ReactTags;\n\n// src/index.tsx\n\nvar ReactTagsWrapper = props => {\n  const {\n    placeholder = DEFAULT_PLACEHOLDER,\n    labelField = DEFAULT_LABEL_FIELD,\n    suggestions = [],\n    // Set delimeters to empty array if not provided\n    delimiters = [],\n    // Set separators to empty array if delimiters is provided\n    separators = props.delimiters?.length ? [] : [SEPARATORS.ENTER, SEPARATORS.TAB],\n    autofocus,\n    autoFocus = true,\n    inline,\n    // TODO= Remove in v7.x.x\n    inputFieldPosition = \"inline\",\n    allowDeleteFromEmptyInput = false,\n    allowAdditionFromPaste = true,\n    autocomplete = false,\n    readOnly = false,\n    allowUnique = true,\n    allowDragDrop = true,\n    tags = [],\n    inputProps = {},\n    editable = false,\n    clearAll = false,\n    ariaAttrs = {\n      clearAllLabel: \"clear all tags\"\n    },\n    handleDelete,\n    handleAddition,\n    onTagUpdate,\n    handleDrag,\n    handleFilterSuggestions,\n    handleTagClick,\n    handleInputChange,\n    handleInputFocus,\n    handleInputBlur,\n    minQueryLength,\n    shouldRenderSuggestions: shouldRenderSuggestions2,\n    removeComponent,\n    onClearAll,\n    classNames,\n    name,\n    id,\n    maxLength,\n    inputValue,\n    maxTags,\n    renderSuggestion\n  } = props;\n  return /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(ReactTags_default, {\n    placeholder,\n    labelField,\n    suggestions,\n    delimiters,\n    separators,\n    autofocus,\n    autoFocus,\n    inline,\n    inputFieldPosition,\n    allowDeleteFromEmptyInput,\n    allowAdditionFromPaste,\n    autocomplete,\n    readOnly,\n    allowUnique,\n    allowDragDrop,\n    tags,\n    inputProps,\n    editable,\n    clearAll,\n    ariaAttrs,\n    handleDelete,\n    handleAddition,\n    onTagUpdate,\n    handleDrag,\n    handleFilterSuggestions,\n    handleTagClick,\n    handleInputChange,\n    handleInputFocus,\n    handleInputBlur,\n    minQueryLength,\n    shouldRenderSuggestions: shouldRenderSuggestions2,\n    removeComponent,\n    onClearAll,\n    classNames,\n    name,\n    id,\n    maxLength,\n    inputValue,\n    maxTags,\n    renderSuggestion\n  });\n};\nvar WithContext = ({\n  ...props\n}) =>\n// @ts-ignore\n/* @__PURE__ */\n(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(react_dnd__WEBPACK_IMPORTED_MODULE_0__.DndProvider, {\n  backend: react_dnd_html5_backend__WEBPACK_IMPORTED_MODULE_1__.HTML5Backend,\n  children: /* @__PURE__ */(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(ReactTagsWrapper, {\n    ...props\n  })\n});\n\n/*! Bundled license information:\n\nclassnames/index.js:\n  (*!\n  \tCopyright (c) 2018 Jed Watson.\n  \tLicensed under the MIT License (MIT), see\n  \thttp://jedwatson.github.io/classnames\n  *)\n\nlodash-es/lodash.js:\n  (**\n   * @license\n   * Lodash (Custom Build) <https://lodash.com/>\n   * Build: `lodash modularize exports=\"es\" -o ./`\n   * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>\n   * Released under MIT license <https://lodash.com/license>\n   * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n   * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n   *)\n*/\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-tag-input/dist/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-transition-group/esm/CSSTransition.js":
/*!****************************************************************************!*\
  !*** ../react-ui/node_modules/react-transition-group/esm/CSSTransition.js ***!
  \****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/extends */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/extends.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"../react-ui/node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var dom_helpers_addClass__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! dom-helpers/addClass */ \"../react-ui/node_modules/dom-helpers/esm/addClass.js\");\n/* harmony import */ var dom_helpers_removeClass__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! dom-helpers/removeClass */ \"../react-ui/node_modules/dom-helpers/esm/removeClass.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _Transition__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./Transition */ \"../react-ui/node_modules/react-transition-group/esm/Transition.js\");\n/* harmony import */ var _utils_PropTypes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/PropTypes */ \"../react-ui/node_modules/react-transition-group/esm/utils/PropTypes.js\");\n/* harmony import */ var _utils_reflow__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/reflow */ \"../react-ui/node_modules/react-transition-group/esm/utils/reflow.js\");\n\n\n\n\n\n\n\n\n\n\nvar _addClass = function addClass(node, classes) {\n  return node && classes && classes.split(' ').forEach(function (c) {\n    return (0,dom_helpers_addClass__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(node, c);\n  });\n};\nvar removeClass = function removeClass(node, classes) {\n  return node && classes && classes.split(' ').forEach(function (c) {\n    return (0,dom_helpers_removeClass__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(node, c);\n  });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n *   const [inProp, setInProp] = useState(false);\n *   return (\n *     <div>\n *       <CSSTransition in={inProp} timeout={200} classNames=\"my-node\">\n *         <div>\n *           {\"I'll receive my-node-* classes\"}\n *         </div>\n *       </CSSTransition>\n *       <button type=\"button\" onClick={() => setInProp(true)}>\n *         Click to Enter\n *       </button>\n *     </div>\n *   );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n *   opacity: 0;\n * }\n * .my-node-enter-active {\n *   opacity: 1;\n *   transition: opacity 200ms;\n * }\n * .my-node-exit {\n *   opacity: 1;\n * }\n * .my-node-exit-active {\n *   opacity: 0;\n *   transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n  (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(CSSTransition, _React$Component);\n  function CSSTransition() {\n    var _this;\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n    _this.appliedClasses = {\n      appear: {},\n      enter: {},\n      exit: {}\n    };\n    _this.onEnter = function (maybeNode, maybeAppearing) {\n      var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n        node = _this$resolveArgument[0],\n        appearing = _this$resolveArgument[1];\n      _this.removeClasses(node, 'exit');\n      _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n      if (_this.props.onEnter) {\n        _this.props.onEnter(maybeNode, maybeAppearing);\n      }\n    };\n    _this.onEntering = function (maybeNode, maybeAppearing) {\n      var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n        node = _this$resolveArgument2[0],\n        appearing = _this$resolveArgument2[1];\n      var type = appearing ? 'appear' : 'enter';\n      _this.addClass(node, type, 'active');\n      if (_this.props.onEntering) {\n        _this.props.onEntering(maybeNode, maybeAppearing);\n      }\n    };\n    _this.onEntered = function (maybeNode, maybeAppearing) {\n      var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n        node = _this$resolveArgument3[0],\n        appearing = _this$resolveArgument3[1];\n      var type = appearing ? 'appear' : 'enter';\n      _this.removeClasses(node, type);\n      _this.addClass(node, type, 'done');\n      if (_this.props.onEntered) {\n        _this.props.onEntered(maybeNode, maybeAppearing);\n      }\n    };\n    _this.onExit = function (maybeNode) {\n      var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n        node = _this$resolveArgument4[0];\n      _this.removeClasses(node, 'appear');\n      _this.removeClasses(node, 'enter');\n      _this.addClass(node, 'exit', 'base');\n      if (_this.props.onExit) {\n        _this.props.onExit(maybeNode);\n      }\n    };\n    _this.onExiting = function (maybeNode) {\n      var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n        node = _this$resolveArgument5[0];\n      _this.addClass(node, 'exit', 'active');\n      if (_this.props.onExiting) {\n        _this.props.onExiting(maybeNode);\n      }\n    };\n    _this.onExited = function (maybeNode) {\n      var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n        node = _this$resolveArgument6[0];\n      _this.removeClasses(node, 'exit');\n      _this.addClass(node, 'exit', 'done');\n      if (_this.props.onExited) {\n        _this.props.onExited(maybeNode);\n      }\n    };\n    _this.resolveArguments = function (maybeNode, maybeAppearing) {\n      return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n      : [maybeNode, maybeAppearing];\n    };\n    _this.getClassNames = function (type) {\n      var classNames = _this.props.classNames;\n      var isStringClassNames = typeof classNames === 'string';\n      var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n      var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n      var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n      var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n      return {\n        baseClassName: baseClassName,\n        activeClassName: activeClassName,\n        doneClassName: doneClassName\n      };\n    };\n    return _this;\n  }\n  var _proto = CSSTransition.prototype;\n  _proto.addClass = function addClass(node, type, phase) {\n    var className = this.getClassNames(type)[phase + \"ClassName\"];\n    var _this$getClassNames = this.getClassNames('enter'),\n      doneClassName = _this$getClassNames.doneClassName;\n    if (type === 'appear' && phase === 'done' && doneClassName) {\n      className += \" \" + doneClassName;\n    } // This is to force a repaint,\n    // which is necessary in order to transition styles when adding a class name.\n\n    if (phase === 'active') {\n      if (node) (0,_utils_reflow__WEBPACK_IMPORTED_MODULE_9__.forceReflow)(node);\n    }\n    if (className) {\n      this.appliedClasses[type][phase] = className;\n      _addClass(node, className);\n    }\n  };\n  _proto.removeClasses = function removeClasses(node, type) {\n    var _this$appliedClasses$ = this.appliedClasses[type],\n      baseClassName = _this$appliedClasses$.base,\n      activeClassName = _this$appliedClasses$.active,\n      doneClassName = _this$appliedClasses$.done;\n    this.appliedClasses[type] = {};\n    if (baseClassName) {\n      removeClass(node, baseClassName);\n    }\n    if (activeClassName) {\n      removeClass(node, activeClassName);\n    }\n    if (doneClassName) {\n      removeClass(node, doneClassName);\n    }\n  };\n  _proto.render = function render() {\n    var _this$props = this.props,\n      _ = _this$props.classNames,\n      props = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(_this$props, [\"classNames\"]);\n    return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_6___default().createElement(_Transition__WEBPACK_IMPORTED_MODULE_7__[\"default\"], (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, props, {\n      onEnter: this.onEnter,\n      onEntered: this.onEntered,\n      onEntering: this.onEntering,\n      onExit: this.onExit,\n      onExiting: this.onExiting,\n      onExited: this.onExited\n    }));\n  };\n  return CSSTransition;\n}((react__WEBPACK_IMPORTED_MODULE_6___default().Component));\nCSSTransition.defaultProps = {\n  classNames: ''\n};\nCSSTransition.propTypes =  true ? (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__[\"default\"])({}, _Transition__WEBPACK_IMPORTED_MODULE_7__[\"default\"].propTypes, {\n  /**\n   * The animation classNames applied to the component as it appears, enters,\n   * exits or has finished the transition. A single name can be provided, which\n   * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n   *\n   * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n   * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n   * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n   *\n   * A few details to note about how these classes are applied:\n   *\n   * 1. They are _joined_ with the ones that are already defined on the child\n   *    component, so if you want to add some base styles, you can use\n   *    `className` without worrying that it will be overridden.\n   *\n   * 2. If the transition component mounts with `in={false}`, no classes are\n   *    applied yet. You might be expecting `*-exit-done`, but if you think\n   *    about it, a component cannot finish exiting if it hasn't entered yet.\n   *\n   * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n   *    allows you to define different behavior for when appearing is done and\n   *    when regular entering is done, using selectors like\n   *    `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n   *    an epic entrance animation when element first appears in the DOM using\n   *    [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n   *    simply use `fade-enter-done` for defining both cases.\n   *\n   * Each individual classNames can also be specified independently like:\n   *\n   * ```js\n   * classNames={{\n   *  appear: 'my-appear',\n   *  appearActive: 'my-active-appear',\n   *  appearDone: 'my-done-appear',\n   *  enter: 'my-enter',\n   *  enterActive: 'my-active-enter',\n   *  enterDone: 'my-done-enter',\n   *  exit: 'my-exit',\n   *  exitActive: 'my-active-exit',\n   *  exitDone: 'my-done-exit',\n   * }}\n   * ```\n   *\n   * If you want to set these classes using CSS Modules:\n   *\n   * ```js\n   * import styles from './styles.css';\n   * ```\n   *\n   * you might want to use camelCase in your CSS file, that way could simply\n   * spread them instead of listing them one by one:\n   *\n   * ```js\n   * classNames={{ ...styles }}\n   * ```\n   *\n   * @type {string | {\n   *  appear?: string,\n   *  appearActive?: string,\n   *  appearDone?: string,\n   *  enter?: string,\n   *  enterActive?: string,\n   *  enterDone?: string,\n   *  exit?: string,\n   *  exitActive?: string,\n   *  exitDone?: string,\n   * }}\n   */\n  classNames: _utils_PropTypes__WEBPACK_IMPORTED_MODULE_8__.classNamesShape,\n  /**\n   * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is\n   * applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEnter: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n  /**\n   * A `<Transition>` callback fired immediately after the 'enter-active' or\n   * 'appear-active' class is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntering: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n  /**\n   * A `<Transition>` callback fired immediately after the 'enter' or\n   * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntered: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n  /**\n   * A `<Transition>` callback fired immediately after the 'exit' class is\n   * applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed\n   *\n   * @type Function(node: HtmlElement)\n   */\n  onExit: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n  /**\n   * A `<Transition>` callback fired immediately after the 'exit-active' is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed\n   *\n   * @type Function(node: HtmlElement)\n   */\n  onExiting: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n  /**\n   * A `<Transition>` callback fired immediately after the 'exit' classes\n   * are **removed** and the `exit-done` class is added to the DOM node.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed\n   *\n   * @type Function(node: HtmlElement)\n   */\n  onExited: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func)\n}) : 0;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (CSSTransition);\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-transition-group/esm/CSSTransition.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-transition-group/esm/Transition.js":
/*!*************************************************************************!*\
  !*** ../react-ui/node_modules/react-transition-group/esm/Transition.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   ENTERED: () => (/* binding */ ENTERED),\n/* harmony export */   ENTERING: () => (/* binding */ ENTERING),\n/* harmony export */   EXITED: () => (/* binding */ EXITED),\n/* harmony export */   EXITING: () => (/* binding */ EXITING),\n/* harmony export */   UNMOUNTED: () => (/* binding */ UNMOUNTED),\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/objectWithoutPropertiesLoose */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js\");\n/* harmony import */ var _babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/esm/inheritsLoose */ \"../react-ui/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ \"../react-ui/node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react-dom */ \"../react-ui/node_modules/react-dom/index.js\");\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./config */ \"../react-ui/node_modules/react-transition-group/esm/config.js\");\n/* harmony import */ var _utils_PropTypes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/PropTypes */ \"../react-ui/node_modules/react-transition-group/esm/utils/PropTypes.js\");\n/* harmony import */ var _TransitionGroupContext__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./TransitionGroupContext */ \"../react-ui/node_modules/react-transition-group/esm/TransitionGroupContext.js\");\n/* harmony import */ var _utils_reflow__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/reflow */ \"../react-ui/node_modules/react-transition-group/esm/utils/reflow.js\");\n\n\n\n\n\n\n\n\n\nvar UNMOUNTED = 'unmounted';\nvar EXITED = 'exited';\nvar ENTERING = 'entering';\nvar ENTERED = 'entered';\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n *   transition: `opacity ${duration}ms ease-in-out`,\n *   opacity: 0,\n * }\n *\n * const transitionStyles = {\n *   entering: { opacity: 1 },\n *   entered:  { opacity: 1 },\n *   exiting:  { opacity: 0 },\n *   exited:  { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n *   <Transition in={inProp} timeout={duration}>\n *     {state => (\n *       <div style={{\n *         ...defaultStyle,\n *         ...transitionStyles[state]\n *       }}>\n *         I'm a fade Transition!\n *       </div>\n *     )}\n *   </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n *  - `'entering'`\n *  - `'entered'`\n *  - `'exiting'`\n *  - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n *   const [inProp, setInProp] = useState(false);\n *   return (\n *     <div>\n *       <Transition in={inProp} timeout={500}>\n *         {state => (\n *           // ...\n *         )}\n *       </Transition>\n *       <button onClick={() => setInProp(true)}>\n *         Click to Enter\n *       </button>\n *     </div>\n *   );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n  (0,_babel_runtime_helpers_esm_inheritsLoose__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(Transition, _React$Component);\n  function Transition(props, context) {\n    var _this;\n    _this = _React$Component.call(this, props, context) || this;\n    var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n    var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n    var initialStatus;\n    _this.appearStatus = null;\n    if (props.in) {\n      if (appear) {\n        initialStatus = EXITED;\n        _this.appearStatus = ENTERING;\n      } else {\n        initialStatus = ENTERED;\n      }\n    } else {\n      if (props.unmountOnExit || props.mountOnEnter) {\n        initialStatus = UNMOUNTED;\n      } else {\n        initialStatus = EXITED;\n      }\n    }\n    _this.state = {\n      status: initialStatus\n    };\n    _this.nextCallback = null;\n    return _this;\n  }\n  Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n    var nextIn = _ref.in;\n    if (nextIn && prevState.status === UNMOUNTED) {\n      return {\n        status: EXITED\n      };\n    }\n    return null;\n  } // getSnapshotBeforeUpdate(prevProps) {\n  //   let nextStatus = null\n  //   if (prevProps !== this.props) {\n  //     const { status } = this.state\n  //     if (this.props.in) {\n  //       if (status !== ENTERING && status !== ENTERED) {\n  //         nextStatus = ENTERING\n  //       }\n  //     } else {\n  //       if (status === ENTERING || status === ENTERED) {\n  //         nextStatus = EXITING\n  //       }\n  //     }\n  //   }\n  //   return { nextStatus }\n  // }\n  ;\n  var _proto = Transition.prototype;\n  _proto.componentDidMount = function componentDidMount() {\n    this.updateStatus(true, this.appearStatus);\n  };\n  _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n    var nextStatus = null;\n    if (prevProps !== this.props) {\n      var status = this.state.status;\n      if (this.props.in) {\n        if (status !== ENTERING && status !== ENTERED) {\n          nextStatus = ENTERING;\n        }\n      } else {\n        if (status === ENTERING || status === ENTERED) {\n          nextStatus = EXITING;\n        }\n      }\n    }\n    this.updateStatus(false, nextStatus);\n  };\n  _proto.componentWillUnmount = function componentWillUnmount() {\n    this.cancelNextCallback();\n  };\n  _proto.getTimeouts = function getTimeouts() {\n    var timeout = this.props.timeout;\n    var exit, enter, appear;\n    exit = enter = appear = timeout;\n    if (timeout != null && typeof timeout !== 'number') {\n      exit = timeout.exit;\n      enter = timeout.enter; // TODO: remove fallback for next major\n\n      appear = timeout.appear !== undefined ? timeout.appear : enter;\n    }\n    return {\n      exit: exit,\n      enter: enter,\n      appear: appear\n    };\n  };\n  _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n    if (mounting === void 0) {\n      mounting = false;\n    }\n    if (nextStatus !== null) {\n      // nextStatus will always be ENTERING or EXITING.\n      this.cancelNextCallback();\n      if (nextStatus === ENTERING) {\n        if (this.props.unmountOnExit || this.props.mountOnEnter) {\n          var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom__WEBPACK_IMPORTED_MODULE_4__.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n          // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n          // To make the animation happen,  we have to separate each rendering and avoid being processed as batched.\n\n          if (node) (0,_utils_reflow__WEBPACK_IMPORTED_MODULE_8__.forceReflow)(node);\n        }\n        this.performEnter(mounting);\n      } else {\n        this.performExit();\n      }\n    } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n      this.setState({\n        status: UNMOUNTED\n      });\n    }\n  };\n  _proto.performEnter = function performEnter(mounting) {\n    var _this2 = this;\n    var enter = this.props.enter;\n    var appearing = this.context ? this.context.isMounting : mounting;\n    var _ref2 = this.props.nodeRef ? [appearing] : [react_dom__WEBPACK_IMPORTED_MODULE_4__.findDOMNode(this), appearing],\n      maybeNode = _ref2[0],\n      maybeAppearing = _ref2[1];\n    var timeouts = this.getTimeouts();\n    var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n    // if we are mounting and running this it means appear _must_ be set\n\n    if (!mounting && !enter || _config__WEBPACK_IMPORTED_MODULE_5__[\"default\"].disabled) {\n      this.safeSetState({\n        status: ENTERED\n      }, function () {\n        _this2.props.onEntered(maybeNode);\n      });\n      return;\n    }\n    this.props.onEnter(maybeNode, maybeAppearing);\n    this.safeSetState({\n      status: ENTERING\n    }, function () {\n      _this2.props.onEntering(maybeNode, maybeAppearing);\n      _this2.onTransitionEnd(enterTimeout, function () {\n        _this2.safeSetState({\n          status: ENTERED\n        }, function () {\n          _this2.props.onEntered(maybeNode, maybeAppearing);\n        });\n      });\n    });\n  };\n  _proto.performExit = function performExit() {\n    var _this3 = this;\n    var exit = this.props.exit;\n    var timeouts = this.getTimeouts();\n    var maybeNode = this.props.nodeRef ? undefined : react_dom__WEBPACK_IMPORTED_MODULE_4__.findDOMNode(this); // no exit animation skip right to EXITED\n\n    if (!exit || _config__WEBPACK_IMPORTED_MODULE_5__[\"default\"].disabled) {\n      this.safeSetState({\n        status: EXITED\n      }, function () {\n        _this3.props.onExited(maybeNode);\n      });\n      return;\n    }\n    this.props.onExit(maybeNode);\n    this.safeSetState({\n      status: EXITING\n    }, function () {\n      _this3.props.onExiting(maybeNode);\n      _this3.onTransitionEnd(timeouts.exit, function () {\n        _this3.safeSetState({\n          status: EXITED\n        }, function () {\n          _this3.props.onExited(maybeNode);\n        });\n      });\n    });\n  };\n  _proto.cancelNextCallback = function cancelNextCallback() {\n    if (this.nextCallback !== null) {\n      this.nextCallback.cancel();\n      this.nextCallback = null;\n    }\n  };\n  _proto.safeSetState = function safeSetState(nextState, callback) {\n    // This shouldn't be necessary, but there are weird race conditions with\n    // setState callbacks and unmounting in testing, so always make sure that\n    // we can cancel any pending setState callbacks after we unmount.\n    callback = this.setNextCallback(callback);\n    this.setState(nextState, callback);\n  };\n  _proto.setNextCallback = function setNextCallback(callback) {\n    var _this4 = this;\n    var active = true;\n    this.nextCallback = function (event) {\n      if (active) {\n        active = false;\n        _this4.nextCallback = null;\n        callback(event);\n      }\n    };\n    this.nextCallback.cancel = function () {\n      active = false;\n    };\n    return this.nextCallback;\n  };\n  _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n    this.setNextCallback(handler);\n    var node = this.props.nodeRef ? this.props.nodeRef.current : react_dom__WEBPACK_IMPORTED_MODULE_4__.findDOMNode(this);\n    var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n    if (!node || doesNotHaveTimeoutOrListener) {\n      setTimeout(this.nextCallback, 0);\n      return;\n    }\n    if (this.props.addEndListener) {\n      var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n        maybeNode = _ref3[0],\n        maybeNextCallback = _ref3[1];\n      this.props.addEndListener(maybeNode, maybeNextCallback);\n    }\n    if (timeout != null) {\n      setTimeout(this.nextCallback, timeout);\n    }\n  };\n  _proto.render = function render() {\n    var status = this.state.status;\n    if (status === UNMOUNTED) {\n      return null;\n    }\n    var _this$props = this.props,\n      children = _this$props.children,\n      _in = _this$props.in,\n      _mountOnEnter = _this$props.mountOnEnter,\n      _unmountOnExit = _this$props.unmountOnExit,\n      _appear = _this$props.appear,\n      _enter = _this$props.enter,\n      _exit = _this$props.exit,\n      _timeout = _this$props.timeout,\n      _addEndListener = _this$props.addEndListener,\n      _onEnter = _this$props.onEnter,\n      _onEntering = _this$props.onEntering,\n      _onEntered = _this$props.onEntered,\n      _onExit = _this$props.onExit,\n      _onExiting = _this$props.onExiting,\n      _onExited = _this$props.onExited,\n      _nodeRef = _this$props.nodeRef,\n      childProps = (0,_babel_runtime_helpers_esm_objectWithoutPropertiesLoose__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n    return (/*#__PURE__*/\n      // allows for nested Transitions\n      react__WEBPACK_IMPORTED_MODULE_3___default().createElement(_TransitionGroupContext__WEBPACK_IMPORTED_MODULE_7__[\"default\"].Provider, {\n        value: null\n      }, typeof children === 'function' ? children(status, childProps) : /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_3___default().cloneElement(react__WEBPACK_IMPORTED_MODULE_3___default().Children.only(children), childProps))\n    );\n  };\n  return Transition;\n}((react__WEBPACK_IMPORTED_MODULE_3___default().Component));\nTransition.contextType = _TransitionGroupContext__WEBPACK_IMPORTED_MODULE_7__[\"default\"];\nTransition.propTypes =  true ? {\n  /**\n   * A React reference to DOM element that need to transition:\n   * https://stackoverflow.com/a/51127130/4671932\n   *\n   *   - When `nodeRef` prop is used, `node` is not passed to callback functions\n   *      (e.g. `onEnter`) because user already has direct access to the node.\n   *   - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n   *     `nodeRef` need to be provided to `Transition` with changed `key` prop\n   *     (see\n   *     [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n   */\n  nodeRef: prop_types__WEBPACK_IMPORTED_MODULE_2___default().shape({\n    current: typeof Element === 'undefined' ? (prop_types__WEBPACK_IMPORTED_MODULE_2___default().any) : function (propValue, key, componentName, location, propFullName, secret) {\n      var value = propValue[key];\n      return prop_types__WEBPACK_IMPORTED_MODULE_2___default().instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n    }\n  }),\n  /**\n   * A `function` child can be used instead of a React element. This function is\n   * called with the current transition status (`'entering'`, `'entered'`,\n   * `'exiting'`, `'exited'`), which can be used to apply context\n   * specific props to a component.\n   *\n   * ```jsx\n   * <Transition in={this.state.in} timeout={150}>\n   *   {state => (\n   *     <MyComponent className={`fade fade-${state}`} />\n   *   )}\n   * </Transition>\n   * ```\n   */\n  children: prop_types__WEBPACK_IMPORTED_MODULE_2___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_2___default().func).isRequired, (prop_types__WEBPACK_IMPORTED_MODULE_2___default().element).isRequired]).isRequired,\n  /**\n   * Show the component; triggers the enter or exit states\n   */\n  in: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n  /**\n   * By default the child component is mounted immediately along with\n   * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n   * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n   * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n   */\n  mountOnEnter: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n  /**\n   * By default the child component stays mounted after it reaches the `'exited'` state.\n   * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n   */\n  unmountOnExit: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n  /**\n   * By default the child component does not perform the enter transition when\n   * it first mounts, regardless of the value of `in`. If you want this\n   * behavior, set both `appear` and `in` to `true`.\n   *\n   * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n   * > only adds an additional enter transition. However, in the\n   * > `<CSSTransition>` component that first enter transition does result in\n   * > additional `.appear-*` classes, that way you can choose to style it\n   * > differently.\n   */\n  appear: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n  /**\n   * Enable or disable enter transitions.\n   */\n  enter: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n  /**\n   * Enable or disable exit transitions.\n   */\n  exit: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().bool),\n  /**\n   * The duration of the transition, in milliseconds.\n   * Required unless `addEndListener` is provided.\n   *\n   * You may specify a single timeout for all transitions:\n   *\n   * ```jsx\n   * timeout={500}\n   * ```\n   *\n   * or individually:\n   *\n   * ```jsx\n   * timeout={{\n   *  appear: 500,\n   *  enter: 300,\n   *  exit: 500,\n   * }}\n   * ```\n   *\n   * - `appear` defaults to the value of `enter`\n   * - `enter` defaults to `0`\n   * - `exit` defaults to `0`\n   *\n   * @type {number | { enter?: number, exit?: number, appear?: number }}\n   */\n  timeout: function timeout(props) {\n    var pt = _utils_PropTypes__WEBPACK_IMPORTED_MODULE_6__.timeoutsShape;\n    if (!props.addEndListener) pt = pt.isRequired;\n    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n    return pt.apply(void 0, [props].concat(args));\n  },\n  /**\n   * Add a custom transition end trigger. Called with the transitioning\n   * DOM node and a `done` callback. Allows for more fine grained transition end\n   * logic. Timeouts are still used as a fallback if provided.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * ```jsx\n   * addEndListener={(node, done) => {\n   *   // use the css transitionend event to mark the finish of a transition\n   *   node.addEventListener('transitionend', done, false);\n   * }}\n   * ```\n   */\n  addEndListener: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n  /**\n   * Callback fired before the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEnter: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n  /**\n   * Callback fired after the \"entering\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool)\n   */\n  onEntering: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n  /**\n   * Callback fired after the \"entered\" status is applied. An extra parameter\n   * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement, isAppearing: bool) -> void\n   */\n  onEntered: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n  /**\n   * Callback fired before the \"exiting\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExit: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n  /**\n   * Callback fired after the \"exiting\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExiting: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func),\n  /**\n   * Callback fired after the \"exited\" status is applied.\n   *\n   * **Note**: when `nodeRef` prop is passed, `node` is not passed\n   *\n   * @type Function(node: HtmlElement) -> void\n   */\n  onExited: (prop_types__WEBPACK_IMPORTED_MODULE_2___default().func)\n} : 0; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\nTransition.defaultProps = {\n  in: false,\n  mountOnEnter: false,\n  unmountOnExit: false,\n  appear: false,\n  enter: true,\n  exit: true,\n  onEnter: noop,\n  onEntering: noop,\n  onEntered: noop,\n  onExit: noop,\n  onExiting: noop,\n  onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Transition);\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-transition-group/esm/Transition.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-transition-group/esm/TransitionGroupContext.js":
/*!*************************************************************************************!*\
  !*** ../react-ui/node_modules/react-transition-group/esm/TransitionGroupContext.js ***!
  \*************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createContext(null));\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-transition-group/esm/TransitionGroupContext.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-transition-group/esm/config.js":
/*!*********************************************************************!*\
  !*** ../react-ui/node_modules/react-transition-group/esm/config.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  disabled: false\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-transition-group/esm/config.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-transition-group/esm/utils/PropTypes.js":
/*!******************************************************************************!*\
  !*** ../react-ui/node_modules/react-transition-group/esm/utils/PropTypes.js ***!
  \******************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   classNamesShape: () => (/* binding */ classNamesShape),\n/* harmony export */   timeoutsShape: () => (/* binding */ timeoutsShape)\n/* harmony export */ });\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ \"../react-ui/node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n\nvar timeoutsShape =  true ? prop_types__WEBPACK_IMPORTED_MODULE_0___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_0___default().number), prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n  enter: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().number),\n  exit: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().number),\n  appear: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().number)\n}).isRequired]) : 0;\nvar classNamesShape =  true ? prop_types__WEBPACK_IMPORTED_MODULE_0___default().oneOfType([(prop_types__WEBPACK_IMPORTED_MODULE_0___default().string), prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n  enter: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n  exit: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n  active: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string)\n}), prop_types__WEBPACK_IMPORTED_MODULE_0___default().shape({\n  enter: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n  enterDone: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n  enterActive: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n  exit: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n  exitDone: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string),\n  exitActive: (prop_types__WEBPACK_IMPORTED_MODULE_0___default().string)\n})]) : 0;\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-transition-group/esm/utils/PropTypes.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react-transition-group/esm/utils/reflow.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/react-transition-group/esm/utils/reflow.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   forceReflow: () => (/* binding */ forceReflow)\n/* harmony export */ });\nvar forceReflow = function forceReflow(node) {\n  return node.scrollTop;\n};\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-transition-group/esm/utils/reflow.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react/cjs/react-jsx-runtime.development.js":
/*!***************************************************************************!*\
  !*** ../react-ui/node_modules/react/cjs/react-jsx-runtime.development.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("{/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n  (function () {\n    'use strict';\n\n    var React = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n\n    // ATTENTION\n    // When adding new symbols to this file,\n    // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n    // The Symbol used to tag the ReactElement-like types.\n    var REACT_ELEMENT_TYPE = Symbol.for('react.element');\n    var REACT_PORTAL_TYPE = Symbol.for('react.portal');\n    var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\n    var REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\n    var REACT_PROFILER_TYPE = Symbol.for('react.profiler');\n    var REACT_PROVIDER_TYPE = Symbol.for('react.provider');\n    var REACT_CONTEXT_TYPE = Symbol.for('react.context');\n    var REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\n    var REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\n    var REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\n    var REACT_MEMO_TYPE = Symbol.for('react.memo');\n    var REACT_LAZY_TYPE = Symbol.for('react.lazy');\n    var REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n    var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\n    var FAUX_ITERATOR_SYMBOL = '@@iterator';\n    function getIteratorFn(maybeIterable) {\n      if (maybeIterable === null || typeof maybeIterable !== 'object') {\n        return null;\n      }\n      var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n      if (typeof maybeIterator === 'function') {\n        return maybeIterator;\n      }\n      return null;\n    }\n    var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n    function error(format) {\n      {\n        {\n          for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n            args[_key2 - 1] = arguments[_key2];\n          }\n          printWarning('error', format, args);\n        }\n      }\n    }\n    function printWarning(level, format, args) {\n      // When changing this logic, you might want to also\n      // update consoleWithStackDev.www.js as well.\n      {\n        var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n        var stack = ReactDebugCurrentFrame.getStackAddendum();\n        if (stack !== '') {\n          format += '%s';\n          args = args.concat([stack]);\n        } // eslint-disable-next-line react-internal/safe-string-coercion\n\n        var argsWithFormat = args.map(function (item) {\n          return String(item);\n        }); // Careful: RN currently depends on this prefix\n\n        argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n        // breaks IE9: https://github.com/facebook/react/issues/13610\n        // eslint-disable-next-line react-internal/no-production-logging\n\n        Function.prototype.apply.call(console[level], console, argsWithFormat);\n      }\n    }\n\n    // -----------------------------------------------------------------------------\n\n    var enableScopeAPI = false; // Experimental Create Event Handle API.\n    var enableCacheElement = false;\n    var enableTransitionTracing = false; // No known bugs, but needs performance testing\n\n    var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n    // stuff. Intended to enable React core members to more easily debug scheduling\n    // issues in DEV builds.\n\n    var enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\n    var REACT_MODULE_REFERENCE;\n    {\n      REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n    }\n    function isValidElementType(type) {\n      if (typeof type === 'string' || typeof type === 'function') {\n        return true;\n      } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n      if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) {\n        return true;\n      }\n      if (typeof type === 'object' && type !== null) {\n        if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE ||\n        // This needs to include all possible module reference object\n        // types supported by any Flight configuration anywhere since\n        // we don't know which Flight build this will end up being used\n        // with.\n        type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n          return true;\n        }\n      }\n      return false;\n    }\n    function getWrappedName(outerType, innerType, wrapperName) {\n      var displayName = outerType.displayName;\n      if (displayName) {\n        return displayName;\n      }\n      var functionName = innerType.displayName || innerType.name || '';\n      return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n    } // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n    function getContextName(type) {\n      return type.displayName || 'Context';\n    } // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n    function getComponentNameFromType(type) {\n      if (type == null) {\n        // Host root, text node or just invalid type.\n        return null;\n      }\n      {\n        if (typeof type.tag === 'number') {\n          error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n        }\n      }\n      if (typeof type === 'function') {\n        return type.displayName || type.name || null;\n      }\n      if (typeof type === 'string') {\n        return type;\n      }\n      switch (type) {\n        case REACT_FRAGMENT_TYPE:\n          return 'Fragment';\n        case REACT_PORTAL_TYPE:\n          return 'Portal';\n        case REACT_PROFILER_TYPE:\n          return 'Profiler';\n        case REACT_STRICT_MODE_TYPE:\n          return 'StrictMode';\n        case REACT_SUSPENSE_TYPE:\n          return 'Suspense';\n        case REACT_SUSPENSE_LIST_TYPE:\n          return 'SuspenseList';\n      }\n      if (typeof type === 'object') {\n        switch (type.$$typeof) {\n          case REACT_CONTEXT_TYPE:\n            var context = type;\n            return getContextName(context) + '.Consumer';\n          case REACT_PROVIDER_TYPE:\n            var provider = type;\n            return getContextName(provider._context) + '.Provider';\n          case REACT_FORWARD_REF_TYPE:\n            return getWrappedName(type, type.render, 'ForwardRef');\n          case REACT_MEMO_TYPE:\n            var outerName = type.displayName || null;\n            if (outerName !== null) {\n              return outerName;\n            }\n            return getComponentNameFromType(type.type) || 'Memo';\n          case REACT_LAZY_TYPE:\n            {\n              var lazyComponent = type;\n              var payload = lazyComponent._payload;\n              var init = lazyComponent._init;\n              try {\n                return getComponentNameFromType(init(payload));\n              } catch (x) {\n                return null;\n              }\n            }\n\n          // eslint-disable-next-line no-fallthrough\n        }\n      }\n      return null;\n    }\n    var assign = Object.assign;\n\n    // Helpers to patch console.logs to avoid logging during side-effect free\n    // replaying on render function. This currently only patches the object\n    // lazily which won't cover if the log function was extracted eagerly.\n    // We could also eagerly patch the method.\n    var disabledDepth = 0;\n    var prevLog;\n    var prevInfo;\n    var prevWarn;\n    var prevError;\n    var prevGroup;\n    var prevGroupCollapsed;\n    var prevGroupEnd;\n    function disabledLog() {}\n    disabledLog.__reactDisabledLog = true;\n    function disableLogs() {\n      {\n        if (disabledDepth === 0) {\n          /* eslint-disable react-internal/no-production-logging */\n          prevLog = console.log;\n          prevInfo = console.info;\n          prevWarn = console.warn;\n          prevError = console.error;\n          prevGroup = console.group;\n          prevGroupCollapsed = console.groupCollapsed;\n          prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n          var props = {\n            configurable: true,\n            enumerable: true,\n            value: disabledLog,\n            writable: true\n          }; // $FlowFixMe Flow thinks console is immutable.\n\n          Object.defineProperties(console, {\n            info: props,\n            log: props,\n            warn: props,\n            error: props,\n            group: props,\n            groupCollapsed: props,\n            groupEnd: props\n          });\n          /* eslint-enable react-internal/no-production-logging */\n        }\n        disabledDepth++;\n      }\n    }\n    function reenableLogs() {\n      {\n        disabledDepth--;\n        if (disabledDepth === 0) {\n          /* eslint-disable react-internal/no-production-logging */\n          var props = {\n            configurable: true,\n            enumerable: true,\n            writable: true\n          }; // $FlowFixMe Flow thinks console is immutable.\n\n          Object.defineProperties(console, {\n            log: assign({}, props, {\n              value: prevLog\n            }),\n            info: assign({}, props, {\n              value: prevInfo\n            }),\n            warn: assign({}, props, {\n              value: prevWarn\n            }),\n            error: assign({}, props, {\n              value: prevError\n            }),\n            group: assign({}, props, {\n              value: prevGroup\n            }),\n            groupCollapsed: assign({}, props, {\n              value: prevGroupCollapsed\n            }),\n            groupEnd: assign({}, props, {\n              value: prevGroupEnd\n            })\n          });\n          /* eslint-enable react-internal/no-production-logging */\n        }\n        if (disabledDepth < 0) {\n          error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n        }\n      }\n    }\n    var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n    var prefix;\n    function describeBuiltInComponentFrame(name, source, ownerFn) {\n      {\n        if (prefix === undefined) {\n          // Extract the VM specific prefix used by each line.\n          try {\n            throw Error();\n          } catch (x) {\n            var match = x.stack.trim().match(/\\n( *(at )?)/);\n            prefix = match && match[1] || '';\n          }\n        } // We use the prefix to ensure our stacks line up with native stack frames.\n\n        return '\\n' + prefix + name;\n      }\n    }\n    var reentry = false;\n    var componentFrameCache;\n    {\n      var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n      componentFrameCache = new PossiblyWeakMap();\n    }\n    function describeNativeComponentFrame(fn, construct) {\n      // If something asked for a stack inside a fake render, it should get ignored.\n      if (!fn || reentry) {\n        return '';\n      }\n      {\n        var frame = componentFrameCache.get(fn);\n        if (frame !== undefined) {\n          return frame;\n        }\n      }\n      var control;\n      reentry = true;\n      var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n      Error.prepareStackTrace = undefined;\n      var previousDispatcher;\n      {\n        previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n        // for warnings.\n\n        ReactCurrentDispatcher.current = null;\n        disableLogs();\n      }\n      try {\n        // This should throw.\n        if (construct) {\n          // Something should be setting the props in the constructor.\n          var Fake = function () {\n            throw Error();\n          }; // $FlowFixMe\n\n          Object.defineProperty(Fake.prototype, 'props', {\n            set: function () {\n              // We use a throwing setter instead of frozen or non-writable props\n              // because that won't throw in a non-strict mode function.\n              throw Error();\n            }\n          });\n          if (typeof Reflect === 'object' && Reflect.construct) {\n            // We construct a different control for this case to include any extra\n            // frames added by the construct call.\n            try {\n              Reflect.construct(Fake, []);\n            } catch (x) {\n              control = x;\n            }\n            Reflect.construct(fn, [], Fake);\n          } else {\n            try {\n              Fake.call();\n            } catch (x) {\n              control = x;\n            }\n            fn.call(Fake.prototype);\n          }\n        } else {\n          try {\n            throw Error();\n          } catch (x) {\n            control = x;\n          }\n          fn();\n        }\n      } catch (sample) {\n        // This is inlined manually because closure doesn't do it for us.\n        if (sample && control && typeof sample.stack === 'string') {\n          // This extracts the first frame from the sample that isn't also in the control.\n          // Skipping one frame that we assume is the frame that calls the two.\n          var sampleLines = sample.stack.split('\\n');\n          var controlLines = control.stack.split('\\n');\n          var s = sampleLines.length - 1;\n          var c = controlLines.length - 1;\n          while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n            // We expect at least one stack frame to be shared.\n            // Typically this will be the root most one. However, stack frames may be\n            // cut off due to maximum stack limits. In this case, one maybe cut off\n            // earlier than the other. We assume that the sample is longer or the same\n            // and there for cut off earlier. So we should find the root most frame in\n            // the sample somewhere in the control.\n            c--;\n          }\n          for (; s >= 1 && c >= 0; s--, c--) {\n            // Next we find the first one that isn't the same which should be the\n            // frame that called our sample function and the control.\n            if (sampleLines[s] !== controlLines[c]) {\n              // In V8, the first line is describing the message but other VMs don't.\n              // If we're about to return the first line, and the control is also on the same\n              // line, that's a pretty good indicator that our sample threw at same line as\n              // the control. I.e. before we entered the sample frame. So we ignore this result.\n              // This can happen if you passed a class to function component, or non-function.\n              if (s !== 1 || c !== 1) {\n                do {\n                  s--;\n                  c--; // We may still have similar intermediate frames from the construct call.\n                  // The next one that isn't the same should be our match though.\n\n                  if (c < 0 || sampleLines[s] !== controlLines[c]) {\n                    // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n                    var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n                    // but we have a user-provided \"displayName\"\n                    // splice it in to make the stack more readable.\n\n                    if (fn.displayName && _frame.includes('<anonymous>')) {\n                      _frame = _frame.replace('<anonymous>', fn.displayName);\n                    }\n                    {\n                      if (typeof fn === 'function') {\n                        componentFrameCache.set(fn, _frame);\n                      }\n                    } // Return the line we found.\n\n                    return _frame;\n                  }\n                } while (s >= 1 && c >= 0);\n              }\n              break;\n            }\n          }\n        }\n      } finally {\n        reentry = false;\n        {\n          ReactCurrentDispatcher.current = previousDispatcher;\n          reenableLogs();\n        }\n        Error.prepareStackTrace = previousPrepareStackTrace;\n      } // Fallback to just using the name if we couldn't make it throw.\n\n      var name = fn ? fn.displayName || fn.name : '';\n      var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n      {\n        if (typeof fn === 'function') {\n          componentFrameCache.set(fn, syntheticFrame);\n        }\n      }\n      return syntheticFrame;\n    }\n    function describeFunctionComponentFrame(fn, source, ownerFn) {\n      {\n        return describeNativeComponentFrame(fn, false);\n      }\n    }\n    function shouldConstruct(Component) {\n      var prototype = Component.prototype;\n      return !!(prototype && prototype.isReactComponent);\n    }\n    function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n      if (type == null) {\n        return '';\n      }\n      if (typeof type === 'function') {\n        {\n          return describeNativeComponentFrame(type, shouldConstruct(type));\n        }\n      }\n      if (typeof type === 'string') {\n        return describeBuiltInComponentFrame(type);\n      }\n      switch (type) {\n        case REACT_SUSPENSE_TYPE:\n          return describeBuiltInComponentFrame('Suspense');\n        case REACT_SUSPENSE_LIST_TYPE:\n          return describeBuiltInComponentFrame('SuspenseList');\n      }\n      if (typeof type === 'object') {\n        switch (type.$$typeof) {\n          case REACT_FORWARD_REF_TYPE:\n            return describeFunctionComponentFrame(type.render);\n          case REACT_MEMO_TYPE:\n            // Memo may contain any component type so we recursively resolve it.\n            return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n          case REACT_LAZY_TYPE:\n            {\n              var lazyComponent = type;\n              var payload = lazyComponent._payload;\n              var init = lazyComponent._init;\n              try {\n                // Lazy may contain any component type so we recursively resolve it.\n                return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n              } catch (x) {}\n            }\n        }\n      }\n      return '';\n    }\n    var hasOwnProperty = Object.prototype.hasOwnProperty;\n    var loggedTypeFailures = {};\n    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n    function setCurrentlyValidatingElement(element) {\n      {\n        if (element) {\n          var owner = element._owner;\n          var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n          ReactDebugCurrentFrame.setExtraStackFrame(stack);\n        } else {\n          ReactDebugCurrentFrame.setExtraStackFrame(null);\n        }\n      }\n    }\n    function checkPropTypes(typeSpecs, values, location, componentName, element) {\n      {\n        // $FlowFixMe This is okay but Flow doesn't know it.\n        var has = Function.call.bind(hasOwnProperty);\n        for (var typeSpecName in typeSpecs) {\n          if (has(typeSpecs, typeSpecName)) {\n            var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n            // fail the render phase where it didn't fail before. So we log it.\n            // After these have been cleaned up, we'll let them throw.\n\n            try {\n              // This is intentionally an invariant that gets caught. It's the same\n              // behavior as without this statement except with a better message.\n              if (typeof typeSpecs[typeSpecName] !== 'function') {\n                // eslint-disable-next-line react-internal/prod-error-codes\n                var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n                err.name = 'Invariant Violation';\n                throw err;\n              }\n              error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n            } catch (ex) {\n              error$1 = ex;\n            }\n            if (error$1 && !(error$1 instanceof Error)) {\n              setCurrentlyValidatingElement(element);\n              error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n              setCurrentlyValidatingElement(null);\n            }\n            if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n              // Only monitor this failure once because there tends to be a lot of the\n              // same error.\n              loggedTypeFailures[error$1.message] = true;\n              setCurrentlyValidatingElement(element);\n              error('Failed %s type: %s', location, error$1.message);\n              setCurrentlyValidatingElement(null);\n            }\n          }\n        }\n      }\n    }\n    var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\n    function isArray(a) {\n      return isArrayImpl(a);\n    }\n\n    /*\n     * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n     * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n     *\n     * The functions in this module will throw an easier-to-understand,\n     * easier-to-debug exception with a clear errors message message explaining the\n     * problem. (Instead of a confusing exception thrown inside the implementation\n     * of the `value` object).\n     */\n    // $FlowFixMe only called in DEV, so void return is not possible.\n    function typeName(value) {\n      {\n        // toStringTag is needed for namespaced types like Temporal.Instant\n        var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n        var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n        return type;\n      }\n    } // $FlowFixMe only called in DEV, so void return is not possible.\n\n    function willCoercionThrow(value) {\n      {\n        try {\n          testStringCoercion(value);\n          return false;\n        } catch (e) {\n          return true;\n        }\n      }\n    }\n    function testStringCoercion(value) {\n      // If you ended up here by following an exception call stack, here's what's\n      // happened: you supplied an object or symbol value to React (as a prop, key,\n      // DOM attribute, CSS property, string ref, etc.) and when React tried to\n      // coerce it to a string using `'' + value`, an exception was thrown.\n      //\n      // The most common types that will cause this exception are `Symbol` instances\n      // and Temporal objects like `Temporal.Instant`. But any object that has a\n      // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n      // exception. (Library authors do this to prevent users from using built-in\n      // numeric operators like `+` or comparison operators like `>=` because custom\n      // methods are needed to perform accurate arithmetic or comparison.)\n      //\n      // To fix the problem, coerce this object or symbol value to a string before\n      // passing it to React. The most reliable way is usually `String(value)`.\n      //\n      // To find which value is throwing, check the browser or debugger console.\n      // Before this exception was thrown, there should be `console.error` output\n      // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n      // problem and how that type was used: key, atrribute, input value prop, etc.\n      // In most cases, this console output also shows the component and its\n      // ancestor components where the exception happened.\n      //\n      // eslint-disable-next-line react-internal/safe-string-coercion\n      return '' + value;\n    }\n    function checkKeyStringCoercion(value) {\n      {\n        if (willCoercionThrow(value)) {\n          error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n          return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n        }\n      }\n    }\n    var ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\n    var RESERVED_PROPS = {\n      key: true,\n      ref: true,\n      __self: true,\n      __source: true\n    };\n    var specialPropKeyWarningShown;\n    var specialPropRefWarningShown;\n    var didWarnAboutStringRefs;\n    {\n      didWarnAboutStringRefs = {};\n    }\n    function hasValidRef(config) {\n      {\n        if (hasOwnProperty.call(config, 'ref')) {\n          var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n          if (getter && getter.isReactWarning) {\n            return false;\n          }\n        }\n      }\n      return config.ref !== undefined;\n    }\n    function hasValidKey(config) {\n      {\n        if (hasOwnProperty.call(config, 'key')) {\n          var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n          if (getter && getter.isReactWarning) {\n            return false;\n          }\n        }\n      }\n      return config.key !== undefined;\n    }\n    function warnIfStringRefCannotBeAutoConverted(config, self) {\n      {\n        if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n          var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n          if (!didWarnAboutStringRefs[componentName]) {\n            error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n            didWarnAboutStringRefs[componentName] = true;\n          }\n        }\n      }\n    }\n    function defineKeyPropWarningGetter(props, displayName) {\n      {\n        var warnAboutAccessingKey = function () {\n          if (!specialPropKeyWarningShown) {\n            specialPropKeyWarningShown = true;\n            error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n          }\n        };\n        warnAboutAccessingKey.isReactWarning = true;\n        Object.defineProperty(props, 'key', {\n          get: warnAboutAccessingKey,\n          configurable: true\n        });\n      }\n    }\n    function defineRefPropWarningGetter(props, displayName) {\n      {\n        var warnAboutAccessingRef = function () {\n          if (!specialPropRefWarningShown) {\n            specialPropRefWarningShown = true;\n            error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n          }\n        };\n        warnAboutAccessingRef.isReactWarning = true;\n        Object.defineProperty(props, 'ref', {\n          get: warnAboutAccessingRef,\n          configurable: true\n        });\n      }\n    }\n    /**\n     * Factory method to create a new React element. This no longer adheres to\n     * the class pattern, so do not use new to call it. Also, instanceof check\n     * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n     * if something is a React Element.\n     *\n     * @param {*} type\n     * @param {*} props\n     * @param {*} key\n     * @param {string|object} ref\n     * @param {*} owner\n     * @param {*} self A *temporary* helper to detect places where `this` is\n     * different from the `owner` when React.createElement is called, so that we\n     * can warn. We want to get rid of owner and replace string `ref`s with arrow\n     * functions, and as long as `this` and owner are the same, there will be no\n     * change in behavior.\n     * @param {*} source An annotation object (added by a transpiler or otherwise)\n     * indicating filename, line number, and/or other information.\n     * @internal\n     */\n\n    var ReactElement = function (type, key, ref, self, source, owner, props) {\n      var element = {\n        // This tag allows us to uniquely identify this as a React Element\n        $$typeof: REACT_ELEMENT_TYPE,\n        // Built-in properties that belong on the element\n        type: type,\n        key: key,\n        ref: ref,\n        props: props,\n        // Record the component responsible for creating this element.\n        _owner: owner\n      };\n      {\n        // The validation flag is currently mutative. We put it on\n        // an external backing store so that we can freeze the whole object.\n        // This can be replaced with a WeakMap once they are implemented in\n        // commonly used development environments.\n        element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n        // the validation flag non-enumerable (where possible, which should\n        // include every environment we run tests in), so the test framework\n        // ignores it.\n\n        Object.defineProperty(element._store, 'validated', {\n          configurable: false,\n          enumerable: false,\n          writable: true,\n          value: false\n        }); // self and source are DEV only properties.\n\n        Object.defineProperty(element, '_self', {\n          configurable: false,\n          enumerable: false,\n          writable: false,\n          value: self\n        }); // Two elements created in two different places should be considered\n        // equal for testing purposes and therefore we hide it from enumeration.\n\n        Object.defineProperty(element, '_source', {\n          configurable: false,\n          enumerable: false,\n          writable: false,\n          value: source\n        });\n        if (Object.freeze) {\n          Object.freeze(element.props);\n          Object.freeze(element);\n        }\n      }\n      return element;\n    };\n    /**\n     * https://github.com/reactjs/rfcs/pull/107\n     * @param {*} type\n     * @param {object} props\n     * @param {string} key\n     */\n\n    function jsxDEV(type, config, maybeKey, source, self) {\n      {\n        var propName; // Reserved names are extracted\n\n        var props = {};\n        var key = null;\n        var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n        // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n        // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n        // but as an intermediary step, we will use jsxDEV for everything except\n        // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n        // key is explicitly declared to be undefined or not.\n\n        if (maybeKey !== undefined) {\n          {\n            checkKeyStringCoercion(maybeKey);\n          }\n          key = '' + maybeKey;\n        }\n        if (hasValidKey(config)) {\n          {\n            checkKeyStringCoercion(config.key);\n          }\n          key = '' + config.key;\n        }\n        if (hasValidRef(config)) {\n          ref = config.ref;\n          warnIfStringRefCannotBeAutoConverted(config, self);\n        } // Remaining properties are added to a new props object\n\n        for (propName in config) {\n          if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n            props[propName] = config[propName];\n          }\n        } // Resolve default props\n\n        if (type && type.defaultProps) {\n          var defaultProps = type.defaultProps;\n          for (propName in defaultProps) {\n            if (props[propName] === undefined) {\n              props[propName] = defaultProps[propName];\n            }\n          }\n        }\n        if (key || ref) {\n          var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n          if (key) {\n            defineKeyPropWarningGetter(props, displayName);\n          }\n          if (ref) {\n            defineRefPropWarningGetter(props, displayName);\n          }\n        }\n        return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n      }\n    }\n    var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\n    var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n    function setCurrentlyValidatingElement$1(element) {\n      {\n        if (element) {\n          var owner = element._owner;\n          var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n          ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n        } else {\n          ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n        }\n      }\n    }\n    var propTypesMisspellWarningShown;\n    {\n      propTypesMisspellWarningShown = false;\n    }\n    /**\n     * Verifies the object is a ReactElement.\n     * See https://reactjs.org/docs/react-api.html#isvalidelement\n     * @param {?object} object\n     * @return {boolean} True if `object` is a ReactElement.\n     * @final\n     */\n\n    function isValidElement(object) {\n      {\n        return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n      }\n    }\n    function getDeclarationErrorAddendum() {\n      {\n        if (ReactCurrentOwner$1.current) {\n          var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n          if (name) {\n            return '\\n\\nCheck the render method of `' + name + '`.';\n          }\n        }\n        return '';\n      }\n    }\n    function getSourceInfoErrorAddendum(source) {\n      {\n        if (source !== undefined) {\n          var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n          var lineNumber = source.lineNumber;\n          return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n        }\n        return '';\n      }\n    }\n    /**\n     * Warn if there's no key explicitly set on dynamic arrays of children or\n     * object keys are not valid. This allows us to keep track of children between\n     * updates.\n     */\n\n    var ownerHasKeyUseWarning = {};\n    function getCurrentComponentErrorInfo(parentType) {\n      {\n        var info = getDeclarationErrorAddendum();\n        if (!info) {\n          var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n          if (parentName) {\n            info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n          }\n        }\n        return info;\n      }\n    }\n    /**\n     * Warn if the element doesn't have an explicit key assigned to it.\n     * This element is in an array. The array could grow and shrink or be\n     * reordered. All children that haven't already been validated are required to\n     * have a \"key\" property assigned to it. Error statuses are cached so a warning\n     * will only be shown once.\n     *\n     * @internal\n     * @param {ReactElement} element Element that requires a key.\n     * @param {*} parentType element's parent's type.\n     */\n\n    function validateExplicitKey(element, parentType) {\n      {\n        if (!element._store || element._store.validated || element.key != null) {\n          return;\n        }\n        element._store.validated = true;\n        var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n        if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n          return;\n        }\n        ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n        // property, it may be the creator of the child that's responsible for\n        // assigning it a key.\n\n        var childOwner = '';\n        if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n          // Give the component that originally created this child.\n          childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n        }\n        setCurrentlyValidatingElement$1(element);\n        error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n        setCurrentlyValidatingElement$1(null);\n      }\n    }\n    /**\n     * Ensure that every element either is passed in a static location, in an\n     * array with an explicit keys property defined, or in an object literal\n     * with valid key property.\n     *\n     * @internal\n     * @param {ReactNode} node Statically passed child of any type.\n     * @param {*} parentType node's parent's type.\n     */\n\n    function validateChildKeys(node, parentType) {\n      {\n        if (typeof node !== 'object') {\n          return;\n        }\n        if (isArray(node)) {\n          for (var i = 0; i < node.length; i++) {\n            var child = node[i];\n            if (isValidElement(child)) {\n              validateExplicitKey(child, parentType);\n            }\n          }\n        } else if (isValidElement(node)) {\n          // This element was passed in a valid location.\n          if (node._store) {\n            node._store.validated = true;\n          }\n        } else if (node) {\n          var iteratorFn = getIteratorFn(node);\n          if (typeof iteratorFn === 'function') {\n            // Entry iterators used to provide implicit keys,\n            // but now we print a separate warning for them later.\n            if (iteratorFn !== node.entries) {\n              var iterator = iteratorFn.call(node);\n              var step;\n              while (!(step = iterator.next()).done) {\n                if (isValidElement(step.value)) {\n                  validateExplicitKey(step.value, parentType);\n                }\n              }\n            }\n          }\n        }\n      }\n    }\n    /**\n     * Given an element, validate that its props follow the propTypes definition,\n     * provided by the type.\n     *\n     * @param {ReactElement} element\n     */\n\n    function validatePropTypes(element) {\n      {\n        var type = element.type;\n        if (type === null || type === undefined || typeof type === 'string') {\n          return;\n        }\n        var propTypes;\n        if (typeof type === 'function') {\n          propTypes = type.propTypes;\n        } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE ||\n        // Note: Memo only checks outer props here.\n        // Inner props are checked in the reconciler.\n        type.$$typeof === REACT_MEMO_TYPE)) {\n          propTypes = type.propTypes;\n        } else {\n          return;\n        }\n        if (propTypes) {\n          // Intentionally inside to avoid triggering lazy initializers:\n          var name = getComponentNameFromType(type);\n          checkPropTypes(propTypes, element.props, 'prop', name, element);\n        } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n          propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n          var _name = getComponentNameFromType(type);\n          error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n        }\n        if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n          error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n        }\n      }\n    }\n    /**\n     * Given a fragment, validate that it can only be provided with fragment props\n     * @param {ReactElement} fragment\n     */\n\n    function validateFragmentProps(fragment) {\n      {\n        var keys = Object.keys(fragment.props);\n        for (var i = 0; i < keys.length; i++) {\n          var key = keys[i];\n          if (key !== 'children' && key !== 'key') {\n            setCurrentlyValidatingElement$1(fragment);\n            error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n            setCurrentlyValidatingElement$1(null);\n            break;\n          }\n        }\n        if (fragment.ref !== null) {\n          setCurrentlyValidatingElement$1(fragment);\n          error('Invalid attribute `ref` supplied to `React.Fragment`.');\n          setCurrentlyValidatingElement$1(null);\n        }\n      }\n    }\n    var didWarnAboutKeySpread = {};\n    function jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n      {\n        var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n        // succeed and there will likely be errors in render.\n\n        if (!validType) {\n          var info = '';\n          if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n            info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n          }\n          var sourceInfo = getSourceInfoErrorAddendum(source);\n          if (sourceInfo) {\n            info += sourceInfo;\n          } else {\n            info += getDeclarationErrorAddendum();\n          }\n          var typeString;\n          if (type === null) {\n            typeString = 'null';\n          } else if (isArray(type)) {\n            typeString = 'array';\n          } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n            typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n            info = ' Did you accidentally export a JSX literal instead of a component?';\n          } else {\n            typeString = typeof type;\n          }\n          error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n        }\n        var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n        // TODO: Drop this when these are no longer allowed as the type argument.\n\n        if (element == null) {\n          return element;\n        } // Skip key warning if the type isn't valid since our key validation logic\n        // doesn't expect a non-string/function type and can throw confusing errors.\n        // We don't want exception behavior to differ between dev and prod.\n        // (Rendering will throw with a helpful message and as soon as the type is\n        // fixed, the key warnings will appear.)\n\n        if (validType) {\n          var children = props.children;\n          if (children !== undefined) {\n            if (isStaticChildren) {\n              if (isArray(children)) {\n                for (var i = 0; i < children.length; i++) {\n                  validateChildKeys(children[i], type);\n                }\n                if (Object.freeze) {\n                  Object.freeze(children);\n                }\n              } else {\n                error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n              }\n            } else {\n              validateChildKeys(children, type);\n            }\n          }\n        }\n        {\n          if (hasOwnProperty.call(props, 'key')) {\n            var componentName = getComponentNameFromType(type);\n            var keys = Object.keys(props).filter(function (k) {\n              return k !== 'key';\n            });\n            var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\n            if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n              var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\n              error('A props object containing a \"key\" prop is being spread into JSX:\\n' + '  let props = %s;\\n' + '  <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + '  let props = %s;\\n' + '  <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\n              didWarnAboutKeySpread[componentName + beforeExample] = true;\n            }\n          }\n        }\n        if (type === REACT_FRAGMENT_TYPE) {\n          validateFragmentProps(element);\n        } else {\n          validatePropTypes(element);\n        }\n        return element;\n      }\n    } // These two functions exist to still get child warnings in dev\n    // even with the prod transform. This means that jsxDEV is purely\n    // opt-in behavior for better messages but that we won't stop\n    // giving you warnings if you use production apis.\n\n    function jsxWithValidationStatic(type, props, key) {\n      {\n        return jsxWithValidation(type, props, key, true);\n      }\n    }\n    function jsxWithValidationDynamic(type, props, key) {\n      {\n        return jsxWithValidation(type, props, key, false);\n      }\n    }\n    var jsx = jsxWithValidationDynamic; // we may want to special case jsxs internally to take advantage of static children.\n    // for now we can ship identical prod functions\n\n    var jsxs = jsxWithValidationStatic;\n    exports.Fragment = REACT_FRAGMENT_TYPE;\n    exports.jsx = jsx;\n    exports.jsxs = jsxs;\n  })();\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react/cjs/react-jsx-runtime.development.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react/cjs/react.development.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/react/cjs/react.development.js ***!
  \***************************************************************/
/***/ ((module, exports, __webpack_require__) => {

"use strict";
eval("{/* module decorator */ module = __webpack_require__.nmd(module);\n/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n  (function () {\n    'use strict';\n\n    /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n    if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === 'function') {\n      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n    }\n    var ReactVersion = '18.3.1';\n\n    // ATTENTION\n    // When adding new symbols to this file,\n    // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n    // The Symbol used to tag the ReactElement-like types.\n    var REACT_ELEMENT_TYPE = Symbol.for('react.element');\n    var REACT_PORTAL_TYPE = Symbol.for('react.portal');\n    var REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\n    var REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\n    var REACT_PROFILER_TYPE = Symbol.for('react.profiler');\n    var REACT_PROVIDER_TYPE = Symbol.for('react.provider');\n    var REACT_CONTEXT_TYPE = Symbol.for('react.context');\n    var REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\n    var REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\n    var REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\n    var REACT_MEMO_TYPE = Symbol.for('react.memo');\n    var REACT_LAZY_TYPE = Symbol.for('react.lazy');\n    var REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n    var MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\n    var FAUX_ITERATOR_SYMBOL = '@@iterator';\n    function getIteratorFn(maybeIterable) {\n      if (maybeIterable === null || typeof maybeIterable !== 'object') {\n        return null;\n      }\n      var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n      if (typeof maybeIterator === 'function') {\n        return maybeIterator;\n      }\n      return null;\n    }\n\n    /**\n     * Keeps track of the current dispatcher.\n     */\n    var ReactCurrentDispatcher = {\n      /**\n       * @internal\n       * @type {ReactComponent}\n       */\n      current: null\n    };\n\n    /**\n     * Keeps track of the current batch's configuration such as how long an update\n     * should suspend for if it needs to.\n     */\n    var ReactCurrentBatchConfig = {\n      transition: null\n    };\n    var ReactCurrentActQueue = {\n      current: null,\n      // Used to reproduce behavior of `batchedUpdates` in legacy mode.\n      isBatchingLegacy: false,\n      didScheduleLegacyUpdate: false\n    };\n\n    /**\n     * Keeps track of the current owner.\n     *\n     * The current owner is the component who should own any components that are\n     * currently being constructed.\n     */\n    var ReactCurrentOwner = {\n      /**\n       * @internal\n       * @type {ReactComponent}\n       */\n      current: null\n    };\n    var ReactDebugCurrentFrame = {};\n    var currentExtraStackFrame = null;\n    function setExtraStackFrame(stack) {\n      {\n        currentExtraStackFrame = stack;\n      }\n    }\n    {\n      ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {\n        {\n          currentExtraStackFrame = stack;\n        }\n      }; // Stack implementation injected by the current renderer.\n\n      ReactDebugCurrentFrame.getCurrentStack = null;\n      ReactDebugCurrentFrame.getStackAddendum = function () {\n        var stack = ''; // Add an extra top frame while an element is being validated\n\n        if (currentExtraStackFrame) {\n          stack += currentExtraStackFrame;\n        } // Delegate to the injected renderer-specific implementation\n\n        var impl = ReactDebugCurrentFrame.getCurrentStack;\n        if (impl) {\n          stack += impl() || '';\n        }\n        return stack;\n      };\n    }\n\n    // -----------------------------------------------------------------------------\n\n    var enableScopeAPI = false; // Experimental Create Event Handle API.\n    var enableCacheElement = false;\n    var enableTransitionTracing = false; // No known bugs, but needs performance testing\n\n    var enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n    // stuff. Intended to enable React core members to more easily debug scheduling\n    // issues in DEV builds.\n\n    var enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\n    var ReactSharedInternals = {\n      ReactCurrentDispatcher: ReactCurrentDispatcher,\n      ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n      ReactCurrentOwner: ReactCurrentOwner\n    };\n    {\n      ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n      ReactSharedInternals.ReactCurrentActQueue = ReactCurrentActQueue;\n    }\n\n    // by calls to these methods by a Babel plugin.\n    //\n    // In PROD (or in packages without access to React internals),\n    // they are left as they are instead.\n\n    function warn(format) {\n      {\n        {\n          for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n            args[_key - 1] = arguments[_key];\n          }\n          printWarning('warn', format, args);\n        }\n      }\n    }\n    function error(format) {\n      {\n        {\n          for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n            args[_key2 - 1] = arguments[_key2];\n          }\n          printWarning('error', format, args);\n        }\n      }\n    }\n    function printWarning(level, format, args) {\n      // When changing this logic, you might want to also\n      // update consoleWithStackDev.www.js as well.\n      {\n        var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n        var stack = ReactDebugCurrentFrame.getStackAddendum();\n        if (stack !== '') {\n          format += '%s';\n          args = args.concat([stack]);\n        } // eslint-disable-next-line react-internal/safe-string-coercion\n\n        var argsWithFormat = args.map(function (item) {\n          return String(item);\n        }); // Careful: RN currently depends on this prefix\n\n        argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n        // breaks IE9: https://github.com/facebook/react/issues/13610\n        // eslint-disable-next-line react-internal/no-production-logging\n\n        Function.prototype.apply.call(console[level], console, argsWithFormat);\n      }\n    }\n    var didWarnStateUpdateForUnmountedComponent = {};\n    function warnNoop(publicInstance, callerName) {\n      {\n        var _constructor = publicInstance.constructor;\n        var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n        var warningKey = componentName + \".\" + callerName;\n        if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n          return;\n        }\n        error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n        didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n      }\n    }\n    /**\n     * This is the abstract API for an update queue.\n     */\n\n    var ReactNoopUpdateQueue = {\n      /**\n       * Checks whether or not this composite component is mounted.\n       * @param {ReactClass} publicInstance The instance we want to test.\n       * @return {boolean} True if mounted, false otherwise.\n       * @protected\n       * @final\n       */\n      isMounted: function (publicInstance) {\n        return false;\n      },\n      /**\n       * Forces an update. This should only be invoked when it is known with\n       * certainty that we are **not** in a DOM transaction.\n       *\n       * You may want to call this when you know that some deeper aspect of the\n       * component's state has changed but `setState` was not called.\n       *\n       * This will not invoke `shouldComponentUpdate`, but it will invoke\n       * `componentWillUpdate` and `componentDidUpdate`.\n       *\n       * @param {ReactClass} publicInstance The instance that should rerender.\n       * @param {?function} callback Called after component is updated.\n       * @param {?string} callerName name of the calling function in the public API.\n       * @internal\n       */\n      enqueueForceUpdate: function (publicInstance, callback, callerName) {\n        warnNoop(publicInstance, 'forceUpdate');\n      },\n      /**\n       * Replaces all of the state. Always use this or `setState` to mutate state.\n       * You should treat `this.state` as immutable.\n       *\n       * There is no guarantee that `this.state` will be immediately updated, so\n       * accessing `this.state` after calling this method may return the old value.\n       *\n       * @param {ReactClass} publicInstance The instance that should rerender.\n       * @param {object} completeState Next state.\n       * @param {?function} callback Called after component is updated.\n       * @param {?string} callerName name of the calling function in the public API.\n       * @internal\n       */\n      enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n        warnNoop(publicInstance, 'replaceState');\n      },\n      /**\n       * Sets a subset of the state. This only exists because _pendingState is\n       * internal. This provides a merging strategy that is not available to deep\n       * properties which is confusing. TODO: Expose pendingState or don't use it\n       * during the merge.\n       *\n       * @param {ReactClass} publicInstance The instance that should rerender.\n       * @param {object} partialState Next partial state to be merged with state.\n       * @param {?function} callback Called after component is updated.\n       * @param {?string} Name of the calling function in the public API.\n       * @internal\n       */\n      enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n        warnNoop(publicInstance, 'setState');\n      }\n    };\n    var assign = Object.assign;\n    var emptyObject = {};\n    {\n      Object.freeze(emptyObject);\n    }\n    /**\n     * Base class helpers for the updating state of a component.\n     */\n\n    function Component(props, context, updater) {\n      this.props = props;\n      this.context = context; // If a component has string refs, we will assign a different object later.\n\n      this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n      // renderer.\n\n      this.updater = updater || ReactNoopUpdateQueue;\n    }\n    Component.prototype.isReactComponent = {};\n    /**\n     * Sets a subset of the state. Always use this to mutate\n     * state. You should treat `this.state` as immutable.\n     *\n     * There is no guarantee that `this.state` will be immediately updated, so\n     * accessing `this.state` after calling this method may return the old value.\n     *\n     * There is no guarantee that calls to `setState` will run synchronously,\n     * as they may eventually be batched together.  You can provide an optional\n     * callback that will be executed when the call to setState is actually\n     * completed.\n     *\n     * When a function is provided to setState, it will be called at some point in\n     * the future (not synchronously). It will be called with the up to date\n     * component arguments (state, props, context). These values can be different\n     * from this.* because your function may be called after receiveProps but before\n     * shouldComponentUpdate, and this new state, props, and context will not yet be\n     * assigned to this.\n     *\n     * @param {object|function} partialState Next partial state or function to\n     *        produce next partial state to be merged with current state.\n     * @param {?function} callback Called after state is updated.\n     * @final\n     * @protected\n     */\n\n    Component.prototype.setState = function (partialState, callback) {\n      if (typeof partialState !== 'object' && typeof partialState !== 'function' && partialState != null) {\n        throw new Error('setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.');\n      }\n      this.updater.enqueueSetState(this, partialState, callback, 'setState');\n    };\n    /**\n     * Forces an update. This should only be invoked when it is known with\n     * certainty that we are **not** in a DOM transaction.\n     *\n     * You may want to call this when you know that some deeper aspect of the\n     * component's state has changed but `setState` was not called.\n     *\n     * This will not invoke `shouldComponentUpdate`, but it will invoke\n     * `componentWillUpdate` and `componentDidUpdate`.\n     *\n     * @param {?function} callback Called after update is complete.\n     * @final\n     * @protected\n     */\n\n    Component.prototype.forceUpdate = function (callback) {\n      this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n    };\n    /**\n     * Deprecated APIs. These APIs used to exist on classic React classes but since\n     * we would like to deprecate them, we're not going to move them over to this\n     * modern base class. Instead, we define a getter that warns if it's accessed.\n     */\n\n    {\n      var deprecatedAPIs = {\n        isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n        replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n      };\n      var defineDeprecationWarning = function (methodName, info) {\n        Object.defineProperty(Component.prototype, methodName, {\n          get: function () {\n            warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n            return undefined;\n          }\n        });\n      };\n      for (var fnName in deprecatedAPIs) {\n        if (deprecatedAPIs.hasOwnProperty(fnName)) {\n          defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n        }\n      }\n    }\n    function ComponentDummy() {}\n    ComponentDummy.prototype = Component.prototype;\n    /**\n     * Convenience component with default shallow equality check for sCU.\n     */\n\n    function PureComponent(props, context, updater) {\n      this.props = props;\n      this.context = context; // If a component has string refs, we will assign a different object later.\n\n      this.refs = emptyObject;\n      this.updater = updater || ReactNoopUpdateQueue;\n    }\n    var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\n    pureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\n    assign(pureComponentPrototype, Component.prototype);\n    pureComponentPrototype.isPureReactComponent = true;\n\n    // an immutable object with a single mutable value\n    function createRef() {\n      var refObject = {\n        current: null\n      };\n      {\n        Object.seal(refObject);\n      }\n      return refObject;\n    }\n    var isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\n    function isArray(a) {\n      return isArrayImpl(a);\n    }\n\n    /*\n     * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n     * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n     *\n     * The functions in this module will throw an easier-to-understand,\n     * easier-to-debug exception with a clear errors message message explaining the\n     * problem. (Instead of a confusing exception thrown inside the implementation\n     * of the `value` object).\n     */\n    // $FlowFixMe only called in DEV, so void return is not possible.\n    function typeName(value) {\n      {\n        // toStringTag is needed for namespaced types like Temporal.Instant\n        var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n        var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n        return type;\n      }\n    } // $FlowFixMe only called in DEV, so void return is not possible.\n\n    function willCoercionThrow(value) {\n      {\n        try {\n          testStringCoercion(value);\n          return false;\n        } catch (e) {\n          return true;\n        }\n      }\n    }\n    function testStringCoercion(value) {\n      // If you ended up here by following an exception call stack, here's what's\n      // happened: you supplied an object or symbol value to React (as a prop, key,\n      // DOM attribute, CSS property, string ref, etc.) and when React tried to\n      // coerce it to a string using `'' + value`, an exception was thrown.\n      //\n      // The most common types that will cause this exception are `Symbol` instances\n      // and Temporal objects like `Temporal.Instant`. But any object that has a\n      // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n      // exception. (Library authors do this to prevent users from using built-in\n      // numeric operators like `+` or comparison operators like `>=` because custom\n      // methods are needed to perform accurate arithmetic or comparison.)\n      //\n      // To fix the problem, coerce this object or symbol value to a string before\n      // passing it to React. The most reliable way is usually `String(value)`.\n      //\n      // To find which value is throwing, check the browser or debugger console.\n      // Before this exception was thrown, there should be `console.error` output\n      // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n      // problem and how that type was used: key, atrribute, input value prop, etc.\n      // In most cases, this console output also shows the component and its\n      // ancestor components where the exception happened.\n      //\n      // eslint-disable-next-line react-internal/safe-string-coercion\n      return '' + value;\n    }\n    function checkKeyStringCoercion(value) {\n      {\n        if (willCoercionThrow(value)) {\n          error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n          return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n        }\n      }\n    }\n    function getWrappedName(outerType, innerType, wrapperName) {\n      var displayName = outerType.displayName;\n      if (displayName) {\n        return displayName;\n      }\n      var functionName = innerType.displayName || innerType.name || '';\n      return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n    } // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n    function getContextName(type) {\n      return type.displayName || 'Context';\n    } // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n    function getComponentNameFromType(type) {\n      if (type == null) {\n        // Host root, text node or just invalid type.\n        return null;\n      }\n      {\n        if (typeof type.tag === 'number') {\n          error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n        }\n      }\n      if (typeof type === 'function') {\n        return type.displayName || type.name || null;\n      }\n      if (typeof type === 'string') {\n        return type;\n      }\n      switch (type) {\n        case REACT_FRAGMENT_TYPE:\n          return 'Fragment';\n        case REACT_PORTAL_TYPE:\n          return 'Portal';\n        case REACT_PROFILER_TYPE:\n          return 'Profiler';\n        case REACT_STRICT_MODE_TYPE:\n          return 'StrictMode';\n        case REACT_SUSPENSE_TYPE:\n          return 'Suspense';\n        case REACT_SUSPENSE_LIST_TYPE:\n          return 'SuspenseList';\n      }\n      if (typeof type === 'object') {\n        switch (type.$$typeof) {\n          case REACT_CONTEXT_TYPE:\n            var context = type;\n            return getContextName(context) + '.Consumer';\n          case REACT_PROVIDER_TYPE:\n            var provider = type;\n            return getContextName(provider._context) + '.Provider';\n          case REACT_FORWARD_REF_TYPE:\n            return getWrappedName(type, type.render, 'ForwardRef');\n          case REACT_MEMO_TYPE:\n            var outerName = type.displayName || null;\n            if (outerName !== null) {\n              return outerName;\n            }\n            return getComponentNameFromType(type.type) || 'Memo';\n          case REACT_LAZY_TYPE:\n            {\n              var lazyComponent = type;\n              var payload = lazyComponent._payload;\n              var init = lazyComponent._init;\n              try {\n                return getComponentNameFromType(init(payload));\n              } catch (x) {\n                return null;\n              }\n            }\n\n          // eslint-disable-next-line no-fallthrough\n        }\n      }\n      return null;\n    }\n    var hasOwnProperty = Object.prototype.hasOwnProperty;\n    var RESERVED_PROPS = {\n      key: true,\n      ref: true,\n      __self: true,\n      __source: true\n    };\n    var specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n    {\n      didWarnAboutStringRefs = {};\n    }\n    function hasValidRef(config) {\n      {\n        if (hasOwnProperty.call(config, 'ref')) {\n          var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n          if (getter && getter.isReactWarning) {\n            return false;\n          }\n        }\n      }\n      return config.ref !== undefined;\n    }\n    function hasValidKey(config) {\n      {\n        if (hasOwnProperty.call(config, 'key')) {\n          var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n          if (getter && getter.isReactWarning) {\n            return false;\n          }\n        }\n      }\n      return config.key !== undefined;\n    }\n    function defineKeyPropWarningGetter(props, displayName) {\n      var warnAboutAccessingKey = function () {\n        {\n          if (!specialPropKeyWarningShown) {\n            specialPropKeyWarningShown = true;\n            error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n          }\n        }\n      };\n      warnAboutAccessingKey.isReactWarning = true;\n      Object.defineProperty(props, 'key', {\n        get: warnAboutAccessingKey,\n        configurable: true\n      });\n    }\n    function defineRefPropWarningGetter(props, displayName) {\n      var warnAboutAccessingRef = function () {\n        {\n          if (!specialPropRefWarningShown) {\n            specialPropRefWarningShown = true;\n            error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n          }\n        }\n      };\n      warnAboutAccessingRef.isReactWarning = true;\n      Object.defineProperty(props, 'ref', {\n        get: warnAboutAccessingRef,\n        configurable: true\n      });\n    }\n    function warnIfStringRefCannotBeAutoConverted(config) {\n      {\n        if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n          var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n          if (!didWarnAboutStringRefs[componentName]) {\n            error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);\n            didWarnAboutStringRefs[componentName] = true;\n          }\n        }\n      }\n    }\n    /**\n     * Factory method to create a new React element. This no longer adheres to\n     * the class pattern, so do not use new to call it. Also, instanceof check\n     * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n     * if something is a React Element.\n     *\n     * @param {*} type\n     * @param {*} props\n     * @param {*} key\n     * @param {string|object} ref\n     * @param {*} owner\n     * @param {*} self A *temporary* helper to detect places where `this` is\n     * different from the `owner` when React.createElement is called, so that we\n     * can warn. We want to get rid of owner and replace string `ref`s with arrow\n     * functions, and as long as `this` and owner are the same, there will be no\n     * change in behavior.\n     * @param {*} source An annotation object (added by a transpiler or otherwise)\n     * indicating filename, line number, and/or other information.\n     * @internal\n     */\n\n    var ReactElement = function (type, key, ref, self, source, owner, props) {\n      var element = {\n        // This tag allows us to uniquely identify this as a React Element\n        $$typeof: REACT_ELEMENT_TYPE,\n        // Built-in properties that belong on the element\n        type: type,\n        key: key,\n        ref: ref,\n        props: props,\n        // Record the component responsible for creating this element.\n        _owner: owner\n      };\n      {\n        // The validation flag is currently mutative. We put it on\n        // an external backing store so that we can freeze the whole object.\n        // This can be replaced with a WeakMap once they are implemented in\n        // commonly used development environments.\n        element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n        // the validation flag non-enumerable (where possible, which should\n        // include every environment we run tests in), so the test framework\n        // ignores it.\n\n        Object.defineProperty(element._store, 'validated', {\n          configurable: false,\n          enumerable: false,\n          writable: true,\n          value: false\n        }); // self and source are DEV only properties.\n\n        Object.defineProperty(element, '_self', {\n          configurable: false,\n          enumerable: false,\n          writable: false,\n          value: self\n        }); // Two elements created in two different places should be considered\n        // equal for testing purposes and therefore we hide it from enumeration.\n\n        Object.defineProperty(element, '_source', {\n          configurable: false,\n          enumerable: false,\n          writable: false,\n          value: source\n        });\n        if (Object.freeze) {\n          Object.freeze(element.props);\n          Object.freeze(element);\n        }\n      }\n      return element;\n    };\n    /**\n     * Create and return a new ReactElement of the given type.\n     * See https://reactjs.org/docs/react-api.html#createelement\n     */\n\n    function createElement(type, config, children) {\n      var propName; // Reserved names are extracted\n\n      var props = {};\n      var key = null;\n      var ref = null;\n      var self = null;\n      var source = null;\n      if (config != null) {\n        if (hasValidRef(config)) {\n          ref = config.ref;\n          {\n            warnIfStringRefCannotBeAutoConverted(config);\n          }\n        }\n        if (hasValidKey(config)) {\n          {\n            checkKeyStringCoercion(config.key);\n          }\n          key = '' + config.key;\n        }\n        self = config.__self === undefined ? null : config.__self;\n        source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n        for (propName in config) {\n          if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n            props[propName] = config[propName];\n          }\n        }\n      } // Children can be more than one argument, and those are transferred onto\n      // the newly allocated props object.\n\n      var childrenLength = arguments.length - 2;\n      if (childrenLength === 1) {\n        props.children = children;\n      } else if (childrenLength > 1) {\n        var childArray = Array(childrenLength);\n        for (var i = 0; i < childrenLength; i++) {\n          childArray[i] = arguments[i + 2];\n        }\n        {\n          if (Object.freeze) {\n            Object.freeze(childArray);\n          }\n        }\n        props.children = childArray;\n      } // Resolve default props\n\n      if (type && type.defaultProps) {\n        var defaultProps = type.defaultProps;\n        for (propName in defaultProps) {\n          if (props[propName] === undefined) {\n            props[propName] = defaultProps[propName];\n          }\n        }\n      }\n      {\n        if (key || ref) {\n          var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n          if (key) {\n            defineKeyPropWarningGetter(props, displayName);\n          }\n          if (ref) {\n            defineRefPropWarningGetter(props, displayName);\n          }\n        }\n      }\n      return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n    }\n    function cloneAndReplaceKey(oldElement, newKey) {\n      var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n      return newElement;\n    }\n    /**\n     * Clone and return a new ReactElement using element as the starting point.\n     * See https://reactjs.org/docs/react-api.html#cloneelement\n     */\n\n    function cloneElement(element, config, children) {\n      if (element === null || element === undefined) {\n        throw new Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\");\n      }\n      var propName; // Original props are copied\n\n      var props = assign({}, element.props); // Reserved names are extracted\n\n      var key = element.key;\n      var ref = element.ref; // Self is preserved since the owner is preserved.\n\n      var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n      // transpiler, and the original source is probably a better indicator of the\n      // true owner.\n\n      var source = element._source; // Owner will be preserved, unless ref is overridden\n\n      var owner = element._owner;\n      if (config != null) {\n        if (hasValidRef(config)) {\n          // Silently steal the ref from the parent.\n          ref = config.ref;\n          owner = ReactCurrentOwner.current;\n        }\n        if (hasValidKey(config)) {\n          {\n            checkKeyStringCoercion(config.key);\n          }\n          key = '' + config.key;\n        } // Remaining properties override existing props\n\n        var defaultProps;\n        if (element.type && element.type.defaultProps) {\n          defaultProps = element.type.defaultProps;\n        }\n        for (propName in config) {\n          if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n            if (config[propName] === undefined && defaultProps !== undefined) {\n              // Resolve default props\n              props[propName] = defaultProps[propName];\n            } else {\n              props[propName] = config[propName];\n            }\n          }\n        }\n      } // Children can be more than one argument, and those are transferred onto\n      // the newly allocated props object.\n\n      var childrenLength = arguments.length - 2;\n      if (childrenLength === 1) {\n        props.children = children;\n      } else if (childrenLength > 1) {\n        var childArray = Array(childrenLength);\n        for (var i = 0; i < childrenLength; i++) {\n          childArray[i] = arguments[i + 2];\n        }\n        props.children = childArray;\n      }\n      return ReactElement(element.type, key, ref, self, source, owner, props);\n    }\n    /**\n     * Verifies the object is a ReactElement.\n     * See https://reactjs.org/docs/react-api.html#isvalidelement\n     * @param {?object} object\n     * @return {boolean} True if `object` is a ReactElement.\n     * @final\n     */\n\n    function isValidElement(object) {\n      return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n    }\n    var SEPARATOR = '.';\n    var SUBSEPARATOR = ':';\n    /**\n     * Escape and wrap key so it is safe to use as a reactid\n     *\n     * @param {string} key to be escaped.\n     * @return {string} the escaped key.\n     */\n\n    function escape(key) {\n      var escapeRegex = /[=:]/g;\n      var escaperLookup = {\n        '=': '=0',\n        ':': '=2'\n      };\n      var escapedString = key.replace(escapeRegex, function (match) {\n        return escaperLookup[match];\n      });\n      return '$' + escapedString;\n    }\n    /**\n     * TODO: Test that a single child and an array with one item have the same key\n     * pattern.\n     */\n\n    var didWarnAboutMaps = false;\n    var userProvidedKeyEscapeRegex = /\\/+/g;\n    function escapeUserProvidedKey(text) {\n      return text.replace(userProvidedKeyEscapeRegex, '$&/');\n    }\n    /**\n     * Generate a key string that identifies a element within a set.\n     *\n     * @param {*} element A element that could contain a manual key.\n     * @param {number} index Index that is used if a manual key is not provided.\n     * @return {string}\n     */\n\n    function getElementKey(element, index) {\n      // Do some typechecking here since we call this blindly. We want to ensure\n      // that we don't block potential future ES APIs.\n      if (typeof element === 'object' && element !== null && element.key != null) {\n        // Explicit key\n        {\n          checkKeyStringCoercion(element.key);\n        }\n        return escape('' + element.key);\n      } // Implicit key determined by the index in the set\n\n      return index.toString(36);\n    }\n    function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n      var type = typeof children;\n      if (type === 'undefined' || type === 'boolean') {\n        // All of the above are perceived as null.\n        children = null;\n      }\n      var invokeCallback = false;\n      if (children === null) {\n        invokeCallback = true;\n      } else {\n        switch (type) {\n          case 'string':\n          case 'number':\n            invokeCallback = true;\n            break;\n          case 'object':\n            switch (children.$$typeof) {\n              case REACT_ELEMENT_TYPE:\n              case REACT_PORTAL_TYPE:\n                invokeCallback = true;\n            }\n        }\n      }\n      if (invokeCallback) {\n        var _child = children;\n        var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n        // so that it's consistent if the number of children grows:\n\n        var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n        if (isArray(mappedChild)) {\n          var escapedChildKey = '';\n          if (childKey != null) {\n            escapedChildKey = escapeUserProvidedKey(childKey) + '/';\n          }\n          mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {\n            return c;\n          });\n        } else if (mappedChild != null) {\n          if (isValidElement(mappedChild)) {\n            {\n              // The `if` statement here prevents auto-disabling of the safe\n              // coercion ESLint rule, so we must manually disable it below.\n              // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n              if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) {\n                checkKeyStringCoercion(mappedChild.key);\n              }\n            }\n            mappedChild = cloneAndReplaceKey(mappedChild,\n            // Keep both the (mapped) and old keys if they differ, just as\n            // traverseAllChildren used to do for objects as children\n            escapedPrefix + (\n            // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n            mappedChild.key && (!_child || _child.key !== mappedChild.key) ?\n            // $FlowFixMe Flow incorrectly thinks existing element's key can be a number\n            // eslint-disable-next-line react-internal/safe-string-coercion\n            escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);\n          }\n          array.push(mappedChild);\n        }\n        return 1;\n      }\n      var child;\n      var nextName;\n      var subtreeCount = 0; // Count of children found in the current subtree.\n\n      var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n      if (isArray(children)) {\n        for (var i = 0; i < children.length; i++) {\n          child = children[i];\n          nextName = nextNamePrefix + getElementKey(child, i);\n          subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n        }\n      } else {\n        var iteratorFn = getIteratorFn(children);\n        if (typeof iteratorFn === 'function') {\n          var iterableChildren = children;\n          {\n            // Warn about using Maps as children\n            if (iteratorFn === iterableChildren.entries) {\n              if (!didWarnAboutMaps) {\n                warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n              }\n              didWarnAboutMaps = true;\n            }\n          }\n          var iterator = iteratorFn.call(iterableChildren);\n          var step;\n          var ii = 0;\n          while (!(step = iterator.next()).done) {\n            child = step.value;\n            nextName = nextNamePrefix + getElementKey(child, ii++);\n            subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n          }\n        } else if (type === 'object') {\n          // eslint-disable-next-line react-internal/safe-string-coercion\n          var childrenString = String(children);\n          throw new Error(\"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \"). \" + 'If you meant to render a collection of children, use an array ' + 'instead.');\n        }\n      }\n      return subtreeCount;\n    }\n\n    /**\n     * Maps children that are typically specified as `props.children`.\n     *\n     * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n     *\n     * The provided mapFunction(child, index) will be called for each\n     * leaf child.\n     *\n     * @param {?*} children Children tree container.\n     * @param {function(*, int)} func The map function.\n     * @param {*} context Context for mapFunction.\n     * @return {object} Object containing the ordered map of results.\n     */\n    function mapChildren(children, func, context) {\n      if (children == null) {\n        return children;\n      }\n      var result = [];\n      var count = 0;\n      mapIntoArray(children, result, '', '', function (child) {\n        return func.call(context, child, count++);\n      });\n      return result;\n    }\n    /**\n     * Count the number of children that are typically specified as\n     * `props.children`.\n     *\n     * See https://reactjs.org/docs/react-api.html#reactchildrencount\n     *\n     * @param {?*} children Children tree container.\n     * @return {number} The number of children.\n     */\n\n    function countChildren(children) {\n      var n = 0;\n      mapChildren(children, function () {\n        n++; // Don't return anything\n      });\n      return n;\n    }\n\n    /**\n     * Iterates through children that are typically specified as `props.children`.\n     *\n     * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n     *\n     * The provided forEachFunc(child, index) will be called for each\n     * leaf child.\n     *\n     * @param {?*} children Children tree container.\n     * @param {function(*, int)} forEachFunc\n     * @param {*} forEachContext Context for forEachContext.\n     */\n    function forEachChildren(children, forEachFunc, forEachContext) {\n      mapChildren(children, function () {\n        forEachFunc.apply(this, arguments); // Don't return anything.\n      }, forEachContext);\n    }\n    /**\n     * Flatten a children object (typically specified as `props.children`) and\n     * return an array with appropriately re-keyed children.\n     *\n     * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n     */\n\n    function toArray(children) {\n      return mapChildren(children, function (child) {\n        return child;\n      }) || [];\n    }\n    /**\n     * Returns the first child in a collection of children and verifies that there\n     * is only one child in the collection.\n     *\n     * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n     *\n     * The current implementation of this function assumes that a single child gets\n     * passed without a wrapper, but the purpose of this helper function is to\n     * abstract away the particular structure of children.\n     *\n     * @param {?object} children Child collection structure.\n     * @return {ReactElement} The first and only `ReactElement` contained in the\n     * structure.\n     */\n\n    function onlyChild(children) {\n      if (!isValidElement(children)) {\n        throw new Error('React.Children.only expected to receive a single React element child.');\n      }\n      return children;\n    }\n    function createContext(defaultValue) {\n      // TODO: Second argument used to be an optional `calculateChangedBits`\n      // function. Warn to reserve for future use?\n      var context = {\n        $$typeof: REACT_CONTEXT_TYPE,\n        // As a workaround to support multiple concurrent renderers, we categorize\n        // some renderers as primary and others as secondary. We only expect\n        // there to be two concurrent renderers at most: React Native (primary) and\n        // Fabric (secondary); React DOM (primary) and React ART (secondary).\n        // Secondary renderers store their context values on separate fields.\n        _currentValue: defaultValue,\n        _currentValue2: defaultValue,\n        // Used to track how many concurrent renderers this context currently\n        // supports within in a single renderer. Such as parallel server rendering.\n        _threadCount: 0,\n        // These are circular\n        Provider: null,\n        Consumer: null,\n        // Add these to use same hidden class in VM as ServerContext\n        _defaultValue: null,\n        _globalName: null\n      };\n      context.Provider = {\n        $$typeof: REACT_PROVIDER_TYPE,\n        _context: context\n      };\n      var hasWarnedAboutUsingNestedContextConsumers = false;\n      var hasWarnedAboutUsingConsumerProvider = false;\n      var hasWarnedAboutDisplayNameOnConsumer = false;\n      {\n        // A separate object, but proxies back to the original context object for\n        // backwards compatibility. It has a different $$typeof, so we can properly\n        // warn for the incorrect usage of Context as a Consumer.\n        var Consumer = {\n          $$typeof: REACT_CONTEXT_TYPE,\n          _context: context\n        }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n        Object.defineProperties(Consumer, {\n          Provider: {\n            get: function () {\n              if (!hasWarnedAboutUsingConsumerProvider) {\n                hasWarnedAboutUsingConsumerProvider = true;\n                error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n              }\n              return context.Provider;\n            },\n            set: function (_Provider) {\n              context.Provider = _Provider;\n            }\n          },\n          _currentValue: {\n            get: function () {\n              return context._currentValue;\n            },\n            set: function (_currentValue) {\n              context._currentValue = _currentValue;\n            }\n          },\n          _currentValue2: {\n            get: function () {\n              return context._currentValue2;\n            },\n            set: function (_currentValue2) {\n              context._currentValue2 = _currentValue2;\n            }\n          },\n          _threadCount: {\n            get: function () {\n              return context._threadCount;\n            },\n            set: function (_threadCount) {\n              context._threadCount = _threadCount;\n            }\n          },\n          Consumer: {\n            get: function () {\n              if (!hasWarnedAboutUsingNestedContextConsumers) {\n                hasWarnedAboutUsingNestedContextConsumers = true;\n                error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n              }\n              return context.Consumer;\n            }\n          },\n          displayName: {\n            get: function () {\n              return context.displayName;\n            },\n            set: function (displayName) {\n              if (!hasWarnedAboutDisplayNameOnConsumer) {\n                warn('Setting `displayName` on Context.Consumer has no effect. ' + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n                hasWarnedAboutDisplayNameOnConsumer = true;\n              }\n            }\n          }\n        }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n        context.Consumer = Consumer;\n      }\n      {\n        context._currentRenderer = null;\n        context._currentRenderer2 = null;\n      }\n      return context;\n    }\n    var Uninitialized = -1;\n    var Pending = 0;\n    var Resolved = 1;\n    var Rejected = 2;\n    function lazyInitializer(payload) {\n      if (payload._status === Uninitialized) {\n        var ctor = payload._result;\n        var thenable = ctor(); // Transition to the next state.\n        // This might throw either because it's missing or throws. If so, we treat it\n        // as still uninitialized and try again next time. Which is the same as what\n        // happens if the ctor or any wrappers processing the ctor throws. This might\n        // end up fixing it if the resolution was a concurrency bug.\n\n        thenable.then(function (moduleObject) {\n          if (payload._status === Pending || payload._status === Uninitialized) {\n            // Transition to the next state.\n            var resolved = payload;\n            resolved._status = Resolved;\n            resolved._result = moduleObject;\n          }\n        }, function (error) {\n          if (payload._status === Pending || payload._status === Uninitialized) {\n            // Transition to the next state.\n            var rejected = payload;\n            rejected._status = Rejected;\n            rejected._result = error;\n          }\n        });\n        if (payload._status === Uninitialized) {\n          // In case, we're still uninitialized, then we're waiting for the thenable\n          // to resolve. Set it as pending in the meantime.\n          var pending = payload;\n          pending._status = Pending;\n          pending._result = thenable;\n        }\n      }\n      if (payload._status === Resolved) {\n        var moduleObject = payload._result;\n        {\n          if (moduleObject === undefined) {\n            error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n  ' +\n            // Break up imports to avoid accidentally parsing them as dependencies.\n            'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\\n\\n\" + 'Did you accidentally put curly braces around the import?', moduleObject);\n          }\n        }\n        {\n          if (!('default' in moduleObject)) {\n            error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n  ' +\n            // Break up imports to avoid accidentally parsing them as dependencies.\n            'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\", moduleObject);\n          }\n        }\n        return moduleObject.default;\n      } else {\n        throw payload._result;\n      }\n    }\n    function lazy(ctor) {\n      var payload = {\n        // We use these fields to store the result.\n        _status: Uninitialized,\n        _result: ctor\n      };\n      var lazyType = {\n        $$typeof: REACT_LAZY_TYPE,\n        _payload: payload,\n        _init: lazyInitializer\n      };\n      {\n        // In production, this would just set it on the object.\n        var defaultProps;\n        var propTypes; // $FlowFixMe\n\n        Object.defineProperties(lazyType, {\n          defaultProps: {\n            configurable: true,\n            get: function () {\n              return defaultProps;\n            },\n            set: function (newDefaultProps) {\n              error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n              defaultProps = newDefaultProps; // Match production behavior more closely:\n              // $FlowFixMe\n\n              Object.defineProperty(lazyType, 'defaultProps', {\n                enumerable: true\n              });\n            }\n          },\n          propTypes: {\n            configurable: true,\n            get: function () {\n              return propTypes;\n            },\n            set: function (newPropTypes) {\n              error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n              propTypes = newPropTypes; // Match production behavior more closely:\n              // $FlowFixMe\n\n              Object.defineProperty(lazyType, 'propTypes', {\n                enumerable: true\n              });\n            }\n          }\n        });\n      }\n      return lazyType;\n    }\n    function forwardRef(render) {\n      {\n        if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n          error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n        } else if (typeof render !== 'function') {\n          error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n        } else {\n          if (render.length !== 0 && render.length !== 2) {\n            error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n          }\n        }\n        if (render != null) {\n          if (render.defaultProps != null || render.propTypes != null) {\n            error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n          }\n        }\n      }\n      var elementType = {\n        $$typeof: REACT_FORWARD_REF_TYPE,\n        render: render\n      };\n      {\n        var ownName;\n        Object.defineProperty(elementType, 'displayName', {\n          enumerable: false,\n          configurable: true,\n          get: function () {\n            return ownName;\n          },\n          set: function (name) {\n            ownName = name; // The inner component shouldn't inherit this display name in most cases,\n            // because the component may be used elsewhere.\n            // But it's nice for anonymous functions to inherit the name,\n            // so that our component-stack generation logic will display their frames.\n            // An anonymous function generally suggests a pattern like:\n            //   React.forwardRef((props, ref) => {...});\n            // This kind of inner function is not used elsewhere so the side effect is okay.\n\n            if (!render.name && !render.displayName) {\n              render.displayName = name;\n            }\n          }\n        });\n      }\n      return elementType;\n    }\n    var REACT_MODULE_REFERENCE;\n    {\n      REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n    }\n    function isValidElementType(type) {\n      if (typeof type === 'string' || typeof type === 'function') {\n        return true;\n      } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n      if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing) {\n        return true;\n      }\n      if (typeof type === 'object' && type !== null) {\n        if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE ||\n        // This needs to include all possible module reference object\n        // types supported by any Flight configuration anywhere since\n        // we don't know which Flight build this will end up being used\n        // with.\n        type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n          return true;\n        }\n      }\n      return false;\n    }\n    function memo(type, compare) {\n      {\n        if (!isValidElementType(type)) {\n          error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n        }\n      }\n      var elementType = {\n        $$typeof: REACT_MEMO_TYPE,\n        type: type,\n        compare: compare === undefined ? null : compare\n      };\n      {\n        var ownName;\n        Object.defineProperty(elementType, 'displayName', {\n          enumerable: false,\n          configurable: true,\n          get: function () {\n            return ownName;\n          },\n          set: function (name) {\n            ownName = name; // The inner component shouldn't inherit this display name in most cases,\n            // because the component may be used elsewhere.\n            // But it's nice for anonymous functions to inherit the name,\n            // so that our component-stack generation logic will display their frames.\n            // An anonymous function generally suggests a pattern like:\n            //   React.memo((props) => {...});\n            // This kind of inner function is not used elsewhere so the side effect is okay.\n\n            if (!type.name && !type.displayName) {\n              type.displayName = name;\n            }\n          }\n        });\n      }\n      return elementType;\n    }\n    function resolveDispatcher() {\n      var dispatcher = ReactCurrentDispatcher.current;\n      {\n        if (dispatcher === null) {\n          error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for' + ' one of the following reasons:\\n' + '1. You might have mismatching versions of React and the renderer (such as React DOM)\\n' + '2. You might be breaking the Rules of Hooks\\n' + '3. You might have more than one copy of React in the same app\\n' + 'See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.');\n        }\n      } // Will result in a null access error if accessed outside render phase. We\n      // intentionally don't throw our own error because this is in a hot path.\n      // Also helps ensure this is inlined.\n\n      return dispatcher;\n    }\n    function useContext(Context) {\n      var dispatcher = resolveDispatcher();\n      {\n        // TODO: add a more generic warning for invalid values.\n        if (Context._context !== undefined) {\n          var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n          // and nobody should be using this in existing code.\n\n          if (realContext.Consumer === Context) {\n            error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n          } else if (realContext.Provider === Context) {\n            error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n          }\n        }\n      }\n      return dispatcher.useContext(Context);\n    }\n    function useState(initialState) {\n      var dispatcher = resolveDispatcher();\n      return dispatcher.useState(initialState);\n    }\n    function useReducer(reducer, initialArg, init) {\n      var dispatcher = resolveDispatcher();\n      return dispatcher.useReducer(reducer, initialArg, init);\n    }\n    function useRef(initialValue) {\n      var dispatcher = resolveDispatcher();\n      return dispatcher.useRef(initialValue);\n    }\n    function useEffect(create, deps) {\n      var dispatcher = resolveDispatcher();\n      return dispatcher.useEffect(create, deps);\n    }\n    function useInsertionEffect(create, deps) {\n      var dispatcher = resolveDispatcher();\n      return dispatcher.useInsertionEffect(create, deps);\n    }\n    function useLayoutEffect(create, deps) {\n      var dispatcher = resolveDispatcher();\n      return dispatcher.useLayoutEffect(create, deps);\n    }\n    function useCallback(callback, deps) {\n      var dispatcher = resolveDispatcher();\n      return dispatcher.useCallback(callback, deps);\n    }\n    function useMemo(create, deps) {\n      var dispatcher = resolveDispatcher();\n      return dispatcher.useMemo(create, deps);\n    }\n    function useImperativeHandle(ref, create, deps) {\n      var dispatcher = resolveDispatcher();\n      return dispatcher.useImperativeHandle(ref, create, deps);\n    }\n    function useDebugValue(value, formatterFn) {\n      {\n        var dispatcher = resolveDispatcher();\n        return dispatcher.useDebugValue(value, formatterFn);\n      }\n    }\n    function useTransition() {\n      var dispatcher = resolveDispatcher();\n      return dispatcher.useTransition();\n    }\n    function useDeferredValue(value) {\n      var dispatcher = resolveDispatcher();\n      return dispatcher.useDeferredValue(value);\n    }\n    function useId() {\n      var dispatcher = resolveDispatcher();\n      return dispatcher.useId();\n    }\n    function useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n      var dispatcher = resolveDispatcher();\n      return dispatcher.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n    }\n\n    // Helpers to patch console.logs to avoid logging during side-effect free\n    // replaying on render function. This currently only patches the object\n    // lazily which won't cover if the log function was extracted eagerly.\n    // We could also eagerly patch the method.\n    var disabledDepth = 0;\n    var prevLog;\n    var prevInfo;\n    var prevWarn;\n    var prevError;\n    var prevGroup;\n    var prevGroupCollapsed;\n    var prevGroupEnd;\n    function disabledLog() {}\n    disabledLog.__reactDisabledLog = true;\n    function disableLogs() {\n      {\n        if (disabledDepth === 0) {\n          /* eslint-disable react-internal/no-production-logging */\n          prevLog = console.log;\n          prevInfo = console.info;\n          prevWarn = console.warn;\n          prevError = console.error;\n          prevGroup = console.group;\n          prevGroupCollapsed = console.groupCollapsed;\n          prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n          var props = {\n            configurable: true,\n            enumerable: true,\n            value: disabledLog,\n            writable: true\n          }; // $FlowFixMe Flow thinks console is immutable.\n\n          Object.defineProperties(console, {\n            info: props,\n            log: props,\n            warn: props,\n            error: props,\n            group: props,\n            groupCollapsed: props,\n            groupEnd: props\n          });\n          /* eslint-enable react-internal/no-production-logging */\n        }\n        disabledDepth++;\n      }\n    }\n    function reenableLogs() {\n      {\n        disabledDepth--;\n        if (disabledDepth === 0) {\n          /* eslint-disable react-internal/no-production-logging */\n          var props = {\n            configurable: true,\n            enumerable: true,\n            writable: true\n          }; // $FlowFixMe Flow thinks console is immutable.\n\n          Object.defineProperties(console, {\n            log: assign({}, props, {\n              value: prevLog\n            }),\n            info: assign({}, props, {\n              value: prevInfo\n            }),\n            warn: assign({}, props, {\n              value: prevWarn\n            }),\n            error: assign({}, props, {\n              value: prevError\n            }),\n            group: assign({}, props, {\n              value: prevGroup\n            }),\n            groupCollapsed: assign({}, props, {\n              value: prevGroupCollapsed\n            }),\n            groupEnd: assign({}, props, {\n              value: prevGroupEnd\n            })\n          });\n          /* eslint-enable react-internal/no-production-logging */\n        }\n        if (disabledDepth < 0) {\n          error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n        }\n      }\n    }\n    var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\n    var prefix;\n    function describeBuiltInComponentFrame(name, source, ownerFn) {\n      {\n        if (prefix === undefined) {\n          // Extract the VM specific prefix used by each line.\n          try {\n            throw Error();\n          } catch (x) {\n            var match = x.stack.trim().match(/\\n( *(at )?)/);\n            prefix = match && match[1] || '';\n          }\n        } // We use the prefix to ensure our stacks line up with native stack frames.\n\n        return '\\n' + prefix + name;\n      }\n    }\n    var reentry = false;\n    var componentFrameCache;\n    {\n      var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n      componentFrameCache = new PossiblyWeakMap();\n    }\n    function describeNativeComponentFrame(fn, construct) {\n      // If something asked for a stack inside a fake render, it should get ignored.\n      if (!fn || reentry) {\n        return '';\n      }\n      {\n        var frame = componentFrameCache.get(fn);\n        if (frame !== undefined) {\n          return frame;\n        }\n      }\n      var control;\n      reentry = true;\n      var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n      Error.prepareStackTrace = undefined;\n      var previousDispatcher;\n      {\n        previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function\n        // for warnings.\n\n        ReactCurrentDispatcher$1.current = null;\n        disableLogs();\n      }\n      try {\n        // This should throw.\n        if (construct) {\n          // Something should be setting the props in the constructor.\n          var Fake = function () {\n            throw Error();\n          }; // $FlowFixMe\n\n          Object.defineProperty(Fake.prototype, 'props', {\n            set: function () {\n              // We use a throwing setter instead of frozen or non-writable props\n              // because that won't throw in a non-strict mode function.\n              throw Error();\n            }\n          });\n          if (typeof Reflect === 'object' && Reflect.construct) {\n            // We construct a different control for this case to include any extra\n            // frames added by the construct call.\n            try {\n              Reflect.construct(Fake, []);\n            } catch (x) {\n              control = x;\n            }\n            Reflect.construct(fn, [], Fake);\n          } else {\n            try {\n              Fake.call();\n            } catch (x) {\n              control = x;\n            }\n            fn.call(Fake.prototype);\n          }\n        } else {\n          try {\n            throw Error();\n          } catch (x) {\n            control = x;\n          }\n          fn();\n        }\n      } catch (sample) {\n        // This is inlined manually because closure doesn't do it for us.\n        if (sample && control && typeof sample.stack === 'string') {\n          // This extracts the first frame from the sample that isn't also in the control.\n          // Skipping one frame that we assume is the frame that calls the two.\n          var sampleLines = sample.stack.split('\\n');\n          var controlLines = control.stack.split('\\n');\n          var s = sampleLines.length - 1;\n          var c = controlLines.length - 1;\n          while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n            // We expect at least one stack frame to be shared.\n            // Typically this will be the root most one. However, stack frames may be\n            // cut off due to maximum stack limits. In this case, one maybe cut off\n            // earlier than the other. We assume that the sample is longer or the same\n            // and there for cut off earlier. So we should find the root most frame in\n            // the sample somewhere in the control.\n            c--;\n          }\n          for (; s >= 1 && c >= 0; s--, c--) {\n            // Next we find the first one that isn't the same which should be the\n            // frame that called our sample function and the control.\n            if (sampleLines[s] !== controlLines[c]) {\n              // In V8, the first line is describing the message but other VMs don't.\n              // If we're about to return the first line, and the control is also on the same\n              // line, that's a pretty good indicator that our sample threw at same line as\n              // the control. I.e. before we entered the sample frame. So we ignore this result.\n              // This can happen if you passed a class to function component, or non-function.\n              if (s !== 1 || c !== 1) {\n                do {\n                  s--;\n                  c--; // We may still have similar intermediate frames from the construct call.\n                  // The next one that isn't the same should be our match though.\n\n                  if (c < 0 || sampleLines[s] !== controlLines[c]) {\n                    // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n                    var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n                    // but we have a user-provided \"displayName\"\n                    // splice it in to make the stack more readable.\n\n                    if (fn.displayName && _frame.includes('<anonymous>')) {\n                      _frame = _frame.replace('<anonymous>', fn.displayName);\n                    }\n                    {\n                      if (typeof fn === 'function') {\n                        componentFrameCache.set(fn, _frame);\n                      }\n                    } // Return the line we found.\n\n                    return _frame;\n                  }\n                } while (s >= 1 && c >= 0);\n              }\n              break;\n            }\n          }\n        }\n      } finally {\n        reentry = false;\n        {\n          ReactCurrentDispatcher$1.current = previousDispatcher;\n          reenableLogs();\n        }\n        Error.prepareStackTrace = previousPrepareStackTrace;\n      } // Fallback to just using the name if we couldn't make it throw.\n\n      var name = fn ? fn.displayName || fn.name : '';\n      var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n      {\n        if (typeof fn === 'function') {\n          componentFrameCache.set(fn, syntheticFrame);\n        }\n      }\n      return syntheticFrame;\n    }\n    function describeFunctionComponentFrame(fn, source, ownerFn) {\n      {\n        return describeNativeComponentFrame(fn, false);\n      }\n    }\n    function shouldConstruct(Component) {\n      var prototype = Component.prototype;\n      return !!(prototype && prototype.isReactComponent);\n    }\n    function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n      if (type == null) {\n        return '';\n      }\n      if (typeof type === 'function') {\n        {\n          return describeNativeComponentFrame(type, shouldConstruct(type));\n        }\n      }\n      if (typeof type === 'string') {\n        return describeBuiltInComponentFrame(type);\n      }\n      switch (type) {\n        case REACT_SUSPENSE_TYPE:\n          return describeBuiltInComponentFrame('Suspense');\n        case REACT_SUSPENSE_LIST_TYPE:\n          return describeBuiltInComponentFrame('SuspenseList');\n      }\n      if (typeof type === 'object') {\n        switch (type.$$typeof) {\n          case REACT_FORWARD_REF_TYPE:\n            return describeFunctionComponentFrame(type.render);\n          case REACT_MEMO_TYPE:\n            // Memo may contain any component type so we recursively resolve it.\n            return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n          case REACT_LAZY_TYPE:\n            {\n              var lazyComponent = type;\n              var payload = lazyComponent._payload;\n              var init = lazyComponent._init;\n              try {\n                // Lazy may contain any component type so we recursively resolve it.\n                return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n              } catch (x) {}\n            }\n        }\n      }\n      return '';\n    }\n    var loggedTypeFailures = {};\n    var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n    function setCurrentlyValidatingElement(element) {\n      {\n        if (element) {\n          var owner = element._owner;\n          var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n          ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n        } else {\n          ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n        }\n      }\n    }\n    function checkPropTypes(typeSpecs, values, location, componentName, element) {\n      {\n        // $FlowFixMe This is okay but Flow doesn't know it.\n        var has = Function.call.bind(hasOwnProperty);\n        for (var typeSpecName in typeSpecs) {\n          if (has(typeSpecs, typeSpecName)) {\n            var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n            // fail the render phase where it didn't fail before. So we log it.\n            // After these have been cleaned up, we'll let them throw.\n\n            try {\n              // This is intentionally an invariant that gets caught. It's the same\n              // behavior as without this statement except with a better message.\n              if (typeof typeSpecs[typeSpecName] !== 'function') {\n                // eslint-disable-next-line react-internal/prod-error-codes\n                var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n                err.name = 'Invariant Violation';\n                throw err;\n              }\n              error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n            } catch (ex) {\n              error$1 = ex;\n            }\n            if (error$1 && !(error$1 instanceof Error)) {\n              setCurrentlyValidatingElement(element);\n              error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n              setCurrentlyValidatingElement(null);\n            }\n            if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n              // Only monitor this failure once because there tends to be a lot of the\n              // same error.\n              loggedTypeFailures[error$1.message] = true;\n              setCurrentlyValidatingElement(element);\n              error('Failed %s type: %s', location, error$1.message);\n              setCurrentlyValidatingElement(null);\n            }\n          }\n        }\n      }\n    }\n    function setCurrentlyValidatingElement$1(element) {\n      {\n        if (element) {\n          var owner = element._owner;\n          var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n          setExtraStackFrame(stack);\n        } else {\n          setExtraStackFrame(null);\n        }\n      }\n    }\n    var propTypesMisspellWarningShown;\n    {\n      propTypesMisspellWarningShown = false;\n    }\n    function getDeclarationErrorAddendum() {\n      if (ReactCurrentOwner.current) {\n        var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n        if (name) {\n          return '\\n\\nCheck the render method of `' + name + '`.';\n        }\n      }\n      return '';\n    }\n    function getSourceInfoErrorAddendum(source) {\n      if (source !== undefined) {\n        var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n        var lineNumber = source.lineNumber;\n        return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n      }\n      return '';\n    }\n    function getSourceInfoErrorAddendumForProps(elementProps) {\n      if (elementProps !== null && elementProps !== undefined) {\n        return getSourceInfoErrorAddendum(elementProps.__source);\n      }\n      return '';\n    }\n    /**\n     * Warn if there's no key explicitly set on dynamic arrays of children or\n     * object keys are not valid. This allows us to keep track of children between\n     * updates.\n     */\n\n    var ownerHasKeyUseWarning = {};\n    function getCurrentComponentErrorInfo(parentType) {\n      var info = getDeclarationErrorAddendum();\n      if (!info) {\n        var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n        if (parentName) {\n          info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n        }\n      }\n      return info;\n    }\n    /**\n     * Warn if the element doesn't have an explicit key assigned to it.\n     * This element is in an array. The array could grow and shrink or be\n     * reordered. All children that haven't already been validated are required to\n     * have a \"key\" property assigned to it. Error statuses are cached so a warning\n     * will only be shown once.\n     *\n     * @internal\n     * @param {ReactElement} element Element that requires a key.\n     * @param {*} parentType element's parent's type.\n     */\n\n    function validateExplicitKey(element, parentType) {\n      if (!element._store || element._store.validated || element.key != null) {\n        return;\n      }\n      element._store.validated = true;\n      var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n      if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n        return;\n      }\n      ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n      // property, it may be the creator of the child that's responsible for\n      // assigning it a key.\n\n      var childOwner = '';\n      if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n        // Give the component that originally created this child.\n        childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n      }\n      {\n        setCurrentlyValidatingElement$1(element);\n        error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n        setCurrentlyValidatingElement$1(null);\n      }\n    }\n    /**\n     * Ensure that every element either is passed in a static location, in an\n     * array with an explicit keys property defined, or in an object literal\n     * with valid key property.\n     *\n     * @internal\n     * @param {ReactNode} node Statically passed child of any type.\n     * @param {*} parentType node's parent's type.\n     */\n\n    function validateChildKeys(node, parentType) {\n      if (typeof node !== 'object') {\n        return;\n      }\n      if (isArray(node)) {\n        for (var i = 0; i < node.length; i++) {\n          var child = node[i];\n          if (isValidElement(child)) {\n            validateExplicitKey(child, parentType);\n          }\n        }\n      } else if (isValidElement(node)) {\n        // This element was passed in a valid location.\n        if (node._store) {\n          node._store.validated = true;\n        }\n      } else if (node) {\n        var iteratorFn = getIteratorFn(node);\n        if (typeof iteratorFn === 'function') {\n          // Entry iterators used to provide implicit keys,\n          // but now we print a separate warning for them later.\n          if (iteratorFn !== node.entries) {\n            var iterator = iteratorFn.call(node);\n            var step;\n            while (!(step = iterator.next()).done) {\n              if (isValidElement(step.value)) {\n                validateExplicitKey(step.value, parentType);\n              }\n            }\n          }\n        }\n      }\n    }\n    /**\n     * Given an element, validate that its props follow the propTypes definition,\n     * provided by the type.\n     *\n     * @param {ReactElement} element\n     */\n\n    function validatePropTypes(element) {\n      {\n        var type = element.type;\n        if (type === null || type === undefined || typeof type === 'string') {\n          return;\n        }\n        var propTypes;\n        if (typeof type === 'function') {\n          propTypes = type.propTypes;\n        } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE ||\n        // Note: Memo only checks outer props here.\n        // Inner props are checked in the reconciler.\n        type.$$typeof === REACT_MEMO_TYPE)) {\n          propTypes = type.propTypes;\n        } else {\n          return;\n        }\n        if (propTypes) {\n          // Intentionally inside to avoid triggering lazy initializers:\n          var name = getComponentNameFromType(type);\n          checkPropTypes(propTypes, element.props, 'prop', name, element);\n        } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n          propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n          var _name = getComponentNameFromType(type);\n          error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n        }\n        if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n          error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n        }\n      }\n    }\n    /**\n     * Given a fragment, validate that it can only be provided with fragment props\n     * @param {ReactElement} fragment\n     */\n\n    function validateFragmentProps(fragment) {\n      {\n        var keys = Object.keys(fragment.props);\n        for (var i = 0; i < keys.length; i++) {\n          var key = keys[i];\n          if (key !== 'children' && key !== 'key') {\n            setCurrentlyValidatingElement$1(fragment);\n            error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n            setCurrentlyValidatingElement$1(null);\n            break;\n          }\n        }\n        if (fragment.ref !== null) {\n          setCurrentlyValidatingElement$1(fragment);\n          error('Invalid attribute `ref` supplied to `React.Fragment`.');\n          setCurrentlyValidatingElement$1(null);\n        }\n      }\n    }\n    function createElementWithValidation(type, props, children) {\n      var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n      // succeed and there will likely be errors in render.\n\n      if (!validType) {\n        var info = '';\n        if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n          info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n        }\n        var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n        if (sourceInfo) {\n          info += sourceInfo;\n        } else {\n          info += getDeclarationErrorAddendum();\n        }\n        var typeString;\n        if (type === null) {\n          typeString = 'null';\n        } else if (isArray(type)) {\n          typeString = 'array';\n        } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n          typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n          info = ' Did you accidentally export a JSX literal instead of a component?';\n        } else {\n          typeString = typeof type;\n        }\n        {\n          error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n        }\n      }\n      var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n      // TODO: Drop this when these are no longer allowed as the type argument.\n\n      if (element == null) {\n        return element;\n      } // Skip key warning if the type isn't valid since our key validation logic\n      // doesn't expect a non-string/function type and can throw confusing errors.\n      // We don't want exception behavior to differ between dev and prod.\n      // (Rendering will throw with a helpful message and as soon as the type is\n      // fixed, the key warnings will appear.)\n\n      if (validType) {\n        for (var i = 2; i < arguments.length; i++) {\n          validateChildKeys(arguments[i], type);\n        }\n      }\n      if (type === REACT_FRAGMENT_TYPE) {\n        validateFragmentProps(element);\n      } else {\n        validatePropTypes(element);\n      }\n      return element;\n    }\n    var didWarnAboutDeprecatedCreateFactory = false;\n    function createFactoryWithValidation(type) {\n      var validatedFactory = createElementWithValidation.bind(null, type);\n      validatedFactory.type = type;\n      {\n        if (!didWarnAboutDeprecatedCreateFactory) {\n          didWarnAboutDeprecatedCreateFactory = true;\n          warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n        } // Legacy hook: remove it\n\n        Object.defineProperty(validatedFactory, 'type', {\n          enumerable: false,\n          get: function () {\n            warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n            Object.defineProperty(this, 'type', {\n              value: type\n            });\n            return type;\n          }\n        });\n      }\n      return validatedFactory;\n    }\n    function cloneElementWithValidation(element, props, children) {\n      var newElement = cloneElement.apply(this, arguments);\n      for (var i = 2; i < arguments.length; i++) {\n        validateChildKeys(arguments[i], newElement.type);\n      }\n      validatePropTypes(newElement);\n      return newElement;\n    }\n    function startTransition(scope, options) {\n      var prevTransition = ReactCurrentBatchConfig.transition;\n      ReactCurrentBatchConfig.transition = {};\n      var currentTransition = ReactCurrentBatchConfig.transition;\n      {\n        ReactCurrentBatchConfig.transition._updatedFibers = new Set();\n      }\n      try {\n        scope();\n      } finally {\n        ReactCurrentBatchConfig.transition = prevTransition;\n        {\n          if (prevTransition === null && currentTransition._updatedFibers) {\n            var updatedFibersCount = currentTransition._updatedFibers.size;\n            if (updatedFibersCount > 10) {\n              warn('Detected a large number of updates inside startTransition. ' + 'If this is due to a subscription please re-write it to use React provided hooks. ' + 'Otherwise concurrent mode guarantees are off the table.');\n            }\n            currentTransition._updatedFibers.clear();\n          }\n        }\n      }\n    }\n    var didWarnAboutMessageChannel = false;\n    var enqueueTaskImpl = null;\n    function enqueueTask(task) {\n      if (enqueueTaskImpl === null) {\n        try {\n          // read require off the module object to get around the bundlers.\n          // we don't want them to detect a require and bundle a Node polyfill.\n          var requireString = ('require' + Math.random()).slice(0, 7);\n          var nodeRequire = module && module[requireString]; // assuming we're in node, let's try to get node's\n          // version of setImmediate, bypassing fake timers if any.\n\n          enqueueTaskImpl = nodeRequire.call(module, 'timers').setImmediate;\n        } catch (_err) {\n          // we're in a browser\n          // we can't use regular timers because they may still be faked\n          // so we try MessageChannel+postMessage instead\n          enqueueTaskImpl = function (callback) {\n            {\n              if (didWarnAboutMessageChannel === false) {\n                didWarnAboutMessageChannel = true;\n                if (typeof MessageChannel === 'undefined') {\n                  error('This browser does not have a MessageChannel implementation, ' + 'so enqueuing tasks via await act(async () => ...) will fail. ' + 'Please file an issue at https://github.com/facebook/react/issues ' + 'if you encounter this warning.');\n                }\n              }\n            }\n            var channel = new MessageChannel();\n            channel.port1.onmessage = callback;\n            channel.port2.postMessage(undefined);\n          };\n        }\n      }\n      return enqueueTaskImpl(task);\n    }\n    var actScopeDepth = 0;\n    var didWarnNoAwaitAct = false;\n    function act(callback) {\n      {\n        // `act` calls can be nested, so we track the depth. This represents the\n        // number of `act` scopes on the stack.\n        var prevActScopeDepth = actScopeDepth;\n        actScopeDepth++;\n        if (ReactCurrentActQueue.current === null) {\n          // This is the outermost `act` scope. Initialize the queue. The reconciler\n          // will detect the queue and use it instead of Scheduler.\n          ReactCurrentActQueue.current = [];\n        }\n        var prevIsBatchingLegacy = ReactCurrentActQueue.isBatchingLegacy;\n        var result;\n        try {\n          // Used to reproduce behavior of `batchedUpdates` in legacy mode. Only\n          // set to `true` while the given callback is executed, not for updates\n          // triggered during an async event, because this is how the legacy\n          // implementation of `act` behaved.\n          ReactCurrentActQueue.isBatchingLegacy = true;\n          result = callback(); // Replicate behavior of original `act` implementation in legacy mode,\n          // which flushed updates immediately after the scope function exits, even\n          // if it's an async function.\n\n          if (!prevIsBatchingLegacy && ReactCurrentActQueue.didScheduleLegacyUpdate) {\n            var queue = ReactCurrentActQueue.current;\n            if (queue !== null) {\n              ReactCurrentActQueue.didScheduleLegacyUpdate = false;\n              flushActQueue(queue);\n            }\n          }\n        } catch (error) {\n          popActScope(prevActScopeDepth);\n          throw error;\n        } finally {\n          ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;\n        }\n        if (result !== null && typeof result === 'object' && typeof result.then === 'function') {\n          var thenableResult = result; // The callback is an async function (i.e. returned a promise). Wait\n          // for it to resolve before exiting the current scope.\n\n          var wasAwaited = false;\n          var thenable = {\n            then: function (resolve, reject) {\n              wasAwaited = true;\n              thenableResult.then(function (returnValue) {\n                popActScope(prevActScopeDepth);\n                if (actScopeDepth === 0) {\n                  // We've exited the outermost act scope. Recursively flush the\n                  // queue until there's no remaining work.\n                  recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n                } else {\n                  resolve(returnValue);\n                }\n              }, function (error) {\n                // The callback threw an error.\n                popActScope(prevActScopeDepth);\n                reject(error);\n              });\n            }\n          };\n          {\n            if (!didWarnNoAwaitAct && typeof Promise !== 'undefined') {\n              // eslint-disable-next-line no-undef\n              Promise.resolve().then(function () {}).then(function () {\n                if (!wasAwaited) {\n                  didWarnNoAwaitAct = true;\n                  error('You called act(async () => ...) without await. ' + 'This could lead to unexpected testing behaviour, ' + 'interleaving multiple act calls and mixing their ' + 'scopes. ' + 'You should - await act(async () => ...);');\n                }\n              });\n            }\n          }\n          return thenable;\n        } else {\n          var returnValue = result; // The callback is not an async function. Exit the current scope\n          // immediately, without awaiting.\n\n          popActScope(prevActScopeDepth);\n          if (actScopeDepth === 0) {\n            // Exiting the outermost act scope. Flush the queue.\n            var _queue = ReactCurrentActQueue.current;\n            if (_queue !== null) {\n              flushActQueue(_queue);\n              ReactCurrentActQueue.current = null;\n            } // Return a thenable. If the user awaits it, we'll flush again in\n            // case additional work was scheduled by a microtask.\n\n            var _thenable = {\n              then: function (resolve, reject) {\n                // Confirm we haven't re-entered another `act` scope, in case\n                // the user does something weird like await the thenable\n                // multiple times.\n                if (ReactCurrentActQueue.current === null) {\n                  // Recursively flush the queue until there's no remaining work.\n                  ReactCurrentActQueue.current = [];\n                  recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n                } else {\n                  resolve(returnValue);\n                }\n              }\n            };\n            return _thenable;\n          } else {\n            // Since we're inside a nested `act` scope, the returned thenable\n            // immediately resolves. The outer scope will flush the queue.\n            var _thenable2 = {\n              then: function (resolve, reject) {\n                resolve(returnValue);\n              }\n            };\n            return _thenable2;\n          }\n        }\n      }\n    }\n    function popActScope(prevActScopeDepth) {\n      {\n        if (prevActScopeDepth !== actScopeDepth - 1) {\n          error('You seem to have overlapping act() calls, this is not supported. ' + 'Be sure to await previous act() calls before making a new one. ');\n        }\n        actScopeDepth = prevActScopeDepth;\n      }\n    }\n    function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n      {\n        var queue = ReactCurrentActQueue.current;\n        if (queue !== null) {\n          try {\n            flushActQueue(queue);\n            enqueueTask(function () {\n              if (queue.length === 0) {\n                // No additional work was scheduled. Finish.\n                ReactCurrentActQueue.current = null;\n                resolve(returnValue);\n              } else {\n                // Keep flushing work until there's none left.\n                recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n              }\n            });\n          } catch (error) {\n            reject(error);\n          }\n        } else {\n          resolve(returnValue);\n        }\n      }\n    }\n    var isFlushing = false;\n    function flushActQueue(queue) {\n      {\n        if (!isFlushing) {\n          // Prevent re-entrance.\n          isFlushing = true;\n          var i = 0;\n          try {\n            for (; i < queue.length; i++) {\n              var callback = queue[i];\n              do {\n                callback = callback(true);\n              } while (callback !== null);\n            }\n            queue.length = 0;\n          } catch (error) {\n            // If something throws, leave the remaining callbacks on the queue.\n            queue = queue.slice(i + 1);\n            throw error;\n          } finally {\n            isFlushing = false;\n          }\n        }\n      }\n    }\n    var createElement$1 = createElementWithValidation;\n    var cloneElement$1 = cloneElementWithValidation;\n    var createFactory = createFactoryWithValidation;\n    var Children = {\n      map: mapChildren,\n      forEach: forEachChildren,\n      count: countChildren,\n      toArray: toArray,\n      only: onlyChild\n    };\n    exports.Children = Children;\n    exports.Component = Component;\n    exports.Fragment = REACT_FRAGMENT_TYPE;\n    exports.Profiler = REACT_PROFILER_TYPE;\n    exports.PureComponent = PureComponent;\n    exports.StrictMode = REACT_STRICT_MODE_TYPE;\n    exports.Suspense = REACT_SUSPENSE_TYPE;\n    exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\n    exports.act = act;\n    exports.cloneElement = cloneElement$1;\n    exports.createContext = createContext;\n    exports.createElement = createElement$1;\n    exports.createFactory = createFactory;\n    exports.createRef = createRef;\n    exports.forwardRef = forwardRef;\n    exports.isValidElement = isValidElement;\n    exports.lazy = lazy;\n    exports.memo = memo;\n    exports.startTransition = startTransition;\n    exports.unstable_act = act;\n    exports.useCallback = useCallback;\n    exports.useContext = useContext;\n    exports.useDebugValue = useDebugValue;\n    exports.useDeferredValue = useDeferredValue;\n    exports.useEffect = useEffect;\n    exports.useId = useId;\n    exports.useImperativeHandle = useImperativeHandle;\n    exports.useInsertionEffect = useInsertionEffect;\n    exports.useLayoutEffect = useLayoutEffect;\n    exports.useMemo = useMemo;\n    exports.useReducer = useReducer;\n    exports.useRef = useRef;\n    exports.useState = useState;\n    exports.useSyncExternalStore = useSyncExternalStore;\n    exports.useTransition = useTransition;\n    exports.version = ReactVersion;\n    /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n    if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === 'function') {\n      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n    }\n  })();\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react/cjs/react.development.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react/index.js":
/*!***********************************************!*\
  !*** ../react-ui/node_modules/react/index.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nif (false) // removed by dead control flow\n{} else {\n  module.exports = __webpack_require__(/*! ./cjs/react.development.js */ \"../react-ui/node_modules/react/cjs/react.development.js\");\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/react/jsx-runtime.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/react/jsx-runtime.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nif (false) // removed by dead control flow\n{} else {\n  module.exports = __webpack_require__(/*! ./cjs/react-jsx-runtime.development.js */ \"../react-ui/node_modules/react/cjs/react-jsx-runtime.development.js\");\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/react/jsx-runtime.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/redux/dist/redux.mjs":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/redux/dist/redux.mjs ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   __DO_NOT_USE__ActionTypes: () => (/* binding */ actionTypes_default),\n/* harmony export */   applyMiddleware: () => (/* binding */ applyMiddleware),\n/* harmony export */   bindActionCreators: () => (/* binding */ bindActionCreators),\n/* harmony export */   combineReducers: () => (/* binding */ combineReducers),\n/* harmony export */   compose: () => (/* binding */ compose),\n/* harmony export */   createStore: () => (/* binding */ createStore),\n/* harmony export */   isAction: () => (/* binding */ isAction),\n/* harmony export */   isPlainObject: () => (/* binding */ isPlainObject),\n/* harmony export */   legacy_createStore: () => (/* binding */ legacy_createStore)\n/* harmony export */ });\n// src/utils/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n  return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\n\n// src/utils/symbol-observable.ts\nvar $$observable = /* @__PURE__ */(() => typeof Symbol === \"function\" && Symbol.observable || \"@@observable\")();\nvar symbol_observable_default = $$observable;\n\n// src/utils/actionTypes.ts\nvar randomString = () => Math.random().toString(36).substring(7).split(\"\").join(\".\");\nvar ActionTypes = {\n  INIT: `@@redux/INIT${/* @__PURE__ */randomString()}`,\n  REPLACE: `@@redux/REPLACE${/* @__PURE__ */randomString()}`,\n  PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nvar actionTypes_default = ActionTypes;\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n  if (typeof obj !== \"object\" || obj === null) return false;\n  let proto = obj;\n  while (Object.getPrototypeOf(proto) !== null) {\n    proto = Object.getPrototypeOf(proto);\n  }\n  return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}\n\n// src/utils/kindOf.ts\nfunction miniKindOf(val) {\n  if (val === void 0) return \"undefined\";\n  if (val === null) return \"null\";\n  const type = typeof val;\n  switch (type) {\n    case \"boolean\":\n    case \"string\":\n    case \"number\":\n    case \"symbol\":\n    case \"function\":\n      {\n        return type;\n      }\n  }\n  if (Array.isArray(val)) return \"array\";\n  if (isDate(val)) return \"date\";\n  if (isError(val)) return \"error\";\n  const constructorName = ctorName(val);\n  switch (constructorName) {\n    case \"Symbol\":\n    case \"Promise\":\n    case \"WeakMap\":\n    case \"WeakSet\":\n    case \"Map\":\n    case \"Set\":\n      return constructorName;\n  }\n  return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n}\nfunction ctorName(val) {\n  return typeof val.constructor === \"function\" ? val.constructor.name : null;\n}\nfunction isError(val) {\n  return val instanceof Error || typeof val.message === \"string\" && val.constructor && typeof val.constructor.stackTraceLimit === \"number\";\n}\nfunction isDate(val) {\n  if (val instanceof Date) return true;\n  return typeof val.toDateString === \"function\" && typeof val.getDate === \"function\" && typeof val.setDate === \"function\";\n}\nfunction kindOf(val) {\n  let typeOfVal = typeof val;\n  if (true) {\n    typeOfVal = miniKindOf(val);\n  }\n  return typeOfVal;\n}\n\n// src/createStore.ts\nfunction createStore(reducer, preloadedState, enhancer) {\n  if (typeof reducer !== \"function\") {\n    throw new Error( false ? 0 : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n  }\n  if (typeof preloadedState === \"function\" && typeof enhancer === \"function\" || typeof enhancer === \"function\" && typeof arguments[3] === \"function\") {\n    throw new Error( false ? 0 : \"It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.\");\n  }\n  if (typeof preloadedState === \"function\" && typeof enhancer === \"undefined\") {\n    enhancer = preloadedState;\n    preloadedState = void 0;\n  }\n  if (typeof enhancer !== \"undefined\") {\n    if (typeof enhancer !== \"function\") {\n      throw new Error( false ? 0 : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n    }\n    return enhancer(createStore)(reducer, preloadedState);\n  }\n  let currentReducer = reducer;\n  let currentState = preloadedState;\n  let currentListeners = /* @__PURE__ */new Map();\n  let nextListeners = currentListeners;\n  let listenerIdCounter = 0;\n  let isDispatching = false;\n  function ensureCanMutateNextListeners() {\n    if (nextListeners === currentListeners) {\n      nextListeners = /* @__PURE__ */new Map();\n      currentListeners.forEach((listener, key) => {\n        nextListeners.set(key, listener);\n      });\n    }\n  }\n  function getState() {\n    if (isDispatching) {\n      throw new Error( false ? 0 : \"You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.\");\n    }\n    return currentState;\n  }\n  function subscribe(listener) {\n    if (typeof listener !== \"function\") {\n      throw new Error( false ? 0 : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n    }\n    if (isDispatching) {\n      throw new Error( false ? 0 : \"You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api/store#subscribelistener for more details.\");\n    }\n    let isSubscribed = true;\n    ensureCanMutateNextListeners();\n    const listenerId = listenerIdCounter++;\n    nextListeners.set(listenerId, listener);\n    return function unsubscribe() {\n      if (!isSubscribed) {\n        return;\n      }\n      if (isDispatching) {\n        throw new Error( false ? 0 : \"You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.\");\n      }\n      isSubscribed = false;\n      ensureCanMutateNextListeners();\n      nextListeners.delete(listenerId);\n      currentListeners = null;\n    };\n  }\n  function dispatch(action) {\n    if (!isPlainObject(action)) {\n      throw new Error( false ? 0 : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n    }\n    if (typeof action.type === \"undefined\") {\n      throw new Error( false ? 0 : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n    }\n    if (typeof action.type !== \"string\") {\n      throw new Error( false ? 0 : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n    }\n    if (isDispatching) {\n      throw new Error( false ? 0 : \"Reducers may not dispatch actions.\");\n    }\n    try {\n      isDispatching = true;\n      currentState = currentReducer(currentState, action);\n    } finally {\n      isDispatching = false;\n    }\n    const listeners = currentListeners = nextListeners;\n    listeners.forEach(listener => {\n      listener();\n    });\n    return action;\n  }\n  function replaceReducer(nextReducer) {\n    if (typeof nextReducer !== \"function\") {\n      throw new Error( false ? 0 : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n    }\n    currentReducer = nextReducer;\n    dispatch({\n      type: actionTypes_default.REPLACE\n    });\n  }\n  function observable() {\n    const outerSubscribe = subscribe;\n    return {\n      /**\n       * The minimal observable subscription method.\n       * @param observer Any object that can be used as an observer.\n       * The observer object should have a `next` method.\n       * @returns An object with an `unsubscribe` method that can\n       * be used to unsubscribe the observable from the store, and prevent further\n       * emission of values from the observable.\n       */\n      subscribe(observer) {\n        if (typeof observer !== \"object\" || observer === null) {\n          throw new Error( false ? 0 : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n        }\n        function observeState() {\n          const observerAsObserver = observer;\n          if (observerAsObserver.next) {\n            observerAsObserver.next(getState());\n          }\n        }\n        observeState();\n        const unsubscribe = outerSubscribe(observeState);\n        return {\n          unsubscribe\n        };\n      },\n      [symbol_observable_default]() {\n        return this;\n      }\n    };\n  }\n  dispatch({\n    type: actionTypes_default.INIT\n  });\n  const store = {\n    dispatch,\n    subscribe,\n    getState,\n    replaceReducer,\n    [symbol_observable_default]: observable\n  };\n  return store;\n}\nfunction legacy_createStore(reducer, preloadedState, enhancer) {\n  return createStore(reducer, preloadedState, enhancer);\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n  if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n    console.error(message);\n  }\n  try {\n    throw new Error(message);\n  } catch (e) {}\n}\n\n// src/combineReducers.ts\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n  const reducerKeys = Object.keys(reducers);\n  const argumentName = action && action.type === actionTypes_default.INIT ? \"preloadedState argument passed to createStore\" : \"previous state received by the reducer\";\n  if (reducerKeys.length === 0) {\n    return \"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.\";\n  }\n  if (!isPlainObject(inputState)) {\n    return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following keys: \"${reducerKeys.join('\", \"')}\"`;\n  }\n  const unexpectedKeys = Object.keys(inputState).filter(key => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n  unexpectedKeys.forEach(key => {\n    unexpectedKeyCache[key] = true;\n  });\n  if (action && action.type === actionTypes_default.REPLACE) return;\n  if (unexpectedKeys.length > 0) {\n    return `Unexpected ${unexpectedKeys.length > 1 ? \"keys\" : \"key\"} \"${unexpectedKeys.join('\", \"')}\" found in ${argumentName}. Expected to find one of the known reducer keys instead: \"${reducerKeys.join('\", \"')}\". Unexpected keys will be ignored.`;\n  }\n}\nfunction assertReducerShape(reducers) {\n  Object.keys(reducers).forEach(key => {\n    const reducer = reducers[key];\n    const initialState = reducer(void 0, {\n      type: actionTypes_default.INIT\n    });\n    if (typeof initialState === \"undefined\") {\n      throw new Error( false ? 0 : `The slice reducer for key \"${key}\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined.`);\n    }\n    if (typeof reducer(void 0, {\n      type: actionTypes_default.PROBE_UNKNOWN_ACTION()\n    }) === \"undefined\") {\n      throw new Error( false ? 0 : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. Don't try to handle '${actionTypes_default.INIT}' or other actions in \"redux/*\" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.`);\n    }\n  });\n}\nfunction combineReducers(reducers) {\n  const reducerKeys = Object.keys(reducers);\n  const finalReducers = {};\n  for (let i = 0; i < reducerKeys.length; i++) {\n    const key = reducerKeys[i];\n    if (true) {\n      if (typeof reducers[key] === \"undefined\") {\n        warning(`No reducer provided for key \"${key}\"`);\n      }\n    }\n    if (typeof reducers[key] === \"function\") {\n      finalReducers[key] = reducers[key];\n    }\n  }\n  const finalReducerKeys = Object.keys(finalReducers);\n  let unexpectedKeyCache;\n  if (true) {\n    unexpectedKeyCache = {};\n  }\n  let shapeAssertionError;\n  try {\n    assertReducerShape(finalReducers);\n  } catch (e) {\n    shapeAssertionError = e;\n  }\n  return function combination(state = {}, action) {\n    if (shapeAssertionError) {\n      throw shapeAssertionError;\n    }\n    if (true) {\n      const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n      if (warningMessage) {\n        warning(warningMessage);\n      }\n    }\n    let hasChanged = false;\n    const nextState = {};\n    for (let i = 0; i < finalReducerKeys.length; i++) {\n      const key = finalReducerKeys[i];\n      const reducer = finalReducers[key];\n      const previousStateForKey = state[key];\n      const nextStateForKey = reducer(previousStateForKey, action);\n      if (typeof nextStateForKey === \"undefined\") {\n        const actionType = action && action.type;\n        throw new Error( false ? 0 : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : \"(unknown type)\"}, the slice reducer for key \"${key}\" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.`);\n      }\n      nextState[key] = nextStateForKey;\n      hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n    }\n    hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n    return hasChanged ? nextState : state;\n  };\n}\n\n// src/bindActionCreators.ts\nfunction bindActionCreator(actionCreator, dispatch) {\n  return function (...args) {\n    return dispatch(actionCreator.apply(this, args));\n  };\n}\nfunction bindActionCreators(actionCreators, dispatch) {\n  if (typeof actionCreators === \"function\") {\n    return bindActionCreator(actionCreators, dispatch);\n  }\n  if (typeof actionCreators !== \"object\" || actionCreators === null) {\n    throw new Error( false ? 0 : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n  }\n  const boundActionCreators = {};\n  for (const key in actionCreators) {\n    const actionCreator = actionCreators[key];\n    if (typeof actionCreator === \"function\") {\n      boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n    }\n  }\n  return boundActionCreators;\n}\n\n// src/compose.ts\nfunction compose(...funcs) {\n  if (funcs.length === 0) {\n    return arg => arg;\n  }\n  if (funcs.length === 1) {\n    return funcs[0];\n  }\n  return funcs.reduce((a, b) => (...args) => a(b(...args)));\n}\n\n// src/applyMiddleware.ts\nfunction applyMiddleware(...middlewares) {\n  return createStore2 => (reducer, preloadedState) => {\n    const store = createStore2(reducer, preloadedState);\n    let dispatch = () => {\n      throw new Error( false ? 0 : \"Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.\");\n    };\n    const middlewareAPI = {\n      getState: store.getState,\n      dispatch: (action, ...args) => dispatch(action, ...args)\n    };\n    const chain = middlewares.map(middleware => middleware(middlewareAPI));\n    dispatch = compose(...chain)(store.dispatch);\n    return {\n      ...store,\n      dispatch\n    };\n  };\n}\n\n// src/utils/isAction.ts\nfunction isAction(action) {\n  return isPlainObject(action) && \"type\" in action && typeof action.type === \"string\";\n}\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/redux/dist/redux.mjs?\n}");

/***/ }),

/***/ "../react-ui/node_modules/scheduler/cjs/scheduler.development.js":
/*!***********************************************************************!*\
  !*** ../react-ui/node_modules/scheduler/cjs/scheduler.development.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("{/**\n * @license React\n * scheduler.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n  (function () {\n    'use strict';\n\n    /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n    if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart === 'function') {\n      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n    }\n    var enableSchedulerDebugging = false;\n    var enableProfiling = false;\n    var frameYieldMs = 5;\n    function push(heap, node) {\n      var index = heap.length;\n      heap.push(node);\n      siftUp(heap, node, index);\n    }\n    function peek(heap) {\n      return heap.length === 0 ? null : heap[0];\n    }\n    function pop(heap) {\n      if (heap.length === 0) {\n        return null;\n      }\n      var first = heap[0];\n      var last = heap.pop();\n      if (last !== first) {\n        heap[0] = last;\n        siftDown(heap, last, 0);\n      }\n      return first;\n    }\n    function siftUp(heap, node, i) {\n      var index = i;\n      while (index > 0) {\n        var parentIndex = index - 1 >>> 1;\n        var parent = heap[parentIndex];\n        if (compare(parent, node) > 0) {\n          // The parent is larger. Swap positions.\n          heap[parentIndex] = node;\n          heap[index] = parent;\n          index = parentIndex;\n        } else {\n          // The parent is smaller. Exit.\n          return;\n        }\n      }\n    }\n    function siftDown(heap, node, i) {\n      var index = i;\n      var length = heap.length;\n      var halfLength = length >>> 1;\n      while (index < halfLength) {\n        var leftIndex = (index + 1) * 2 - 1;\n        var left = heap[leftIndex];\n        var rightIndex = leftIndex + 1;\n        var right = heap[rightIndex]; // If the left or right node is smaller, swap with the smaller of those.\n\n        if (compare(left, node) < 0) {\n          if (rightIndex < length && compare(right, left) < 0) {\n            heap[index] = right;\n            heap[rightIndex] = node;\n            index = rightIndex;\n          } else {\n            heap[index] = left;\n            heap[leftIndex] = node;\n            index = leftIndex;\n          }\n        } else if (rightIndex < length && compare(right, node) < 0) {\n          heap[index] = right;\n          heap[rightIndex] = node;\n          index = rightIndex;\n        } else {\n          // Neither child is smaller. Exit.\n          return;\n        }\n      }\n    }\n    function compare(a, b) {\n      // Compare sort index first, then task id.\n      var diff = a.sortIndex - b.sortIndex;\n      return diff !== 0 ? diff : a.id - b.id;\n    }\n\n    // TODO: Use symbols?\n    var ImmediatePriority = 1;\n    var UserBlockingPriority = 2;\n    var NormalPriority = 3;\n    var LowPriority = 4;\n    var IdlePriority = 5;\n    function markTaskErrored(task, ms) {}\n\n    /* eslint-disable no-var */\n\n    var hasPerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\n    if (hasPerformanceNow) {\n      var localPerformance = performance;\n      exports.unstable_now = function () {\n        return localPerformance.now();\n      };\n    } else {\n      var localDate = Date;\n      var initialTime = localDate.now();\n      exports.unstable_now = function () {\n        return localDate.now() - initialTime;\n      };\n    } // Max 31 bit integer. The max integer size in V8 for 32-bit systems.\n    // Math.pow(2, 30) - 1\n    // 0b111111111111111111111111111111\n\n    var maxSigned31BitInt = 1073741823; // Times out immediately\n\n    var IMMEDIATE_PRIORITY_TIMEOUT = -1; // Eventually times out\n\n    var USER_BLOCKING_PRIORITY_TIMEOUT = 250;\n    var NORMAL_PRIORITY_TIMEOUT = 5000;\n    var LOW_PRIORITY_TIMEOUT = 10000; // Never times out\n\n    var IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt; // Tasks are stored on a min heap\n\n    var taskQueue = [];\n    var timerQueue = []; // Incrementing id counter. Used to maintain insertion order.\n\n    var taskIdCounter = 1; // Pausing the scheduler is useful for debugging.\n    var currentTask = null;\n    var currentPriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrance.\n\n    var isPerformingWork = false;\n    var isHostCallbackScheduled = false;\n    var isHostTimeoutScheduled = false; // Capture local references to native APIs, in case a polyfill overrides them.\n\n    var localSetTimeout = typeof setTimeout === 'function' ? setTimeout : null;\n    var localClearTimeout = typeof clearTimeout === 'function' ? clearTimeout : null;\n    var localSetImmediate = typeof setImmediate !== 'undefined' ? setImmediate : null; // IE and Node.js + jsdom\n\n    var isInputPending = typeof navigator !== 'undefined' && navigator.scheduling !== undefined && navigator.scheduling.isInputPending !== undefined ? navigator.scheduling.isInputPending.bind(navigator.scheduling) : null;\n    function advanceTimers(currentTime) {\n      // Check for tasks that are no longer delayed and add them to the queue.\n      var timer = peek(timerQueue);\n      while (timer !== null) {\n        if (timer.callback === null) {\n          // Timer was cancelled.\n          pop(timerQueue);\n        } else if (timer.startTime <= currentTime) {\n          // Timer fired. Transfer to the task queue.\n          pop(timerQueue);\n          timer.sortIndex = timer.expirationTime;\n          push(taskQueue, timer);\n        } else {\n          // Remaining timers are pending.\n          return;\n        }\n        timer = peek(timerQueue);\n      }\n    }\n    function handleTimeout(currentTime) {\n      isHostTimeoutScheduled = false;\n      advanceTimers(currentTime);\n      if (!isHostCallbackScheduled) {\n        if (peek(taskQueue) !== null) {\n          isHostCallbackScheduled = true;\n          requestHostCallback(flushWork);\n        } else {\n          var firstTimer = peek(timerQueue);\n          if (firstTimer !== null) {\n            requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n          }\n        }\n      }\n    }\n    function flushWork(hasTimeRemaining, initialTime) {\n      isHostCallbackScheduled = false;\n      if (isHostTimeoutScheduled) {\n        // We scheduled a timeout but it's no longer needed. Cancel it.\n        isHostTimeoutScheduled = false;\n        cancelHostTimeout();\n      }\n      isPerformingWork = true;\n      var previousPriorityLevel = currentPriorityLevel;\n      try {\n        if (enableProfiling) {\n          try {\n            return workLoop(hasTimeRemaining, initialTime);\n          } catch (error) {\n            if (currentTask !== null) {\n              var currentTime = exports.unstable_now();\n              markTaskErrored(currentTask, currentTime);\n              currentTask.isQueued = false;\n            }\n            throw error;\n          }\n        } else {\n          // No catch in prod code path.\n          return workLoop(hasTimeRemaining, initialTime);\n        }\n      } finally {\n        currentTask = null;\n        currentPriorityLevel = previousPriorityLevel;\n        isPerformingWork = false;\n      }\n    }\n    function workLoop(hasTimeRemaining, initialTime) {\n      var currentTime = initialTime;\n      advanceTimers(currentTime);\n      currentTask = peek(taskQueue);\n      while (currentTask !== null && !enableSchedulerDebugging) {\n        if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) {\n          // This currentTask hasn't expired, and we've reached the deadline.\n          break;\n        }\n        var callback = currentTask.callback;\n        if (typeof callback === 'function') {\n          currentTask.callback = null;\n          currentPriorityLevel = currentTask.priorityLevel;\n          var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n          var continuationCallback = callback(didUserCallbackTimeout);\n          currentTime = exports.unstable_now();\n          if (typeof continuationCallback === 'function') {\n            currentTask.callback = continuationCallback;\n          } else {\n            if (currentTask === peek(taskQueue)) {\n              pop(taskQueue);\n            }\n          }\n          advanceTimers(currentTime);\n        } else {\n          pop(taskQueue);\n        }\n        currentTask = peek(taskQueue);\n      } // Return whether there's additional work\n\n      if (currentTask !== null) {\n        return true;\n      } else {\n        var firstTimer = peek(timerQueue);\n        if (firstTimer !== null) {\n          requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n        }\n        return false;\n      }\n    }\n    function unstable_runWithPriority(priorityLevel, eventHandler) {\n      switch (priorityLevel) {\n        case ImmediatePriority:\n        case UserBlockingPriority:\n        case NormalPriority:\n        case LowPriority:\n        case IdlePriority:\n          break;\n        default:\n          priorityLevel = NormalPriority;\n      }\n      var previousPriorityLevel = currentPriorityLevel;\n      currentPriorityLevel = priorityLevel;\n      try {\n        return eventHandler();\n      } finally {\n        currentPriorityLevel = previousPriorityLevel;\n      }\n    }\n    function unstable_next(eventHandler) {\n      var priorityLevel;\n      switch (currentPriorityLevel) {\n        case ImmediatePriority:\n        case UserBlockingPriority:\n        case NormalPriority:\n          // Shift down to normal priority\n          priorityLevel = NormalPriority;\n          break;\n        default:\n          // Anything lower than normal priority should remain at the current level.\n          priorityLevel = currentPriorityLevel;\n          break;\n      }\n      var previousPriorityLevel = currentPriorityLevel;\n      currentPriorityLevel = priorityLevel;\n      try {\n        return eventHandler();\n      } finally {\n        currentPriorityLevel = previousPriorityLevel;\n      }\n    }\n    function unstable_wrapCallback(callback) {\n      var parentPriorityLevel = currentPriorityLevel;\n      return function () {\n        // This is a fork of runWithPriority, inlined for performance.\n        var previousPriorityLevel = currentPriorityLevel;\n        currentPriorityLevel = parentPriorityLevel;\n        try {\n          return callback.apply(this, arguments);\n        } finally {\n          currentPriorityLevel = previousPriorityLevel;\n        }\n      };\n    }\n    function unstable_scheduleCallback(priorityLevel, callback, options) {\n      var currentTime = exports.unstable_now();\n      var startTime;\n      if (typeof options === 'object' && options !== null) {\n        var delay = options.delay;\n        if (typeof delay === 'number' && delay > 0) {\n          startTime = currentTime + delay;\n        } else {\n          startTime = currentTime;\n        }\n      } else {\n        startTime = currentTime;\n      }\n      var timeout;\n      switch (priorityLevel) {\n        case ImmediatePriority:\n          timeout = IMMEDIATE_PRIORITY_TIMEOUT;\n          break;\n        case UserBlockingPriority:\n          timeout = USER_BLOCKING_PRIORITY_TIMEOUT;\n          break;\n        case IdlePriority:\n          timeout = IDLE_PRIORITY_TIMEOUT;\n          break;\n        case LowPriority:\n          timeout = LOW_PRIORITY_TIMEOUT;\n          break;\n        case NormalPriority:\n        default:\n          timeout = NORMAL_PRIORITY_TIMEOUT;\n          break;\n      }\n      var expirationTime = startTime + timeout;\n      var newTask = {\n        id: taskIdCounter++,\n        callback: callback,\n        priorityLevel: priorityLevel,\n        startTime: startTime,\n        expirationTime: expirationTime,\n        sortIndex: -1\n      };\n      if (startTime > currentTime) {\n        // This is a delayed task.\n        newTask.sortIndex = startTime;\n        push(timerQueue, newTask);\n        if (peek(taskQueue) === null && newTask === peek(timerQueue)) {\n          // All tasks are delayed, and this is the task with the earliest delay.\n          if (isHostTimeoutScheduled) {\n            // Cancel an existing timeout.\n            cancelHostTimeout();\n          } else {\n            isHostTimeoutScheduled = true;\n          } // Schedule a timeout.\n\n          requestHostTimeout(handleTimeout, startTime - currentTime);\n        }\n      } else {\n        newTask.sortIndex = expirationTime;\n        push(taskQueue, newTask);\n        // wait until the next time we yield.\n\n        if (!isHostCallbackScheduled && !isPerformingWork) {\n          isHostCallbackScheduled = true;\n          requestHostCallback(flushWork);\n        }\n      }\n      return newTask;\n    }\n    function unstable_pauseExecution() {}\n    function unstable_continueExecution() {\n      if (!isHostCallbackScheduled && !isPerformingWork) {\n        isHostCallbackScheduled = true;\n        requestHostCallback(flushWork);\n      }\n    }\n    function unstable_getFirstCallbackNode() {\n      return peek(taskQueue);\n    }\n    function unstable_cancelCallback(task) {\n      // remove from the queue because you can't remove arbitrary nodes from an\n      // array based heap, only the first one.)\n\n      task.callback = null;\n    }\n    function unstable_getCurrentPriorityLevel() {\n      return currentPriorityLevel;\n    }\n    var isMessageLoopRunning = false;\n    var scheduledHostCallback = null;\n    var taskTimeoutID = -1; // Scheduler periodically yields in case there is other work on the main\n    // thread, like user events. By default, it yields multiple times per frame.\n    // It does not attempt to align with frame boundaries, since most tasks don't\n    // need to be frame aligned; for those that do, use requestAnimationFrame.\n\n    var frameInterval = frameYieldMs;\n    var startTime = -1;\n    function shouldYieldToHost() {\n      var timeElapsed = exports.unstable_now() - startTime;\n      if (timeElapsed < frameInterval) {\n        // The main thread has only been blocked for a really short amount of time;\n        // smaller than a single frame. Don't yield yet.\n        return false;\n      } // The main thread has been blocked for a non-negligible amount of time. We\n\n      return true;\n    }\n    function requestPaint() {}\n    function forceFrameRate(fps) {\n      if (fps < 0 || fps > 125) {\n        // Using console['error'] to evade Babel and ESLint\n        console['error']('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing frame rates higher than 125 fps is not supported');\n        return;\n      }\n      if (fps > 0) {\n        frameInterval = Math.floor(1000 / fps);\n      } else {\n        // reset the framerate\n        frameInterval = frameYieldMs;\n      }\n    }\n    var performWorkUntilDeadline = function () {\n      if (scheduledHostCallback !== null) {\n        var currentTime = exports.unstable_now(); // Keep track of the start time so we can measure how long the main thread\n        // has been blocked.\n\n        startTime = currentTime;\n        var hasTimeRemaining = true; // If a scheduler task throws, exit the current browser task so the\n        // error can be observed.\n        //\n        // Intentionally not using a try-catch, since that makes some debugging\n        // techniques harder. Instead, if `scheduledHostCallback` errors, then\n        // `hasMoreWork` will remain true, and we'll continue the work loop.\n\n        var hasMoreWork = true;\n        try {\n          hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n        } finally {\n          if (hasMoreWork) {\n            // If there's more work, schedule the next message event at the end\n            // of the preceding one.\n            schedulePerformWorkUntilDeadline();\n          } else {\n            isMessageLoopRunning = false;\n            scheduledHostCallback = null;\n          }\n        }\n      } else {\n        isMessageLoopRunning = false;\n      } // Yielding to the browser will give it a chance to paint, so we can\n    };\n    var schedulePerformWorkUntilDeadline;\n    if (typeof localSetImmediate === 'function') {\n      // Node.js and old IE.\n      // There's a few reasons for why we prefer setImmediate.\n      //\n      // Unlike MessageChannel, it doesn't prevent a Node.js process from exiting.\n      // (Even though this is a DOM fork of the Scheduler, you could get here\n      // with a mix of Node.js 15+, which has a MessageChannel, and jsdom.)\n      // https://github.com/facebook/react/issues/20756\n      //\n      // But also, it runs earlier which is the semantic we want.\n      // If other browsers ever implement it, it's better to use it.\n      // Although both of these would be inferior to native scheduling.\n      schedulePerformWorkUntilDeadline = function () {\n        localSetImmediate(performWorkUntilDeadline);\n      };\n    } else if (typeof MessageChannel !== 'undefined') {\n      // DOM and Worker environments.\n      // We prefer MessageChannel because of the 4ms setTimeout clamping.\n      var channel = new MessageChannel();\n      var port = channel.port2;\n      channel.port1.onmessage = performWorkUntilDeadline;\n      schedulePerformWorkUntilDeadline = function () {\n        port.postMessage(null);\n      };\n    } else {\n      // We should only fallback here in non-browser environments.\n      schedulePerformWorkUntilDeadline = function () {\n        localSetTimeout(performWorkUntilDeadline, 0);\n      };\n    }\n    function requestHostCallback(callback) {\n      scheduledHostCallback = callback;\n      if (!isMessageLoopRunning) {\n        isMessageLoopRunning = true;\n        schedulePerformWorkUntilDeadline();\n      }\n    }\n    function requestHostTimeout(callback, ms) {\n      taskTimeoutID = localSetTimeout(function () {\n        callback(exports.unstable_now());\n      }, ms);\n    }\n    function cancelHostTimeout() {\n      localClearTimeout(taskTimeoutID);\n      taskTimeoutID = -1;\n    }\n    var unstable_requestPaint = requestPaint;\n    var unstable_Profiling = null;\n    exports.unstable_IdlePriority = IdlePriority;\n    exports.unstable_ImmediatePriority = ImmediatePriority;\n    exports.unstable_LowPriority = LowPriority;\n    exports.unstable_NormalPriority = NormalPriority;\n    exports.unstable_Profiling = unstable_Profiling;\n    exports.unstable_UserBlockingPriority = UserBlockingPriority;\n    exports.unstable_cancelCallback = unstable_cancelCallback;\n    exports.unstable_continueExecution = unstable_continueExecution;\n    exports.unstable_forceFrameRate = forceFrameRate;\n    exports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;\n    exports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;\n    exports.unstable_next = unstable_next;\n    exports.unstable_pauseExecution = unstable_pauseExecution;\n    exports.unstable_requestPaint = unstable_requestPaint;\n    exports.unstable_runWithPriority = unstable_runWithPriority;\n    exports.unstable_scheduleCallback = unstable_scheduleCallback;\n    exports.unstable_shouldYield = shouldYieldToHost;\n    exports.unstable_wrapCallback = unstable_wrapCallback;\n    /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n    if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop === 'function') {\n      __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n    }\n  })();\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/scheduler/cjs/scheduler.development.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/scheduler/index.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/scheduler/index.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nif (false) // removed by dead control flow\n{} else {\n  module.exports = __webpack_require__(/*! ./cjs/scheduler.development.js */ \"../react-ui/node_modules/scheduler/cjs/scheduler.development.js\");\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/scheduler/index.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/stylis/src/Enum.js":
/*!***************************************************!*\
  !*** ../react-ui/node_modules/stylis/src/Enum.js ***!
  \***************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   CHARSET: () => (/* binding */ CHARSET),\n/* harmony export */   COMMENT: () => (/* binding */ COMMENT),\n/* harmony export */   COUNTER_STYLE: () => (/* binding */ COUNTER_STYLE),\n/* harmony export */   DECLARATION: () => (/* binding */ DECLARATION),\n/* harmony export */   DOCUMENT: () => (/* binding */ DOCUMENT),\n/* harmony export */   FONT_FACE: () => (/* binding */ FONT_FACE),\n/* harmony export */   FONT_FEATURE_VALUES: () => (/* binding */ FONT_FEATURE_VALUES),\n/* harmony export */   IMPORT: () => (/* binding */ IMPORT),\n/* harmony export */   KEYFRAMES: () => (/* binding */ KEYFRAMES),\n/* harmony export */   LAYER: () => (/* binding */ LAYER),\n/* harmony export */   MEDIA: () => (/* binding */ MEDIA),\n/* harmony export */   MOZ: () => (/* binding */ MOZ),\n/* harmony export */   MS: () => (/* binding */ MS),\n/* harmony export */   NAMESPACE: () => (/* binding */ NAMESPACE),\n/* harmony export */   PAGE: () => (/* binding */ PAGE),\n/* harmony export */   RULESET: () => (/* binding */ RULESET),\n/* harmony export */   SUPPORTS: () => (/* binding */ SUPPORTS),\n/* harmony export */   VIEWPORT: () => (/* binding */ VIEWPORT),\n/* harmony export */   WEBKIT: () => (/* binding */ WEBKIT)\n/* harmony export */ });\nvar MS = '-ms-';\nvar MOZ = '-moz-';\nvar WEBKIT = '-webkit-';\nvar COMMENT = 'comm';\nvar RULESET = 'rule';\nvar DECLARATION = 'decl';\nvar PAGE = '@page';\nvar MEDIA = '@media';\nvar IMPORT = '@import';\nvar CHARSET = '@charset';\nvar VIEWPORT = '@viewport';\nvar SUPPORTS = '@supports';\nvar DOCUMENT = '@document';\nvar NAMESPACE = '@namespace';\nvar KEYFRAMES = '@keyframes';\nvar FONT_FACE = '@font-face';\nvar COUNTER_STYLE = '@counter-style';\nvar FONT_FEATURE_VALUES = '@font-feature-values';\nvar LAYER = '@layer';\n\n//# sourceURL=webpack:///../react-ui/node_modules/stylis/src/Enum.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/stylis/src/Middleware.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/stylis/src/Middleware.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   middleware: () => (/* binding */ middleware),\n/* harmony export */   namespace: () => (/* binding */ namespace),\n/* harmony export */   prefixer: () => (/* binding */ prefixer),\n/* harmony export */   rulesheet: () => (/* binding */ rulesheet)\n/* harmony export */ });\n/* harmony import */ var _Enum_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Enum.js */ \"../react-ui/node_modules/stylis/src/Enum.js\");\n/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utility.js */ \"../react-ui/node_modules/stylis/src/Utility.js\");\n/* harmony import */ var _Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Tokenizer.js */ \"../react-ui/node_modules/stylis/src/Tokenizer.js\");\n/* harmony import */ var _Serializer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Serializer.js */ \"../react-ui/node_modules/stylis/src/Serializer.js\");\n/* harmony import */ var _Prefixer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Prefixer.js */ \"../react-ui/node_modules/stylis/src/Prefixer.js\");\n\n\n\n\n\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nfunction middleware(collection) {\n  var length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.sizeof)(collection);\n  return function (element, index, children, callback) {\n    var output = '';\n    for (var i = 0; i < length; i++) output += collection[i](element, index, children, callback) || '';\n    return output;\n  };\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nfunction rulesheet(callback) {\n  return function (element) {\n    if (!element.root) if (element = element.return) callback(element);\n  };\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nfunction prefixer(element, index, children, callback) {\n  if (element.length > -1) if (!element.return) switch (element.type) {\n    case _Enum_js__WEBPACK_IMPORTED_MODULE_0__.DECLARATION:\n      element.return = (0,_Prefixer_js__WEBPACK_IMPORTED_MODULE_4__.prefix)(element.value, element.length, children);\n      return;\n    case _Enum_js__WEBPACK_IMPORTED_MODULE_0__.KEYFRAMES:\n      return (0,_Serializer_js__WEBPACK_IMPORTED_MODULE_3__.serialize)([(0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.copy)(element, {\n        value: (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(element.value, '@', '@' + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT)\n      })], callback);\n    case _Enum_js__WEBPACK_IMPORTED_MODULE_0__.RULESET:\n      if (element.length) return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.combine)(element.props, function (value) {\n        switch ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.match)(value, /(::plac\\w+|:read-\\w+)/)) {\n          // :read-(only|write)\n          case ':read-only':\n          case ':read-write':\n            return (0,_Serializer_js__WEBPACK_IMPORTED_MODULE_3__.serialize)([(0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.copy)(element, {\n              props: [(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /:(read-\\w+)/, ':' + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MOZ + '$1')]\n            })], callback);\n          // :placeholder\n          case '::placeholder':\n            return (0,_Serializer_js__WEBPACK_IMPORTED_MODULE_3__.serialize)([(0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.copy)(element, {\n              props: [(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /:(plac\\w+)/, ':' + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + 'input-$1')]\n            }), (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.copy)(element, {\n              props: [(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /:(plac\\w+)/, ':' + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MOZ + '$1')]\n            }), (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.copy)(element, {\n              props: [(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /:(plac\\w+)/, _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + 'input-$1')]\n            })], callback);\n        }\n        return '';\n      });\n  }\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nfunction namespace(element) {\n  switch (element.type) {\n    case _Enum_js__WEBPACK_IMPORTED_MODULE_0__.RULESET:\n      element.props = element.props.map(function (value) {\n        return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.combine)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.tokenize)(value), function (value, index, children) {\n          switch ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.charat)(value, 0)) {\n            // \\f\n            case 12:\n              return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(value, 1, (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(value));\n            // \\0 ( + > ~\n            case 0:\n            case 40:\n            case 43:\n            case 62:\n            case 126:\n              return value;\n            // :\n            case 58:\n              if (children[++index] === 'global') children[index] = '', children[++index] = '\\f' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(children[index], index = 1, -1);\n            // \\s\n            case 32:\n              return index === 1 ? '' : value;\n            default:\n              switch (index) {\n                case 0:\n                  element = value;\n                  return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.sizeof)(children) > 1 ? '' : value;\n                case index = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.sizeof)(children) - 1:\n                case 2:\n                  return index === 2 ? value + element + element : value + element;\n                default:\n                  return value;\n              }\n          }\n        });\n      });\n  }\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/stylis/src/Middleware.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/stylis/src/Parser.js":
/*!*****************************************************!*\
  !*** ../react-ui/node_modules/stylis/src/Parser.js ***!
  \*****************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   comment: () => (/* binding */ comment),\n/* harmony export */   compile: () => (/* binding */ compile),\n/* harmony export */   declaration: () => (/* binding */ declaration),\n/* harmony export */   parse: () => (/* binding */ parse),\n/* harmony export */   ruleset: () => (/* binding */ ruleset)\n/* harmony export */ });\n/* harmony import */ var _Enum_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Enum.js */ \"../react-ui/node_modules/stylis/src/Enum.js\");\n/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utility.js */ \"../react-ui/node_modules/stylis/src/Utility.js\");\n/* harmony import */ var _Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Tokenizer.js */ \"../react-ui/node_modules/stylis/src/Tokenizer.js\");\n\n\n\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nfunction compile(value) {\n  return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.dealloc)(parse('', null, null, null, [''], value = (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.alloc)(value), 0, [0], value));\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nfunction parse(value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n  var index = 0;\n  var offset = 0;\n  var length = pseudo;\n  var atrule = 0;\n  var property = 0;\n  var previous = 0;\n  var variable = 1;\n  var scanning = 1;\n  var ampersand = 1;\n  var character = 0;\n  var type = '';\n  var props = rules;\n  var children = rulesets;\n  var reference = rule;\n  var characters = type;\n  while (scanning) switch (previous = character, character = (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.next)()) {\n    // (\n    case 40:\n      if (previous != 108 && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.charat)(characters, length - 1) == 58) {\n        if ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.indexof)(characters += (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.delimit)(character), '&', '&\\f'), '&\\f') != -1) ampersand = -1;\n        break;\n      }\n    // \" ' [\n    case 34:\n    case 39:\n    case 91:\n      characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.delimit)(character);\n      break;\n    // \\t \\n \\r \\s\n    case 9:\n    case 10:\n    case 13:\n    case 32:\n      characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.whitespace)(previous);\n      break;\n    // \\\n    case 92:\n      characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.escaping)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.caret)() - 1, 7);\n      continue;\n    // /\n    case 47:\n      switch ((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.peek)()) {\n        case 42:\n        case 47:\n          (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.append)(comment((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.commenter)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.next)(), (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.caret)()), root, parent), declarations);\n          break;\n        default:\n          characters += '/';\n      }\n      break;\n    // {\n    case 123 * variable:\n      points[index++] = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters) * ampersand;\n    // } ; \\0\n    case 125 * variable:\n    case 59:\n    case 0:\n      switch (character) {\n        // \\0 }\n        case 0:\n        case 125:\n          scanning = 0;\n        // ;\n        case 59 + offset:\n          if (ampersand == -1) characters = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(characters, /\\f/g, '');\n          if (property > 0 && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters) - length) (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.append)(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(characters, ' ', '') + ';', rule, parent, length - 2), declarations);\n          break;\n        // @ ;\n        case 59:\n          characters += ';';\n        // { rule/at-rule\n        default:\n          (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.append)(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets);\n          if (character === 123) if (offset === 0) parse(characters, root, reference, reference, props, rulesets, length, points, children);else switch (atrule === 99 && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.charat)(characters, 3) === 110 ? 100 : atrule) {\n            // d l m s\n            case 100:\n            case 108:\n            case 109:\n            case 115:\n              parse(value, reference, reference, rule && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.append)(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children);\n              break;\n            default:\n              parse(characters, reference, reference, reference, [''], children, 0, points, children);\n          }\n      }\n      index = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo;\n      break;\n    // :\n    case 58:\n      length = 1 + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters), property = previous;\n    default:\n      if (variable < 1) if (character == 123) --variable;else if (character == 125 && variable++ == 0 && (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.prev)() == 125) continue;\n      switch (characters += (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.from)(character), character * variable) {\n        // &\n        case 38:\n          ampersand = offset > 0 ? 1 : (characters += '\\f', -1);\n          break;\n        // ,\n        case 44:\n          points[index++] = ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters) - 1) * ampersand, ampersand = 1;\n          break;\n        // @\n        case 64:\n          // -\n          if ((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.peek)() === 45) characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.delimit)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.next)());\n          atrule = (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.peek)(), offset = length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(type = characters += (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.identifier)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.caret)())), character++;\n          break;\n        // -\n        case 45:\n          if (previous === 45 && (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(characters) == 2) variable = 0;\n      }\n  }\n  return rulesets;\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nfunction ruleset(value, root, parent, index, offset, rules, points, type, props, children, length) {\n  var post = offset - 1;\n  var rule = offset === 0 ? rules : [''];\n  var size = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.sizeof)(rule);\n  for (var i = 0, j = 0, k = 0; i < index; ++i) for (var x = 0, y = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(value, post + 1, post = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.abs)(j = points[i])), z = value; x < size; ++x) if (z = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.trim)(j > 0 ? rule[x] + ' ' + y : (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(y, /&\\f/g, rule[x]))) props[k++] = z;\n  return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.node)(value, root, parent, offset === 0 ? _Enum_js__WEBPACK_IMPORTED_MODULE_0__.RULESET : type, props, children, length);\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nfunction comment(value, root, parent) {\n  return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.node)(value, root, parent, _Enum_js__WEBPACK_IMPORTED_MODULE_0__.COMMENT, (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.from)((0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.char)()), (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(value, 2, -2), 0);\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nfunction declaration(value, root, parent, length) {\n  return (0,_Tokenizer_js__WEBPACK_IMPORTED_MODULE_2__.node)(value, root, parent, _Enum_js__WEBPACK_IMPORTED_MODULE_0__.DECLARATION, (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(value, 0, length), (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(value, length + 1, -1), length);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/stylis/src/Parser.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/stylis/src/Prefixer.js":
/*!*******************************************************!*\
  !*** ../react-ui/node_modules/stylis/src/Prefixer.js ***!
  \*******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   prefix: () => (/* binding */ prefix)\n/* harmony export */ });\n/* harmony import */ var _Enum_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Enum.js */ \"../react-ui/node_modules/stylis/src/Enum.js\");\n/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utility.js */ \"../react-ui/node_modules/stylis/src/Utility.js\");\n\n\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nfunction prefix(value, length, children) {\n  switch ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.hash)(value, length)) {\n    // color-adjust\n    case 5103:\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + 'print-' + value + value;\n    // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n    case 5737:\n    case 4201:\n    case 3177:\n    case 3433:\n    case 1641:\n    case 4457:\n    case 2921:\n    // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n    case 5572:\n    case 6356:\n    case 5844:\n    case 3191:\n    case 6645:\n    case 3005:\n    // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n    case 6391:\n    case 5879:\n    case 5623:\n    case 6135:\n    case 4599:\n    case 4855:\n    // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n    case 4215:\n    case 6389:\n    case 5109:\n    case 5365:\n    case 5621:\n    case 3829:\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + value + value;\n    // tab-size\n    case 4789:\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MOZ + value + value;\n    // appearance, user-select, transform, hyphens, text-size-adjust\n    case 5349:\n    case 4246:\n    case 4810:\n    case 6968:\n    case 2756:\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MOZ + value + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + value + value;\n    // writing-mode\n    case 5936:\n      switch ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.charat)(value, length + 11)) {\n        // vertical-l(r)\n        case 114:\n          return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n        // vertical-r(l)\n        case 108:\n          return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n        // horizontal(-)tb\n        case 45:\n          return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n        // default: fallthrough to below\n      }\n    // flex, flex-direction, scroll-snap-type, writing-mode\n    case 6828:\n    case 4268:\n    case 2903:\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + value + value;\n    // order\n    case 6165:\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + 'flex-' + value + value;\n    // align-items\n    case 5187:\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + value + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /(\\w+).+(:[^]+)/, _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + 'box-$1$2' + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + 'flex-$1$2') + value;\n    // align-self\n    case 5443:\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + 'flex-item-' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /flex-|-self/g, '') + (!(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.match)(value, /flex-|baseline/) ? _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + 'grid-row-' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /flex-|-self/g, '') : '') + value;\n    // align-content\n    case 4675:\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + 'flex-line-pack' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /align-content|flex-|-self/g, '') + value;\n    // flex-shrink\n    case 5548:\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, 'shrink', 'negative') + value;\n    // flex-basis\n    case 5292:\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, 'basis', 'preferred-size') + value;\n    // flex-grow\n    case 6060:\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + 'box-' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, '-grow', '') + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + value + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, 'grow', 'positive') + value;\n    // transition\n    case 4554:\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /([^-])(transform)/g, '$1' + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + '$2') + value;\n    // cursor\n    case 6187:\n      return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /(zoom-|grab)/, _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + '$1'), /(image-set)/, _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + '$1'), value, '') + value;\n    // background, background-image\n    case 5495:\n    case 3959:\n      return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /(image-set\\([^]*)/, _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + '$1' + '$`$1');\n    // justify-content\n    case 4968:\n      return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /(.+:)(flex-)?(.*)/, _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + 'box-pack:$3' + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + value + value;\n    // justify-self\n    case 4200:\n      if (!(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.match)(value, /flex-|baseline/)) return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + 'grid-column-align' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.substr)(value, length) + value;\n      break;\n    // grid-template-(columns|rows)\n    case 2592:\n    case 3360:\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, 'template-', '') + value;\n    // grid-(row|column)-start\n    case 4384:\n    case 3616:\n      if (children && children.some(function (element, index) {\n        return length = index, (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.match)(element.props, /grid-\\w+-end/);\n      })) {\n        return ~(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.indexof)(value + (children = children[length].value), 'span') ? value : _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, '-start', '') + value + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + 'grid-row-span:' + (~(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.indexof)(children, 'span') ? (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.match)(children, /\\d+/) : +(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.match)(children, /\\d+/) - +(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.match)(value, /\\d+/)) + ';';\n      }\n      return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, '-start', '') + value;\n    // grid-(row|column)-end\n    case 4896:\n    case 4128:\n      return children && children.some(function (element) {\n        return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.match)(element.props, /grid-\\w+-start/);\n      }) ? value : _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, '-end', '-span'), 'span ', '') + value;\n    // (margin|padding)-inline-(start|end)\n    case 4095:\n    case 3583:\n    case 4068:\n    case 2532:\n      return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /(.+)-inline(.+)/, _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + '$1$2') + value;\n    // (min|max)?(width|height|inline-size|block-size)\n    case 8116:\n    case 7059:\n    case 5753:\n    case 5535:\n    case 5445:\n    case 5701:\n    case 4933:\n    case 4677:\n    case 5533:\n    case 5789:\n    case 5021:\n    case 4765:\n      // stretch, max-content, min-content, fill-available\n      if ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(value) - 1 - length > 6) switch ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.charat)(value, length + 1)) {\n        // (m)ax-content, (m)in-content\n        case 109:\n          // -\n          if ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.charat)(value, length + 4) !== 45) break;\n        // (f)ill-available, (f)it-content\n        case 102:\n          return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /(.+:)(.+)-([^]+)/, '$1' + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + '$2-$3' + '$1' + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MOZ + ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.charat)(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n        // (s)tretch\n        case 115:\n          return ~(0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.indexof)(value, 'stretch') ? prefix((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, 'stretch', 'fill-available'), length, children) + value : value;\n      }\n      break;\n    // grid-(column|row)\n    case 5152:\n    case 5920:\n      return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) {\n        return _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + a + ':' + b + f + (c ? _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + a + '-span:' + (d ? e : +e - +b) + f : '') + value;\n      });\n    // position: sticky\n    case 4949:\n      // stick(y)?\n      if ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.charat)(value, length + 6) === 121) return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, ':', ':' + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT) + value;\n      break;\n    // display: (flex|inline-flex|grid|inline-grid)\n    case 6444:\n      switch ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.charat)(value, (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.charat)(value, 14) === 45 ? 18 : 11)) {\n        // (inline-)?fle(x)\n        case 120:\n          return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + ((0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.charat)(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.WEBKIT + '$2$3' + '$1' + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS + '$2box$3') + value;\n        // (inline-)?gri(d)\n        case 100:\n          return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, ':', ':' + _Enum_js__WEBPACK_IMPORTED_MODULE_0__.MS) + value;\n      }\n      break;\n    // scroll-margin, scroll-margin-(top|right|bottom|left)\n    case 5719:\n    case 2647:\n    case 2135:\n    case 3927:\n    case 2391:\n      return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.replace)(value, 'scroll-', 'scroll-snap-') + value;\n  }\n  return value;\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/stylis/src/Prefixer.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/stylis/src/Serializer.js":
/*!*********************************************************!*\
  !*** ../react-ui/node_modules/stylis/src/Serializer.js ***!
  \*********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   serialize: () => (/* binding */ serialize),\n/* harmony export */   stringify: () => (/* binding */ stringify)\n/* harmony export */ });\n/* harmony import */ var _Enum_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Enum.js */ \"../react-ui/node_modules/stylis/src/Enum.js\");\n/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utility.js */ \"../react-ui/node_modules/stylis/src/Utility.js\");\n\n\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nfunction serialize(children, callback) {\n  var output = '';\n  var length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.sizeof)(children);\n  for (var i = 0; i < length; i++) output += callback(children[i], i, children, callback) || '';\n  return output;\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nfunction stringify(element, index, children, callback) {\n  switch (element.type) {\n    case _Enum_js__WEBPACK_IMPORTED_MODULE_0__.LAYER:\n      if (element.children.length) break;\n    case _Enum_js__WEBPACK_IMPORTED_MODULE_0__.IMPORT:\n    case _Enum_js__WEBPACK_IMPORTED_MODULE_0__.DECLARATION:\n      return element.return = element.return || element.value;\n    case _Enum_js__WEBPACK_IMPORTED_MODULE_0__.COMMENT:\n      return '';\n    case _Enum_js__WEBPACK_IMPORTED_MODULE_0__.KEYFRAMES:\n      return element.return = element.value + '{' + serialize(element.children, callback) + '}';\n    case _Enum_js__WEBPACK_IMPORTED_MODULE_0__.RULESET:\n      element.value = element.props.join(',');\n  }\n  return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_1__.strlen)(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : '';\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/stylis/src/Serializer.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/stylis/src/Tokenizer.js":
/*!********************************************************!*\
  !*** ../react-ui/node_modules/stylis/src/Tokenizer.js ***!
  \********************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   alloc: () => (/* binding */ alloc),\n/* harmony export */   caret: () => (/* binding */ caret),\n/* harmony export */   char: () => (/* binding */ char),\n/* harmony export */   character: () => (/* binding */ character),\n/* harmony export */   characters: () => (/* binding */ characters),\n/* harmony export */   column: () => (/* binding */ column),\n/* harmony export */   commenter: () => (/* binding */ commenter),\n/* harmony export */   copy: () => (/* binding */ copy),\n/* harmony export */   dealloc: () => (/* binding */ dealloc),\n/* harmony export */   delimit: () => (/* binding */ delimit),\n/* harmony export */   delimiter: () => (/* binding */ delimiter),\n/* harmony export */   escaping: () => (/* binding */ escaping),\n/* harmony export */   identifier: () => (/* binding */ identifier),\n/* harmony export */   length: () => (/* binding */ length),\n/* harmony export */   line: () => (/* binding */ line),\n/* harmony export */   next: () => (/* binding */ next),\n/* harmony export */   node: () => (/* binding */ node),\n/* harmony export */   peek: () => (/* binding */ peek),\n/* harmony export */   position: () => (/* binding */ position),\n/* harmony export */   prev: () => (/* binding */ prev),\n/* harmony export */   slice: () => (/* binding */ slice),\n/* harmony export */   token: () => (/* binding */ token),\n/* harmony export */   tokenize: () => (/* binding */ tokenize),\n/* harmony export */   tokenizer: () => (/* binding */ tokenizer),\n/* harmony export */   whitespace: () => (/* binding */ whitespace)\n/* harmony export */ });\n/* harmony import */ var _Utility_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Utility.js */ \"../react-ui/node_modules/stylis/src/Utility.js\");\n\nvar line = 1;\nvar column = 1;\nvar length = 0;\nvar position = 0;\nvar character = 0;\nvar characters = '';\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nfunction node(value, root, parent, type, props, children, length) {\n  return {\n    value: value,\n    root: root,\n    parent: parent,\n    type: type,\n    props: props,\n    children: children,\n    line: line,\n    column: column,\n    length: length,\n    return: ''\n  };\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nfunction copy(root, props) {\n  return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.assign)(node('', null, null, '', null, null, 0), root, {\n    length: -root.length\n  }, props);\n}\n\n/**\n * @return {number}\n */\nfunction char() {\n  return character;\n}\n\n/**\n * @return {number}\n */\nfunction prev() {\n  character = position > 0 ? (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(characters, --position) : 0;\n  if (column--, character === 10) column = 1, line--;\n  return character;\n}\n\n/**\n * @return {number}\n */\nfunction next() {\n  character = position < length ? (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(characters, position++) : 0;\n  if (column++, character === 10) column = 1, line++;\n  return character;\n}\n\n/**\n * @return {number}\n */\nfunction peek() {\n  return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.charat)(characters, position);\n}\n\n/**\n * @return {number}\n */\nfunction caret() {\n  return position;\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nfunction slice(begin, end) {\n  return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.substr)(characters, begin, end);\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nfunction token(type) {\n  switch (type) {\n    // \\0 \\t \\n \\r \\s whitespace token\n    case 0:\n    case 9:\n    case 10:\n    case 13:\n    case 32:\n      return 5;\n    // ! + , / > @ ~ isolate token\n    case 33:\n    case 43:\n    case 44:\n    case 47:\n    case 62:\n    case 64:\n    case 126:\n    // ; { } breakpoint token\n    case 59:\n    case 123:\n    case 125:\n      return 4;\n    // : accompanied token\n    case 58:\n      return 3;\n    // \" ' ( [ opening delimit token\n    case 34:\n    case 39:\n    case 40:\n    case 91:\n      return 2;\n    // ) ] closing delimit token\n    case 41:\n    case 93:\n      return 1;\n  }\n  return 0;\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nfunction alloc(value) {\n  return line = column = 1, length = (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.strlen)(characters = value), position = 0, [];\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nfunction dealloc(value) {\n  return characters = '', value;\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nfunction delimit(type) {\n  return (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.trim)(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)));\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nfunction tokenize(value) {\n  return dealloc(tokenizer(alloc(value)));\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nfunction whitespace(type) {\n  while (character = peek()) if (character < 33) next();else break;\n  return token(type) > 2 || token(character) > 3 ? '' : ' ';\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nfunction tokenizer(children) {\n  while (next()) switch (token(character)) {\n    case 0:\n      (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.append)(identifier(position - 1), children);\n      break;\n    case 2:\n      (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.append)(delimit(character), children);\n      break;\n    default:\n      (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.append)((0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.from)(character), children);\n  }\n  return children;\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nfunction escaping(index, count) {\n  while (--count && next())\n  // not 0-9 A-F a-f\n  if (character < 48 || character > 102 || character > 57 && character < 65 || character > 70 && character < 97) break;\n  return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32));\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nfunction delimiter(type) {\n  while (next()) switch (character) {\n    // ] ) \" '\n    case type:\n      return position;\n    // \" '\n    case 34:\n    case 39:\n      if (type !== 34 && type !== 39) delimiter(character);\n      break;\n    // (\n    case 40:\n      if (type === 41) delimiter(type);\n      break;\n    // \\\n    case 92:\n      next();\n      break;\n  }\n  return position;\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nfunction commenter(type, index) {\n  while (next())\n  // //\n  if (type + character === 47 + 10) break;\n  // /*\n  else if (type + character === 42 + 42 && peek() === 47) break;\n  return '/*' + slice(index, position - 1) + '*' + (0,_Utility_js__WEBPACK_IMPORTED_MODULE_0__.from)(type === 47 ? type : next());\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nfunction identifier(index) {\n  while (!token(peek())) next();\n  return slice(index, position);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/stylis/src/Tokenizer.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/stylis/src/Utility.js":
/*!******************************************************!*\
  !*** ../react-ui/node_modules/stylis/src/Utility.js ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   abs: () => (/* binding */ abs),\n/* harmony export */   append: () => (/* binding */ append),\n/* harmony export */   assign: () => (/* binding */ assign),\n/* harmony export */   charat: () => (/* binding */ charat),\n/* harmony export */   combine: () => (/* binding */ combine),\n/* harmony export */   from: () => (/* binding */ from),\n/* harmony export */   hash: () => (/* binding */ hash),\n/* harmony export */   indexof: () => (/* binding */ indexof),\n/* harmony export */   match: () => (/* binding */ match),\n/* harmony export */   replace: () => (/* binding */ replace),\n/* harmony export */   sizeof: () => (/* binding */ sizeof),\n/* harmony export */   strlen: () => (/* binding */ strlen),\n/* harmony export */   substr: () => (/* binding */ substr),\n/* harmony export */   trim: () => (/* binding */ trim)\n/* harmony export */ });\n/**\n * @param {number}\n * @return {number}\n */\nvar abs = Math.abs;\n\n/**\n * @param {number}\n * @return {string}\n */\nvar from = String.fromCharCode;\n\n/**\n * @param {object}\n * @return {object}\n */\nvar assign = Object.assign;\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nfunction hash(value, length) {\n  return charat(value, 0) ^ 45 ? (((length << 2 ^ charat(value, 0)) << 2 ^ charat(value, 1)) << 2 ^ charat(value, 2)) << 2 ^ charat(value, 3) : 0;\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nfunction trim(value) {\n  return value.trim();\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nfunction match(value, pattern) {\n  return (value = pattern.exec(value)) ? value[0] : value;\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nfunction replace(value, pattern, replacement) {\n  return value.replace(pattern, replacement);\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nfunction indexof(value, search) {\n  return value.indexOf(search);\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nfunction charat(value, index) {\n  return value.charCodeAt(index) | 0;\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nfunction substr(value, begin, end) {\n  return value.slice(begin, end);\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nfunction strlen(value) {\n  return value.length;\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nfunction sizeof(value) {\n  return value.length;\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nfunction append(value, array) {\n  return array.push(value), value;\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nfunction combine(array, callback) {\n  return array.map(callback).join('');\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/stylis/src/Utility.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/sweetalert2/dist/sweetalert2.all.js":
/*!********************************************************************!*\
  !*** ../react-ui/node_modules/sweetalert2/dist/sweetalert2.all.js ***!
  \********************************************************************/
/***/ (function(module) {

eval("{/*!\n* sweetalert2 v11.22.2\n* Released under the MIT License.\n*/\n(function (global, factory) {\n   true ? module.exports = factory() : 0;\n})(this, function () {\n  'use strict';\n\n  function _assertClassBrand(e, t, n) {\n    if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n    throw new TypeError(\"Private element is not present on this object\");\n  }\n  function _checkPrivateRedeclaration(e, t) {\n    if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n  }\n  function _classPrivateFieldGet2(s, a) {\n    return s.get(_assertClassBrand(s, a));\n  }\n  function _classPrivateFieldInitSpec(e, t, a) {\n    _checkPrivateRedeclaration(e, t), t.set(e, a);\n  }\n  function _classPrivateFieldSet2(s, a, r) {\n    return s.set(_assertClassBrand(s, a), r), r;\n  }\n  const RESTORE_FOCUS_TIMEOUT = 100;\n\n  /** @type {GlobalState} */\n  const globalState = {};\n  const focusPreviousActiveElement = () => {\n    if (globalState.previousActiveElement instanceof HTMLElement) {\n      globalState.previousActiveElement.focus();\n      globalState.previousActiveElement = null;\n    } else if (document.body) {\n      document.body.focus();\n    }\n  };\n\n  /**\n   * Restore previous active (focused) element\n   *\n   * @param {boolean} returnFocus\n   * @returns {Promise<void>}\n   */\n  const restoreActiveElement = returnFocus => {\n    return new Promise(resolve => {\n      if (!returnFocus) {\n        return resolve();\n      }\n      const x = window.scrollX;\n      const y = window.scrollY;\n      globalState.restoreFocusTimeout = setTimeout(() => {\n        focusPreviousActiveElement();\n        resolve();\n      }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n      window.scrollTo(x, y);\n    });\n  };\n  const swalPrefix = 'swal2-';\n\n  /**\n   * @typedef {Record<SwalClass, string>} SwalClasses\n   */\n\n  /**\n   * @typedef {'success' | 'warning' | 'info' | 'question' | 'error'} SwalIcon\n   * @typedef {Record<SwalIcon, string>} SwalIcons\n   */\n\n  /** @type {SwalClass[]} */\n  const classNames = ['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'draggable', 'dragging'];\n  const swalClasses = classNames.reduce((acc, className) => {\n    acc[className] = swalPrefix + className;\n    return acc;\n  }, /** @type {SwalClasses} */{});\n\n  /** @type {SwalIcon[]} */\n  const icons = ['success', 'warning', 'info', 'question', 'error'];\n  const iconTypes = icons.reduce((acc, icon) => {\n    acc[icon] = swalPrefix + icon;\n    return acc;\n  }, /** @type {SwalIcons} */{});\n  const consolePrefix = 'SweetAlert2:';\n\n  /**\n   * Capitalize the first letter of a string\n   *\n   * @param {string} str\n   * @returns {string}\n   */\n  const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n\n  /**\n   * Standardize console warnings\n   *\n   * @param {string | string[]} message\n   */\n  const warn = message => {\n    console.warn(`${consolePrefix} ${typeof message === 'object' ? message.join(' ') : message}`);\n  };\n\n  /**\n   * Standardize console errors\n   *\n   * @param {string} message\n   */\n  const error = message => {\n    console.error(`${consolePrefix} ${message}`);\n  };\n\n  /**\n   * Private global state for `warnOnce`\n   *\n   * @type {string[]}\n   * @private\n   */\n  const previousWarnOnceMessages = [];\n\n  /**\n   * Show a console warning, but only if it hasn't already been shown\n   *\n   * @param {string} message\n   */\n  const warnOnce = message => {\n    if (!previousWarnOnceMessages.includes(message)) {\n      previousWarnOnceMessages.push(message);\n      warn(message);\n    }\n  };\n\n  /**\n   * Show a one-time console warning about deprecated params/methods\n   *\n   * @param {string} deprecatedParam\n   * @param {string?} useInstead\n   */\n  const warnAboutDeprecation = (deprecatedParam, useInstead = null) => {\n    warnOnce(`\"${deprecatedParam}\" is deprecated and will be removed in the next major release.${useInstead ? ` Use \"${useInstead}\" instead.` : ''}`);\n  };\n\n  /**\n   * If `arg` is a function, call it (with no arguments or context) and return the result.\n   * Otherwise, just pass the value through\n   *\n   * @param {Function | any} arg\n   * @returns {any}\n   */\n  const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n\n  /**\n   * @param {any} arg\n   * @returns {boolean}\n   */\n  const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n\n  /**\n   * @param {any} arg\n   * @returns {Promise<any>}\n   */\n  const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n\n  /**\n   * @param {any} arg\n   * @returns {boolean}\n   */\n  const isPromise = arg => arg && Promise.resolve(arg) === arg;\n\n  /**\n   * Gets the popup container which contains the backdrop and the popup itself.\n   *\n   * @returns {HTMLElement | null}\n   */\n  const getContainer = () => document.body.querySelector(`.${swalClasses.container}`);\n\n  /**\n   * @param {string} selectorString\n   * @returns {HTMLElement | null}\n   */\n  const elementBySelector = selectorString => {\n    const container = getContainer();\n    return container ? container.querySelector(selectorString) : null;\n  };\n\n  /**\n   * @param {string} className\n   * @returns {HTMLElement | null}\n   */\n  const elementByClass = className => {\n    return elementBySelector(`.${className}`);\n  };\n\n  /**\n   * @returns {HTMLElement | null}\n   */\n  const getPopup = () => elementByClass(swalClasses.popup);\n\n  /**\n   * @returns {HTMLElement | null}\n   */\n  const getIcon = () => elementByClass(swalClasses.icon);\n\n  /**\n   * @returns {HTMLElement | null}\n   */\n  const getIconContent = () => elementByClass(swalClasses['icon-content']);\n\n  /**\n   * @returns {HTMLElement | null}\n   */\n  const getTitle = () => elementByClass(swalClasses.title);\n\n  /**\n   * @returns {HTMLElement | null}\n   */\n  const getHtmlContainer = () => elementByClass(swalClasses['html-container']);\n\n  /**\n   * @returns {HTMLElement | null}\n   */\n  const getImage = () => elementByClass(swalClasses.image);\n\n  /**\n   * @returns {HTMLElement | null}\n   */\n  const getProgressSteps = () => elementByClass(swalClasses['progress-steps']);\n\n  /**\n   * @returns {HTMLElement | null}\n   */\n  const getValidationMessage = () => elementByClass(swalClasses['validation-message']);\n\n  /**\n   * @returns {HTMLButtonElement | null}\n   */\n  const getConfirmButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.confirm}`));\n\n  /**\n   * @returns {HTMLButtonElement | null}\n   */\n  const getCancelButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.cancel}`));\n\n  /**\n   * @returns {HTMLButtonElement | null}\n   */\n  const getDenyButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.deny}`));\n\n  /**\n   * @returns {HTMLElement | null}\n   */\n  const getInputLabel = () => elementByClass(swalClasses['input-label']);\n\n  /**\n   * @returns {HTMLElement | null}\n   */\n  const getLoader = () => elementBySelector(`.${swalClasses.loader}`);\n\n  /**\n   * @returns {HTMLElement | null}\n   */\n  const getActions = () => elementByClass(swalClasses.actions);\n\n  /**\n   * @returns {HTMLElement | null}\n   */\n  const getFooter = () => elementByClass(swalClasses.footer);\n\n  /**\n   * @returns {HTMLElement | null}\n   */\n  const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\n\n  /**\n   * @returns {HTMLElement | null}\n   */\n  const getCloseButton = () => elementByClass(swalClasses.close);\n\n  // https://github.com/jkup/focusable/blob/master/index.js\n  const focusable = `\n  a[href],\n  area[href],\n  input:not([disabled]),\n  select:not([disabled]),\n  textarea:not([disabled]),\n  button:not([disabled]),\n  iframe,\n  object,\n  embed,\n  [tabindex=\"0\"],\n  [contenteditable],\n  audio[controls],\n  video[controls],\n  summary\n`;\n  /**\n   * @returns {HTMLElement[]}\n   */\n  const getFocusableElements = () => {\n    const popup = getPopup();\n    if (!popup) {\n      return [];\n    }\n    /** @type {NodeListOf<HTMLElement>} */\n    const focusableElementsWithTabindex = popup.querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])');\n    const focusableElementsWithTabindexSorted = Array.from(focusableElementsWithTabindex)\n    // sort according to tabindex\n    .sort((a, b) => {\n      const tabindexA = parseInt(a.getAttribute('tabindex') || '0');\n      const tabindexB = parseInt(b.getAttribute('tabindex') || '0');\n      if (tabindexA > tabindexB) {\n        return 1;\n      } else if (tabindexA < tabindexB) {\n        return -1;\n      }\n      return 0;\n    });\n\n    /** @type {NodeListOf<HTMLElement>} */\n    const otherFocusableElements = popup.querySelectorAll(focusable);\n    const otherFocusableElementsFiltered = Array.from(otherFocusableElements).filter(el => el.getAttribute('tabindex') !== '-1');\n    return [...new Set(focusableElementsWithTabindexSorted.concat(otherFocusableElementsFiltered))].filter(el => isVisible$1(el));\n  };\n\n  /**\n   * @returns {boolean}\n   */\n  const isModal = () => {\n    return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n  };\n\n  /**\n   * @returns {boolean}\n   */\n  const isToast = () => {\n    const popup = getPopup();\n    if (!popup) {\n      return false;\n    }\n    return hasClass(popup, swalClasses.toast);\n  };\n\n  /**\n   * @returns {boolean}\n   */\n  const isLoading = () => {\n    const popup = getPopup();\n    if (!popup) {\n      return false;\n    }\n    return popup.hasAttribute('data-loading');\n  };\n\n  /**\n   * Securely set innerHTML of an element\n   * https://github.com/sweetalert2/sweetalert2/issues/1926\n   *\n   * @param {HTMLElement} elem\n   * @param {string} html\n   */\n  const setInnerHtml = (elem, html) => {\n    elem.textContent = '';\n    if (html) {\n      const parser = new DOMParser();\n      const parsed = parser.parseFromString(html, `text/html`);\n      const head = parsed.querySelector('head');\n      if (head) {\n        Array.from(head.childNodes).forEach(child => {\n          elem.appendChild(child);\n        });\n      }\n      const body = parsed.querySelector('body');\n      if (body) {\n        Array.from(body.childNodes).forEach(child => {\n          if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {\n            elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507\n          } else {\n            elem.appendChild(child);\n          }\n        });\n      }\n    }\n  };\n\n  /**\n   * @param {HTMLElement} elem\n   * @param {string} className\n   * @returns {boolean}\n   */\n  const hasClass = (elem, className) => {\n    if (!className) {\n      return false;\n    }\n    const classList = className.split(/\\s+/);\n    for (let i = 0; i < classList.length; i++) {\n      if (!elem.classList.contains(classList[i])) {\n        return false;\n      }\n    }\n    return true;\n  };\n\n  /**\n   * @param {HTMLElement} elem\n   * @param {SweetAlertOptions} params\n   */\n  const removeCustomClasses = (elem, params) => {\n    Array.from(elem.classList).forEach(className => {\n      if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass || {}).includes(className)) {\n        elem.classList.remove(className);\n      }\n    });\n  };\n\n  /**\n   * @param {HTMLElement} elem\n   * @param {SweetAlertOptions} params\n   * @param {string} className\n   */\n  const applyCustomClass = (elem, params, className) => {\n    removeCustomClasses(elem, params);\n    if (!params.customClass) {\n      return;\n    }\n    const customClass = params.customClass[(/** @type {keyof SweetAlertCustomClass} */className)];\n    if (!customClass) {\n      return;\n    }\n    if (typeof customClass !== 'string' && !customClass.forEach) {\n      warn(`Invalid type of customClass.${className}! Expected string or iterable object, got \"${typeof customClass}\"`);\n      return;\n    }\n    addClass(elem, customClass);\n  };\n\n  /**\n   * @param {HTMLElement} popup\n   * @param {import('./renderers/renderInput').InputClass | SweetAlertInput} inputClass\n   * @returns {HTMLInputElement | null}\n   */\n  const getInput$1 = (popup, inputClass) => {\n    if (!inputClass) {\n      return null;\n    }\n    switch (inputClass) {\n      case 'select':\n      case 'textarea':\n      case 'file':\n        return popup.querySelector(`.${swalClasses.popup} > .${swalClasses[inputClass]}`);\n      case 'checkbox':\n        return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.checkbox} input`);\n      case 'radio':\n        return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:checked`) || popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:first-child`);\n      case 'range':\n        return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.range} input`);\n      default:\n        return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.input}`);\n    }\n  };\n\n  /**\n   * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n   */\n  const focusInput = input => {\n    input.focus();\n\n    // place cursor at end of text in text input\n    if (input.type !== 'file') {\n      // http://stackoverflow.com/a/2345915\n      const val = input.value;\n      input.value = '';\n      input.value = val;\n    }\n  };\n\n  /**\n   * @param {HTMLElement | HTMLElement[] | null} target\n   * @param {string | string[] | readonly string[] | undefined} classList\n   * @param {boolean} condition\n   */\n  const toggleClass = (target, classList, condition) => {\n    if (!target || !classList) {\n      return;\n    }\n    if (typeof classList === 'string') {\n      classList = classList.split(/\\s+/).filter(Boolean);\n    }\n    classList.forEach(className => {\n      if (Array.isArray(target)) {\n        target.forEach(elem => {\n          if (condition) {\n            elem.classList.add(className);\n          } else {\n            elem.classList.remove(className);\n          }\n        });\n      } else {\n        if (condition) {\n          target.classList.add(className);\n        } else {\n          target.classList.remove(className);\n        }\n      }\n    });\n  };\n\n  /**\n   * @param {HTMLElement | HTMLElement[] | null} target\n   * @param {string | string[] | readonly string[] | undefined} classList\n   */\n  const addClass = (target, classList) => {\n    toggleClass(target, classList, true);\n  };\n\n  /**\n   * @param {HTMLElement | HTMLElement[] | null} target\n   * @param {string | string[] | readonly string[] | undefined} classList\n   */\n  const removeClass = (target, classList) => {\n    toggleClass(target, classList, false);\n  };\n\n  /**\n   * Get direct child of an element by class name\n   *\n   * @param {HTMLElement} elem\n   * @param {string} className\n   * @returns {HTMLElement | undefined}\n   */\n  const getDirectChildByClass = (elem, className) => {\n    const children = Array.from(elem.children);\n    for (let i = 0; i < children.length; i++) {\n      const child = children[i];\n      if (child instanceof HTMLElement && hasClass(child, className)) {\n        return child;\n      }\n    }\n  };\n\n  /**\n   * @param {HTMLElement} elem\n   * @param {string} property\n   * @param {*} value\n   */\n  const applyNumericalStyle = (elem, property, value) => {\n    if (value === `${parseInt(value)}`) {\n      value = parseInt(value);\n    }\n    if (value || parseInt(value) === 0) {\n      elem.style.setProperty(property, typeof value === 'number' ? `${value}px` : value);\n    } else {\n      elem.style.removeProperty(property);\n    }\n  };\n\n  /**\n   * @param {HTMLElement | null} elem\n   * @param {string} display\n   */\n  const show = (elem, display = 'flex') => {\n    if (!elem) {\n      return;\n    }\n    elem.style.display = display;\n  };\n\n  /**\n   * @param {HTMLElement | null} elem\n   */\n  const hide = elem => {\n    if (!elem) {\n      return;\n    }\n    elem.style.display = 'none';\n  };\n\n  /**\n   * @param {HTMLElement | null} elem\n   * @param {string} display\n   */\n  const showWhenInnerHtmlPresent = (elem, display = 'block') => {\n    if (!elem) {\n      return;\n    }\n    new MutationObserver(() => {\n      toggle(elem, elem.innerHTML, display);\n    }).observe(elem, {\n      childList: true,\n      subtree: true\n    });\n  };\n\n  /**\n   * @param {HTMLElement} parent\n   * @param {string} selector\n   * @param {string} property\n   * @param {string} value\n   */\n  const setStyle = (parent, selector, property, value) => {\n    /** @type {HTMLElement | null} */\n    const el = parent.querySelector(selector);\n    if (el) {\n      el.style.setProperty(property, value);\n    }\n  };\n\n  /**\n   * @param {HTMLElement} elem\n   * @param {any} condition\n   * @param {string} display\n   */\n  const toggle = (elem, condition, display = 'flex') => {\n    if (condition) {\n      show(elem, display);\n    } else {\n      hide(elem);\n    }\n  };\n\n  /**\n   * borrowed from jquery $(elem).is(':visible') implementation\n   *\n   * @param {HTMLElement | null} elem\n   * @returns {boolean}\n   */\n  const isVisible$1 = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n\n  /**\n   * @returns {boolean}\n   */\n  const allButtonsAreHidden = () => !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());\n\n  /**\n   * @param {HTMLElement} elem\n   * @returns {boolean}\n   */\n  const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight);\n\n  /**\n   * @param {HTMLElement} element\n   * @param {HTMLElement} stopElement\n   * @returns {boolean}\n   */\n  const selfOrParentIsScrollable = (element, stopElement) => {\n    let parent = element;\n    while (parent && parent !== stopElement) {\n      if (isScrollable(parent)) {\n        return true;\n      }\n      parent = parent.parentElement;\n    }\n    return false;\n  };\n\n  /**\n   * borrowed from https://stackoverflow.com/a/46352119\n   *\n   * @param {HTMLElement} elem\n   * @returns {boolean}\n   */\n  const hasCssAnimation = elem => {\n    const style = window.getComputedStyle(elem);\n    const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n    const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n    return animDuration > 0 || transDuration > 0;\n  };\n\n  /**\n   * @param {number} timer\n   * @param {boolean} reset\n   */\n  const animateTimerProgressBar = (timer, reset = false) => {\n    const timerProgressBar = getTimerProgressBar();\n    if (!timerProgressBar) {\n      return;\n    }\n    if (isVisible$1(timerProgressBar)) {\n      if (reset) {\n        timerProgressBar.style.transition = 'none';\n        timerProgressBar.style.width = '100%';\n      }\n      setTimeout(() => {\n        timerProgressBar.style.transition = `width ${timer / 1000}s linear`;\n        timerProgressBar.style.width = '0%';\n      }, 10);\n    }\n  };\n  const stopTimerProgressBar = () => {\n    const timerProgressBar = getTimerProgressBar();\n    if (!timerProgressBar) {\n      return;\n    }\n    const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n    timerProgressBar.style.removeProperty('transition');\n    timerProgressBar.style.width = '100%';\n    const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n    const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n    timerProgressBar.style.width = `${timerProgressBarPercent}%`;\n  };\n\n  /**\n   * Detect Node env\n   *\n   * @returns {boolean}\n   */\n  const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n  const sweetHTML = `\n <div aria-labelledby=\"${swalClasses.title}\" aria-describedby=\"${swalClasses['html-container']}\" class=\"${swalClasses.popup}\" tabindex=\"-1\">\n   <button type=\"button\" class=\"${swalClasses.close}\"></button>\n   <ul class=\"${swalClasses['progress-steps']}\"></ul>\n   <div class=\"${swalClasses.icon}\"></div>\n   <img class=\"${swalClasses.image}\" />\n   <h2 class=\"${swalClasses.title}\" id=\"${swalClasses.title}\"></h2>\n   <div class=\"${swalClasses['html-container']}\" id=\"${swalClasses['html-container']}\"></div>\n   <input class=\"${swalClasses.input}\" id=\"${swalClasses.input}\" />\n   <input type=\"file\" class=\"${swalClasses.file}\" />\n   <div class=\"${swalClasses.range}\">\n     <input type=\"range\" />\n     <output></output>\n   </div>\n   <select class=\"${swalClasses.select}\" id=\"${swalClasses.select}\"></select>\n   <div class=\"${swalClasses.radio}\"></div>\n   <label class=\"${swalClasses.checkbox}\">\n     <input type=\"checkbox\" id=\"${swalClasses.checkbox}\" />\n     <span class=\"${swalClasses.label}\"></span>\n   </label>\n   <textarea class=\"${swalClasses.textarea}\" id=\"${swalClasses.textarea}\"></textarea>\n   <div class=\"${swalClasses['validation-message']}\" id=\"${swalClasses['validation-message']}\"></div>\n   <div class=\"${swalClasses.actions}\">\n     <div class=\"${swalClasses.loader}\"></div>\n     <button type=\"button\" class=\"${swalClasses.confirm}\"></button>\n     <button type=\"button\" class=\"${swalClasses.deny}\"></button>\n     <button type=\"button\" class=\"${swalClasses.cancel}\"></button>\n   </div>\n   <div class=\"${swalClasses.footer}\"></div>\n   <div class=\"${swalClasses['timer-progress-bar-container']}\">\n     <div class=\"${swalClasses['timer-progress-bar']}\"></div>\n   </div>\n </div>\n`.replace(/(^|\\n)\\s*/g, '');\n\n  /**\n   * @returns {boolean}\n   */\n  const resetOldContainer = () => {\n    const oldContainer = getContainer();\n    if (!oldContainer) {\n      return false;\n    }\n    oldContainer.remove();\n    removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n    return true;\n  };\n  const resetValidationMessage$1 = () => {\n    globalState.currentInstance.resetValidationMessage();\n  };\n  const addInputChangeListeners = () => {\n    const popup = getPopup();\n    const input = getDirectChildByClass(popup, swalClasses.input);\n    const file = getDirectChildByClass(popup, swalClasses.file);\n    /** @type {HTMLInputElement} */\n    const range = popup.querySelector(`.${swalClasses.range} input`);\n    /** @type {HTMLOutputElement} */\n    const rangeOutput = popup.querySelector(`.${swalClasses.range} output`);\n    const select = getDirectChildByClass(popup, swalClasses.select);\n    /** @type {HTMLInputElement} */\n    const checkbox = popup.querySelector(`.${swalClasses.checkbox} input`);\n    const textarea = getDirectChildByClass(popup, swalClasses.textarea);\n    input.oninput = resetValidationMessage$1;\n    file.onchange = resetValidationMessage$1;\n    select.onchange = resetValidationMessage$1;\n    checkbox.onchange = resetValidationMessage$1;\n    textarea.oninput = resetValidationMessage$1;\n    range.oninput = () => {\n      resetValidationMessage$1();\n      rangeOutput.value = range.value;\n    };\n    range.onchange = () => {\n      resetValidationMessage$1();\n      rangeOutput.value = range.value;\n    };\n  };\n\n  /**\n   * @param {string | HTMLElement} target\n   * @returns {HTMLElement}\n   */\n  const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;\n\n  /**\n   * @param {SweetAlertOptions} params\n   */\n  const setupAccessibility = params => {\n    const popup = getPopup();\n    popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n    popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n    if (!params.toast) {\n      popup.setAttribute('aria-modal', 'true');\n    }\n  };\n\n  /**\n   * @param {HTMLElement} targetElement\n   */\n  const setupRTL = targetElement => {\n    if (window.getComputedStyle(targetElement).direction === 'rtl') {\n      addClass(getContainer(), swalClasses.rtl);\n    }\n  };\n\n  /**\n   * Add modal + backdrop + no-war message for Russians to DOM\n   *\n   * @param {SweetAlertOptions} params\n   */\n  const init = params => {\n    // Clean up the old popup container if it exists\n    const oldContainerExisted = resetOldContainer();\n    if (isNodeEnv()) {\n      error('SweetAlert2 requires document to initialize');\n      return;\n    }\n    const container = document.createElement('div');\n    container.className = swalClasses.container;\n    if (oldContainerExisted) {\n      addClass(container, swalClasses['no-transition']);\n    }\n    setInnerHtml(container, sweetHTML);\n    container.dataset['swal2Theme'] = params.theme;\n    const targetElement = getTarget(params.target);\n    targetElement.appendChild(container);\n    if (params.topLayer) {\n      container.setAttribute('popover', '');\n      container.showPopover();\n    }\n    setupAccessibility(params);\n    setupRTL(targetElement);\n    addInputChangeListeners();\n  };\n\n  /**\n   * @param {HTMLElement | object | string} param\n   * @param {HTMLElement} target\n   */\n  const parseHtmlToContainer = (param, target) => {\n    // DOM element\n    if (param instanceof HTMLElement) {\n      target.appendChild(param);\n    }\n\n    // Object\n    else if (typeof param === 'object') {\n      handleObject(param, target);\n    }\n\n    // Plain string\n    else if (param) {\n      setInnerHtml(target, param);\n    }\n  };\n\n  /**\n   * @param {any} param\n   * @param {HTMLElement} target\n   */\n  const handleObject = (param, target) => {\n    // JQuery element(s)\n    if (param.jquery) {\n      handleJqueryElem(target, param);\n    }\n\n    // For other objects use their string representation\n    else {\n      setInnerHtml(target, param.toString());\n    }\n  };\n\n  /**\n   * @param {HTMLElement} target\n   * @param {any} elem\n   */\n  const handleJqueryElem = (target, elem) => {\n    target.textContent = '';\n    if (0 in elem) {\n      for (let i = 0; i in elem; i++) {\n        target.appendChild(elem[i].cloneNode(true));\n      }\n    } else {\n      target.appendChild(elem.cloneNode(true));\n    }\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const renderActions = (instance, params) => {\n    const actions = getActions();\n    const loader = getLoader();\n    if (!actions || !loader) {\n      return;\n    }\n\n    // Actions (buttons) wrapper\n    if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n      hide(actions);\n    } else {\n      show(actions);\n    }\n\n    // Custom class\n    applyCustomClass(actions, params, 'actions');\n\n    // Render all the buttons\n    renderButtons(actions, loader, params);\n\n    // Loader\n    setInnerHtml(loader, params.loaderHtml || '');\n    applyCustomClass(loader, params, 'loader');\n  };\n\n  /**\n   * @param {HTMLElement} actions\n   * @param {HTMLElement} loader\n   * @param {SweetAlertOptions} params\n   */\n  function renderButtons(actions, loader, params) {\n    const confirmButton = getConfirmButton();\n    const denyButton = getDenyButton();\n    const cancelButton = getCancelButton();\n    if (!confirmButton || !denyButton || !cancelButton) {\n      return;\n    }\n\n    // Render buttons\n    renderButton(confirmButton, 'confirm', params);\n    renderButton(denyButton, 'deny', params);\n    renderButton(cancelButton, 'cancel', params);\n    handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n    if (params.reverseButtons) {\n      if (params.toast) {\n        actions.insertBefore(cancelButton, confirmButton);\n        actions.insertBefore(denyButton, confirmButton);\n      } else {\n        actions.insertBefore(cancelButton, loader);\n        actions.insertBefore(denyButton, loader);\n        actions.insertBefore(confirmButton, loader);\n      }\n    }\n  }\n\n  /**\n   * @param {HTMLElement} confirmButton\n   * @param {HTMLElement} denyButton\n   * @param {HTMLElement} cancelButton\n   * @param {SweetAlertOptions} params\n   */\n  function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n    if (!params.buttonsStyling) {\n      removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n      return;\n    }\n    addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n\n    // Apply custom background colors to action buttons\n    if (params.confirmButtonColor) {\n      confirmButton.style.setProperty('--swal2-confirm-button-background-color', params.confirmButtonColor);\n    }\n    if (params.denyButtonColor) {\n      denyButton.style.setProperty('--swal2-deny-button-background-color', params.denyButtonColor);\n    }\n    if (params.cancelButtonColor) {\n      cancelButton.style.setProperty('--swal2-cancel-button-background-color', params.cancelButtonColor);\n    }\n\n    // Apply the outline color to action buttons\n    applyOutlineColor(confirmButton);\n    applyOutlineColor(denyButton);\n    applyOutlineColor(cancelButton);\n  }\n\n  /**\n   * @param {HTMLElement} button\n   */\n  function applyOutlineColor(button) {\n    const buttonStyle = window.getComputedStyle(button);\n    if (buttonStyle.getPropertyValue('--swal2-action-button-focus-box-shadow')) {\n      // If the button already has a custom outline color, no need to change it\n      return;\n    }\n    const outlineColor = buttonStyle.backgroundColor.replace(/rgba?\\((\\d+), (\\d+), (\\d+).*/, 'rgba($1, $2, $3, 0.5)');\n    button.style.setProperty('--swal2-action-button-focus-box-shadow', buttonStyle.getPropertyValue('--swal2-outline').replace(/ rgba\\(.*/, ` ${outlineColor}`));\n  }\n\n  /**\n   * @param {HTMLElement} button\n   * @param {'confirm' | 'deny' | 'cancel'} buttonType\n   * @param {SweetAlertOptions} params\n   */\n  function renderButton(button, buttonType, params) {\n    const buttonName = /** @type {'Confirm' | 'Deny' | 'Cancel'} */capitalizeFirstLetter(buttonType);\n    toggle(button, params[`show${buttonName}Button`], 'inline-block');\n    setInnerHtml(button, params[`${buttonType}ButtonText`] || ''); // Set caption text\n    button.setAttribute('aria-label', params[`${buttonType}ButtonAriaLabel`] || ''); // ARIA label\n\n    // Add buttons custom classes\n    button.className = swalClasses[buttonType];\n    applyCustomClass(button, params, `${buttonType}Button`);\n  }\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const renderCloseButton = (instance, params) => {\n    const closeButton = getCloseButton();\n    if (!closeButton) {\n      return;\n    }\n    setInnerHtml(closeButton, params.closeButtonHtml || '');\n\n    // Custom class\n    applyCustomClass(closeButton, params, 'closeButton');\n    toggle(closeButton, params.showCloseButton);\n    closeButton.setAttribute('aria-label', params.closeButtonAriaLabel || '');\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const renderContainer = (instance, params) => {\n    const container = getContainer();\n    if (!container) {\n      return;\n    }\n    handleBackdropParam(container, params.backdrop);\n    handlePositionParam(container, params.position);\n    handleGrowParam(container, params.grow);\n\n    // Custom class\n    applyCustomClass(container, params, 'container');\n  };\n\n  /**\n   * @param {HTMLElement} container\n   * @param {SweetAlertOptions['backdrop']} backdrop\n   */\n  function handleBackdropParam(container, backdrop) {\n    if (typeof backdrop === 'string') {\n      container.style.background = backdrop;\n    } else if (!backdrop) {\n      addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n    }\n  }\n\n  /**\n   * @param {HTMLElement} container\n   * @param {SweetAlertOptions['position']} position\n   */\n  function handlePositionParam(container, position) {\n    if (!position) {\n      return;\n    }\n    if (position in swalClasses) {\n      addClass(container, swalClasses[position]);\n    } else {\n      warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n      addClass(container, swalClasses.center);\n    }\n  }\n\n  /**\n   * @param {HTMLElement} container\n   * @param {SweetAlertOptions['grow']} grow\n   */\n  function handleGrowParam(container, grow) {\n    if (!grow) {\n      return;\n    }\n    addClass(container, swalClasses[`grow-${grow}`]);\n  }\n\n  /**\n   * This module contains `WeakMap`s for each effectively-\"private  property\" that a `Swal` has.\n   * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n   * This is the approach that Babel will probably take to implement private methods/fields\n   *   https://github.com/tc39/proposal-private-methods\n   *   https://github.com/babel/babel/pull/7555\n   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n   *   then we can use that language feature.\n   */\n\n  var privateProps = {\n    innerParams: new WeakMap(),\n    domCache: new WeakMap()\n  };\n\n  /// <reference path=\"../../../../sweetalert2.d.ts\"/>\n\n  /** @type {InputClass[]} */\n  const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const renderInput = (instance, params) => {\n    const popup = getPopup();\n    if (!popup) {\n      return;\n    }\n    const innerParams = privateProps.innerParams.get(instance);\n    const rerender = !innerParams || params.input !== innerParams.input;\n    inputClasses.forEach(inputClass => {\n      const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]);\n      if (!inputContainer) {\n        return;\n      }\n\n      // set attributes\n      setAttributes(inputClass, params.inputAttributes);\n\n      // set class\n      inputContainer.className = swalClasses[inputClass];\n      if (rerender) {\n        hide(inputContainer);\n      }\n    });\n    if (params.input) {\n      if (rerender) {\n        showInput(params);\n      }\n      // set custom class\n      setCustomClass(params);\n    }\n  };\n\n  /**\n   * @param {SweetAlertOptions} params\n   */\n  const showInput = params => {\n    if (!params.input) {\n      return;\n    }\n    if (!renderInputType[params.input]) {\n      error(`Unexpected type of input! Expected ${Object.keys(renderInputType).join(' | ')}, got \"${params.input}\"`);\n      return;\n    }\n    const inputContainer = getInputContainer(params.input);\n    if (!inputContainer) {\n      return;\n    }\n    const input = renderInputType[params.input](inputContainer, params);\n    show(inputContainer);\n\n    // input autofocus\n    if (params.inputAutoFocus) {\n      setTimeout(() => {\n        focusInput(input);\n      });\n    }\n  };\n\n  /**\n   * @param {HTMLInputElement} input\n   */\n  const removeAttributes = input => {\n    for (let i = 0; i < input.attributes.length; i++) {\n      const attrName = input.attributes[i].name;\n      if (!['id', 'type', 'value', 'style'].includes(attrName)) {\n        input.removeAttribute(attrName);\n      }\n    }\n  };\n\n  /**\n   * @param {InputClass} inputClass\n   * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n   */\n  const setAttributes = (inputClass, inputAttributes) => {\n    const popup = getPopup();\n    if (!popup) {\n      return;\n    }\n    const input = getInput$1(popup, inputClass);\n    if (!input) {\n      return;\n    }\n    removeAttributes(input);\n    for (const attr in inputAttributes) {\n      input.setAttribute(attr, inputAttributes[attr]);\n    }\n  };\n\n  /**\n   * @param {SweetAlertOptions} params\n   */\n  const setCustomClass = params => {\n    if (!params.input) {\n      return;\n    }\n    const inputContainer = getInputContainer(params.input);\n    if (inputContainer) {\n      applyCustomClass(inputContainer, params, 'input');\n    }\n  };\n\n  /**\n   * @param {HTMLInputElement | HTMLTextAreaElement} input\n   * @param {SweetAlertOptions} params\n   */\n  const setInputPlaceholder = (input, params) => {\n    if (!input.placeholder && params.inputPlaceholder) {\n      input.placeholder = params.inputPlaceholder;\n    }\n  };\n\n  /**\n   * @param {Input} input\n   * @param {Input} prependTo\n   * @param {SweetAlertOptions} params\n   */\n  const setInputLabel = (input, prependTo, params) => {\n    if (params.inputLabel) {\n      const label = document.createElement('label');\n      const labelClass = swalClasses['input-label'];\n      label.setAttribute('for', input.id);\n      label.className = labelClass;\n      if (typeof params.customClass === 'object') {\n        addClass(label, params.customClass.inputLabel);\n      }\n      label.innerText = params.inputLabel;\n      prependTo.insertAdjacentElement('beforebegin', label);\n    }\n  };\n\n  /**\n   * @param {SweetAlertInput} inputType\n   * @returns {HTMLElement | undefined}\n   */\n  const getInputContainer = inputType => {\n    const popup = getPopup();\n    if (!popup) {\n      return;\n    }\n    return getDirectChildByClass(popup, swalClasses[(/** @type {SwalClass} */inputType)] || swalClasses.input);\n  };\n\n  /**\n   * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n   * @param {SweetAlertOptions['inputValue']} inputValue\n   */\n  const checkAndSetInputValue = (input, inputValue) => {\n    if (['string', 'number'].includes(typeof inputValue)) {\n      input.value = `${inputValue}`;\n    } else if (!isPromise(inputValue)) {\n      warn(`Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"${typeof inputValue}\"`);\n    }\n  };\n\n  /** @type {Record<SweetAlertInput, (input: Input | HTMLElement, params: SweetAlertOptions) => Input>} */\n  const renderInputType = {};\n\n  /**\n   * @param {HTMLInputElement} input\n   * @param {SweetAlertOptions} params\n   * @returns {HTMLInputElement}\n   */\n  renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = renderInputType.search = renderInputType.date = renderInputType['datetime-local'] = renderInputType.time = renderInputType.week = renderInputType.month = /** @type {(input: Input | HTMLElement, params: SweetAlertOptions) => Input} */\n  (input, params) => {\n    checkAndSetInputValue(input, params.inputValue);\n    setInputLabel(input, input, params);\n    setInputPlaceholder(input, params);\n    input.type = params.input;\n    return input;\n  };\n\n  /**\n   * @param {HTMLInputElement} input\n   * @param {SweetAlertOptions} params\n   * @returns {HTMLInputElement}\n   */\n  renderInputType.file = (input, params) => {\n    setInputLabel(input, input, params);\n    setInputPlaceholder(input, params);\n    return input;\n  };\n\n  /**\n   * @param {HTMLInputElement} range\n   * @param {SweetAlertOptions} params\n   * @returns {HTMLInputElement}\n   */\n  renderInputType.range = (range, params) => {\n    const rangeInput = range.querySelector('input');\n    const rangeOutput = range.querySelector('output');\n    checkAndSetInputValue(rangeInput, params.inputValue);\n    rangeInput.type = params.input;\n    checkAndSetInputValue(rangeOutput, params.inputValue);\n    setInputLabel(rangeInput, range, params);\n    return range;\n  };\n\n  /**\n   * @param {HTMLSelectElement} select\n   * @param {SweetAlertOptions} params\n   * @returns {HTMLSelectElement}\n   */\n  renderInputType.select = (select, params) => {\n    select.textContent = '';\n    if (params.inputPlaceholder) {\n      const placeholder = document.createElement('option');\n      setInnerHtml(placeholder, params.inputPlaceholder);\n      placeholder.value = '';\n      placeholder.disabled = true;\n      placeholder.selected = true;\n      select.appendChild(placeholder);\n    }\n    setInputLabel(select, select, params);\n    return select;\n  };\n\n  /**\n   * @param {HTMLInputElement} radio\n   * @returns {HTMLInputElement}\n   */\n  renderInputType.radio = radio => {\n    radio.textContent = '';\n    return radio;\n  };\n\n  /**\n   * @param {HTMLLabelElement} checkboxContainer\n   * @param {SweetAlertOptions} params\n   * @returns {HTMLInputElement}\n   */\n  renderInputType.checkbox = (checkboxContainer, params) => {\n    const checkbox = getInput$1(getPopup(), 'checkbox');\n    checkbox.value = '1';\n    checkbox.checked = Boolean(params.inputValue);\n    const label = checkboxContainer.querySelector('span');\n    setInnerHtml(label, params.inputPlaceholder || params.inputLabel);\n    return checkbox;\n  };\n\n  /**\n   * @param {HTMLTextAreaElement} textarea\n   * @param {SweetAlertOptions} params\n   * @returns {HTMLTextAreaElement}\n   */\n  renderInputType.textarea = (textarea, params) => {\n    checkAndSetInputValue(textarea, params.inputValue);\n    setInputPlaceholder(textarea, params);\n    setInputLabel(textarea, textarea, params);\n\n    /**\n     * @param {HTMLElement} el\n     * @returns {number}\n     */\n    const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);\n\n    // https://github.com/sweetalert2/sweetalert2/issues/2291\n    setTimeout(() => {\n      // https://github.com/sweetalert2/sweetalert2/issues/1699\n      if ('MutationObserver' in window) {\n        const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n        const textareaResizeHandler = () => {\n          // check if texarea is still in document (i.e. popup wasn't closed in the meantime)\n          if (!document.body.contains(textarea)) {\n            return;\n          }\n          const textareaWidth = textarea.offsetWidth + getMargin(textarea);\n          if (textareaWidth > initialPopupWidth) {\n            getPopup().style.width = `${textareaWidth}px`;\n          } else {\n            applyNumericalStyle(getPopup(), 'width', params.width);\n          }\n        };\n        new MutationObserver(textareaResizeHandler).observe(textarea, {\n          attributes: true,\n          attributeFilter: ['style']\n        });\n      }\n    });\n    return textarea;\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const renderContent = (instance, params) => {\n    const htmlContainer = getHtmlContainer();\n    if (!htmlContainer) {\n      return;\n    }\n    showWhenInnerHtmlPresent(htmlContainer);\n    applyCustomClass(htmlContainer, params, 'htmlContainer');\n\n    // Content as HTML\n    if (params.html) {\n      parseHtmlToContainer(params.html, htmlContainer);\n      show(htmlContainer, 'block');\n    }\n\n    // Content as plain text\n    else if (params.text) {\n      htmlContainer.textContent = params.text;\n      show(htmlContainer, 'block');\n    }\n\n    // No content\n    else {\n      hide(htmlContainer);\n    }\n    renderInput(instance, params);\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const renderFooter = (instance, params) => {\n    const footer = getFooter();\n    if (!footer) {\n      return;\n    }\n    showWhenInnerHtmlPresent(footer);\n    toggle(footer, params.footer, 'block');\n    if (params.footer) {\n      parseHtmlToContainer(params.footer, footer);\n    }\n\n    // Custom class\n    applyCustomClass(footer, params, 'footer');\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const renderIcon = (instance, params) => {\n    const innerParams = privateProps.innerParams.get(instance);\n    const icon = getIcon();\n    if (!icon) {\n      return;\n    }\n\n    // if the given icon already rendered, apply the styling without re-rendering the icon\n    if (innerParams && params.icon === innerParams.icon) {\n      // Custom or default content\n      setContent(icon, params);\n      applyStyles(icon, params);\n      return;\n    }\n    if (!params.icon && !params.iconHtml) {\n      hide(icon);\n      return;\n    }\n    if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n      error(`Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"${params.icon}\"`);\n      hide(icon);\n      return;\n    }\n    show(icon);\n\n    // Custom or default content\n    setContent(icon, params);\n    applyStyles(icon, params);\n\n    // Animate icon\n    addClass(icon, params.showClass && params.showClass.icon);\n\n    // Re-adjust the success icon on system theme change\n    const colorSchemeQueryList = window.matchMedia('(prefers-color-scheme: dark)');\n    colorSchemeQueryList.addEventListener('change', adjustSuccessIconBackgroundColor);\n  };\n\n  /**\n   * @param {HTMLElement} icon\n   * @param {SweetAlertOptions} params\n   */\n  const applyStyles = (icon, params) => {\n    for (const [iconType, iconClassName] of Object.entries(iconTypes)) {\n      if (params.icon !== iconType) {\n        removeClass(icon, iconClassName);\n      }\n    }\n    addClass(icon, params.icon && iconTypes[params.icon]);\n\n    // Icon color\n    setColor(icon, params);\n\n    // Success icon background color\n    adjustSuccessIconBackgroundColor();\n\n    // Custom class\n    applyCustomClass(icon, params, 'icon');\n  };\n\n  // Adjust success icon background color to match the popup background color\n  const adjustSuccessIconBackgroundColor = () => {\n    const popup = getPopup();\n    if (!popup) {\n      return;\n    }\n    const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n    /** @type {NodeListOf<HTMLElement>} */\n    const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n    for (let i = 0; i < successIconParts.length; i++) {\n      successIconParts[i].style.backgroundColor = popupBackgroundColor;\n    }\n  };\n\n  /**\n   *\n   * @param {SweetAlertOptions} params\n   * @returns {string}\n   */\n  const successIconHtml = params => `\n  ${params.animation ? '<div class=\"swal2-success-circular-line-left\"></div>' : ''}\n  <span class=\"swal2-success-line-tip\"></span> <span class=\"swal2-success-line-long\"></span>\n  <div class=\"swal2-success-ring\"></div>\n  ${params.animation ? '<div class=\"swal2-success-fix\"></div>' : ''}\n  ${params.animation ? '<div class=\"swal2-success-circular-line-right\"></div>' : ''}\n`;\n  const errorIconHtml = `\n  <span class=\"swal2-x-mark\">\n    <span class=\"swal2-x-mark-line-left\"></span>\n    <span class=\"swal2-x-mark-line-right\"></span>\n  </span>\n`;\n\n  /**\n   * @param {HTMLElement} icon\n   * @param {SweetAlertOptions} params\n   */\n  const setContent = (icon, params) => {\n    if (!params.icon && !params.iconHtml) {\n      return;\n    }\n    let oldContent = icon.innerHTML;\n    let newContent = '';\n    if (params.iconHtml) {\n      newContent = iconContent(params.iconHtml);\n    } else if (params.icon === 'success') {\n      newContent = successIconHtml(params);\n      oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n    } else if (params.icon === 'error') {\n      newContent = errorIconHtml;\n    } else if (params.icon) {\n      const defaultIconHtml = {\n        question: '?',\n        warning: '!',\n        info: 'i'\n      };\n      newContent = iconContent(defaultIconHtml[params.icon]);\n    }\n    if (oldContent.trim() !== newContent.trim()) {\n      setInnerHtml(icon, newContent);\n    }\n  };\n\n  /**\n   * @param {HTMLElement} icon\n   * @param {SweetAlertOptions} params\n   */\n  const setColor = (icon, params) => {\n    if (!params.iconColor) {\n      return;\n    }\n    icon.style.color = params.iconColor;\n    icon.style.borderColor = params.iconColor;\n    for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {\n      setStyle(icon, sel, 'background-color', params.iconColor);\n    }\n    setStyle(icon, '.swal2-success-ring', 'border-color', params.iconColor);\n  };\n\n  /**\n   * @param {string} content\n   * @returns {string}\n   */\n  const iconContent = content => `<div class=\"${swalClasses['icon-content']}\">${content}</div>`;\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const renderImage = (instance, params) => {\n    const image = getImage();\n    if (!image) {\n      return;\n    }\n    if (!params.imageUrl) {\n      hide(image);\n      return;\n    }\n    show(image, '');\n\n    // Src, alt\n    image.setAttribute('src', params.imageUrl);\n    image.setAttribute('alt', params.imageAlt || '');\n\n    // Width, height\n    applyNumericalStyle(image, 'width', params.imageWidth);\n    applyNumericalStyle(image, 'height', params.imageHeight);\n\n    // Class\n    image.className = swalClasses.image;\n    applyCustomClass(image, params, 'image');\n  };\n  let dragging = false;\n  let mousedownX = 0;\n  let mousedownY = 0;\n  let initialX = 0;\n  let initialY = 0;\n\n  /**\n   * @param {HTMLElement} popup\n   */\n  const addDraggableListeners = popup => {\n    popup.addEventListener('mousedown', down);\n    document.body.addEventListener('mousemove', move);\n    popup.addEventListener('mouseup', up);\n    popup.addEventListener('touchstart', down);\n    document.body.addEventListener('touchmove', move);\n    popup.addEventListener('touchend', up);\n  };\n\n  /**\n   * @param {HTMLElement} popup\n   */\n  const removeDraggableListeners = popup => {\n    popup.removeEventListener('mousedown', down);\n    document.body.removeEventListener('mousemove', move);\n    popup.removeEventListener('mouseup', up);\n    popup.removeEventListener('touchstart', down);\n    document.body.removeEventListener('touchmove', move);\n    popup.removeEventListener('touchend', up);\n  };\n\n  /**\n   * @param {MouseEvent | TouchEvent} event\n   */\n  const down = event => {\n    const popup = getPopup();\n    if (event.target === popup || getIcon().contains(/** @type {HTMLElement} */event.target)) {\n      dragging = true;\n      const clientXY = getClientXY(event);\n      mousedownX = clientXY.clientX;\n      mousedownY = clientXY.clientY;\n      initialX = parseInt(popup.style.insetInlineStart) || 0;\n      initialY = parseInt(popup.style.insetBlockStart) || 0;\n      addClass(popup, 'swal2-dragging');\n    }\n  };\n\n  /**\n   * @param {MouseEvent | TouchEvent} event\n   */\n  const move = event => {\n    const popup = getPopup();\n    if (dragging) {\n      let {\n        clientX,\n        clientY\n      } = getClientXY(event);\n      popup.style.insetInlineStart = `${initialX + (clientX - mousedownX)}px`;\n      popup.style.insetBlockStart = `${initialY + (clientY - mousedownY)}px`;\n    }\n  };\n  const up = () => {\n    const popup = getPopup();\n    dragging = false;\n    removeClass(popup, 'swal2-dragging');\n  };\n\n  /**\n   * @param {MouseEvent | TouchEvent} event\n   * @returns {{ clientX: number, clientY: number }}\n   */\n  const getClientXY = event => {\n    let clientX = 0,\n      clientY = 0;\n    if (event.type.startsWith('mouse')) {\n      clientX = /** @type {MouseEvent} */event.clientX;\n      clientY = /** @type {MouseEvent} */event.clientY;\n    } else if (event.type.startsWith('touch')) {\n      clientX = /** @type {TouchEvent} */event.touches[0].clientX;\n      clientY = /** @type {TouchEvent} */event.touches[0].clientY;\n    }\n    return {\n      clientX,\n      clientY\n    };\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const renderPopup = (instance, params) => {\n    const container = getContainer();\n    const popup = getPopup();\n    if (!container || !popup) {\n      return;\n    }\n\n    // Width\n    // https://github.com/sweetalert2/sweetalert2/issues/2170\n    if (params.toast) {\n      applyNumericalStyle(container, 'width', params.width);\n      popup.style.width = '100%';\n      const loader = getLoader();\n      if (loader) {\n        popup.insertBefore(loader, getIcon());\n      }\n    } else {\n      applyNumericalStyle(popup, 'width', params.width);\n    }\n\n    // Padding\n    applyNumericalStyle(popup, 'padding', params.padding);\n\n    // Color\n    if (params.color) {\n      popup.style.color = params.color;\n    }\n\n    // Background\n    if (params.background) {\n      popup.style.background = params.background;\n    }\n    hide(getValidationMessage());\n\n    // Classes\n    addClasses$1(popup, params);\n    if (params.draggable && !params.toast) {\n      addClass(popup, swalClasses.draggable);\n      addDraggableListeners(popup);\n    } else {\n      removeClass(popup, swalClasses.draggable);\n      removeDraggableListeners(popup);\n    }\n  };\n\n  /**\n   * @param {HTMLElement} popup\n   * @param {SweetAlertOptions} params\n   */\n  const addClasses$1 = (popup, params) => {\n    const showClass = params.showClass || {};\n    // Default Class + showClass when updating Swal.update({})\n    popup.className = `${swalClasses.popup} ${isVisible$1(popup) ? showClass.popup : ''}`;\n    if (params.toast) {\n      addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n      addClass(popup, swalClasses.toast);\n    } else {\n      addClass(popup, swalClasses.modal);\n    }\n\n    // Custom class\n    applyCustomClass(popup, params, 'popup');\n    // TODO: remove in the next major\n    if (typeof params.customClass === 'string') {\n      addClass(popup, params.customClass);\n    }\n\n    // Icon class (#1842)\n    if (params.icon) {\n      addClass(popup, swalClasses[`icon-${params.icon}`]);\n    }\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const renderProgressSteps = (instance, params) => {\n    const progressStepsContainer = getProgressSteps();\n    if (!progressStepsContainer) {\n      return;\n    }\n    const {\n      progressSteps,\n      currentProgressStep\n    } = params;\n    if (!progressSteps || progressSteps.length === 0 || currentProgressStep === undefined) {\n      hide(progressStepsContainer);\n      return;\n    }\n    show(progressStepsContainer);\n    progressStepsContainer.textContent = '';\n    if (currentProgressStep >= progressSteps.length) {\n      warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n    }\n    progressSteps.forEach((step, index) => {\n      const stepEl = createStepElement(step);\n      progressStepsContainer.appendChild(stepEl);\n      if (index === currentProgressStep) {\n        addClass(stepEl, swalClasses['active-progress-step']);\n      }\n      if (index !== progressSteps.length - 1) {\n        const lineEl = createLineElement(params);\n        progressStepsContainer.appendChild(lineEl);\n      }\n    });\n  };\n\n  /**\n   * @param {string} step\n   * @returns {HTMLLIElement}\n   */\n  const createStepElement = step => {\n    const stepEl = document.createElement('li');\n    addClass(stepEl, swalClasses['progress-step']);\n    setInnerHtml(stepEl, step);\n    return stepEl;\n  };\n\n  /**\n   * @param {SweetAlertOptions} params\n   * @returns {HTMLLIElement}\n   */\n  const createLineElement = params => {\n    const lineEl = document.createElement('li');\n    addClass(lineEl, swalClasses['progress-step-line']);\n    if (params.progressStepsDistance) {\n      applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n    }\n    return lineEl;\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const renderTitle = (instance, params) => {\n    const title = getTitle();\n    if (!title) {\n      return;\n    }\n    showWhenInnerHtmlPresent(title);\n    toggle(title, params.title || params.titleText, 'block');\n    if (params.title) {\n      parseHtmlToContainer(params.title, title);\n    }\n    if (params.titleText) {\n      title.innerText = params.titleText;\n    }\n\n    // Custom class\n    applyCustomClass(title, params, 'title');\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const render = (instance, params) => {\n    renderPopup(instance, params);\n    renderContainer(instance, params);\n    renderProgressSteps(instance, params);\n    renderIcon(instance, params);\n    renderImage(instance, params);\n    renderTitle(instance, params);\n    renderCloseButton(instance, params);\n    renderContent(instance, params);\n    renderActions(instance, params);\n    renderFooter(instance, params);\n    const popup = getPopup();\n    if (typeof params.didRender === 'function' && popup) {\n      params.didRender(popup);\n    }\n    globalState.eventEmitter.emit('didRender', popup);\n  };\n\n  /*\n   * Global function to determine if SweetAlert2 popup is shown\n   */\n  const isVisible = () => {\n    return isVisible$1(getPopup());\n  };\n\n  /*\n   * Global function to click 'Confirm' button\n   */\n  const clickConfirm = () => {\n    var _dom$getConfirmButton;\n    return (_dom$getConfirmButton = getConfirmButton()) === null || _dom$getConfirmButton === void 0 ? void 0 : _dom$getConfirmButton.click();\n  };\n\n  /*\n   * Global function to click 'Deny' button\n   */\n  const clickDeny = () => {\n    var _dom$getDenyButton;\n    return (_dom$getDenyButton = getDenyButton()) === null || _dom$getDenyButton === void 0 ? void 0 : _dom$getDenyButton.click();\n  };\n\n  /*\n   * Global function to click 'Cancel' button\n   */\n  const clickCancel = () => {\n    var _dom$getCancelButton;\n    return (_dom$getCancelButton = getCancelButton()) === null || _dom$getCancelButton === void 0 ? void 0 : _dom$getCancelButton.click();\n  };\n\n  /** @typedef {'cancel' | 'backdrop' | 'close' | 'esc' | 'timer'} DismissReason */\n\n  /** @type {Record<DismissReason, DismissReason>} */\n  const DismissReason = Object.freeze({\n    cancel: 'cancel',\n    backdrop: 'backdrop',\n    close: 'close',\n    esc: 'esc',\n    timer: 'timer'\n  });\n\n  /**\n   * @param {GlobalState} globalState\n   */\n  const removeKeydownHandler = globalState => {\n    if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n      globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n        capture: globalState.keydownListenerCapture\n      });\n      globalState.keydownHandlerAdded = false;\n    }\n  };\n\n  /**\n   * @param {GlobalState} globalState\n   * @param {SweetAlertOptions} innerParams\n   * @param {*} dismissWith\n   */\n  const addKeydownHandler = (globalState, innerParams, dismissWith) => {\n    removeKeydownHandler(globalState);\n    if (!innerParams.toast) {\n      globalState.keydownHandler = e => keydownHandler(innerParams, e, dismissWith);\n      globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n      globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n      globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n        capture: globalState.keydownListenerCapture\n      });\n      globalState.keydownHandlerAdded = true;\n    }\n  };\n\n  /**\n   * @param {number} index\n   * @param {number} increment\n   */\n  const setFocus = (index, increment) => {\n    var _dom$getPopup;\n    const focusableElements = getFocusableElements();\n    // search for visible elements and select the next possible match\n    if (focusableElements.length) {\n      index = index + increment;\n\n      // shift + tab when .swal2-popup is focused\n      if (index === -2) {\n        index = focusableElements.length - 1;\n      }\n\n      // rollover to first item\n      if (index === focusableElements.length) {\n        index = 0;\n\n        // go to last item\n      } else if (index === -1) {\n        index = focusableElements.length - 1;\n      }\n      focusableElements[index].focus();\n      return;\n    }\n    // no visible focusable elements, focus the popup\n    (_dom$getPopup = getPopup()) === null || _dom$getPopup === void 0 || _dom$getPopup.focus();\n  };\n  const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n  const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n  /**\n   * @param {SweetAlertOptions} innerParams\n   * @param {KeyboardEvent} event\n   * @param {Function} dismissWith\n   */\n  const keydownHandler = (innerParams, event, dismissWith) => {\n    if (!innerParams) {\n      return; // This instance has already been destroyed\n    }\n\n    // Ignore keydown during IME composition\n    // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n    // https://github.com/sweetalert2/sweetalert2/issues/720\n    // https://github.com/sweetalert2/sweetalert2/issues/2406\n    if (event.isComposing || event.keyCode === 229) {\n      return;\n    }\n    if (innerParams.stopKeydownPropagation) {\n      event.stopPropagation();\n    }\n\n    // ENTER\n    if (event.key === 'Enter') {\n      handleEnter(event, innerParams);\n    }\n\n    // TAB\n    else if (event.key === 'Tab') {\n      handleTab(event);\n    }\n\n    // ARROWS - switch focus between buttons\n    else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(event.key)) {\n      handleArrows(event.key);\n    }\n\n    // ESC\n    else if (event.key === 'Escape') {\n      handleEsc(event, innerParams, dismissWith);\n    }\n  };\n\n  /**\n   * @param {KeyboardEvent} event\n   * @param {SweetAlertOptions} innerParams\n   */\n  const handleEnter = (event, innerParams) => {\n    // https://github.com/sweetalert2/sweetalert2/issues/2386\n    if (!callIfFunction(innerParams.allowEnterKey)) {\n      return;\n    }\n    const input = getInput$1(getPopup(), innerParams.input);\n    if (event.target && input && event.target instanceof HTMLElement && event.target.outerHTML === input.outerHTML) {\n      if (['textarea', 'file'].includes(innerParams.input)) {\n        return; // do not submit\n      }\n      clickConfirm();\n      event.preventDefault();\n    }\n  };\n\n  /**\n   * @param {KeyboardEvent} event\n   */\n  const handleTab = event => {\n    const targetElement = event.target;\n    const focusableElements = getFocusableElements();\n    let btnIndex = -1;\n    for (let i = 0; i < focusableElements.length; i++) {\n      if (targetElement === focusableElements[i]) {\n        btnIndex = i;\n        break;\n      }\n    }\n\n    // Cycle to the next button\n    if (!event.shiftKey) {\n      setFocus(btnIndex, 1);\n    }\n\n    // Cycle to the prev button\n    else {\n      setFocus(btnIndex, -1);\n    }\n    event.stopPropagation();\n    event.preventDefault();\n  };\n\n  /**\n   * @param {string} key\n   */\n  const handleArrows = key => {\n    const actions = getActions();\n    const confirmButton = getConfirmButton();\n    const denyButton = getDenyButton();\n    const cancelButton = getCancelButton();\n    if (!actions || !confirmButton || !denyButton || !cancelButton) {\n      return;\n    }\n    /** @type HTMLElement[] */\n    const buttons = [confirmButton, denyButton, cancelButton];\n    if (document.activeElement instanceof HTMLElement && !buttons.includes(document.activeElement)) {\n      return;\n    }\n    const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n    let buttonToFocus = document.activeElement;\n    if (!buttonToFocus) {\n      return;\n    }\n    for (let i = 0; i < actions.children.length; i++) {\n      buttonToFocus = buttonToFocus[sibling];\n      if (!buttonToFocus) {\n        return;\n      }\n      if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {\n        break;\n      }\n    }\n    if (buttonToFocus instanceof HTMLButtonElement) {\n      buttonToFocus.focus();\n    }\n  };\n\n  /**\n   * @param {KeyboardEvent} event\n   * @param {SweetAlertOptions} innerParams\n   * @param {Function} dismissWith\n   */\n  const handleEsc = (event, innerParams, dismissWith) => {\n    event.preventDefault();\n    if (callIfFunction(innerParams.allowEscapeKey)) {\n      dismissWith(DismissReason.esc);\n    }\n  };\n\n  /**\n   * This module contains `WeakMap`s for each effectively-\"private  property\" that a `Swal` has.\n   * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n   * This is the approach that Babel will probably take to implement private methods/fields\n   *   https://github.com/tc39/proposal-private-methods\n   *   https://github.com/babel/babel/pull/7555\n   * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n   *   then we can use that language feature.\n   */\n\n  var privateMethods = {\n    swalPromiseResolve: new WeakMap(),\n    swalPromiseReject: new WeakMap()\n  };\n\n  // From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n  // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n  // elements not within the active modal dialog will not be surfaced if a user opens a screen\n  // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n  const setAriaHidden = () => {\n    const container = getContainer();\n    const bodyChildren = Array.from(document.body.children);\n    bodyChildren.forEach(el => {\n      if (el.contains(container)) {\n        return;\n      }\n      if (el.hasAttribute('aria-hidden')) {\n        el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden') || '');\n      }\n      el.setAttribute('aria-hidden', 'true');\n    });\n  };\n  const unsetAriaHidden = () => {\n    const bodyChildren = Array.from(document.body.children);\n    bodyChildren.forEach(el => {\n      if (el.hasAttribute('data-previous-aria-hidden')) {\n        el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden') || '');\n        el.removeAttribute('data-previous-aria-hidden');\n      } else {\n        el.removeAttribute('aria-hidden');\n      }\n    });\n  };\n\n  // @ts-ignore\n  const isSafariOrIOS = typeof window !== 'undefined' && !!window.GestureEvent; // true for Safari desktop + all iOS browsers https://stackoverflow.com/a/70585394\n\n  /**\n   * Fix iOS scrolling\n   * http://stackoverflow.com/q/39626302\n   */\n  const iOSfix = () => {\n    if (isSafariOrIOS && !hasClass(document.body, swalClasses.iosfix)) {\n      const offset = document.body.scrollTop;\n      document.body.style.top = `${offset * -1}px`;\n      addClass(document.body, swalClasses.iosfix);\n      lockBodyScroll();\n    }\n  };\n\n  /**\n   * https://github.com/sweetalert2/sweetalert2/issues/1246\n   */\n  const lockBodyScroll = () => {\n    const container = getContainer();\n    if (!container) {\n      return;\n    }\n    /** @type {boolean} */\n    let preventTouchMove;\n    /**\n     * @param {TouchEvent} event\n     */\n    container.ontouchstart = event => {\n      preventTouchMove = shouldPreventTouchMove(event);\n    };\n    /**\n     * @param {TouchEvent} event\n     */\n    container.ontouchmove = event => {\n      if (preventTouchMove) {\n        event.preventDefault();\n        event.stopPropagation();\n      }\n    };\n  };\n\n  /**\n   * @param {TouchEvent} event\n   * @returns {boolean}\n   */\n  const shouldPreventTouchMove = event => {\n    const target = event.target;\n    const container = getContainer();\n    const htmlContainer = getHtmlContainer();\n    if (!container || !htmlContainer) {\n      return false;\n    }\n    if (isStylus(event) || isZoom(event)) {\n      return false;\n    }\n    if (target === container) {\n      return true;\n    }\n    if (!isScrollable(container) && target instanceof HTMLElement && !selfOrParentIsScrollable(target, htmlContainer) &&\n    // #2823\n    target.tagName !== 'INPUT' &&\n    // #1603\n    target.tagName !== 'TEXTAREA' &&\n    // #2266\n    !(isScrollable(htmlContainer) &&\n    // #1944\n    htmlContainer.contains(target))) {\n      return true;\n    }\n    return false;\n  };\n\n  /**\n   * https://github.com/sweetalert2/sweetalert2/issues/1786\n   *\n   * @param {*} event\n   * @returns {boolean}\n   */\n  const isStylus = event => {\n    return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n  };\n\n  /**\n   * https://github.com/sweetalert2/sweetalert2/issues/1891\n   *\n   * @param {TouchEvent} event\n   * @returns {boolean}\n   */\n  const isZoom = event => {\n    return event.touches && event.touches.length > 1;\n  };\n  const undoIOSfix = () => {\n    if (hasClass(document.body, swalClasses.iosfix)) {\n      const offset = parseInt(document.body.style.top, 10);\n      removeClass(document.body, swalClasses.iosfix);\n      document.body.style.top = '';\n      document.body.scrollTop = offset * -1;\n    }\n  };\n\n  /**\n   * Measure scrollbar width for padding body during modal show/hide\n   * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n   *\n   * @returns {number}\n   */\n  const measureScrollbar = () => {\n    const scrollDiv = document.createElement('div');\n    scrollDiv.className = swalClasses['scrollbar-measure'];\n    document.body.appendChild(scrollDiv);\n    const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n    document.body.removeChild(scrollDiv);\n    return scrollbarWidth;\n  };\n\n  /**\n   * Remember state in cases where opening and handling a modal will fiddle with it.\n   * @type {number | null}\n   */\n  let previousBodyPadding = null;\n\n  /**\n   * @param {string} initialBodyOverflow\n   */\n  const replaceScrollbarWithPadding = initialBodyOverflow => {\n    // for queues, do not do this more than once\n    if (previousBodyPadding !== null) {\n      return;\n    }\n    // if the body has overflow\n    if (document.body.scrollHeight > window.innerHeight || initialBodyOverflow === 'scroll' // https://github.com/sweetalert2/sweetalert2/issues/2663\n    ) {\n      // add padding so the content doesn't shift after removal of scrollbar\n      previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n      document.body.style.paddingRight = `${previousBodyPadding + measureScrollbar()}px`;\n    }\n  };\n  const undoReplaceScrollbarWithPadding = () => {\n    if (previousBodyPadding !== null) {\n      document.body.style.paddingRight = `${previousBodyPadding}px`;\n      previousBodyPadding = null;\n    }\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {HTMLElement} container\n   * @param {boolean} returnFocus\n   * @param {Function} didClose\n   */\n  function removePopupAndResetState(instance, container, returnFocus, didClose) {\n    if (isToast()) {\n      triggerDidCloseAndDispose(instance, didClose);\n    } else {\n      restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));\n      removeKeydownHandler(globalState);\n    }\n\n    // workaround for https://github.com/sweetalert2/sweetalert2/issues/2088\n    // for some reason removing the container in Safari will scroll the document to bottom\n    if (isSafariOrIOS) {\n      container.setAttribute('style', 'display:none !important');\n      container.removeAttribute('class');\n      container.innerHTML = '';\n    } else {\n      container.remove();\n    }\n    if (isModal()) {\n      undoReplaceScrollbarWithPadding();\n      undoIOSfix();\n      unsetAriaHidden();\n    }\n    removeBodyClasses();\n  }\n\n  /**\n   * Remove SweetAlert2 classes from body\n   */\n  function removeBodyClasses() {\n    removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n  }\n\n  /**\n   * Instance method to close sweetAlert\n   *\n   * @param {any} resolveValue\n   */\n  function close(resolveValue) {\n    resolveValue = prepareResolveValue(resolveValue);\n    const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n    const didClose = triggerClosePopup(this);\n    if (this.isAwaitingPromise) {\n      // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n      if (!resolveValue.isDismissed) {\n        handleAwaitingPromise(this);\n        swalPromiseResolve(resolveValue);\n      }\n    } else if (didClose) {\n      // Resolve Swal promise\n      swalPromiseResolve(resolveValue);\n    }\n  }\n  const triggerClosePopup = instance => {\n    const popup = getPopup();\n    if (!popup) {\n      return false;\n    }\n    const innerParams = privateProps.innerParams.get(instance);\n    if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n      return false;\n    }\n    removeClass(popup, innerParams.showClass.popup);\n    addClass(popup, innerParams.hideClass.popup);\n    const backdrop = getContainer();\n    removeClass(backdrop, innerParams.showClass.backdrop);\n    addClass(backdrop, innerParams.hideClass.backdrop);\n    handlePopupAnimation(instance, popup, innerParams);\n    return true;\n  };\n\n  /**\n   * @param {any} error\n   */\n  function rejectPromise(error) {\n    const rejectPromise = privateMethods.swalPromiseReject.get(this);\n    handleAwaitingPromise(this);\n    if (rejectPromise) {\n      // Reject Swal promise\n      rejectPromise(error);\n    }\n  }\n\n  /**\n   * @param {SweetAlert} instance\n   */\n  const handleAwaitingPromise = instance => {\n    if (instance.isAwaitingPromise) {\n      delete instance.isAwaitingPromise;\n      // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n      if (!privateProps.innerParams.get(instance)) {\n        instance._destroy();\n      }\n    }\n  };\n\n  /**\n   * @param {any} resolveValue\n   * @returns {SweetAlertResult}\n   */\n  const prepareResolveValue = resolveValue => {\n    // When user calls Swal.close()\n    if (typeof resolveValue === 'undefined') {\n      return {\n        isConfirmed: false,\n        isDenied: false,\n        isDismissed: true\n      };\n    }\n    return Object.assign({\n      isConfirmed: false,\n      isDenied: false,\n      isDismissed: false\n    }, resolveValue);\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {HTMLElement} popup\n   * @param {SweetAlertOptions} innerParams\n   */\n  const handlePopupAnimation = (instance, popup, innerParams) => {\n    var _globalState$eventEmi;\n    const container = getContainer();\n    // If animation is supported, animate\n    const animationIsSupported = hasCssAnimation(popup);\n    if (typeof innerParams.willClose === 'function') {\n      innerParams.willClose(popup);\n    }\n    (_globalState$eventEmi = globalState.eventEmitter) === null || _globalState$eventEmi === void 0 || _globalState$eventEmi.emit('willClose', popup);\n    if (animationIsSupported) {\n      animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n    } else {\n      // Otherwise, remove immediately\n      removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n    }\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {HTMLElement} popup\n   * @param {HTMLElement} container\n   * @param {boolean} returnFocus\n   * @param {Function} didClose\n   */\n  const animatePopup = (instance, popup, container, returnFocus, didClose) => {\n    globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n    /**\n     * @param {AnimationEvent | TransitionEvent} e\n     */\n    const swalCloseAnimationFinished = function (e) {\n      if (e.target === popup) {\n        var _globalState$swalClos;\n        (_globalState$swalClos = globalState.swalCloseEventFinishedCallback) === null || _globalState$swalClos === void 0 || _globalState$swalClos.call(globalState);\n        delete globalState.swalCloseEventFinishedCallback;\n        popup.removeEventListener('animationend', swalCloseAnimationFinished);\n        popup.removeEventListener('transitionend', swalCloseAnimationFinished);\n      }\n    };\n    popup.addEventListener('animationend', swalCloseAnimationFinished);\n    popup.addEventListener('transitionend', swalCloseAnimationFinished);\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {Function} didClose\n   */\n  const triggerDidCloseAndDispose = (instance, didClose) => {\n    setTimeout(() => {\n      var _globalState$eventEmi2;\n      if (typeof didClose === 'function') {\n        didClose.bind(instance.params)();\n      }\n      (_globalState$eventEmi2 = globalState.eventEmitter) === null || _globalState$eventEmi2 === void 0 || _globalState$eventEmi2.emit('didClose');\n      // instance might have been destroyed already\n      if (instance._destroy) {\n        instance._destroy();\n      }\n    });\n  };\n\n  /**\n   * Shows loader (spinner), this is useful with AJAX requests.\n   * By default the loader be shown instead of the \"Confirm\" button.\n   *\n   * @param {HTMLButtonElement | null} [buttonToReplace]\n   */\n  const showLoading = buttonToReplace => {\n    let popup = getPopup();\n    if (!popup) {\n      new Swal();\n    }\n    popup = getPopup();\n    if (!popup) {\n      return;\n    }\n    const loader = getLoader();\n    if (isToast()) {\n      hide(getIcon());\n    } else {\n      replaceButton(popup, buttonToReplace);\n    }\n    show(loader);\n    popup.setAttribute('data-loading', 'true');\n    popup.setAttribute('aria-busy', 'true');\n    popup.focus();\n  };\n\n  /**\n   * @param {HTMLElement} popup\n   * @param {HTMLButtonElement | null} [buttonToReplace]\n   */\n  const replaceButton = (popup, buttonToReplace) => {\n    const actions = getActions();\n    const loader = getLoader();\n    if (!actions || !loader) {\n      return;\n    }\n    if (!buttonToReplace && isVisible$1(getConfirmButton())) {\n      buttonToReplace = getConfirmButton();\n    }\n    show(actions);\n    if (buttonToReplace) {\n      hide(buttonToReplace);\n      loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n      actions.insertBefore(loader, buttonToReplace);\n    }\n    addClass([popup, actions], swalClasses.loading);\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const handleInputOptionsAndValue = (instance, params) => {\n    if (params.input === 'select' || params.input === 'radio') {\n      handleInputOptions(instance, params);\n    } else if (['text', 'email', 'number', 'tel', 'textarea'].some(i => i === params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n      showLoading(getConfirmButton());\n      handleInputValue(instance, params);\n    }\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} innerParams\n   * @returns {SweetAlertInputValue}\n   */\n  const getInputValue = (instance, innerParams) => {\n    const input = instance.getInput();\n    if (!input) {\n      return null;\n    }\n    switch (innerParams.input) {\n      case 'checkbox':\n        return getCheckboxValue(input);\n      case 'radio':\n        return getRadioValue(input);\n      case 'file':\n        return getFileValue(input);\n      default:\n        return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n    }\n  };\n\n  /**\n   * @param {HTMLInputElement} input\n   * @returns {number}\n   */\n  const getCheckboxValue = input => input.checked ? 1 : 0;\n\n  /**\n   * @param {HTMLInputElement} input\n   * @returns {string | null}\n   */\n  const getRadioValue = input => input.checked ? input.value : null;\n\n  /**\n   * @param {HTMLInputElement} input\n   * @returns {FileList | File | null}\n   */\n  const getFileValue = input => input.files && input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const handleInputOptions = (instance, params) => {\n    const popup = getPopup();\n    if (!popup) {\n      return;\n    }\n    /**\n     * @param {Record<string, any>} inputOptions\n     */\n    const processInputOptions = inputOptions => {\n      if (params.input === 'select') {\n        populateSelectOptions(popup, formatInputOptions(inputOptions), params);\n      } else if (params.input === 'radio') {\n        populateRadioOptions(popup, formatInputOptions(inputOptions), params);\n      }\n    };\n    if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n      showLoading(getConfirmButton());\n      asPromise(params.inputOptions).then(inputOptions => {\n        instance.hideLoading();\n        processInputOptions(inputOptions);\n      });\n    } else if (typeof params.inputOptions === 'object') {\n      processInputOptions(params.inputOptions);\n    } else {\n      error(`Unexpected type of inputOptions! Expected object, Map or Promise, got ${typeof params.inputOptions}`);\n    }\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertOptions} params\n   */\n  const handleInputValue = (instance, params) => {\n    const input = instance.getInput();\n    if (!input) {\n      return;\n    }\n    hide(input);\n    asPromise(params.inputValue).then(inputValue => {\n      input.value = params.input === 'number' ? `${parseFloat(inputValue) || 0}` : `${inputValue}`;\n      show(input);\n      input.focus();\n      instance.hideLoading();\n    }).catch(err => {\n      error(`Error in inputValue promise: ${err}`);\n      input.value = '';\n      show(input);\n      input.focus();\n      instance.hideLoading();\n    });\n  };\n\n  /**\n   * @param {HTMLElement} popup\n   * @param {InputOptionFlattened[]} inputOptions\n   * @param {SweetAlertOptions} params\n   */\n  function populateSelectOptions(popup, inputOptions, params) {\n    const select = getDirectChildByClass(popup, swalClasses.select);\n    if (!select) {\n      return;\n    }\n    /**\n     * @param {HTMLElement} parent\n     * @param {string} optionLabel\n     * @param {string} optionValue\n     */\n    const renderOption = (parent, optionLabel, optionValue) => {\n      const option = document.createElement('option');\n      option.value = optionValue;\n      setInnerHtml(option, optionLabel);\n      option.selected = isSelected(optionValue, params.inputValue);\n      parent.appendChild(option);\n    };\n    inputOptions.forEach(inputOption => {\n      const optionValue = inputOption[0];\n      const optionLabel = inputOption[1];\n      // <optgroup> spec:\n      // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n      // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n      // check whether this is a <optgroup>\n      if (Array.isArray(optionLabel)) {\n        // if it is an array, then it is an <optgroup>\n        const optgroup = document.createElement('optgroup');\n        optgroup.label = optionValue;\n        optgroup.disabled = false; // not configurable for now\n        select.appendChild(optgroup);\n        optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));\n      } else {\n        // case of <option>\n        renderOption(select, optionLabel, optionValue);\n      }\n    });\n    select.focus();\n  }\n\n  /**\n   * @param {HTMLElement} popup\n   * @param {InputOptionFlattened[]} inputOptions\n   * @param {SweetAlertOptions} params\n   */\n  function populateRadioOptions(popup, inputOptions, params) {\n    const radio = getDirectChildByClass(popup, swalClasses.radio);\n    if (!radio) {\n      return;\n    }\n    inputOptions.forEach(inputOption => {\n      const radioValue = inputOption[0];\n      const radioLabel = inputOption[1];\n      const radioInput = document.createElement('input');\n      const radioLabelElement = document.createElement('label');\n      radioInput.type = 'radio';\n      radioInput.name = swalClasses.radio;\n      radioInput.value = radioValue;\n      if (isSelected(radioValue, params.inputValue)) {\n        radioInput.checked = true;\n      }\n      const label = document.createElement('span');\n      setInnerHtml(label, radioLabel);\n      label.className = swalClasses.label;\n      radioLabelElement.appendChild(radioInput);\n      radioLabelElement.appendChild(label);\n      radio.appendChild(radioLabelElement);\n    });\n    const radios = radio.querySelectorAll('input');\n    if (radios.length) {\n      radios[0].focus();\n    }\n  }\n\n  /**\n   * Converts `inputOptions` into an array of `[value, label]`s\n   *\n   * @param {Record<string, any>} inputOptions\n   * @typedef {string[]} InputOptionFlattened\n   * @returns {InputOptionFlattened[]}\n   */\n  const formatInputOptions = inputOptions => {\n    /** @type {InputOptionFlattened[]} */\n    const result = [];\n    if (inputOptions instanceof Map) {\n      inputOptions.forEach((value, key) => {\n        let valueFormatted = value;\n        if (typeof valueFormatted === 'object') {\n          // case of <optgroup>\n          valueFormatted = formatInputOptions(valueFormatted);\n        }\n        result.push([key, valueFormatted]);\n      });\n    } else {\n      Object.keys(inputOptions).forEach(key => {\n        let valueFormatted = inputOptions[key];\n        if (typeof valueFormatted === 'object') {\n          // case of <optgroup>\n          valueFormatted = formatInputOptions(valueFormatted);\n        }\n        result.push([key, valueFormatted]);\n      });\n    }\n    return result;\n  };\n\n  /**\n   * @param {string} optionValue\n   * @param {SweetAlertInputValue} inputValue\n   * @returns {boolean}\n   */\n  const isSelected = (optionValue, inputValue) => {\n    return !!inputValue && inputValue.toString() === optionValue.toString();\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   */\n  const handleConfirmButtonClick = instance => {\n    const innerParams = privateProps.innerParams.get(instance);\n    instance.disableButtons();\n    if (innerParams.input) {\n      handleConfirmOrDenyWithInput(instance, 'confirm');\n    } else {\n      confirm(instance, true);\n    }\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   */\n  const handleDenyButtonClick = instance => {\n    const innerParams = privateProps.innerParams.get(instance);\n    instance.disableButtons();\n    if (innerParams.returnInputValueOnDeny) {\n      handleConfirmOrDenyWithInput(instance, 'deny');\n    } else {\n      deny(instance, false);\n    }\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {Function} dismissWith\n   */\n  const handleCancelButtonClick = (instance, dismissWith) => {\n    instance.disableButtons();\n    dismissWith(DismissReason.cancel);\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {'confirm' | 'deny'} type\n   */\n  const handleConfirmOrDenyWithInput = (instance, type) => {\n    const innerParams = privateProps.innerParams.get(instance);\n    if (!innerParams.input) {\n      error(`The \"input\" parameter is needed to be set when using returnInputValueOn${capitalizeFirstLetter(type)}`);\n      return;\n    }\n    const input = instance.getInput();\n    const inputValue = getInputValue(instance, innerParams);\n    if (innerParams.inputValidator) {\n      handleInputValidator(instance, inputValue, type);\n    } else if (input && !input.checkValidity()) {\n      instance.enableButtons();\n      instance.showValidationMessage(innerParams.validationMessage || input.validationMessage);\n    } else if (type === 'deny') {\n      deny(instance, inputValue);\n    } else {\n      confirm(instance, inputValue);\n    }\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {SweetAlertInputValue} inputValue\n   * @param {'confirm' | 'deny'} type\n   */\n  const handleInputValidator = (instance, inputValue, type) => {\n    const innerParams = privateProps.innerParams.get(instance);\n    instance.disableInput();\n    const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));\n    validationPromise.then(validationMessage => {\n      instance.enableButtons();\n      instance.enableInput();\n      if (validationMessage) {\n        instance.showValidationMessage(validationMessage);\n      } else if (type === 'deny') {\n        deny(instance, inputValue);\n      } else {\n        confirm(instance, inputValue);\n      }\n    });\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {any} value\n   */\n  const deny = (instance, value) => {\n    const innerParams = privateProps.innerParams.get(instance || undefined);\n    if (innerParams.showLoaderOnDeny) {\n      showLoading(getDenyButton());\n    }\n    if (innerParams.preDeny) {\n      instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received\n      const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));\n      preDenyPromise.then(preDenyValue => {\n        if (preDenyValue === false) {\n          instance.hideLoading();\n          handleAwaitingPromise(instance);\n        } else {\n          instance.close({\n            isDenied: true,\n            value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n          });\n        }\n      }).catch(error => rejectWith(instance || undefined, error));\n    } else {\n      instance.close({\n        isDenied: true,\n        value\n      });\n    }\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {any} value\n   */\n  const succeedWith = (instance, value) => {\n    instance.close({\n      isConfirmed: true,\n      value\n    });\n  };\n\n  /**\n   *\n   * @param {SweetAlert} instance\n   * @param {string} error\n   */\n  const rejectWith = (instance, error) => {\n    instance.rejectPromise(error);\n  };\n\n  /**\n   *\n   * @param {SweetAlert} instance\n   * @param {any} value\n   */\n  const confirm = (instance, value) => {\n    const innerParams = privateProps.innerParams.get(instance || undefined);\n    if (innerParams.showLoaderOnConfirm) {\n      showLoading();\n    }\n    if (innerParams.preConfirm) {\n      instance.resetValidationMessage();\n      instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received\n      const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));\n      preConfirmPromise.then(preConfirmValue => {\n        if (isVisible$1(getValidationMessage()) || preConfirmValue === false) {\n          instance.hideLoading();\n          handleAwaitingPromise(instance);\n        } else {\n          succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n        }\n      }).catch(error => rejectWith(instance || undefined, error));\n    } else {\n      succeedWith(instance, value);\n    }\n  };\n\n  /**\n   * Hides loader and shows back the button which was hidden by .showLoading()\n   */\n  function hideLoading() {\n    // do nothing if popup is closed\n    const innerParams = privateProps.innerParams.get(this);\n    if (!innerParams) {\n      return;\n    }\n    const domCache = privateProps.domCache.get(this);\n    hide(domCache.loader);\n    if (isToast()) {\n      if (innerParams.icon) {\n        show(getIcon());\n      }\n    } else {\n      showRelatedButton(domCache);\n    }\n    removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n    domCache.popup.removeAttribute('aria-busy');\n    domCache.popup.removeAttribute('data-loading');\n    domCache.confirmButton.disabled = false;\n    domCache.denyButton.disabled = false;\n    domCache.cancelButton.disabled = false;\n  }\n  const showRelatedButton = domCache => {\n    const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n    if (buttonToReplace.length) {\n      show(buttonToReplace[0], 'inline-block');\n    } else if (allButtonsAreHidden()) {\n      hide(domCache.actions);\n    }\n  };\n\n  /**\n   * Gets the input DOM node, this method works with input parameter.\n   *\n   * @returns {HTMLInputElement | null}\n   */\n  function getInput() {\n    const innerParams = privateProps.innerParams.get(this);\n    const domCache = privateProps.domCache.get(this);\n    if (!domCache) {\n      return null;\n    }\n    return getInput$1(domCache.popup, innerParams.input);\n  }\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {string[]} buttons\n   * @param {boolean} disabled\n   */\n  function setButtonsDisabled(instance, buttons, disabled) {\n    const domCache = privateProps.domCache.get(instance);\n    buttons.forEach(button => {\n      domCache[button].disabled = disabled;\n    });\n  }\n\n  /**\n   * @param {HTMLInputElement | null} input\n   * @param {boolean} disabled\n   */\n  function setInputDisabled(input, disabled) {\n    const popup = getPopup();\n    if (!popup || !input) {\n      return;\n    }\n    if (input.type === 'radio') {\n      /** @type {NodeListOf<HTMLInputElement>} */\n      const radios = popup.querySelectorAll(`[name=\"${swalClasses.radio}\"]`);\n      for (let i = 0; i < radios.length; i++) {\n        radios[i].disabled = disabled;\n      }\n    } else {\n      input.disabled = disabled;\n    }\n  }\n\n  /**\n   * Enable all the buttons\n   * @this {SweetAlert}\n   */\n  function enableButtons() {\n    setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n  }\n\n  /**\n   * Disable all the buttons\n   * @this {SweetAlert}\n   */\n  function disableButtons() {\n    setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n  }\n\n  /**\n   * Enable the input field\n   * @this {SweetAlert}\n   */\n  function enableInput() {\n    setInputDisabled(this.getInput(), false);\n  }\n\n  /**\n   * Disable the input field\n   * @this {SweetAlert}\n   */\n  function disableInput() {\n    setInputDisabled(this.getInput(), true);\n  }\n\n  /**\n   * Show block with validation message\n   *\n   * @param {string} error\n   * @this {SweetAlert}\n   */\n  function showValidationMessage(error) {\n    const domCache = privateProps.domCache.get(this);\n    const params = privateProps.innerParams.get(this);\n    setInnerHtml(domCache.validationMessage, error);\n    domCache.validationMessage.className = swalClasses['validation-message'];\n    if (params.customClass && params.customClass.validationMessage) {\n      addClass(domCache.validationMessage, params.customClass.validationMessage);\n    }\n    show(domCache.validationMessage);\n    const input = this.getInput();\n    if (input) {\n      input.setAttribute('aria-invalid', 'true');\n      input.setAttribute('aria-describedby', swalClasses['validation-message']);\n      focusInput(input);\n      addClass(input, swalClasses.inputerror);\n    }\n  }\n\n  /**\n   * Hide block with validation message\n   *\n   * @this {SweetAlert}\n   */\n  function resetValidationMessage() {\n    const domCache = privateProps.domCache.get(this);\n    if (domCache.validationMessage) {\n      hide(domCache.validationMessage);\n    }\n    const input = this.getInput();\n    if (input) {\n      input.removeAttribute('aria-invalid');\n      input.removeAttribute('aria-describedby');\n      removeClass(input, swalClasses.inputerror);\n    }\n  }\n  const defaultParams = {\n    title: '',\n    titleText: '',\n    text: '',\n    html: '',\n    footer: '',\n    icon: undefined,\n    iconColor: undefined,\n    iconHtml: undefined,\n    template: undefined,\n    toast: false,\n    draggable: false,\n    animation: true,\n    theme: 'light',\n    showClass: {\n      popup: 'swal2-show',\n      backdrop: 'swal2-backdrop-show',\n      icon: 'swal2-icon-show'\n    },\n    hideClass: {\n      popup: 'swal2-hide',\n      backdrop: 'swal2-backdrop-hide',\n      icon: 'swal2-icon-hide'\n    },\n    customClass: {},\n    target: 'body',\n    color: undefined,\n    backdrop: true,\n    heightAuto: true,\n    allowOutsideClick: true,\n    allowEscapeKey: true,\n    allowEnterKey: true,\n    stopKeydownPropagation: true,\n    keydownListenerCapture: false,\n    showConfirmButton: true,\n    showDenyButton: false,\n    showCancelButton: false,\n    preConfirm: undefined,\n    preDeny: undefined,\n    confirmButtonText: 'OK',\n    confirmButtonAriaLabel: '',\n    confirmButtonColor: undefined,\n    denyButtonText: 'No',\n    denyButtonAriaLabel: '',\n    denyButtonColor: undefined,\n    cancelButtonText: 'Cancel',\n    cancelButtonAriaLabel: '',\n    cancelButtonColor: undefined,\n    buttonsStyling: true,\n    reverseButtons: false,\n    focusConfirm: true,\n    focusDeny: false,\n    focusCancel: false,\n    returnFocus: true,\n    showCloseButton: false,\n    closeButtonHtml: '&times;',\n    closeButtonAriaLabel: 'Close this dialog',\n    loaderHtml: '',\n    showLoaderOnConfirm: false,\n    showLoaderOnDeny: false,\n    imageUrl: undefined,\n    imageWidth: undefined,\n    imageHeight: undefined,\n    imageAlt: '',\n    timer: undefined,\n    timerProgressBar: false,\n    width: undefined,\n    padding: undefined,\n    background: undefined,\n    input: undefined,\n    inputPlaceholder: '',\n    inputLabel: '',\n    inputValue: '',\n    inputOptions: {},\n    inputAutoFocus: true,\n    inputAutoTrim: true,\n    inputAttributes: {},\n    inputValidator: undefined,\n    returnInputValueOnDeny: false,\n    validationMessage: undefined,\n    grow: false,\n    position: 'center',\n    progressSteps: [],\n    currentProgressStep: undefined,\n    progressStepsDistance: undefined,\n    willOpen: undefined,\n    didOpen: undefined,\n    didRender: undefined,\n    willClose: undefined,\n    didClose: undefined,\n    didDestroy: undefined,\n    scrollbarPadding: true,\n    topLayer: false\n  };\n  const updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'draggable', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'theme', 'willClose'];\n\n  /** @type {Record<string, string | undefined>} */\n  const deprecatedParams = {\n    allowEnterKey: undefined\n  };\n  const toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'draggable', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n\n  /**\n   * Is valid parameter\n   *\n   * @param {string} paramName\n   * @returns {boolean}\n   */\n  const isValidParameter = paramName => {\n    return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n  };\n\n  /**\n   * Is valid parameter for Swal.update() method\n   *\n   * @param {string} paramName\n   * @returns {boolean}\n   */\n  const isUpdatableParameter = paramName => {\n    return updatableParams.indexOf(paramName) !== -1;\n  };\n\n  /**\n   * Is deprecated parameter\n   *\n   * @param {string} paramName\n   * @returns {string | undefined}\n   */\n  const isDeprecatedParameter = paramName => {\n    return deprecatedParams[paramName];\n  };\n\n  /**\n   * @param {string} param\n   */\n  const checkIfParamIsValid = param => {\n    if (!isValidParameter(param)) {\n      warn(`Unknown parameter \"${param}\"`);\n    }\n  };\n\n  /**\n   * @param {string} param\n   */\n  const checkIfToastParamIsValid = param => {\n    if (toastIncompatibleParams.includes(param)) {\n      warn(`The parameter \"${param}\" is incompatible with toasts`);\n    }\n  };\n\n  /**\n   * @param {string} param\n   */\n  const checkIfParamIsDeprecated = param => {\n    const isDeprecated = isDeprecatedParameter(param);\n    if (isDeprecated) {\n      warnAboutDeprecation(param, isDeprecated);\n    }\n  };\n\n  /**\n   * Show relevant warnings for given params\n   *\n   * @param {SweetAlertOptions} params\n   */\n  const showWarningsForParams = params => {\n    if (params.backdrop === false && params.allowOutsideClick) {\n      warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n    }\n    if (params.theme && !['light', 'dark', 'auto', 'minimal', 'borderless', 'embed-iframe', 'bulma', 'bulma-light', 'bulma-dark'].includes(params.theme)) {\n      warn(`Invalid theme \"${params.theme}\"`);\n    }\n    for (const param in params) {\n      checkIfParamIsValid(param);\n      if (params.toast) {\n        checkIfToastParamIsValid(param);\n      }\n      checkIfParamIsDeprecated(param);\n    }\n  };\n\n  /**\n   * Updates popup parameters.\n   *\n   * @param {SweetAlertOptions} params\n   */\n  function update(params) {\n    const container = getContainer();\n    const popup = getPopup();\n    const innerParams = privateProps.innerParams.get(this);\n    if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n      warn(`You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.`);\n      return;\n    }\n    const validUpdatableParams = filterValidParams(params);\n    const updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n    showWarningsForParams(updatedParams);\n    container.dataset['swal2Theme'] = updatedParams.theme;\n    render(this, updatedParams);\n    privateProps.innerParams.set(this, updatedParams);\n    Object.defineProperties(this, {\n      params: {\n        value: Object.assign({}, this.params, params),\n        writable: false,\n        enumerable: true\n      }\n    });\n  }\n\n  /**\n   * @param {SweetAlertOptions} params\n   * @returns {SweetAlertOptions}\n   */\n  const filterValidParams = params => {\n    const validUpdatableParams = {};\n    Object.keys(params).forEach(param => {\n      if (isUpdatableParameter(param)) {\n        validUpdatableParams[param] = params[param];\n      } else {\n        warn(`Invalid parameter to update: ${param}`);\n      }\n    });\n    return validUpdatableParams;\n  };\n\n  /**\n   * Dispose the current SweetAlert2 instance\n   */\n  function _destroy() {\n    const domCache = privateProps.domCache.get(this);\n    const innerParams = privateProps.innerParams.get(this);\n    if (!innerParams) {\n      disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n      return; // This instance has already been destroyed\n    }\n\n    // Check if there is another Swal closing\n    if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n      globalState.swalCloseEventFinishedCallback();\n      delete globalState.swalCloseEventFinishedCallback;\n    }\n    if (typeof innerParams.didDestroy === 'function') {\n      innerParams.didDestroy();\n    }\n    globalState.eventEmitter.emit('didDestroy');\n    disposeSwal(this);\n  }\n\n  /**\n   * @param {SweetAlert} instance\n   */\n  const disposeSwal = instance => {\n    disposeWeakMaps(instance);\n    // Unset this.params so GC will dispose it (#1569)\n    delete instance.params;\n    // Unset globalState props so GC will dispose globalState (#1569)\n    delete globalState.keydownHandler;\n    delete globalState.keydownTarget;\n    // Unset currentInstance\n    delete globalState.currentInstance;\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   */\n  const disposeWeakMaps = instance => {\n    // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335\n    if (instance.isAwaitingPromise) {\n      unsetWeakMaps(privateProps, instance);\n      instance.isAwaitingPromise = true;\n    } else {\n      unsetWeakMaps(privateMethods, instance);\n      unsetWeakMaps(privateProps, instance);\n      delete instance.isAwaitingPromise;\n      // Unset instance methods\n      delete instance.disableButtons;\n      delete instance.enableButtons;\n      delete instance.getInput;\n      delete instance.disableInput;\n      delete instance.enableInput;\n      delete instance.hideLoading;\n      delete instance.disableLoading;\n      delete instance.showValidationMessage;\n      delete instance.resetValidationMessage;\n      delete instance.close;\n      delete instance.closePopup;\n      delete instance.closeModal;\n      delete instance.closeToast;\n      delete instance.rejectPromise;\n      delete instance.update;\n      delete instance._destroy;\n    }\n  };\n\n  /**\n   * @param {object} obj\n   * @param {SweetAlert} instance\n   */\n  const unsetWeakMaps = (obj, instance) => {\n    for (const i in obj) {\n      obj[i].delete(instance);\n    }\n  };\n  var instanceMethods = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    _destroy: _destroy,\n    close: close,\n    closeModal: close,\n    closePopup: close,\n    closeToast: close,\n    disableButtons: disableButtons,\n    disableInput: disableInput,\n    disableLoading: hideLoading,\n    enableButtons: enableButtons,\n    enableInput: enableInput,\n    getInput: getInput,\n    handleAwaitingPromise: handleAwaitingPromise,\n    hideLoading: hideLoading,\n    rejectPromise: rejectPromise,\n    resetValidationMessage: resetValidationMessage,\n    showValidationMessage: showValidationMessage,\n    update: update\n  });\n\n  /**\n   * @param {SweetAlertOptions} innerParams\n   * @param {DomCache} domCache\n   * @param {Function} dismissWith\n   */\n  const handlePopupClick = (innerParams, domCache, dismissWith) => {\n    if (innerParams.toast) {\n      handleToastClick(innerParams, domCache, dismissWith);\n    } else {\n      // Ignore click events that had mousedown on the popup but mouseup on the container\n      // This can happen when the user drags a slider\n      handleModalMousedown(domCache);\n\n      // Ignore click events that had mousedown on the container but mouseup on the popup\n      handleContainerMousedown(domCache);\n      handleModalClick(innerParams, domCache, dismissWith);\n    }\n  };\n\n  /**\n   * @param {SweetAlertOptions} innerParams\n   * @param {DomCache} domCache\n   * @param {Function} dismissWith\n   */\n  const handleToastClick = (innerParams, domCache, dismissWith) => {\n    // Closing toast by internal click\n    domCache.popup.onclick = () => {\n      if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n        return;\n      }\n      dismissWith(DismissReason.close);\n    };\n  };\n\n  /**\n   * @param {SweetAlertOptions} innerParams\n   * @returns {boolean}\n   */\n  const isAnyButtonShown = innerParams => {\n    return !!(innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton);\n  };\n  let ignoreOutsideClick = false;\n\n  /**\n   * @param {DomCache} domCache\n   */\n  const handleModalMousedown = domCache => {\n    domCache.popup.onmousedown = () => {\n      domCache.container.onmouseup = function (e) {\n        domCache.container.onmouseup = () => {};\n        // We only check if the mouseup target is the container because usually it doesn't\n        // have any other direct children aside of the popup\n        if (e.target === domCache.container) {\n          ignoreOutsideClick = true;\n        }\n      };\n    };\n  };\n\n  /**\n   * @param {DomCache} domCache\n   */\n  const handleContainerMousedown = domCache => {\n    domCache.container.onmousedown = e => {\n      // prevent the modal text from being selected on double click on the container (allowOutsideClick: false)\n      if (e.target === domCache.container) {\n        e.preventDefault();\n      }\n      domCache.popup.onmouseup = function (e) {\n        domCache.popup.onmouseup = () => {};\n        // We also need to check if the mouseup target is a child of the popup\n        if (e.target === domCache.popup || e.target instanceof HTMLElement && domCache.popup.contains(e.target)) {\n          ignoreOutsideClick = true;\n        }\n      };\n    };\n  };\n\n  /**\n   * @param {SweetAlertOptions} innerParams\n   * @param {DomCache} domCache\n   * @param {Function} dismissWith\n   */\n  const handleModalClick = (innerParams, domCache, dismissWith) => {\n    domCache.container.onclick = e => {\n      if (ignoreOutsideClick) {\n        ignoreOutsideClick = false;\n        return;\n      }\n      if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n        dismissWith(DismissReason.backdrop);\n      }\n    };\n  };\n  const isJqueryElement = elem => typeof elem === 'object' && elem.jquery;\n  const isElement = elem => elem instanceof Element || isJqueryElement(elem);\n  const argsToParams = args => {\n    const params = {};\n    if (typeof args[0] === 'object' && !isElement(args[0])) {\n      Object.assign(params, args[0]);\n    } else {\n      ['title', 'html', 'icon'].forEach((name, index) => {\n        const arg = args[index];\n        if (typeof arg === 'string' || isElement(arg)) {\n          params[name] = arg;\n        } else if (arg !== undefined) {\n          error(`Unexpected type of ${name}! Expected \"string\" or \"Element\", got ${typeof arg}`);\n        }\n      });\n    }\n    return params;\n  };\n\n  /**\n   * Main method to create a new SweetAlert2 popup\n   *\n   * @param  {...SweetAlertOptions} args\n   * @returns {Promise<SweetAlertResult>}\n   */\n  function fire(...args) {\n    return new this(...args);\n  }\n\n  /**\n   * Returns an extended version of `Swal` containing `params` as defaults.\n   * Useful for reusing Swal configuration.\n   *\n   * For example:\n   *\n   * Before:\n   * const textPromptOptions = { input: 'text', showCancelButton: true }\n   * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n   * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n   *\n   * After:\n   * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n   * const {value: firstName} = await TextPrompt('What is your first name?')\n   * const {value: lastName} = await TextPrompt('What is your last name?')\n   *\n   * @param {SweetAlertOptions} mixinParams\n   * @returns {SweetAlert}\n   */\n  function mixin(mixinParams) {\n    class MixinSwal extends this {\n      _main(params, priorityMixinParams) {\n        return super._main(params, Object.assign({}, mixinParams, priorityMixinParams));\n      }\n    }\n    // @ts-ignore\n    return MixinSwal;\n  }\n\n  /**\n   * If `timer` parameter is set, returns number of milliseconds of timer remained.\n   * Otherwise, returns undefined.\n   *\n   * @returns {number | undefined}\n   */\n  const getTimerLeft = () => {\n    return globalState.timeout && globalState.timeout.getTimerLeft();\n  };\n\n  /**\n   * Stop timer. Returns number of milliseconds of timer remained.\n   * If `timer` parameter isn't set, returns undefined.\n   *\n   * @returns {number | undefined}\n   */\n  const stopTimer = () => {\n    if (globalState.timeout) {\n      stopTimerProgressBar();\n      return globalState.timeout.stop();\n    }\n  };\n\n  /**\n   * Resume timer. Returns number of milliseconds of timer remained.\n   * If `timer` parameter isn't set, returns undefined.\n   *\n   * @returns {number | undefined}\n   */\n  const resumeTimer = () => {\n    if (globalState.timeout) {\n      const remaining = globalState.timeout.start();\n      animateTimerProgressBar(remaining);\n      return remaining;\n    }\n  };\n\n  /**\n   * Resume timer. Returns number of milliseconds of timer remained.\n   * If `timer` parameter isn't set, returns undefined.\n   *\n   * @returns {number | undefined}\n   */\n  const toggleTimer = () => {\n    const timer = globalState.timeout;\n    return timer && (timer.running ? stopTimer() : resumeTimer());\n  };\n\n  /**\n   * Increase timer. Returns number of milliseconds of an updated timer.\n   * If `timer` parameter isn't set, returns undefined.\n   *\n   * @param {number} ms\n   * @returns {number | undefined}\n   */\n  const increaseTimer = ms => {\n    if (globalState.timeout) {\n      const remaining = globalState.timeout.increase(ms);\n      animateTimerProgressBar(remaining, true);\n      return remaining;\n    }\n  };\n\n  /**\n   * Check if timer is running. Returns true if timer is running\n   * or false if timer is paused or stopped.\n   * If `timer` parameter isn't set, returns undefined\n   *\n   * @returns {boolean}\n   */\n  const isTimerRunning = () => {\n    return !!(globalState.timeout && globalState.timeout.isRunning());\n  };\n  let bodyClickListenerAdded = false;\n  const clickHandlers = {};\n\n  /**\n   * @param {string} attr\n   */\n  function bindClickHandler(attr = 'data-swal-template') {\n    clickHandlers[attr] = this;\n    if (!bodyClickListenerAdded) {\n      document.body.addEventListener('click', bodyClickListener);\n      bodyClickListenerAdded = true;\n    }\n  }\n  const bodyClickListener = event => {\n    for (let el = event.target; el && el !== document; el = el.parentNode) {\n      for (const attr in clickHandlers) {\n        const template = el.getAttribute(attr);\n        if (template) {\n          clickHandlers[attr].fire({\n            template\n          });\n          return;\n        }\n      }\n    }\n  };\n\n  // Source: https://gist.github.com/mudge/5830382?permalink_comment_id=2691957#gistcomment-2691957\n\n  class EventEmitter {\n    constructor() {\n      /** @type {Events} */\n      this.events = {};\n    }\n\n    /**\n     * @param {string} eventName\n     * @returns {EventHandlers}\n     */\n    _getHandlersByEventName(eventName) {\n      if (typeof this.events[eventName] === 'undefined') {\n        // not Set because we need to keep the FIFO order\n        // https://github.com/sweetalert2/sweetalert2/pull/2763#discussion_r1748990334\n        this.events[eventName] = [];\n      }\n      return this.events[eventName];\n    }\n\n    /**\n     * @param {string} eventName\n     * @param {EventHandler} eventHandler\n     */\n    on(eventName, eventHandler) {\n      const currentHandlers = this._getHandlersByEventName(eventName);\n      if (!currentHandlers.includes(eventHandler)) {\n        currentHandlers.push(eventHandler);\n      }\n    }\n\n    /**\n     * @param {string} eventName\n     * @param {EventHandler} eventHandler\n     */\n    once(eventName, eventHandler) {\n      /**\n       * @param {Array} args\n       */\n      const onceFn = (...args) => {\n        this.removeListener(eventName, onceFn);\n        eventHandler.apply(this, args);\n      };\n      this.on(eventName, onceFn);\n    }\n\n    /**\n     * @param {string} eventName\n     * @param {Array} args\n     */\n    emit(eventName, ...args) {\n      this._getHandlersByEventName(eventName).forEach(\n      /**\n       * @param {EventHandler} eventHandler\n       */\n      eventHandler => {\n        try {\n          eventHandler.apply(this, args);\n        } catch (error) {\n          console.error(error);\n        }\n      });\n    }\n\n    /**\n     * @param {string} eventName\n     * @param {EventHandler} eventHandler\n     */\n    removeListener(eventName, eventHandler) {\n      const currentHandlers = this._getHandlersByEventName(eventName);\n      const index = currentHandlers.indexOf(eventHandler);\n      if (index > -1) {\n        currentHandlers.splice(index, 1);\n      }\n    }\n\n    /**\n     * @param {string} eventName\n     */\n    removeAllListeners(eventName) {\n      if (this.events[eventName] !== undefined) {\n        // https://github.com/sweetalert2/sweetalert2/pull/2763#discussion_r1749239222\n        this.events[eventName].length = 0;\n      }\n    }\n    reset() {\n      this.events = {};\n    }\n  }\n  globalState.eventEmitter = new EventEmitter();\n\n  /**\n   * @param {string} eventName\n   * @param {EventHandler} eventHandler\n   */\n  const on = (eventName, eventHandler) => {\n    globalState.eventEmitter.on(eventName, eventHandler);\n  };\n\n  /**\n   * @param {string} eventName\n   * @param {EventHandler} eventHandler\n   */\n  const once = (eventName, eventHandler) => {\n    globalState.eventEmitter.once(eventName, eventHandler);\n  };\n\n  /**\n   * @param {string} [eventName]\n   * @param {EventHandler} [eventHandler]\n   */\n  const off = (eventName, eventHandler) => {\n    // Remove all handlers for all events\n    if (!eventName) {\n      globalState.eventEmitter.reset();\n      return;\n    }\n    if (eventHandler) {\n      // Remove a specific handler\n      globalState.eventEmitter.removeListener(eventName, eventHandler);\n    } else {\n      // Remove all handlers for a specific event\n      globalState.eventEmitter.removeAllListeners(eventName);\n    }\n  };\n  var staticMethods = /*#__PURE__*/Object.freeze({\n    __proto__: null,\n    argsToParams: argsToParams,\n    bindClickHandler: bindClickHandler,\n    clickCancel: clickCancel,\n    clickConfirm: clickConfirm,\n    clickDeny: clickDeny,\n    enableLoading: showLoading,\n    fire: fire,\n    getActions: getActions,\n    getCancelButton: getCancelButton,\n    getCloseButton: getCloseButton,\n    getConfirmButton: getConfirmButton,\n    getContainer: getContainer,\n    getDenyButton: getDenyButton,\n    getFocusableElements: getFocusableElements,\n    getFooter: getFooter,\n    getHtmlContainer: getHtmlContainer,\n    getIcon: getIcon,\n    getIconContent: getIconContent,\n    getImage: getImage,\n    getInputLabel: getInputLabel,\n    getLoader: getLoader,\n    getPopup: getPopup,\n    getProgressSteps: getProgressSteps,\n    getTimerLeft: getTimerLeft,\n    getTimerProgressBar: getTimerProgressBar,\n    getTitle: getTitle,\n    getValidationMessage: getValidationMessage,\n    increaseTimer: increaseTimer,\n    isDeprecatedParameter: isDeprecatedParameter,\n    isLoading: isLoading,\n    isTimerRunning: isTimerRunning,\n    isUpdatableParameter: isUpdatableParameter,\n    isValidParameter: isValidParameter,\n    isVisible: isVisible,\n    mixin: mixin,\n    off: off,\n    on: on,\n    once: once,\n    resumeTimer: resumeTimer,\n    showLoading: showLoading,\n    stopTimer: stopTimer,\n    toggleTimer: toggleTimer\n  });\n  class Timer {\n    /**\n     * @param {Function} callback\n     * @param {number} delay\n     */\n    constructor(callback, delay) {\n      this.callback = callback;\n      this.remaining = delay;\n      this.running = false;\n      this.start();\n    }\n\n    /**\n     * @returns {number}\n     */\n    start() {\n      if (!this.running) {\n        this.running = true;\n        this.started = new Date();\n        this.id = setTimeout(this.callback, this.remaining);\n      }\n      return this.remaining;\n    }\n\n    /**\n     * @returns {number}\n     */\n    stop() {\n      if (this.started && this.running) {\n        this.running = false;\n        clearTimeout(this.id);\n        this.remaining -= new Date().getTime() - this.started.getTime();\n      }\n      return this.remaining;\n    }\n\n    /**\n     * @param {number} n\n     * @returns {number}\n     */\n    increase(n) {\n      const running = this.running;\n      if (running) {\n        this.stop();\n      }\n      this.remaining += n;\n      if (running) {\n        this.start();\n      }\n      return this.remaining;\n    }\n\n    /**\n     * @returns {number}\n     */\n    getTimerLeft() {\n      if (this.running) {\n        this.stop();\n        this.start();\n      }\n      return this.remaining;\n    }\n\n    /**\n     * @returns {boolean}\n     */\n    isRunning() {\n      return this.running;\n    }\n  }\n  const swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n\n  /**\n   * @param {SweetAlertOptions} params\n   * @returns {SweetAlertOptions}\n   */\n  const getTemplateParams = params => {\n    const template = typeof params.template === 'string' ? (/** @type {HTMLTemplateElement} */document.querySelector(params.template)) : params.template;\n    if (!template) {\n      return {};\n    }\n    /** @type {DocumentFragment} */\n    const templateContent = template.content;\n    showWarningsForElements(templateContent);\n    const result = Object.assign(getSwalParams(templateContent), getSwalFunctionParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n    return result;\n  };\n\n  /**\n   * @param {DocumentFragment} templateContent\n   * @returns {Record<string, any>}\n   */\n  const getSwalParams = templateContent => {\n    /** @type {Record<string, any>} */\n    const result = {};\n    /** @type {HTMLElement[]} */\n    const swalParams = Array.from(templateContent.querySelectorAll('swal-param'));\n    swalParams.forEach(param => {\n      showWarningsForAttributes(param, ['name', 'value']);\n      const paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');\n      const value = param.getAttribute('value');\n      if (!paramName || !value) {\n        return;\n      }\n      if (typeof defaultParams[paramName] === 'boolean') {\n        result[paramName] = value !== 'false';\n      } else if (typeof defaultParams[paramName] === 'object') {\n        result[paramName] = JSON.parse(value);\n      } else {\n        result[paramName] = value;\n      }\n    });\n    return result;\n  };\n\n  /**\n   * @param {DocumentFragment} templateContent\n   * @returns {Record<string, any>}\n   */\n  const getSwalFunctionParams = templateContent => {\n    /** @type {Record<string, any>} */\n    const result = {};\n    /** @type {HTMLElement[]} */\n    const swalFunctions = Array.from(templateContent.querySelectorAll('swal-function-param'));\n    swalFunctions.forEach(param => {\n      const paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');\n      const value = param.getAttribute('value');\n      if (!paramName || !value) {\n        return;\n      }\n      result[paramName] = new Function(`return ${value}`)();\n    });\n    return result;\n  };\n\n  /**\n   * @param {DocumentFragment} templateContent\n   * @returns {Record<string, any>}\n   */\n  const getSwalButtons = templateContent => {\n    /** @type {Record<string, any>} */\n    const result = {};\n    /** @type {HTMLElement[]} */\n    const swalButtons = Array.from(templateContent.querySelectorAll('swal-button'));\n    swalButtons.forEach(button => {\n      showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n      const type = button.getAttribute('type');\n      if (!type || !['confirm', 'cancel', 'deny'].includes(type)) {\n        return;\n      }\n      result[`${type}ButtonText`] = button.innerHTML;\n      result[`show${capitalizeFirstLetter(type)}Button`] = true;\n      if (button.hasAttribute('color')) {\n        result[`${type}ButtonColor`] = button.getAttribute('color');\n      }\n      if (button.hasAttribute('aria-label')) {\n        result[`${type}ButtonAriaLabel`] = button.getAttribute('aria-label');\n      }\n    });\n    return result;\n  };\n\n  /**\n   * @param {DocumentFragment} templateContent\n   * @returns {Pick<SweetAlertOptions, 'imageUrl' | 'imageWidth' | 'imageHeight' | 'imageAlt'>}\n   */\n  const getSwalImage = templateContent => {\n    const result = {};\n    /** @type {HTMLElement | null} */\n    const image = templateContent.querySelector('swal-image');\n    if (image) {\n      showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n      if (image.hasAttribute('src')) {\n        result.imageUrl = image.getAttribute('src') || undefined;\n      }\n      if (image.hasAttribute('width')) {\n        result.imageWidth = image.getAttribute('width') || undefined;\n      }\n      if (image.hasAttribute('height')) {\n        result.imageHeight = image.getAttribute('height') || undefined;\n      }\n      if (image.hasAttribute('alt')) {\n        result.imageAlt = image.getAttribute('alt') || undefined;\n      }\n    }\n    return result;\n  };\n\n  /**\n   * @param {DocumentFragment} templateContent\n   * @returns {Record<string, any>}\n   */\n  const getSwalIcon = templateContent => {\n    const result = {};\n    /** @type {HTMLElement | null} */\n    const icon = templateContent.querySelector('swal-icon');\n    if (icon) {\n      showWarningsForAttributes(icon, ['type', 'color']);\n      if (icon.hasAttribute('type')) {\n        result.icon = icon.getAttribute('type');\n      }\n      if (icon.hasAttribute('color')) {\n        result.iconColor = icon.getAttribute('color');\n      }\n      result.iconHtml = icon.innerHTML;\n    }\n    return result;\n  };\n\n  /**\n   * @param {DocumentFragment} templateContent\n   * @returns {Record<string, any>}\n   */\n  const getSwalInput = templateContent => {\n    /** @type {Record<string, any>} */\n    const result = {};\n    /** @type {HTMLElement | null} */\n    const input = templateContent.querySelector('swal-input');\n    if (input) {\n      showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n      result.input = input.getAttribute('type') || 'text';\n      if (input.hasAttribute('label')) {\n        result.inputLabel = input.getAttribute('label');\n      }\n      if (input.hasAttribute('placeholder')) {\n        result.inputPlaceholder = input.getAttribute('placeholder');\n      }\n      if (input.hasAttribute('value')) {\n        result.inputValue = input.getAttribute('value');\n      }\n    }\n    /** @type {HTMLElement[]} */\n    const inputOptions = Array.from(templateContent.querySelectorAll('swal-input-option'));\n    if (inputOptions.length) {\n      result.inputOptions = {};\n      inputOptions.forEach(option => {\n        showWarningsForAttributes(option, ['value']);\n        const optionValue = option.getAttribute('value');\n        if (!optionValue) {\n          return;\n        }\n        const optionName = option.innerHTML;\n        result.inputOptions[optionValue] = optionName;\n      });\n    }\n    return result;\n  };\n\n  /**\n   * @param {DocumentFragment} templateContent\n   * @param {string[]} paramNames\n   * @returns {Record<string, any>}\n   */\n  const getSwalStringParams = (templateContent, paramNames) => {\n    /** @type {Record<string, any>} */\n    const result = {};\n    for (const i in paramNames) {\n      const paramName = paramNames[i];\n      /** @type {HTMLElement | null} */\n      const tag = templateContent.querySelector(paramName);\n      if (tag) {\n        showWarningsForAttributes(tag, []);\n        result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n      }\n    }\n    return result;\n  };\n\n  /**\n   * @param {DocumentFragment} templateContent\n   */\n  const showWarningsForElements = templateContent => {\n    const allowedElements = swalStringParams.concat(['swal-param', 'swal-function-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n    Array.from(templateContent.children).forEach(el => {\n      const tagName = el.tagName.toLowerCase();\n      if (!allowedElements.includes(tagName)) {\n        warn(`Unrecognized element <${tagName}>`);\n      }\n    });\n  };\n\n  /**\n   * @param {HTMLElement} el\n   * @param {string[]} allowedAttributes\n   */\n  const showWarningsForAttributes = (el, allowedAttributes) => {\n    Array.from(el.attributes).forEach(attribute => {\n      if (allowedAttributes.indexOf(attribute.name) === -1) {\n        warn([`Unrecognized attribute \"${attribute.name}\" on <${el.tagName.toLowerCase()}>.`, `${allowedAttributes.length ? `Allowed attributes are: ${allowedAttributes.join(', ')}` : 'To set the value, use HTML within the element.'}`]);\n      }\n    });\n  };\n  const SHOW_CLASS_TIMEOUT = 10;\n\n  /**\n   * Open popup, add necessary classes and styles, fix scrollbar\n   *\n   * @param {SweetAlertOptions} params\n   */\n  const openPopup = params => {\n    const container = getContainer();\n    const popup = getPopup();\n    if (typeof params.willOpen === 'function') {\n      params.willOpen(popup);\n    }\n    globalState.eventEmitter.emit('willOpen', popup);\n    const bodyStyles = window.getComputedStyle(document.body);\n    const initialBodyOverflow = bodyStyles.overflowY;\n    addClasses(container, popup, params);\n\n    // scrolling is 'hidden' until animation is done, after that 'auto'\n    setTimeout(() => {\n      setScrollingVisibility(container, popup);\n    }, SHOW_CLASS_TIMEOUT);\n    if (isModal()) {\n      fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n      setAriaHidden();\n    }\n    if (!isToast() && !globalState.previousActiveElement) {\n      globalState.previousActiveElement = document.activeElement;\n    }\n    if (typeof params.didOpen === 'function') {\n      setTimeout(() => params.didOpen(popup));\n    }\n    globalState.eventEmitter.emit('didOpen', popup);\n    removeClass(container, swalClasses['no-transition']);\n  };\n\n  /**\n   * @param {AnimationEvent} event\n   */\n  const swalOpenAnimationFinished = event => {\n    const popup = getPopup();\n    if (event.target !== popup) {\n      return;\n    }\n    const container = getContainer();\n    popup.removeEventListener('animationend', swalOpenAnimationFinished);\n    popup.removeEventListener('transitionend', swalOpenAnimationFinished);\n    container.style.overflowY = 'auto';\n  };\n\n  /**\n   * @param {HTMLElement} container\n   * @param {HTMLElement} popup\n   */\n  const setScrollingVisibility = (container, popup) => {\n    if (hasCssAnimation(popup)) {\n      container.style.overflowY = 'hidden';\n      popup.addEventListener('animationend', swalOpenAnimationFinished);\n      popup.addEventListener('transitionend', swalOpenAnimationFinished);\n    } else {\n      container.style.overflowY = 'auto';\n    }\n  };\n\n  /**\n   * @param {HTMLElement} container\n   * @param {boolean} scrollbarPadding\n   * @param {string} initialBodyOverflow\n   */\n  const fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {\n    iOSfix();\n    if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n      replaceScrollbarWithPadding(initialBodyOverflow);\n    }\n\n    // sweetalert2/issues/1247\n    setTimeout(() => {\n      container.scrollTop = 0;\n    });\n  };\n\n  /**\n   * @param {HTMLElement} container\n   * @param {HTMLElement} popup\n   * @param {SweetAlertOptions} params\n   */\n  const addClasses = (container, popup, params) => {\n    addClass(container, params.showClass.backdrop);\n    if (params.animation) {\n      // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n      popup.style.setProperty('opacity', '0', 'important');\n      show(popup, 'grid');\n      setTimeout(() => {\n        // Animate popup right after showing it\n        addClass(popup, params.showClass.popup);\n        // and remove the opacity workaround\n        popup.style.removeProperty('opacity');\n      }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n    } else {\n      show(popup, 'grid');\n    }\n    addClass([document.documentElement, document.body], swalClasses.shown);\n    if (params.heightAuto && params.backdrop && !params.toast) {\n      addClass([document.documentElement, document.body], swalClasses['height-auto']);\n    }\n  };\n  var defaultInputValidators = {\n    /**\n     * @param {string} string\n     * @param {string} [validationMessage]\n     * @returns {Promise<string | void>}\n     */\n    email: (string, validationMessage) => {\n      return /^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]+$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n    },\n    /**\n     * @param {string} string\n     * @param {string} [validationMessage]\n     * @returns {Promise<string | void>}\n     */\n    url: (string, validationMessage) => {\n      // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n      return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n    }\n  };\n\n  /**\n   * @param {SweetAlertOptions} params\n   */\n  function setDefaultInputValidators(params) {\n    // Use default `inputValidator` for supported input types if not provided\n    if (params.inputValidator) {\n      return;\n    }\n    if (params.input === 'email') {\n      params.inputValidator = defaultInputValidators['email'];\n    }\n    if (params.input === 'url') {\n      params.inputValidator = defaultInputValidators['url'];\n    }\n  }\n\n  /**\n   * @param {SweetAlertOptions} params\n   */\n  function validateCustomTargetElement(params) {\n    // Determine if the custom target element is valid\n    if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n      warn('Target parameter is not valid, defaulting to \"body\"');\n      params.target = 'body';\n    }\n  }\n\n  /**\n   * Set type, text and actions on popup\n   *\n   * @param {SweetAlertOptions} params\n   */\n  function setParameters(params) {\n    setDefaultInputValidators(params);\n\n    // showLoaderOnConfirm && preConfirm\n    if (params.showLoaderOnConfirm && !params.preConfirm) {\n      warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n    }\n    validateCustomTargetElement(params);\n\n    // Replace newlines with <br> in title\n    if (typeof params.title === 'string') {\n      params.title = params.title.split('\\n').join('<br />');\n    }\n    init(params);\n  }\n\n  /** @type {SweetAlert} */\n  let currentInstance;\n  var _promise = /*#__PURE__*/new WeakMap();\n  class SweetAlert {\n    /**\n     * @param {...any} args\n     * @this {SweetAlert}\n     */\n    constructor(...args) {\n      /**\n       * @type {Promise<SweetAlertResult>}\n       */\n      _classPrivateFieldInitSpec(this, _promise, void 0);\n      // Prevent run in Node env\n      if (typeof window === 'undefined') {\n        return;\n      }\n      currentInstance = this;\n\n      // @ts-ignore\n      const outerParams = Object.freeze(this.constructor.argsToParams(args));\n\n      /** @type {Readonly<SweetAlertOptions>} */\n      this.params = outerParams;\n\n      /** @type {boolean} */\n      this.isAwaitingPromise = false;\n      _classPrivateFieldSet2(_promise, this, this._main(currentInstance.params));\n    }\n    _main(userParams, mixinParams = {}) {\n      showWarningsForParams(Object.assign({}, mixinParams, userParams));\n      if (globalState.currentInstance) {\n        const swalPromiseResolve = privateMethods.swalPromiseResolve.get(globalState.currentInstance);\n        const {\n          isAwaitingPromise\n        } = globalState.currentInstance;\n        globalState.currentInstance._destroy();\n        if (!isAwaitingPromise) {\n          swalPromiseResolve({\n            isDismissed: true\n          });\n        }\n        if (isModal()) {\n          unsetAriaHidden();\n        }\n      }\n      globalState.currentInstance = currentInstance;\n      const innerParams = prepareParams(userParams, mixinParams);\n      setParameters(innerParams);\n      Object.freeze(innerParams);\n\n      // clear the previous timer\n      if (globalState.timeout) {\n        globalState.timeout.stop();\n        delete globalState.timeout;\n      }\n\n      // clear the restore focus timeout\n      clearTimeout(globalState.restoreFocusTimeout);\n      const domCache = populateDomCache(currentInstance);\n      render(currentInstance, innerParams);\n      privateProps.innerParams.set(currentInstance, innerParams);\n      return swalPromise(currentInstance, domCache, innerParams);\n    }\n\n    // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n    then(onFulfilled) {\n      return _classPrivateFieldGet2(_promise, this).then(onFulfilled);\n    }\n    finally(onFinally) {\n      return _classPrivateFieldGet2(_promise, this).finally(onFinally);\n    }\n  }\n\n  /**\n   * @param {SweetAlert} instance\n   * @param {DomCache} domCache\n   * @param {SweetAlertOptions} innerParams\n   * @returns {Promise}\n   */\n  const swalPromise = (instance, domCache, innerParams) => {\n    return new Promise((resolve, reject) => {\n      // functions to handle all closings/dismissals\n      /**\n       * @param {DismissReason} dismiss\n       */\n      const dismissWith = dismiss => {\n        instance.close({\n          isDismissed: true,\n          dismiss\n        });\n      };\n      privateMethods.swalPromiseResolve.set(instance, resolve);\n      privateMethods.swalPromiseReject.set(instance, reject);\n      domCache.confirmButton.onclick = () => {\n        handleConfirmButtonClick(instance);\n      };\n      domCache.denyButton.onclick = () => {\n        handleDenyButtonClick(instance);\n      };\n      domCache.cancelButton.onclick = () => {\n        handleCancelButtonClick(instance, dismissWith);\n      };\n      domCache.closeButton.onclick = () => {\n        dismissWith(DismissReason.close);\n      };\n      handlePopupClick(innerParams, domCache, dismissWith);\n      addKeydownHandler(globalState, innerParams, dismissWith);\n      handleInputOptionsAndValue(instance, innerParams);\n      openPopup(innerParams);\n      setupTimer(globalState, innerParams, dismissWith);\n      initFocus(domCache, innerParams);\n\n      // Scroll container to top on open (#1247, #1946)\n      setTimeout(() => {\n        domCache.container.scrollTop = 0;\n      });\n    });\n  };\n\n  /**\n   * @param {SweetAlertOptions} userParams\n   * @param {SweetAlertOptions} mixinParams\n   * @returns {SweetAlertOptions}\n   */\n  const prepareParams = (userParams, mixinParams) => {\n    const templateParams = getTemplateParams(userParams);\n    const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n    params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n    params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n    if (params.animation === false) {\n      params.showClass = {\n        backdrop: 'swal2-noanimation'\n      };\n      params.hideClass = {};\n    }\n    return params;\n  };\n\n  /**\n   * @param {SweetAlert} instance\n   * @returns {DomCache}\n   */\n  const populateDomCache = instance => {\n    const domCache = {\n      popup: getPopup(),\n      container: getContainer(),\n      actions: getActions(),\n      confirmButton: getConfirmButton(),\n      denyButton: getDenyButton(),\n      cancelButton: getCancelButton(),\n      loader: getLoader(),\n      closeButton: getCloseButton(),\n      validationMessage: getValidationMessage(),\n      progressSteps: getProgressSteps()\n    };\n    privateProps.domCache.set(instance, domCache);\n    return domCache;\n  };\n\n  /**\n   * @param {GlobalState} globalState\n   * @param {SweetAlertOptions} innerParams\n   * @param {Function} dismissWith\n   */\n  const setupTimer = (globalState, innerParams, dismissWith) => {\n    const timerProgressBar = getTimerProgressBar();\n    hide(timerProgressBar);\n    if (innerParams.timer) {\n      globalState.timeout = new Timer(() => {\n        dismissWith('timer');\n        delete globalState.timeout;\n      }, innerParams.timer);\n      if (innerParams.timerProgressBar) {\n        show(timerProgressBar);\n        applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');\n        setTimeout(() => {\n          if (globalState.timeout && globalState.timeout.running) {\n            // timer can be already stopped or unset at this point\n            animateTimerProgressBar(innerParams.timer);\n          }\n        });\n      }\n    }\n  };\n\n  /**\n   * Initialize focus in the popup:\n   *\n   * 1. If `toast` is `true`, don't steal focus from the document.\n   * 2. Else if there is an [autofocus] element, focus it.\n   * 3. Else if `focusConfirm` is `true` and confirm button is visible, focus it.\n   * 4. Else if `focusDeny` is `true` and deny button is visible, focus it.\n   * 5. Else if `focusCancel` is `true` and cancel button is visible, focus it.\n   * 6. Else focus the first focusable element in a popup (if any).\n   *\n   * @param {DomCache} domCache\n   * @param {SweetAlertOptions} innerParams\n   */\n  const initFocus = (domCache, innerParams) => {\n    if (innerParams.toast) {\n      return;\n    }\n    // TODO: this is dumb, remove `allowEnterKey` param in the next major version\n    if (!callIfFunction(innerParams.allowEnterKey)) {\n      warnAboutDeprecation('allowEnterKey');\n      blurActiveElement();\n      return;\n    }\n    if (focusAutofocus(domCache)) {\n      return;\n    }\n    if (focusButton(domCache, innerParams)) {\n      return;\n    }\n    setFocus(-1, 1);\n  };\n\n  /**\n   * @param {DomCache} domCache\n   * @returns {boolean}\n   */\n  const focusAutofocus = domCache => {\n    const autofocusElements = Array.from(domCache.popup.querySelectorAll('[autofocus]'));\n    for (const autofocusElement of autofocusElements) {\n      if (autofocusElement instanceof HTMLElement && isVisible$1(autofocusElement)) {\n        autofocusElement.focus();\n        return true;\n      }\n    }\n    return false;\n  };\n\n  /**\n   * @param {DomCache} domCache\n   * @param {SweetAlertOptions} innerParams\n   * @returns {boolean}\n   */\n  const focusButton = (domCache, innerParams) => {\n    if (innerParams.focusDeny && isVisible$1(domCache.denyButton)) {\n      domCache.denyButton.focus();\n      return true;\n    }\n    if (innerParams.focusCancel && isVisible$1(domCache.cancelButton)) {\n      domCache.cancelButton.focus();\n      return true;\n    }\n    if (innerParams.focusConfirm && isVisible$1(domCache.confirmButton)) {\n      domCache.confirmButton.focus();\n      return true;\n    }\n    return false;\n  };\n  const blurActiveElement = () => {\n    if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n      document.activeElement.blur();\n    }\n  };\n\n  // Dear russian users visiting russian sites. Let's have fun.\n  if (typeof window !== 'undefined' && /^ru\\b/.test(navigator.language) && location.host.match(/\\.(ru|su|by|xn--p1ai)$/)) {\n    const now = new Date();\n    const initiationDate = localStorage.getItem('swal-initiation');\n    if (!initiationDate) {\n      localStorage.setItem('swal-initiation', `${now}`);\n    } else if ((now.getTime() - Date.parse(initiationDate)) / (1000 * 60 * 60 * 24) > 3) {\n      setTimeout(() => {\n        document.body.style.pointerEvents = 'none';\n        const ukrainianAnthem = document.createElement('audio');\n        ukrainianAnthem.src = 'https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3';\n        ukrainianAnthem.loop = true;\n        document.body.appendChild(ukrainianAnthem);\n        setTimeout(() => {\n          ukrainianAnthem.play().catch(() => {\n            // ignore\n          });\n        }, 2500);\n      }, 500);\n    }\n  }\n\n  // Assign instance methods from src/instanceMethods/*.js to prototype\n  SweetAlert.prototype.disableButtons = disableButtons;\n  SweetAlert.prototype.enableButtons = enableButtons;\n  SweetAlert.prototype.getInput = getInput;\n  SweetAlert.prototype.disableInput = disableInput;\n  SweetAlert.prototype.enableInput = enableInput;\n  SweetAlert.prototype.hideLoading = hideLoading;\n  SweetAlert.prototype.disableLoading = hideLoading;\n  SweetAlert.prototype.showValidationMessage = showValidationMessage;\n  SweetAlert.prototype.resetValidationMessage = resetValidationMessage;\n  SweetAlert.prototype.close = close;\n  SweetAlert.prototype.closePopup = close;\n  SweetAlert.prototype.closeModal = close;\n  SweetAlert.prototype.closeToast = close;\n  SweetAlert.prototype.rejectPromise = rejectPromise;\n  SweetAlert.prototype.update = update;\n  SweetAlert.prototype._destroy = _destroy;\n\n  // Assign static methods from src/staticMethods/*.js to constructor\n  Object.assign(SweetAlert, staticMethods);\n\n  // Proxy to instance methods to constructor, for now, for backwards compatibility\n  Object.keys(instanceMethods).forEach(key => {\n    /**\n     * @param {...any} args\n     * @returns {any | undefined}\n     */\n    SweetAlert[key] = function (...args) {\n      if (currentInstance && currentInstance[key]) {\n        return currentInstance[key](...args);\n      }\n      return null;\n    };\n  });\n  SweetAlert.DismissReason = DismissReason;\n  SweetAlert.version = '11.22.2';\n  const Swal = SweetAlert;\n  // @ts-ignore\n  Swal.default = Swal;\n  return Swal;\n});\nif (typeof this !== 'undefined' && this.Sweetalert2) {\n  this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2;\n}\n\"undefined\" != typeof document && function (e, t) {\n  var n = e.createElement(\"style\");\n  if (e.getElementsByTagName(\"head\")[0].appendChild(n), n.styleSheet) n.styleSheet.disabled || (n.styleSheet.cssText = t);else try {\n    n.innerHTML = t;\n  } catch (e) {\n    n.innerText = t;\n  }\n}(document, \":root{--swal2-outline: 0 0 0 3px rgba(100, 150, 200, 0.5);--swal2-container-padding: 0.625em;--swal2-backdrop: rgba(0, 0, 0, 0.4);--swal2-backdrop-transition: background-color 0.1s;--swal2-width: 32em;--swal2-padding: 0 0 1.25em;--swal2-border: none;--swal2-border-radius: 0.3125rem;--swal2-background: white;--swal2-color: #545454;--swal2-show-animation: swal2-show 0.3s;--swal2-hide-animation: swal2-hide 0.15s forwards;--swal2-icon-zoom: 1;--swal2-icon-animations: true;--swal2-title-padding: 0.8em 1em 0;--swal2-html-container-padding: 1em 1.6em 0.3em;--swal2-input-border: 1px solid #d9d9d9;--swal2-input-border-radius: 0.1875em;--swal2-input-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;--swal2-input-background: transparent;--swal2-input-transition: border-color 0.2s, box-shadow 0.2s;--swal2-input-hover-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;--swal2-input-focus-border: 1px solid #b4dbed;--swal2-input-focus-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px $swal2-outline-color;--swal2-progress-step-background: #add8e6;--swal2-validation-message-background: #f0f0f0;--swal2-validation-message-color: #666;--swal2-footer-border-color: #eee;--swal2-footer-background: transparent;--swal2-footer-color: inherit;--swal2-close-button-position: initial;--swal2-close-button-inset: auto;--swal2-close-button-font-size: 2.5em;--swal2-close-button-color: #ccc;--swal2-close-button-transition: color 0.2s, box-shadow 0.2s;--swal2-close-button-outline: initial;--swal2-close-button-box-shadow: inset 0 0 0 3px transparent;--swal2-close-button-focus-box-shadow: inset var(--swal2-outline);--swal2-close-button-hover-transform: none;--swal2-actions-justify-content: center;--swal2-actions-width: auto;--swal2-actions-margin: 1.25em auto 0;--swal2-actions-padding: 0;--swal2-actions-border-radius: 0;--swal2-actions-background: transparent;--swal2-action-button-transition: background-color 0.2s, box-shadow 0.2s;--swal2-action-button-hover: black 10%;--swal2-action-button-active: black 10%;--swal2-confirm-button-box-shadow: none;--swal2-confirm-button-border-radius: 0.25em;--swal2-confirm-button-background-color: #7066e0;--swal2-confirm-button-color: #fff;--swal2-deny-button-box-shadow: none;--swal2-deny-button-border-radius: 0.25em;--swal2-deny-button-background-color: #dc3741;--swal2-deny-button-color: #fff;--swal2-cancel-button-box-shadow: none;--swal2-cancel-button-border-radius: 0.25em;--swal2-cancel-button-background-color: #6e7881;--swal2-cancel-button-color: #fff;--swal2-toast-show-animation: swal2-toast-show 0.5s;--swal2-toast-hide-animation: swal2-toast-hide 0.1s forwards;--swal2-toast-border: none;--swal2-toast-box-shadow: 0 0 1px hsl(0deg 0% 0% / 0.075), 0 1px 2px hsl(0deg 0% 0% / 0.075), 1px 2px 4px hsl(0deg 0% 0% / 0.075), 1px 3px 8px hsl(0deg 0% 0% / 0.075), 2px 4px 16px hsl(0deg 0% 0% / 0.075)}[data-swal2-theme=dark]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white)}@media(prefers-color-scheme: dark){[data-swal2-theme=auto]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white)}}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px var(--swal2-backdrop)}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}@media print{body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown) .swal2-container{position:static !important}}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:\\\"top-start     top            top-end\\\" \\\"center-start  center         center-end\\\" \\\"bottom-start  bottom-center  bottom-end\\\";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:var(--swal2-container-padding);overflow-x:hidden;transition:var(--swal2-backdrop-transition);-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:var(--swal2-backdrop)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container)[popover]{width:auto;border:0}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:var(--swal2-width);max-width:100%;padding:var(--swal2-padding);border:var(--swal2-border);border-radius:var(--swal2-border-radius);background:var(--swal2-background);color:var(--swal2-color);font-family:inherit;font-size:1rem;container-name:swal2-popup}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable{cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable div:where(.swal2-icon){cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging{cursor:grabbing}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging div:where(.swal2-icon){cursor:grabbing}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:var(--swal2-title-padding);color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word;cursor:initial}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:var(--swal2-actions-justify-content);width:var(--swal2-actions-width);margin:var(--swal2-actions-margin);padding:var(--swal2-actions-padding);border-radius:var(--swal2-actions-border-radius);background:var(--swal2-actions-background)}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:var(--swal2-action-button-transition);border:none;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border-radius:var(--swal2-confirm-button-border-radius);background:initial;background-color:var(--swal2-confirm-button-background-color);box-shadow:var(--swal2-confirm-button-box-shadow);color:var(--swal2-confirm-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):hover{background-color:color-mix(in srgb, var(--swal2-confirm-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):active{background-color:color-mix(in srgb, var(--swal2-confirm-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border-radius:var(--swal2-deny-button-border-radius);background:initial;background-color:var(--swal2-deny-button-background-color);box-shadow:var(--swal2-deny-button-box-shadow);color:var(--swal2-deny-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):hover{background-color:color-mix(in srgb, var(--swal2-deny-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):active{background-color:color-mix(in srgb, var(--swal2-deny-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border-radius:var(--swal2-cancel-button-border-radius);background:initial;background-color:var(--swal2-cancel-button-background-color);box-shadow:var(--swal2-cancel-button-box-shadow);color:var(--swal2-cancel-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):hover{background-color:color-mix(in srgb, var(--swal2-cancel-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):active{background-color:color-mix(in srgb, var(--swal2-cancel-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none;box-shadow:var(--swal2-action-button-focus-box-shadow)}div:where(.swal2-container) button:where(.swal2-styled)[disabled]:not(.swal2-loading){opacity:.4}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid var(--swal2-footer-border-color);background:var(--swal2-footer-background);color:var(--swal2-footer-color);font-size:1em;text-align:center;cursor:initial}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:var(--swal2-border-radius);border-bottom-left-radius:var(--swal2-border-radius)}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em;cursor:initial}div:where(.swal2-container) button:where(.swal2-close){position:var(--swal2-close-button-position);inset:var(--swal2-close-button-inset);z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:var(--swal2-close-button-transition);border:none;border-radius:var(--swal2-border-radius);outline:var(--swal2-close-button-outline);background:rgba(0,0,0,0);color:var(--swal2-close-button-color);font-family:monospace;font-size:var(--swal2-close-button-font-size);cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:var(--swal2-close-button-hover-transform);background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus-visible{outline:none;box-shadow:var(--swal2-close-button-focus-box-shadow)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-html-container){z-index:1;justify-content:center;margin:0;padding:var(--swal2-html-container-padding);overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word;cursor:initial}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:var(--swal2-input-transition);border:var(--swal2-input-border);border-radius:var(--swal2-input-border-radius);background:var(--swal2-input-background);box-shadow:var(--swal2-input-box-shadow);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):hover,div:where(.swal2-container) input:where(.swal2-file):hover,div:where(.swal2-container) textarea:where(.swal2-textarea):hover{box-shadow:var(--swal2-input-hover-box-shadow)}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:var(--swal2-input-focus-border);outline:none;box-shadow:var(--swal2-input-focus-box-shadow)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:var(--swal2-background)}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:var(--swal2-input-background);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:var(--swal2-input-background);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:var(--swal2-background);color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:var(--swal2-validation-message-background);color:var(--swal2-validation-message-color);font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:var(--swal2-progress-step-background);color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:var(--swal2-progress-step-background)}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;zoom:var(--swal2-icon-zoom);border:.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}}div:where(.swal2-icon).swal2-warning{border-color:#f8bb86;color:#f8bb86}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}}div:where(.swal2-icon).swal2-info{border-color:#3fc3ee;color:#3fc3ee}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}}div:where(.swal2-icon).swal2-question{border-color:#87adbd;color:#87adbd}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:var(--swal2-show-animation)}.swal2-hide{animation:var(--swal2-hide-animation)}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;border:var(--swal2-toast-border);background:var(--swal2-background);box-shadow:var(--swal2-toast-box-shadow);pointer-events:all}.swal2-toast>*{grid-column:2}.swal2-toast h2:where(.swal2-title){margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-toast .swal2-loading{justify-content:center}.swal2-toast input:where(.swal2-input){height:2em;margin:.5em;font-size:1em}.swal2-toast .swal2-validation-message{font-size:1em}.swal2-toast div:where(.swal2-footer){margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-toast button:where(.swal2-close){grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-toast div:where(.swal2-html-container){margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-toast div:where(.swal2-html-container):empty{padding:0}.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-toast div:where(.swal2-actions){justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-toast button:where(.swal2-styled){margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}@container swal2-popup style(--swal2-icon-animations:true){.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}}.swal2-toast.swal2-show{animation:var(--swal2-toast-show-animation)}.swal2-toast.swal2-hide{animation:var(--swal2-toast-hide-animation)}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}\");\n\n//# sourceURL=webpack:///../react-ui/node_modules/sweetalert2/dist/sweetalert2.all.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js":
/*!**************************************************************************************************************!*\
  !*** ../react-ui/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js ***!
  \**************************************************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ index)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"../react-ui/node_modules/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\nvar index = react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect;\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/uuid/dist/esm-browser/native.js":
/*!****************************************************************!*\
  !*** ../react-ui/node_modules/uuid/dist/esm-browser/native.js ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n  randomUUID\n});\n\n//# sourceURL=webpack:///../react-ui/node_modules/uuid/dist/esm-browser/native.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/uuid/dist/esm-browser/regex.js":
/*!***************************************************************!*\
  !*** ../react-ui/node_modules/uuid/dist/esm-browser/regex.js ***!
  \***************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i);\n\n//# sourceURL=webpack:///../react-ui/node_modules/uuid/dist/esm-browser/regex.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/uuid/dist/esm-browser/rng.js":
/*!*************************************************************!*\
  !*** ../react-ui/node_modules/uuid/dist/esm-browser/rng.js ***!
  \*************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ rng)\n/* harmony export */ });\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nfunction rng() {\n  if (!getRandomValues) {\n    if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n    }\n    getRandomValues = crypto.getRandomValues.bind(crypto);\n  }\n  return getRandomValues(rnds8);\n}\n\n//# sourceURL=webpack:///../react-ui/node_modules/uuid/dist/esm-browser/rng.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/uuid/dist/esm-browser/stringify.js":
/*!*******************************************************************!*\
  !*** ../react-ui/node_modules/uuid/dist/esm-browser/stringify.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */   unsafeStringify: () => (/* binding */ unsafeStringify)\n/* harmony export */ });\n/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validate.js */ \"../react-ui/node_modules/uuid/dist/esm-browser/validate.js\");\n\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n  byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nfunction unsafeStringify(arr, offset = 0) {\n  return (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();\n}\nfunction stringify(arr, offset = 0) {\n  const uuid = unsafeStringify(arr, offset);\n  if (!(0,_validate_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(uuid)) {\n    throw TypeError('Stringified UUID is invalid');\n  }\n  return uuid;\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stringify);\n\n//# sourceURL=webpack:///../react-ui/node_modules/uuid/dist/esm-browser/stringify.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/uuid/dist/esm-browser/v4.js":
/*!************************************************************!*\
  !*** ../react-ui/node_modules/uuid/dist/esm-browser/v4.js ***!
  \************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _native_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./native.js */ \"../react-ui/node_modules/uuid/dist/esm-browser/native.js\");\n/* harmony import */ var _rng_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rng.js */ \"../react-ui/node_modules/uuid/dist/esm-browser/rng.js\");\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stringify.js */ \"../react-ui/node_modules/uuid/dist/esm-browser/stringify.js\");\n\n\n\nfunction v4(options, buf, offset) {\n  if (_native_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].randomUUID && !buf && !options) {\n    return _native_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].randomUUID();\n  }\n  options = options || {};\n  const rnds = options.random ?? options.rng?.() ?? (0,_rng_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])();\n  if (rnds.length < 16) {\n    throw new Error('Random bytes length must be >= 16');\n  }\n  rnds[6] = rnds[6] & 0x0f | 0x40;\n  rnds[8] = rnds[8] & 0x3f | 0x80;\n  if (buf) {\n    offset = offset || 0;\n    if (offset < 0 || offset + 16 > buf.length) {\n      throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n    }\n    for (let i = 0; i < 16; ++i) {\n      buf[offset + i] = rnds[i];\n    }\n    return buf;\n  }\n  return (0,_stringify_js__WEBPACK_IMPORTED_MODULE_2__.unsafeStringify)(rnds);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v4);\n\n//# sourceURL=webpack:///../react-ui/node_modules/uuid/dist/esm-browser/v4.js?\n}");

/***/ }),

/***/ "../react-ui/node_modules/uuid/dist/esm-browser/validate.js":
/*!******************************************************************!*\
  !*** ../react-ui/node_modules/uuid/dist/esm-browser/validate.js ***!
  \******************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _regex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./regex.js */ \"../react-ui/node_modules/uuid/dist/esm-browser/regex.js\");\n\nfunction validate(uuid) {\n  return typeof uuid === 'string' && _regex_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].test(uuid);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validate);\n\n//# sourceURL=webpack:///../react-ui/node_modules/uuid/dist/esm-browser/validate.js?\n}");

/***/ }),

/***/ "./node_modules/call-bind-apply-helpers/actualApply.js":
/*!*************************************************************!*\
  !*** ./node_modules/call-bind-apply-helpers/actualApply.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar bind = __webpack_require__(/*! function-bind */ \"./node_modules/function-bind/index.js\");\nvar $apply = __webpack_require__(/*! ./functionApply */ \"./node_modules/call-bind-apply-helpers/functionApply.js\");\nvar $call = __webpack_require__(/*! ./functionCall */ \"./node_modules/call-bind-apply-helpers/functionCall.js\");\nvar $reflectApply = __webpack_require__(/*! ./reflectApply */ \"./node_modules/call-bind-apply-helpers/reflectApply.js\");\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n\n//# sourceURL=webpack:///./node_modules/call-bind-apply-helpers/actualApply.js?\n}");

/***/ }),

/***/ "./node_modules/call-bind-apply-helpers/functionApply.js":
/*!***************************************************************!*\
  !*** ./node_modules/call-bind-apply-helpers/functionApply.js ***!
  \***************************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n\n//# sourceURL=webpack:///./node_modules/call-bind-apply-helpers/functionApply.js?\n}");

/***/ }),

/***/ "./node_modules/call-bind-apply-helpers/functionCall.js":
/*!**************************************************************!*\
  !*** ./node_modules/call-bind-apply-helpers/functionCall.js ***!
  \**************************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n\n//# sourceURL=webpack:///./node_modules/call-bind-apply-helpers/functionCall.js?\n}");

/***/ }),

/***/ "./node_modules/call-bind-apply-helpers/index.js":
/*!*******************************************************!*\
  !*** ./node_modules/call-bind-apply-helpers/index.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar bind = __webpack_require__(/*! function-bind */ \"./node_modules/function-bind/index.js\");\nvar $TypeError = __webpack_require__(/*! es-errors/type */ \"./node_modules/es-errors/type.js\");\nvar $call = __webpack_require__(/*! ./functionCall */ \"./node_modules/call-bind-apply-helpers/functionCall.js\");\nvar $actualApply = __webpack_require__(/*! ./actualApply */ \"./node_modules/call-bind-apply-helpers/actualApply.js\");\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n  if (args.length < 1 || typeof args[0] !== 'function') {\n    throw new $TypeError('a function is required');\n  }\n  return $actualApply(bind, $call, args);\n};\n\n//# sourceURL=webpack:///./node_modules/call-bind-apply-helpers/index.js?\n}");

/***/ }),

/***/ "./node_modules/call-bind-apply-helpers/reflectApply.js":
/*!**************************************************************!*\
  !*** ./node_modules/call-bind-apply-helpers/reflectApply.js ***!
  \**************************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n\n//# sourceURL=webpack:///./node_modules/call-bind-apply-helpers/reflectApply.js?\n}");

/***/ }),

/***/ "./node_modules/call-bound/index.js":
/*!******************************************!*\
  !*** ./node_modules/call-bound/index.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar GetIntrinsic = __webpack_require__(/*! get-intrinsic */ \"./node_modules/get-intrinsic/index.js\");\nvar callBindBasic = __webpack_require__(/*! call-bind-apply-helpers */ \"./node_modules/call-bind-apply-helpers/index.js\");\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n  /* eslint no-extra-parens: 0 */\n\n  var intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */GetIntrinsic(name, !!allowMissing);\n  if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n    return callBindBasic(/** @type {const} */[intrinsic]);\n  }\n  return intrinsic;\n};\n\n//# sourceURL=webpack:///./node_modules/call-bound/index.js?\n}");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/flatpickr/dist/themes/material_blue.css":
/*!*****************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/flatpickr/dist/themes/material_blue.css ***!
  \*****************************************************************************************************************************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../assets/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../assets/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.flatpickr-calendar {\n  background: transparent;\n  opacity: 0;\n  display: none;\n  text-align: center;\n  visibility: hidden;\n  padding: 0;\n  -webkit-animation: none;\n  animation: none;\n  direction: ltr;\n  border: 0;\n  font-size: 14px;\n  line-height: 24px;\n  border-radius: 5px;\n  position: absolute;\n  width: 307.875px;\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n  -ms-touch-action: manipulation;\n  touch-action: manipulation;\n  -webkit-box-shadow: 0 3px 13px rgba(0, 0, 0, 0.08);\n  box-shadow: 0 3px 13px rgba(0, 0, 0, 0.08);\n}\n\n.flatpickr-calendar.open,\n.flatpickr-calendar.inline {\n  opacity: 1;\n  max-height: 640px;\n  visibility: visible;\n}\n\n.flatpickr-calendar.open {\n  display: inline-block;\n  z-index: 99999;\n}\n\n.flatpickr-calendar.animate.open {\n  -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);\n  animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);\n}\n\n.flatpickr-calendar.inline {\n  display: block;\n  position: relative;\n  top: 2px;\n}\n\n.flatpickr-calendar.static {\n  position: absolute;\n  top: calc(100% + 2px);\n}\n\n.flatpickr-calendar.static.open {\n  z-index: 999;\n  display: block;\n}\n\n.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {\n  -webkit-box-shadow: none !important;\n  box-shadow: none !important;\n}\n\n.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {\n  -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;\n  box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;\n}\n\n.flatpickr-calendar .hasWeeks .dayContainer,\n.flatpickr-calendar .hasTime .dayContainer {\n  border-bottom: 0;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n\n.flatpickr-calendar .hasWeeks .dayContainer {\n  border-left: 0;\n}\n\n.flatpickr-calendar.hasTime .flatpickr-time {\n  height: 40px;\n  border-top: 1px solid rgba(72, 72, 72, 0.2);\n}\n\n.flatpickr-calendar.hasTime .flatpickr-innerContainer {\n  border-bottom: 0;\n}\n\n.flatpickr-calendar.hasTime .flatpickr-time {\n  border: 1px solid rgba(72, 72, 72, 0.2);\n}\n\n.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {\n  height: auto;\n}\n\n.flatpickr-calendar:before,\n.flatpickr-calendar:after {\n  position: absolute;\n  display: block;\n  pointer-events: none;\n  border: solid transparent;\n  content: \"\";\n  height: 0;\n  width: 0;\n  left: 22px;\n}\n\n.flatpickr-calendar.rightMost:before,\n.flatpickr-calendar.arrowRight:before,\n.flatpickr-calendar.rightMost:after,\n.flatpickr-calendar.arrowRight:after {\n  left: auto;\n  right: 22px;\n}\n\n.flatpickr-calendar.arrowCenter:before,\n.flatpickr-calendar.arrowCenter:after {\n  left: 50%;\n  right: 50%;\n}\n\n.flatpickr-calendar:before {\n  border-width: 5px;\n  margin: 0 -5px;\n}\n\n.flatpickr-calendar:after {\n  border-width: 4px;\n  margin: 0 -4px;\n}\n\n.flatpickr-calendar.arrowTop:before,\n.flatpickr-calendar.arrowTop:after {\n  bottom: 100%;\n}\n\n.flatpickr-calendar.arrowTop:before {\n  border-bottom-color: rgba(72, 72, 72, 0.2);\n}\n\n.flatpickr-calendar.arrowTop:after {\n  border-bottom-color: #42a5f5;\n}\n\n.flatpickr-calendar.arrowBottom:before,\n.flatpickr-calendar.arrowBottom:after {\n  top: 100%;\n}\n\n.flatpickr-calendar.arrowBottom:before {\n  border-top-color: rgba(72, 72, 72, 0.2);\n}\n\n.flatpickr-calendar.arrowBottom:after {\n  border-top-color: #42a5f5;\n}\n\n.flatpickr-calendar:focus {\n  outline: 0;\n}\n\n.flatpickr-wrapper {\n  position: relative;\n  display: inline-block;\n}\n\n.flatpickr-months {\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n}\n\n.flatpickr-months .flatpickr-month {\n  border-radius: 5px 5px 0 0;\n  background: #42a5f5;\n  color: #fff;\n  fill: #fff;\n  height: 34px;\n  line-height: 1;\n  text-align: center;\n  position: relative;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  overflow: hidden;\n  -webkit-box-flex: 1;\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n}\n\n.flatpickr-months .flatpickr-prev-month,\n.flatpickr-months .flatpickr-next-month {\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  text-decoration: none;\n  cursor: pointer;\n  position: absolute;\n  top: 0;\n  height: 34px;\n  padding: 10px;\n  z-index: 3;\n  color: #fff;\n  fill: #fff;\n}\n\n.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,\n.flatpickr-months .flatpickr-next-month.flatpickr-disabled {\n  display: none;\n}\n\n.flatpickr-months .flatpickr-prev-month i,\n.flatpickr-months .flatpickr-next-month i {\n  position: relative;\n}\n\n.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,\n.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {\n  /*\n        /*rtl:begin:ignore*/\n  /*\n        */\n  left: 0;\n  /*\n        /*rtl:end:ignore*/\n  /*\n        */\n}\n\n/*\n      /*rtl:begin:ignore*/\n/*\n      /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,\n.flatpickr-months .flatpickr-next-month.flatpickr-next-month {\n  /*\n        /*rtl:begin:ignore*/\n  /*\n        */\n  right: 0;\n  /*\n        /*rtl:end:ignore*/\n  /*\n        */\n}\n\n/*\n      /*rtl:begin:ignore*/\n/*\n      /*rtl:end:ignore*/\n.flatpickr-months .flatpickr-prev-month:hover,\n.flatpickr-months .flatpickr-next-month:hover {\n  color: #bbb;\n}\n\n.flatpickr-months .flatpickr-prev-month:hover svg,\n.flatpickr-months .flatpickr-next-month:hover svg {\n  fill: #f64747;\n}\n\n.flatpickr-months .flatpickr-prev-month svg,\n.flatpickr-months .flatpickr-next-month svg {\n  width: 14px;\n  height: 14px;\n}\n\n.flatpickr-months .flatpickr-prev-month svg path,\n.flatpickr-months .flatpickr-next-month svg path {\n  -webkit-transition: fill 0.1s;\n  transition: fill 0.1s;\n  fill: inherit;\n}\n\n.numInputWrapper {\n  position: relative;\n  height: auto;\n}\n\n.numInputWrapper input,\n.numInputWrapper span {\n  display: inline-block;\n}\n\n.numInputWrapper input {\n  width: 100%;\n}\n\n.numInputWrapper input::-ms-clear {\n  display: none;\n}\n\n.numInputWrapper input::-webkit-outer-spin-button,\n.numInputWrapper input::-webkit-inner-spin-button {\n  margin: 0;\n  -webkit-appearance: none;\n}\n\n.numInputWrapper span {\n  position: absolute;\n  right: 0;\n  width: 14px;\n  padding: 0 4px 0 2px;\n  height: 50%;\n  line-height: 50%;\n  opacity: 0;\n  cursor: pointer;\n  border: 1px solid rgba(72, 72, 72, 0.15);\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.numInputWrapper span:hover {\n  background: rgba(0, 0, 0, 0.1);\n}\n\n.numInputWrapper span:active {\n  background: rgba(0, 0, 0, 0.2);\n}\n\n.numInputWrapper span:after {\n  display: block;\n  content: \"\";\n  position: absolute;\n}\n\n.numInputWrapper span.arrowUp {\n  top: 0;\n  border-bottom: 0;\n}\n\n.numInputWrapper span.arrowUp:after {\n  border-left: 4px solid transparent;\n  border-right: 4px solid transparent;\n  border-bottom: 4px solid rgba(72, 72, 72, 0.6);\n  top: 26%;\n}\n\n.numInputWrapper span.arrowDown {\n  top: 50%;\n}\n\n.numInputWrapper span.arrowDown:after {\n  border-left: 4px solid transparent;\n  border-right: 4px solid transparent;\n  border-top: 4px solid rgba(72, 72, 72, 0.6);\n  top: 40%;\n}\n\n.numInputWrapper span svg {\n  width: inherit;\n  height: auto;\n}\n\n.numInputWrapper span svg path {\n  fill: rgba(255, 255, 255, 0.5);\n}\n\n.numInputWrapper:hover {\n  background: rgba(0, 0, 0, 0.05);\n}\n\n.numInputWrapper:hover span {\n  opacity: 1;\n}\n\n.flatpickr-current-month {\n  font-size: 135%;\n  line-height: inherit;\n  font-weight: 300;\n  color: inherit;\n  position: absolute;\n  width: 75%;\n  left: 12.5%;\n  padding: 7.48px 0 0 0;\n  line-height: 1;\n  height: 34px;\n  display: inline-block;\n  text-align: center;\n  -webkit-transform: translate3d(0px, 0px, 0px);\n  transform: translate3d(0px, 0px, 0px);\n}\n\n.flatpickr-current-month span.cur-month {\n  font-family: inherit;\n  font-weight: 700;\n  color: inherit;\n  display: inline-block;\n  margin-left: 0.5ch;\n  padding: 0;\n}\n\n.flatpickr-current-month span.cur-month:hover {\n  background: rgba(0, 0, 0, 0.05);\n}\n\n.flatpickr-current-month .numInputWrapper {\n  width: 6ch;\n  width: 7ch\\\\0 ;\n  display: inline-block;\n}\n\n.flatpickr-current-month .numInputWrapper span.arrowUp:after {\n  border-bottom-color: #fff;\n}\n\n.flatpickr-current-month .numInputWrapper span.arrowDown:after {\n  border-top-color: #fff;\n}\n\n.flatpickr-current-month input.cur-year {\n  background: transparent;\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n  color: inherit;\n  cursor: text;\n  padding: 0 0 0 0.5ch;\n  margin: 0;\n  display: inline-block;\n  font-size: inherit;\n  font-family: inherit;\n  font-weight: 300;\n  line-height: inherit;\n  height: auto;\n  border: 0;\n  border-radius: 0;\n  vertical-align: initial;\n  -webkit-appearance: textfield;\n  -moz-appearance: textfield;\n  appearance: textfield;\n}\n\n.flatpickr-current-month input.cur-year:focus {\n  outline: 0;\n}\n\n.flatpickr-current-month input.cur-year[disabled],\n.flatpickr-current-month input.cur-year[disabled]:hover {\n  font-size: 100%;\n  color: rgba(255, 255, 255, 0.5);\n  background: transparent;\n  pointer-events: none;\n}\n\n.flatpickr-current-month .flatpickr-monthDropdown-months {\n  appearance: menulist;\n  background: #42a5f5;\n  border: none;\n  border-radius: 0;\n  box-sizing: border-box;\n  color: inherit;\n  cursor: pointer;\n  font-size: inherit;\n  font-family: inherit;\n  font-weight: 300;\n  height: auto;\n  line-height: inherit;\n  margin: -1px 0 0 0;\n  outline: none;\n  padding: 0 0 0 0.5ch;\n  position: relative;\n  vertical-align: initial;\n  -webkit-box-sizing: border-box;\n  -webkit-appearance: menulist;\n  -moz-appearance: menulist;\n  width: auto;\n}\n\n.flatpickr-current-month .flatpickr-monthDropdown-months:focus,\n.flatpickr-current-month .flatpickr-monthDropdown-months:active {\n  outline: none;\n}\n\n.flatpickr-current-month .flatpickr-monthDropdown-months:hover {\n  background: rgba(0, 0, 0, 0.05);\n}\n\n.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {\n  background-color: #42a5f5;\n  outline: none;\n  padding: 0;\n}\n\n.flatpickr-weekdays {\n  background: #42a5f5;\n  text-align: center;\n  overflow: hidden;\n  width: 100%;\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-align: center;\n  -webkit-align-items: center;\n  -ms-flex-align: center;\n  align-items: center;\n  height: 28px;\n}\n\n.flatpickr-weekdays .flatpickr-weekdaycontainer {\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-flex: 1;\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n}\n\nspan.flatpickr-weekday {\n  cursor: default;\n  font-size: 90%;\n  background: #42a5f5;\n  color: rgba(0, 0, 0, 0.54);\n  line-height: 1;\n  margin: 0;\n  text-align: center;\n  display: block;\n  -webkit-box-flex: 1;\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n  font-weight: bolder;\n}\n\n.dayContainer,\n.flatpickr-weeks {\n  padding: 1px 0 0 0;\n}\n\n.flatpickr-days {\n  position: relative;\n  overflow: hidden;\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-align: start;\n  -webkit-align-items: flex-start;\n  -ms-flex-align: start;\n  align-items: flex-start;\n  width: 307.875px;\n  border-left: 1px solid rgba(72, 72, 72, 0.2);\n  border-right: 1px solid rgba(72, 72, 72, 0.2);\n}\n\n.flatpickr-days:focus {\n  outline: 0;\n}\n\n.dayContainer {\n  padding: 0;\n  outline: 0;\n  text-align: left;\n  width: 307.875px;\n  min-width: 307.875px;\n  max-width: 307.875px;\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n  display: inline-block;\n  display: -ms-flexbox;\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: flex;\n  -webkit-flex-wrap: wrap;\n  flex-wrap: wrap;\n  -ms-flex-wrap: wrap;\n  -ms-flex-pack: justify;\n  -webkit-justify-content: space-around;\n  justify-content: space-around;\n  -webkit-transform: translate3d(0px, 0px, 0px);\n  transform: translate3d(0px, 0px, 0px);\n  opacity: 1;\n}\n\n.dayContainer + .dayContainer {\n  -webkit-box-shadow: -1px 0 0 rgba(72, 72, 72, 0.2);\n  box-shadow: -1px 0 0 rgba(72, 72, 72, 0.2);\n}\n\n.flatpickr-day {\n  background: none;\n  border: 1px solid transparent;\n  border-radius: 150px;\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n  color: #484848;\n  cursor: pointer;\n  font-weight: 400;\n  width: 14.2857143%;\n  -webkit-flex-basis: 14.2857143%;\n  -ms-flex-preferred-size: 14.2857143%;\n  flex-basis: 14.2857143%;\n  max-width: 39px;\n  height: 39px;\n  line-height: 39px;\n  margin: 0;\n  display: inline-block;\n  position: relative;\n  -webkit-box-pack: center;\n  -webkit-justify-content: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  text-align: center;\n}\n\n.flatpickr-day.inRange,\n.flatpickr-day.prevMonthDay.inRange,\n.flatpickr-day.nextMonthDay.inRange,\n.flatpickr-day.today.inRange,\n.flatpickr-day.prevMonthDay.today.inRange,\n.flatpickr-day.nextMonthDay.today.inRange,\n.flatpickr-day:hover,\n.flatpickr-day.prevMonthDay:hover,\n.flatpickr-day.nextMonthDay:hover,\n.flatpickr-day:focus,\n.flatpickr-day.prevMonthDay:focus,\n.flatpickr-day.nextMonthDay:focus {\n  cursor: pointer;\n  outline: 0;\n  background: #e2e2e2;\n  border-color: #e2e2e2;\n}\n\n.flatpickr-day.today {\n  border-color: #bbb;\n}\n\n.flatpickr-day.today:hover,\n.flatpickr-day.today:focus {\n  border-color: #bbb;\n  background: #bbb;\n  color: #fff;\n}\n\n.flatpickr-day.selected,\n.flatpickr-day.startRange,\n.flatpickr-day.endRange,\n.flatpickr-day.selected.inRange,\n.flatpickr-day.startRange.inRange,\n.flatpickr-day.endRange.inRange,\n.flatpickr-day.selected:focus,\n.flatpickr-day.startRange:focus,\n.flatpickr-day.endRange:focus,\n.flatpickr-day.selected:hover,\n.flatpickr-day.startRange:hover,\n.flatpickr-day.endRange:hover,\n.flatpickr-day.selected.prevMonthDay,\n.flatpickr-day.startRange.prevMonthDay,\n.flatpickr-day.endRange.prevMonthDay,\n.flatpickr-day.selected.nextMonthDay,\n.flatpickr-day.startRange.nextMonthDay,\n.flatpickr-day.endRange.nextMonthDay {\n  background: #42a5f5;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n  color: #fff;\n  border-color: #42a5f5;\n}\n\n.flatpickr-day.selected.startRange,\n.flatpickr-day.startRange.startRange,\n.flatpickr-day.endRange.startRange {\n  border-radius: 50px 0 0 50px;\n}\n\n.flatpickr-day.selected.endRange,\n.flatpickr-day.startRange.endRange,\n.flatpickr-day.endRange.endRange {\n  border-radius: 0 50px 50px 0;\n}\n\n.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),\n.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),\n.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {\n  -webkit-box-shadow: -10px 0 0 #42a5f5;\n  box-shadow: -10px 0 0 #42a5f5;\n}\n\n.flatpickr-day.selected.startRange.endRange,\n.flatpickr-day.startRange.startRange.endRange,\n.flatpickr-day.endRange.startRange.endRange {\n  border-radius: 50px;\n}\n\n.flatpickr-day.inRange {\n  border-radius: 0;\n  -webkit-box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;\n  box-shadow: -5px 0 0 #e2e2e2, 5px 0 0 #e2e2e2;\n}\n\n.flatpickr-day.flatpickr-disabled,\n.flatpickr-day.flatpickr-disabled:hover,\n.flatpickr-day.prevMonthDay,\n.flatpickr-day.nextMonthDay,\n.flatpickr-day.notAllowed,\n.flatpickr-day.notAllowed.prevMonthDay,\n.flatpickr-day.notAllowed.nextMonthDay {\n  color: rgba(72, 72, 72, 0.3);\n  background: transparent;\n  border-color: transparent;\n  cursor: default;\n}\n\n.flatpickr-day.flatpickr-disabled,\n.flatpickr-day.flatpickr-disabled:hover {\n  cursor: not-allowed;\n  color: rgba(72, 72, 72, 0.1);\n}\n\n.flatpickr-day.week.selected {\n  border-radius: 0;\n  -webkit-box-shadow: -5px 0 0 #42a5f5, 5px 0 0 #42a5f5;\n  box-shadow: -5px 0 0 #42a5f5, 5px 0 0 #42a5f5;\n}\n\n.flatpickr-day.hidden {\n  visibility: hidden;\n}\n\n.rangeMode .flatpickr-day {\n  margin-top: 1px;\n}\n\n.flatpickr-weekwrapper {\n  float: left;\n}\n\n.flatpickr-weekwrapper .flatpickr-weeks {\n  padding: 0 12px;\n  border-left: 1px solid rgba(72, 72, 72, 0.2);\n}\n\n.flatpickr-weekwrapper .flatpickr-weekday {\n  float: none;\n  width: 100%;\n  line-height: 28px;\n}\n\n.flatpickr-weekwrapper span.flatpickr-day,\n.flatpickr-weekwrapper span.flatpickr-day:hover {\n  display: block;\n  width: 100%;\n  max-width: none;\n  color: rgba(72, 72, 72, 0.3);\n  background: transparent;\n  cursor: default;\n  border: none;\n}\n\n.flatpickr-innerContainer {\n  display: block;\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n  overflow: hidden;\n  background: #fff;\n  border-bottom: 1px solid rgba(72, 72, 72, 0.2);\n}\n\n.flatpickr-rContainer {\n  display: inline-block;\n  padding: 0;\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n}\n\n.flatpickr-time {\n  text-align: center;\n  outline: 0;\n  display: block;\n  height: 0;\n  line-height: 40px;\n  max-height: 40px;\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n  overflow: hidden;\n  display: -webkit-box;\n  display: -webkit-flex;\n  display: -ms-flexbox;\n  display: flex;\n  background: #fff;\n  border-radius: 0 0 5px 5px;\n}\n\n.flatpickr-time:after {\n  content: \"\";\n  display: table;\n  clear: both;\n}\n\n.flatpickr-time .numInputWrapper {\n  -webkit-box-flex: 1;\n  -webkit-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n  width: 40%;\n  height: 40px;\n  float: left;\n}\n\n.flatpickr-time .numInputWrapper span.arrowUp:after {\n  border-bottom-color: #484848;\n}\n\n.flatpickr-time .numInputWrapper span.arrowDown:after {\n  border-top-color: #484848;\n}\n\n.flatpickr-time.hasSeconds .numInputWrapper {\n  width: 26%;\n}\n\n.flatpickr-time.time24hr .numInputWrapper {\n  width: 49%;\n}\n\n.flatpickr-time input {\n  background: transparent;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n  border: 0;\n  border-radius: 0;\n  text-align: center;\n  margin: 0;\n  padding: 0;\n  height: inherit;\n  line-height: inherit;\n  color: #484848;\n  font-size: 14px;\n  position: relative;\n  -webkit-box-sizing: border-box;\n  box-sizing: border-box;\n  -webkit-appearance: textfield;\n  -moz-appearance: textfield;\n  appearance: textfield;\n}\n\n.flatpickr-time input.flatpickr-hour {\n  font-weight: bold;\n}\n\n.flatpickr-time input.flatpickr-minute,\n.flatpickr-time input.flatpickr-second {\n  font-weight: 400;\n}\n\n.flatpickr-time input:focus {\n  outline: 0;\n  border: 0;\n}\n\n.flatpickr-time .flatpickr-time-separator,\n.flatpickr-time .flatpickr-am-pm {\n  height: inherit;\n  float: left;\n  line-height: inherit;\n  color: #484848;\n  font-weight: bold;\n  width: 2%;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n  -webkit-align-self: center;\n  -ms-flex-item-align: center;\n  align-self: center;\n}\n\n.flatpickr-time .flatpickr-am-pm {\n  outline: 0;\n  width: 18%;\n  cursor: pointer;\n  text-align: center;\n  font-weight: 400;\n}\n\n.flatpickr-time input:hover,\n.flatpickr-time .flatpickr-am-pm:hover,\n.flatpickr-time input:focus,\n.flatpickr-time .flatpickr-am-pm:focus {\n  background: #eaeaea;\n}\n\n.flatpickr-input[readonly] {\n  cursor: pointer;\n}\n\n@-webkit-keyframes fpFadeInDown {\n  from {\n    opacity: 0;\n    -webkit-transform: translate3d(0, -20px, 0);\n    transform: translate3d(0, -20px, 0);\n  }\n  to {\n    opacity: 1;\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n  }\n}\n@keyframes fpFadeInDown {\n  from {\n    opacity: 0;\n    -webkit-transform: translate3d(0, -20px, 0);\n    transform: translate3d(0, -20px, 0);\n  }\n  to {\n    opacity: 1;\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n  }\n}`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/flatpickr/dist/themes/material_blue.css?./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js\n}");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/notyf/notyf.min.css":
/*!*********************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/notyf/notyf.min.css ***!
  \*********************************************************************************************************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../assets/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../assets/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@-webkit-keyframes notyf-fadeinup {\n  0% {\n    opacity: 0;\n    transform: translateY(25%);\n  }\n  to {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n@keyframes notyf-fadeinup {\n  0% {\n    opacity: 0;\n    transform: translateY(25%);\n  }\n  to {\n    opacity: 1;\n    transform: translateY(0);\n  }\n}\n@-webkit-keyframes notyf-fadeinleft {\n  0% {\n    opacity: 0;\n    transform: translateX(25%);\n  }\n  to {\n    opacity: 1;\n    transform: translateX(0);\n  }\n}\n@keyframes notyf-fadeinleft {\n  0% {\n    opacity: 0;\n    transform: translateX(25%);\n  }\n  to {\n    opacity: 1;\n    transform: translateX(0);\n  }\n}\n@-webkit-keyframes notyf-fadeoutright {\n  0% {\n    opacity: 1;\n    transform: translateX(0);\n  }\n  to {\n    opacity: 0;\n    transform: translateX(25%);\n  }\n}\n@keyframes notyf-fadeoutright {\n  0% {\n    opacity: 1;\n    transform: translateX(0);\n  }\n  to {\n    opacity: 0;\n    transform: translateX(25%);\n  }\n}\n@-webkit-keyframes notyf-fadeoutdown {\n  0% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n  to {\n    opacity: 0;\n    transform: translateY(25%);\n  }\n}\n@keyframes notyf-fadeoutdown {\n  0% {\n    opacity: 1;\n    transform: translateY(0);\n  }\n  to {\n    opacity: 0;\n    transform: translateY(25%);\n  }\n}\n@-webkit-keyframes ripple {\n  0% {\n    transform: scale(0) translateY(-45%) translateX(13%);\n  }\n  to {\n    transform: scale(1) translateY(-45%) translateX(13%);\n  }\n}\n@keyframes ripple {\n  0% {\n    transform: scale(0) translateY(-45%) translateX(13%);\n  }\n  to {\n    transform: scale(1) translateY(-45%) translateX(13%);\n  }\n}\n.notyf {\n  position: fixed;\n  top: 0;\n  left: 0;\n  height: 100%;\n  width: 100%;\n  color: #fff;\n  z-index: 9999;\n  display: flex;\n  flex-direction: column;\n  align-items: flex-end;\n  justify-content: flex-end;\n  pointer-events: none;\n  box-sizing: border-box;\n  padding: 20px;\n}\n\n.notyf__icon--error, .notyf__icon--success {\n  height: 21px;\n  width: 21px;\n  background: #fff;\n  border-radius: 50%;\n  display: block;\n  margin: 0 auto;\n  position: relative;\n}\n\n.notyf__icon--error:after, .notyf__icon--error:before {\n  content: \"\";\n  background: currentColor;\n  display: block;\n  position: absolute;\n  width: 3px;\n  border-radius: 3px;\n  left: 9px;\n  height: 12px;\n  top: 5px;\n}\n\n.notyf__icon--error:after {\n  transform: rotate(-45deg);\n}\n\n.notyf__icon--error:before {\n  transform: rotate(45deg);\n}\n\n.notyf__icon--success:after, .notyf__icon--success:before {\n  content: \"\";\n  background: currentColor;\n  display: block;\n  position: absolute;\n  width: 3px;\n  border-radius: 3px;\n}\n\n.notyf__icon--success:after {\n  height: 6px;\n  transform: rotate(-45deg);\n  top: 9px;\n  left: 6px;\n}\n\n.notyf__icon--success:before {\n  height: 11px;\n  transform: rotate(45deg);\n  top: 5px;\n  left: 10px;\n}\n\n.notyf__toast {\n  display: block;\n  overflow: hidden;\n  pointer-events: auto;\n  -webkit-animation: notyf-fadeinup 0.3s ease-in forwards;\n  animation: notyf-fadeinup 0.3s ease-in forwards;\n  box-shadow: 0 3px 7px 0 rgba(0, 0, 0, 0.25);\n  position: relative;\n  padding: 0 15px;\n  border-radius: 2px;\n  max-width: 300px;\n  transform: translateY(25%);\n  box-sizing: border-box;\n  flex-shrink: 0;\n}\n\n.notyf__toast--disappear {\n  transform: translateY(0);\n  -webkit-animation: notyf-fadeoutdown 0.3s forwards;\n  animation: notyf-fadeoutdown 0.3s forwards;\n  -webkit-animation-delay: 0.25s;\n  animation-delay: 0.25s;\n}\n\n.notyf__toast--disappear .notyf__icon, .notyf__toast--disappear .notyf__message {\n  -webkit-animation: notyf-fadeoutdown 0.3s forwards;\n  animation: notyf-fadeoutdown 0.3s forwards;\n  opacity: 1;\n  transform: translateY(0);\n}\n\n.notyf__toast--disappear .notyf__dismiss {\n  -webkit-animation: notyf-fadeoutright 0.3s forwards;\n  animation: notyf-fadeoutright 0.3s forwards;\n  opacity: 1;\n  transform: translateX(0);\n}\n\n.notyf__toast--disappear .notyf__message {\n  -webkit-animation-delay: 0.05s;\n  animation-delay: 0.05s;\n}\n\n.notyf__toast--upper {\n  margin-bottom: 20px;\n}\n\n.notyf__toast--lower {\n  margin-top: 20px;\n}\n\n.notyf__toast--dismissible .notyf__wrapper {\n  padding-right: 30px;\n}\n\n.notyf__ripple {\n  height: 400px;\n  width: 400px;\n  position: absolute;\n  transform-origin: bottom right;\n  right: 0;\n  top: 0;\n  border-radius: 50%;\n  transform: scale(0) translateY(-51%) translateX(13%);\n  z-index: 5;\n  -webkit-animation: ripple 0.4s ease-out forwards;\n  animation: ripple 0.4s ease-out forwards;\n}\n\n.notyf__wrapper {\n  display: flex;\n  align-items: center;\n  padding-top: 17px;\n  padding-bottom: 17px;\n  padding-right: 15px;\n  border-radius: 3px;\n  position: relative;\n  z-index: 10;\n}\n\n.notyf__icon {\n  width: 22px;\n  text-align: center;\n  font-size: 1.3em;\n  opacity: 0;\n  -webkit-animation: notyf-fadeinup 0.3s forwards;\n  animation: notyf-fadeinup 0.3s forwards;\n  -webkit-animation-delay: 0.3s;\n  animation-delay: 0.3s;\n  margin-right: 13px;\n}\n\n.notyf__dismiss {\n  position: absolute;\n  top: 0;\n  right: 0;\n  height: 100%;\n  width: 26px;\n  margin-right: -15px;\n  -webkit-animation: notyf-fadeinleft 0.3s forwards;\n  animation: notyf-fadeinleft 0.3s forwards;\n  -webkit-animation-delay: 0.35s;\n  animation-delay: 0.35s;\n  opacity: 0;\n}\n\n.notyf__dismiss-btn {\n  background-color: rgba(0, 0, 0, 0.25);\n  border: none;\n  cursor: pointer;\n  transition: opacity 0.2s ease, background-color 0.2s ease;\n  outline: none;\n  opacity: 0.35;\n  height: 100%;\n  width: 100%;\n}\n\n.notyf__dismiss-btn:after, .notyf__dismiss-btn:before {\n  content: \"\";\n  background: #fff;\n  height: 12px;\n  width: 2px;\n  border-radius: 3px;\n  position: absolute;\n  left: calc(50% - 1px);\n  top: calc(50% - 5px);\n}\n\n.notyf__dismiss-btn:after {\n  transform: rotate(-45deg);\n}\n\n.notyf__dismiss-btn:before {\n  transform: rotate(45deg);\n}\n\n.notyf__dismiss-btn:hover {\n  opacity: 0.7;\n  background-color: rgba(0, 0, 0, 0.15);\n}\n\n.notyf__dismiss-btn:active {\n  opacity: 0.8;\n}\n\n.notyf__message {\n  vertical-align: middle;\n  position: relative;\n  opacity: 0;\n  -webkit-animation: notyf-fadeinup 0.3s forwards;\n  animation: notyf-fadeinup 0.3s forwards;\n  -webkit-animation-delay: 0.25s;\n  animation-delay: 0.25s;\n  line-height: 1.5em;\n}\n\n@media only screen and (max-width: 480px) {\n  .notyf {\n    padding: 0;\n  }\n  .notyf__ripple {\n    height: 600px;\n    width: 600px;\n    -webkit-animation-duration: 0.5s;\n    animation-duration: 0.5s;\n  }\n  .notyf__toast {\n    max-width: none;\n    border-radius: 0;\n    box-shadow: 0 -2px 7px 0 rgba(0, 0, 0, 0.13);\n    width: 100%;\n  }\n  .notyf__dismiss {\n    width: 56px;\n  }\n}`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/notyf/notyf.min.css?./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js\n}");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/primereact/resources/themes/lara-light-teal/theme.css":
/*!*******************************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/primereact/resources/themes/lara-light-teal/theme.css ***!
  \*******************************************************************************************************************************************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../../assets/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../../assets/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../assets/node_modules/css-loader/dist/runtime/getUrl.js */ \"./node_modules/css-loader/dist/runtime/getUrl.js\");\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2__);\n// Imports\n\n\n\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(/* asset import */ __webpack_require__(/*! ./fonts/InterVariable.woff2 */ \"../react-ui/node_modules/primereact/resources/themes/lara-light-teal/fonts/InterVariable.woff2\"), __webpack_require__.b);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(/* asset import */ __webpack_require__(/*! ./fonts/InterVariable-Italic.woff2 */ \"../react-ui/node_modules/primereact/resources/themes/lara-light-teal/fonts/InterVariable-Italic.woff2\"), __webpack_require__.b);\nvar ___CSS_LOADER_EXPORT___ = _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = _assets_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = _assets_node_modules_css_loader_dist_runtime_getUrl_js__WEBPACK_IMPORTED_MODULE_2___default()(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:root {\n  font-family: \"Inter var\", sans-serif;\n  font-feature-settings: \"cv02\", \"cv03\", \"cv04\", \"cv11\";\n  font-variation-settings: normal;\n  --font-family: \"Inter var\", sans-serif;\n  --font-feature-settings: \"cv02\", \"cv03\", \"cv04\", \"cv11\";\n  --surface-a: #ffffff;\n  --surface-b: #f9fafb;\n  --surface-c: #f3f4f6;\n  --surface-d: #e5e7eb;\n  --surface-e: #ffffff;\n  --surface-f: #ffffff;\n  --text-color: #4b5563;\n  --text-color-secondary: #6b7280;\n  --primary-color: #14b8a6;\n  --primary-color-text: #ffffff;\n  --surface-0: #ffffff;\n  --surface-50: #f9fafb;\n  --surface-100: #f3f4f6;\n  --surface-200: #e5e7eb;\n  --surface-300: #d1d5db;\n  --surface-400: #9ca3af;\n  --surface-500: #6b7280;\n  --surface-600: #4b5563;\n  --surface-700: #374151;\n  --surface-800: #1f2937;\n  --surface-900: #111827;\n  --gray-50: #f9fafb;\n  --gray-100: #f3f4f6;\n  --gray-200: #e5e7eb;\n  --gray-300: #d1d5db;\n  --gray-400: #9ca3af;\n  --gray-500: #6b7280;\n  --gray-600: #4b5563;\n  --gray-700: #374151;\n  --gray-800: #1f2937;\n  --gray-900: #111827;\n  --content-padding: 1.25rem;\n  --inline-spacing: 0.5rem;\n  --border-radius: 6px;\n  --surface-ground: #f9fafb;\n  --surface-section: #ffffff;\n  --surface-card: #ffffff;\n  --surface-overlay: #ffffff;\n  --surface-border: #dfe7ef;\n  --surface-hover: #f6f9fc;\n  --focus-ring: 0 0 0 0.2rem #99f6e4;\n  --maskbg: rgba(0, 0, 0, 0.4);\n  --highlight-bg: #0f766e;\n  --highlight-text-color: #0f766e;\n  color-scheme: light;\n}\n\n@font-face {\n  font-family: \"Inter var\";\n  font-weight: 100 900;\n  font-display: swap;\n  font-style: normal;\n  font-named-instance: \"Regular\";\n  src: url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format(\"woff2\");\n}\n@font-face {\n  font-family: \"Inter var\";\n  font-weight: 100 900;\n  font-display: swap;\n  font-style: italic;\n  font-named-instance: \"Italic\";\n  src: url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format(\"woff2\");\n}\n:root {\n  --blue-50:#f5f9ff;\n  --blue-100:#d0e1fd;\n  --blue-200:#abc9fb;\n  --blue-300:#85b2f9;\n  --blue-400:#609af8;\n  --blue-500:#3b82f6;\n  --blue-600:#326fd1;\n  --blue-700:#295bac;\n  --blue-800:#204887;\n  --blue-900:#183462;\n  --green-50:#f4fcf7;\n  --green-100:#caf1d8;\n  --green-200:#a0e6ba;\n  --green-300:#76db9b;\n  --green-400:#4cd07d;\n  --green-500:#22c55e;\n  --green-600:#1da750;\n  --green-700:#188a42;\n  --green-800:#136c34;\n  --green-900:#0e4f26;\n  --yellow-50:#fefbf3;\n  --yellow-100:#faedc4;\n  --yellow-200:#f6de95;\n  --yellow-300:#f2d066;\n  --yellow-400:#eec137;\n  --yellow-500:#eab308;\n  --yellow-600:#c79807;\n  --yellow-700:#a47d06;\n  --yellow-800:#816204;\n  --yellow-900:#5e4803;\n  --cyan-50:#f3fbfd;\n  --cyan-100:#c3edf5;\n  --cyan-200:#94e0ed;\n  --cyan-300:#65d2e4;\n  --cyan-400:#35c4dc;\n  --cyan-500:#06b6d4;\n  --cyan-600:#059bb4;\n  --cyan-700:#047f94;\n  --cyan-800:#036475;\n  --cyan-900:#024955;\n  --pink-50:#fef6fa;\n  --pink-100:#fad3e7;\n  --pink-200:#f7b0d3;\n  --pink-300:#f38ec0;\n  --pink-400:#f06bac;\n  --pink-500:#ec4899;\n  --pink-600:#c93d82;\n  --pink-700:#a5326b;\n  --pink-800:#822854;\n  --pink-900:#5e1d3d;\n  --indigo-50:#f7f7fe;\n  --indigo-100:#dadafc;\n  --indigo-200:#bcbdf9;\n  --indigo-300:#9ea0f6;\n  --indigo-400:#8183f4;\n  --indigo-500:#6366f1;\n  --indigo-600:#5457cd;\n  --indigo-700:#4547a9;\n  --indigo-800:#363885;\n  --indigo-900:#282960;\n  --teal-50:#f3fbfb;\n  --teal-100:#c7eeea;\n  --teal-200:#9ae0d9;\n  --teal-300:#6dd3c8;\n  --teal-400:#41c5b7;\n  --teal-500:#14b8a6;\n  --teal-600:#119c8d;\n  --teal-700:#0e8174;\n  --teal-800:#0b655b;\n  --teal-900:#084a42;\n  --orange-50:#fff8f3;\n  --orange-100:#feddc7;\n  --orange-200:#fcc39b;\n  --orange-300:#fba86f;\n  --orange-400:#fa8e42;\n  --orange-500:#f97316;\n  --orange-600:#d46213;\n  --orange-700:#ae510f;\n  --orange-800:#893f0c;\n  --orange-900:#642e09;\n  --bluegray-50:#f7f8f9;\n  --bluegray-100:#dadee3;\n  --bluegray-200:#bcc3cd;\n  --bluegray-300:#9fa9b7;\n  --bluegray-400:#818ea1;\n  --bluegray-500:#64748b;\n  --bluegray-600:#556376;\n  --bluegray-700:#465161;\n  --bluegray-800:#37404c;\n  --bluegray-900:#282e38;\n  --purple-50:#fbf7ff;\n  --purple-100:#ead6fd;\n  --purple-200:#dab6fc;\n  --purple-300:#c996fa;\n  --purple-400:#b975f9;\n  --purple-500:#a855f7;\n  --purple-600:#8f48d2;\n  --purple-700:#763cad;\n  --purple-800:#5c2f88;\n  --purple-900:#432263;\n  --red-50:#fff5f5;\n  --red-100:#ffd0ce;\n  --red-200:#ffaca7;\n  --red-300:#ff8780;\n  --red-400:#ff6259;\n  --red-500:#ff3d32;\n  --red-600:#d9342b;\n  --red-700:#b32b23;\n  --red-800:#8c221c;\n  --red-900:#661814;\n  --primary-50:#f3fbfb;\n  --primary-100:#c7eeea;\n  --primary-200:#9ae0d9;\n  --primary-300:#6dd3c8;\n  --primary-400:#41c5b7;\n  --primary-500:#14b8a6;\n  --primary-600:#119c8d;\n  --primary-700:#0e8174;\n  --primary-800:#0b655b;\n  --primary-900:#084a42;\n}\n\n.p-editor-container .p-editor-toolbar {\n  background: #f9fafb;\n  border-top-right-radius: 6px;\n  border-top-left-radius: 6px;\n}\n\n.p-editor-container .p-editor-toolbar.ql-snow {\n  border: 1px solid #e5e7eb;\n}\n\n.p-editor-container .p-editor-toolbar.ql-snow .ql-stroke {\n  stroke: #6b7280;\n}\n\n.p-editor-container .p-editor-toolbar.ql-snow .ql-fill {\n  fill: #6b7280;\n}\n\n.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label {\n  border: 0 none;\n  color: #6b7280;\n}\n\n.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover {\n  color: #4b5563;\n}\n\n.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover .ql-stroke {\n  stroke: #4b5563;\n}\n\n.p-editor-container .p-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover .ql-fill {\n  fill: #4b5563;\n}\n\n.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {\n  color: #4b5563;\n}\n\n.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {\n  stroke: #4b5563;\n}\n\n.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {\n  fill: #4b5563;\n}\n\n.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {\n  background: #ffffff;\n  border: 0 none;\n  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  border-radius: 6px;\n  padding: 0.75rem 0;\n}\n\n.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item {\n  color: #4b5563;\n}\n\n.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item:hover {\n  color: #4b5563;\n  background: #f3f4f6;\n}\n\n.p-editor-container .p-editor-toolbar.ql-snow .ql-picker.ql-expanded:not(.ql-icon-picker) .ql-picker-item {\n  padding: 0.75rem 1.25rem;\n}\n\n.p-editor-container .p-editor-content {\n  border-bottom-right-radius: 6px;\n  border-bottom-left-radius: 6px;\n}\n\n.p-editor-container .p-editor-content.ql-snow {\n  border: 1px solid #e5e7eb;\n}\n\n.p-editor-container .p-editor-content .ql-editor {\n  background: #ffffff;\n  color: #4b5563;\n  border-bottom-right-radius: 6px;\n  border-bottom-left-radius: 6px;\n}\n\n.p-editor-container .ql-snow.ql-toolbar button:hover,\n.p-editor-container .ql-snow.ql-toolbar button:focus {\n  color: #4b5563;\n}\n\n.p-editor-container .ql-snow.ql-toolbar button:hover .ql-stroke,\n.p-editor-container .ql-snow.ql-toolbar button:focus .ql-stroke {\n  stroke: #4b5563;\n}\n\n.p-editor-container .ql-snow.ql-toolbar button:hover .ql-fill,\n.p-editor-container .ql-snow.ql-toolbar button:focus .ql-fill {\n  fill: #4b5563;\n}\n\n.p-editor-container .ql-snow.ql-toolbar button.ql-active,\n.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active,\n.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected {\n  color: #14b8a6;\n}\n\n.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-stroke,\n.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,\n.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke {\n  stroke: #14b8a6;\n}\n\n.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-fill,\n.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,\n.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill {\n  fill: #14b8a6;\n}\n\n.p-editor-container .ql-snow.ql-toolbar button.ql-active .ql-picker-label,\n.p-editor-container .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-picker-label,\n.p-editor-container .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-picker-label {\n  color: #14b8a6;\n}\n\n@layer primereact {\n  * {\n    box-sizing: border-box;\n  }\n  .p-component {\n    font-family: var(--font-family);\n    font-feature-settings: var(--font-feature-settings, normal);\n    font-size: 1rem;\n    font-weight: normal;\n  }\n  .p-component-overlay {\n    background-color: rgba(0, 0, 0, 0.4);\n    transition-duration: 0.2s;\n  }\n  .p-disabled, .p-component:disabled {\n    opacity: 0.6;\n  }\n  .p-error {\n    color: #e24c4c;\n  }\n  .p-text-secondary {\n    color: #6b7280;\n  }\n  .pi {\n    font-size: 1rem;\n  }\n  .p-icon {\n    width: 1rem;\n    height: 1rem;\n  }\n  .p-link {\n    font-family: var(--font-family);\n    font-feature-settings: var(--font-feature-settings, normal);\n    font-size: 1rem;\n    border-radius: 6px;\n  }\n  .p-link:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-component-overlay-enter {\n    animation: p-component-overlay-enter-animation 150ms forwards;\n  }\n  .p-component-overlay-leave {\n    animation: p-component-overlay-leave-animation 150ms forwards;\n  }\n  @keyframes p-component-overlay-enter-animation {\n    from {\n      background-color: transparent;\n    }\n    to {\n      background-color: var(--maskbg);\n    }\n  }\n  @keyframes p-component-overlay-leave-animation {\n    from {\n      background-color: var(--maskbg);\n    }\n    to {\n      background-color: transparent;\n    }\n  }\n  .p-autocomplete .p-autocomplete-loader {\n    right: 0.75rem;\n  }\n  .p-autocomplete.p-autocomplete-dd .p-autocomplete-loader {\n    right: 3.75rem;\n  }\n  .p-autocomplete .p-autocomplete-multiple-container {\n    padding: 0.375rem 0.75rem;\n    gap: 0.5rem;\n  }\n  .p-autocomplete .p-autocomplete-multiple-container:not(.p-disabled):hover {\n    border-color: #14b8a6;\n  }\n  .p-autocomplete .p-autocomplete-multiple-container:not(.p-disabled).p-focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n    border-color: #14b8a6;\n  }\n  .p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-input-token {\n    padding: 0.375rem 0;\n  }\n  .p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-input-token input {\n    font-family: var(--font-family);\n    font-feature-settings: var(--font-feature-settings, normal);\n    font-size: 1rem;\n    color: #4b5563;\n    padding: 0;\n    margin: 0;\n  }\n  .p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token {\n    padding: 0.375rem 0.75rem;\n    margin-right: 0.5rem;\n    background: #0f766e;\n    color: #0f766e;\n    border-radius: 6px;\n  }\n  .p-autocomplete .p-autocomplete-multiple-container .p-autocomplete-token .p-autocomplete-token-icon {\n    margin-left: 0.5rem;\n  }\n  .p-autocomplete.p-invalid.p-component > .p-inputtext {\n    border-color: #e24c4c;\n  }\n  .p-autocomplete-panel {\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    border-radius: 6px;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-autocomplete-panel .p-autocomplete-items {\n    padding: 0.75rem 0;\n  }\n  .p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item {\n    margin: 0;\n    padding: 0.75rem 1.25rem;\n    border: 0 none;\n    color: #4b5563;\n    background: transparent;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item:hover {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item.p-highlight {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-autocomplete-panel .p-autocomplete-items .p-autocomplete-item-group {\n    margin: 0;\n    padding: 0.75rem 1.25rem;\n    color: #374151;\n    background: #ffffff;\n    font-weight: 700;\n  }\n  .p-calendar.p-invalid.p-component > .p-inputtext {\n    border-color: #e24c4c;\n  }\n  .p-calendar:not(.p-calendar-disabled).p-focus > .p-inputtext {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n    border-color: #14b8a6;\n  }\n  .p-datepicker {\n    padding: 0.5rem;\n    background: #ffffff;\n    color: #4b5563;\n    border: 1px solid #d1d5db;\n    border-radius: 6px;\n  }\n  .p-datepicker:not(.p-datepicker-inline) {\n    background: #ffffff;\n    border: 0 none;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-datepicker:not(.p-datepicker-inline) .p-datepicker-header {\n    background: #ffffff;\n  }\n  .p-datepicker .p-datepicker-header {\n    padding: 0.5rem;\n    color: #4b5563;\n    background: #ffffff;\n    font-weight: 600;\n    margin: 0;\n    border-bottom: 1px solid #e5e7eb;\n    border-top-right-radius: 6px;\n    border-top-left-radius: 6px;\n  }\n  .p-datepicker .p-datepicker-header .p-datepicker-prev,\n  .p-datepicker .p-datepicker-header .p-datepicker-next {\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border: 0 none;\n    background: transparent;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-datepicker .p-datepicker-header .p-datepicker-prev:enabled:hover,\n  .p-datepicker .p-datepicker-header .p-datepicker-next:enabled:hover {\n    color: #374151;\n    border-color: transparent;\n    background: #f3f4f6;\n  }\n  .p-datepicker .p-datepicker-header .p-datepicker-prev:focus-visible,\n  .p-datepicker .p-datepicker-header .p-datepicker-next:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-datepicker .p-datepicker-header .p-datepicker-title {\n    line-height: 2rem;\n  }\n  .p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-year,\n  .p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month {\n    color: #4b5563;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n    font-weight: 600;\n    padding: 0.5rem;\n  }\n  .p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-year:enabled:hover,\n  .p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month:enabled:hover {\n    color: #14b8a6;\n  }\n  .p-datepicker .p-datepicker-header .p-datepicker-title .p-datepicker-month {\n    margin-right: 0.5rem;\n  }\n  .p-datepicker table {\n    font-size: 1rem;\n    margin: 0.5rem 0;\n  }\n  .p-datepicker table th {\n    padding: 0.5rem;\n  }\n  .p-datepicker table th > span {\n    width: 2.5rem;\n    height: 2.5rem;\n  }\n  .p-datepicker table td {\n    padding: 0.5rem;\n  }\n  .p-datepicker table td > span {\n    width: 2.5rem;\n    height: 2.5rem;\n    border-radius: 50%;\n    transition: box-shadow 0.2s;\n    border: 1px solid transparent;\n  }\n  .p-datepicker table td > span.p-highlight {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-datepicker table td > span:focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-datepicker table td.p-datepicker-today > span {\n    background: #d1d5db;\n    color: #4b5563;\n    border-color: transparent;\n  }\n  .p-datepicker table td.p-datepicker-today > span.p-highlight {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-datepicker .p-datepicker-buttonbar {\n    padding: 1rem 0;\n    border-top: 1px solid #e5e7eb;\n  }\n  .p-datepicker .p-datepicker-buttonbar .p-button {\n    width: auto;\n  }\n  .p-datepicker .p-timepicker {\n    border-top: 1px solid #e5e7eb;\n    padding: 0.5rem;\n  }\n  .p-datepicker .p-timepicker button {\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border: 0 none;\n    background: transparent;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-datepicker .p-timepicker button:enabled:hover {\n    color: #374151;\n    border-color: transparent;\n    background: #f3f4f6;\n  }\n  .p-datepicker .p-timepicker button:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-datepicker .p-timepicker button:last-child {\n    margin-top: 0.2em;\n  }\n  .p-datepicker .p-timepicker span {\n    font-size: 1.25rem;\n  }\n  .p-datepicker .p-timepicker > div {\n    padding: 0 0.5rem;\n  }\n  .p-datepicker.p-datepicker-timeonly .p-timepicker {\n    border-top: 0 none;\n  }\n  .p-datepicker .p-monthpicker {\n    margin: 0.5rem 0;\n  }\n  .p-datepicker .p-monthpicker .p-monthpicker-month {\n    padding: 0.5rem;\n    transition: box-shadow 0.2s;\n    border-radius: 6px;\n  }\n  .p-datepicker .p-monthpicker .p-monthpicker-month.p-highlight {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-datepicker .p-yearpicker {\n    margin: 0.5rem 0;\n  }\n  .p-datepicker .p-yearpicker .p-yearpicker-year {\n    padding: 0.5rem;\n    transition: box-shadow 0.2s;\n    border-radius: 6px;\n  }\n  .p-datepicker .p-yearpicker .p-yearpicker-year.p-highlight {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-datepicker.p-datepicker-multiple-month .p-datepicker-group {\n    border-left: 1px solid #e5e7eb;\n    padding-right: 0.5rem;\n    padding-left: 0.5rem;\n    padding-top: 0;\n    padding-bottom: 0;\n  }\n  .p-datepicker.p-datepicker-multiple-month .p-datepicker-group:first-child {\n    padding-left: 0;\n    border-left: 0 none;\n  }\n  .p-datepicker.p-datepicker-multiple-month .p-datepicker-group:last-child {\n    padding-right: 0;\n  }\n  .p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):hover {\n    background: #f3f4f6;\n  }\n  .p-datepicker:not(.p-disabled) table td span:not(.p-highlight):not(.p-disabled):focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-datepicker:not(.p-disabled) .p-monthpicker .p-monthpicker-month:not(.p-disabled):not(.p-highlight):hover {\n    background: #f3f4f6;\n  }\n  .p-datepicker:not(.p-disabled) .p-monthpicker .p-monthpicker-month:not(.p-disabled):focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-datepicker:not(.p-disabled) .p-yearpicker .p-yearpicker-year:not(.p-disabled):not(.p-highlight):hover {\n    background: #f3f4f6;\n  }\n  .p-datepicker:not(.p-disabled) .p-yearpicker .p-yearpicker-year:not(.p-disabled):focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  @media screen and (max-width: 769px) {\n    .p-datepicker table th,\n    .p-datepicker table td {\n      padding: 0;\n    }\n  }\n  .p-cascadeselect {\n    background: #ffffff;\n    border: 1px solid #d1d5db;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n    border-radius: 6px;\n    outline-color: transparent;\n  }\n  .p-cascadeselect:not(.p-disabled):hover {\n    border-color: #14b8a6;\n  }\n  .p-cascadeselect:not(.p-disabled).p-focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n    border-color: #14b8a6;\n  }\n  .p-cascadeselect.p-variant-filled {\n    background-color: #f3f4f6;\n  }\n  .p-cascadeselect.p-variant-filled:enabled:hover {\n    background-color: #f3f4f6;\n  }\n  .p-cascadeselect.p-variant-filled:enabled:focus {\n    background-color: #ffffff;\n  }\n  .p-cascadeselect .p-cascadeselect-label {\n    background: transparent;\n    border: 0 none;\n    padding: 0.75rem 0.75rem;\n  }\n  .p-cascadeselect .p-cascadeselect-label.p-placeholder {\n    color: #6b7280;\n  }\n  .p-cascadeselect .p-cascadeselect-label:enabled:focus {\n    outline: 0 none;\n    box-shadow: none;\n  }\n  .p-cascadeselect .p-cascadeselect-trigger {\n    background: transparent;\n    color: #6b7280;\n    width: 3rem;\n    border-top-right-radius: 6px;\n    border-bottom-right-radius: 6px;\n  }\n  .p-cascadeselect.p-invalid.p-component {\n    border-color: #e24c4c;\n  }\n  .p-cascadeselect-panel {\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    border-radius: 6px;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-cascadeselect-panel .p-cascadeselect-items {\n    padding: 0.75rem 0;\n  }\n  .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item {\n    margin: 0;\n    border: 0 none;\n    color: #4b5563;\n    background: transparent;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:first-child {\n    margin-top: 0;\n  }\n  .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:last-child {\n    margin-bottom: 0;\n  }\n  .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item.p-highlight {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item.p-highlight.p-focus {\n    background: rgba(20, 184, 166, 0.24);\n  }\n  .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item:not(.p-highlight):not(.p-disabled).p-focus {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-item-content {\n    padding: 0.75rem 1.25rem;\n  }\n  .p-cascadeselect-panel .p-cascadeselect-items .p-cascadeselect-item .p-cascadeselect-group-icon {\n    font-size: 0.875rem;\n  }\n  .p-checkbox {\n    position: relative;\n    display: inline-flex;\n    user-select: none;\n    vertical-align: bottom;\n  }\n  .p-checkbox-input {\n    appearance: none;\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    padding: 0;\n    margin: 0;\n    opacity: 0;\n    z-index: 1;\n    outline: 0 none;\n    cursor: pointer;\n  }\n  .p-checkbox-box {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n  }\n  .p-checkbox {\n    width: 22px;\n    height: 22px;\n  }\n  .p-checkbox .p-checkbox-input {\n    border: 2px solid #d1d5db;\n    border-radius: 6px;\n  }\n  .p-checkbox .p-checkbox-box {\n    border: 2px solid #d1d5db;\n    background: #ffffff;\n    width: 22px;\n    height: 22px;\n    color: #4b5563;\n    border-radius: 6px;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n    outline-color: transparent;\n  }\n  .p-checkbox .p-checkbox-box .p-checkbox-icon {\n    transition-duration: 0.2s;\n    color: #ffffff;\n    font-size: 14px;\n  }\n  .p-checkbox .p-checkbox-box .p-checkbox-icon.p-icon {\n    width: 14px;\n    height: 14px;\n  }\n  .p-checkbox .p-checkbox-box {\n    border: 2px solid #d1d5db;\n    background: #ffffff;\n    width: 22px;\n    height: 22px;\n    color: #4b5563;\n    border-radius: 6px;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n    outline-color: transparent;\n  }\n  .p-checkbox .p-checkbox-box .p-checkbox-icon {\n    transition-duration: 0.2s;\n    color: #ffffff;\n    font-size: 14px;\n  }\n  .p-checkbox .p-checkbox-box .p-checkbox-icon.p-icon {\n    width: 14px;\n    height: 14px;\n  }\n  .p-checkbox.p-highlight .p-checkbox-box {\n    border-color: #14b8a6;\n    background: #14b8a6;\n  }\n  .p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\n    border-color: #14b8a6;\n  }\n  .p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover).p-highlight .p-checkbox-box {\n    border-color: #0f766e;\n    background: #0f766e;\n    color: #ffffff;\n  }\n  .p-checkbox:not(.p-disabled):has(.p-checkbox-input:focus-visible) .p-checkbox-box {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n    border-color: #14b8a6;\n  }\n  .p-checkbox.p-invalid > .p-checkbox-box {\n    border-color: #e24c4c;\n  }\n  .p-checkbox.p-variant-filled .p-checkbox-box {\n    background-color: #f3f4f6;\n  }\n  .p-checkbox.p-variant-filled.p-highlight .p-checkbox-box {\n    background: #14b8a6;\n  }\n  .p-checkbox.p-variant-filled:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\n    background-color: #f3f4f6;\n  }\n  .p-checkbox.p-variant-filled:not(.p-disabled):has(.p-checkbox-input:hover).p-highlight .p-checkbox-box {\n    background: #0f766e;\n  }\n  .p-input-filled .p-checkbox .p-checkbox-box {\n    background-color: #f3f4f6;\n  }\n  .p-input-filled .p-checkbox.p-highlight .p-checkbox-box {\n    background: #14b8a6;\n  }\n  .p-input-filled .p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\n    background-color: #f3f4f6;\n  }\n  .p-input-filled .p-checkbox:not(.p-disabled):has(.p-checkbox-input:hover).p-highlight .p-checkbox-box {\n    background: #0f766e;\n  }\n  .p-checkbox {\n    position: relative;\n    display: inline-flex;\n    user-select: none;\n    vertical-align: bottom;\n  }\n  .p-checkbox-input {\n    cursor: pointer;\n  }\n  .p-checkbox-box {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n  }\n  .p-tristatecheckbox.p-variant-filled .p-checkbox-box {\n    background-color: #f3f4f6;\n  }\n  .p-tristatecheckbox.p-variant-filled.p-highlight .p-checkbox-box {\n    background: #14b8a6;\n  }\n  .p-tristatecheckbox.p-variant-filled:not(.p-disabled):has(.p-checkbox-input:hover) .p-checkbox-box {\n    background-color: #f3f4f6;\n  }\n  .p-tristatecheckbox.p-variant-filled:not(.p-disabled):has(.p-checkbox-input:hover).p-highlight .p-checkbox-box {\n    background: #0f766e;\n  }\n  .p-chips {\n    display: inline-flex;\n  }\n  .p-chips-multiple-container {\n    margin: 0;\n    padding: 0;\n    list-style-type: none;\n    cursor: text;\n    overflow: hidden;\n    display: flex;\n    align-items: center;\n    flex-wrap: wrap;\n  }\n  .p-chips-token {\n    cursor: default;\n    display: inline-flex;\n    align-items: center;\n    flex: 0 0 auto;\n  }\n  .p-chips-input-token {\n    flex: 1 1 auto;\n    display: inline-flex;\n  }\n  .p-chips-token-icon {\n    cursor: pointer;\n  }\n  .p-chips-input-token input {\n    border: 0 none;\n    outline: 0 none;\n    background-color: transparent;\n    margin: 0;\n    padding: 0;\n    box-shadow: none;\n    border-radius: 0;\n    width: 100%;\n  }\n  .p-fluid .p-chips {\n    display: flex;\n  }\n  .p-chips:not(.p-disabled):hover .p-chips-multiple-container {\n    border-color: #14b8a6;\n  }\n  .p-chips:not(.p-disabled).p-focus .p-chips-multiple-container {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n    border-color: #14b8a6;\n  }\n  .p-chips .p-chips-multiple-container {\n    padding: 0.375rem 0.75rem;\n    outline-color: transparent;\n  }\n  .p-chips .p-chips-multiple-container .p-chips-token {\n    padding: 0.375rem 0.75rem;\n    margin-right: 0.5rem;\n    background: #e5e7eb;\n    color: #4b5563;\n    border-radius: 16px;\n  }\n  .p-chips .p-chips-multiple-container .p-chips-token.p-focus {\n    background: #e5e7eb;\n    color: #4b5563;\n  }\n  .p-chips .p-chips-multiple-container .p-chips-token .p-chips-token-icon {\n    margin-left: 0.5rem;\n  }\n  .p-chips .p-chips-multiple-container .p-chips-input-token {\n    padding: 0.375rem 0;\n  }\n  .p-chips .p-chips-multiple-container .p-chips-input-token input {\n    font-family: var(--font-family);\n    font-feature-settings: var(--font-feature-settings, normal);\n    font-size: 1rem;\n    color: #4b5563;\n    padding: 0;\n    margin: 0;\n  }\n  .p-chips.p-invalid.p-component > .p-inputtext {\n    border-color: #e24c4c;\n  }\n  .p-colorpicker-preview {\n    width: 2rem;\n    height: 2rem;\n  }\n  .p-colorpicker-panel {\n    background: #323232;\n    border: 1px solid #191919;\n  }\n  .p-colorpicker-panel .p-colorpicker-color-handle,\n  .p-colorpicker-panel .p-colorpicker-hue-handle {\n    border-color: #ffffff;\n  }\n  .p-colorpicker-overlay-panel {\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-dropdown {\n    display: inline-flex;\n    cursor: pointer;\n    position: relative;\n    user-select: none;\n  }\n  .p-dropdown-clear-icon {\n    position: absolute;\n    top: 50%;\n    margin-top: -0.5rem;\n  }\n  .p-dropdown-trigger {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n  }\n  .p-dropdown-label {\n    display: block;\n    white-space: nowrap;\n    overflow: hidden;\n    flex: 1 1 auto;\n    width: 1%;\n    text-overflow: ellipsis;\n    cursor: pointer;\n  }\n  .p-dropdown-label-empty {\n    overflow: hidden;\n    opacity: 0;\n  }\n  input.p-dropdown-label {\n    cursor: default;\n  }\n  .p-dropdown .p-dropdown-panel {\n    min-width: 100%;\n  }\n  .p-dropdown-panel {\n    position: absolute;\n    top: 0;\n    left: 0;\n  }\n  .p-dropdown-items-wrapper {\n    overflow: auto;\n  }\n  .p-dropdown-item {\n    cursor: pointer;\n    font-weight: normal;\n    white-space: nowrap;\n    position: relative;\n    overflow: hidden;\n    display: flex;\n    align-items: center;\n  }\n  .p-dropdown-item-group {\n    cursor: auto;\n  }\n  .p-dropdown-items {\n    margin: 0;\n    padding: 0;\n    list-style-type: none;\n  }\n  .p-dropdown-filter {\n    width: 100%;\n  }\n  .p-dropdown-filter-container {\n    position: relative;\n  }\n  .p-dropdown-filter-icon {\n    position: absolute;\n    top: 50%;\n    margin-top: -0.5rem;\n  }\n  .p-fluid .p-dropdown {\n    display: flex;\n  }\n  .p-fluid .p-dropdown .p-dropdown-label {\n    width: 1%;\n  }\n  .p-dropdown {\n    background: #ffffff;\n    border: 1px solid #d1d5db;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n    border-radius: 6px;\n    outline-color: transparent;\n  }\n  .p-dropdown:not(.p-disabled):hover {\n    border-color: #14b8a6;\n  }\n  .p-dropdown:not(.p-disabled).p-focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n    border-color: #14b8a6;\n  }\n  .p-dropdown.p-variant-filled {\n    background: #f3f4f6;\n  }\n  .p-dropdown.p-variant-filled:not(.p-disabled):hover {\n    background-color: #f3f4f6;\n  }\n  .p-dropdown.p-variant-filled:not(.p-disabled).p-focus {\n    background-color: #ffffff;\n  }\n  .p-dropdown.p-variant-filled:not(.p-disabled).p-focus .p-inputtext {\n    background-color: transparent;\n  }\n  .p-dropdown.p-dropdown-clearable .p-dropdown-label {\n    padding-right: 1.75rem;\n  }\n  .p-dropdown .p-dropdown-label {\n    background: transparent;\n    border: 0 none;\n  }\n  .p-dropdown .p-dropdown-label.p-placeholder {\n    color: #6b7280;\n  }\n  .p-dropdown .p-dropdown-label:focus, .p-dropdown .p-dropdown-label:enabled:focus {\n    outline: 0 none;\n    box-shadow: none;\n  }\n  .p-dropdown .p-dropdown-trigger {\n    background: transparent;\n    color: #6b7280;\n    width: 3rem;\n    border-top-right-radius: 6px;\n    border-bottom-right-radius: 6px;\n  }\n  .p-dropdown .p-dropdown-clear-icon {\n    color: #6b7280;\n    right: 3rem;\n  }\n  .p-dropdown.p-invalid.p-component {\n    border-color: #e24c4c;\n  }\n  .p-dropdown-panel {\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    border-radius: 6px;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-dropdown-panel .p-dropdown-header {\n    padding: 0.75rem 1.25rem;\n    border-bottom: 1px solid #e5e7eb;\n    color: #374151;\n    background: #f9fafb;\n    margin: 0;\n    border-top-right-radius: 6px;\n    border-top-left-radius: 6px;\n  }\n  .p-dropdown-panel .p-dropdown-header .p-dropdown-filter {\n    padding-right: 1.75rem;\n    margin-right: -1.75rem;\n  }\n  .p-dropdown-panel .p-dropdown-header .p-dropdown-filter-icon {\n    right: 0.75rem;\n    color: #6b7280;\n  }\n  .p-dropdown-panel .p-dropdown-items {\n    padding: 0.75rem 0;\n  }\n  .p-dropdown-panel .p-dropdown-items .p-dropdown-item {\n    margin: 0;\n    padding: 0.75rem 1.25rem;\n    border: 0 none;\n    color: #4b5563;\n    background: transparent;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-dropdown-panel .p-dropdown-items .p-dropdown-item:first-child {\n    margin-top: 0;\n  }\n  .p-dropdown-panel .p-dropdown-items .p-dropdown-item:last-child {\n    margin-bottom: 0;\n  }\n  .p-dropdown-panel .p-dropdown-items .p-dropdown-item.p-highlight {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-dropdown-panel .p-dropdown-items .p-dropdown-item.p-highlight.p-focus {\n    background: rgba(20, 184, 166, 0.24);\n  }\n  .p-dropdown-panel .p-dropdown-items .p-dropdown-item:not(.p-highlight):not(.p-disabled).p-focus {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-dropdown-panel .p-dropdown-items .p-dropdown-item .p-dropdown-check-icon {\n    position: relative;\n    margin-left: -0.5rem;\n    margin-right: 0.5rem;\n  }\n  .p-dropdown-panel .p-dropdown-items .p-dropdown-item-group {\n    margin: 0;\n    padding: 0.75rem 1.25rem;\n    color: #374151;\n    background: #ffffff;\n    font-weight: 700;\n  }\n  .p-dropdown-panel .p-dropdown-items .p-dropdown-empty-message {\n    padding: 0.75rem 1.25rem;\n    color: #4b5563;\n    background: transparent;\n  }\n  .p-inputgroup-addon {\n    background: #f3f4f6;\n    color: #6b7280;\n    border-top: 1px solid #d1d5db;\n    border-left: 1px solid #d1d5db;\n    border-bottom: 1px solid #d1d5db;\n    padding: 0.75rem 0.75rem;\n    min-width: 3rem;\n  }\n  .p-inputgroup-addon:last-child {\n    border-right: 1px solid #d1d5db;\n  }\n  .p-inputgroup > .p-component,\n  .p-inputgroup > .p-inputwrapper > .p-inputtext,\n  .p-inputgroup > .p-float-label > .p-component {\n    border-radius: 0;\n    margin: 0;\n  }\n  .p-inputgroup > .p-component + .p-inputgroup-addon,\n  .p-inputgroup > .p-inputwrapper > .p-inputtext + .p-inputgroup-addon,\n  .p-inputgroup > .p-float-label > .p-component + .p-inputgroup-addon {\n    border-left: 0 none;\n  }\n  .p-inputgroup > .p-component:focus,\n  .p-inputgroup > .p-inputwrapper > .p-inputtext:focus,\n  .p-inputgroup > .p-float-label > .p-component:focus {\n    z-index: 1;\n  }\n  .p-inputgroup > .p-component:focus ~ label,\n  .p-inputgroup > .p-inputwrapper > .p-inputtext:focus ~ label,\n  .p-inputgroup > .p-float-label > .p-component:focus ~ label {\n    z-index: 1;\n  }\n  .p-inputgroup-addon:first-child,\n  .p-inputgroup button:first-child,\n  .p-inputgroup input:first-child,\n  .p-inputgroup > .p-inputwrapper:first-child,\n  .p-inputgroup > .p-inputwrapper:first-child > .p-inputtext {\n    border-top-left-radius: 6px;\n    border-bottom-left-radius: 6px;\n  }\n  .p-inputgroup .p-float-label:first-child input {\n    border-top-left-radius: 6px;\n    border-bottom-left-radius: 6px;\n  }\n  .p-inputgroup-addon:last-child,\n  .p-inputgroup button:last-child,\n  .p-inputgroup input:last-child,\n  .p-inputgroup > .p-inputwrapper:last-child,\n  .p-inputgroup > .p-inputwrapper:last-child > .p-inputtext {\n    border-top-right-radius: 6px;\n    border-bottom-right-radius: 6px;\n  }\n  .p-inputgroup .p-float-label:last-child input {\n    border-top-right-radius: 6px;\n    border-bottom-right-radius: 6px;\n  }\n  .p-fluid .p-inputgroup .p-button {\n    width: auto;\n  }\n  .p-fluid .p-inputgroup .p-button.p-button-icon-only {\n    width: 3rem;\n  }\n  .p-inputnumber.p-invalid.p-component > .p-inputtext {\n    border-color: #e24c4c;\n  }\n  .p-inputswitch {\n    position: relative;\n    display: inline-block;\n  }\n  .p-inputswitch-input {\n    appearance: none;\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    padding: 0;\n    margin: 0;\n    opacity: 0;\n    z-index: 1;\n    outline: 0 none;\n    cursor: pointer;\n  }\n  .p-inputswitch-slider {\n    position: absolute;\n    cursor: pointer;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    border: 1px solid transparent;\n  }\n  .p-inputswitch-slider:before {\n    position: absolute;\n    content: \"\";\n    top: 50%;\n  }\n  .p-inputswitch {\n    width: 3rem;\n    height: 1.75rem;\n  }\n  .p-inputswitch .p-inputswitch-input {\n    border-radius: 30px;\n  }\n  .p-inputswitch .p-inputswitch-slider {\n    background: #d1d5db;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n    border-radius: 30px;\n    outline-color: transparent;\n  }\n  .p-inputswitch .p-inputswitch-slider:before {\n    background: #ffffff;\n    width: 1.25rem;\n    height: 1.25rem;\n    left: 0.25rem;\n    margin-top: -0.625rem;\n    border-radius: 50%;\n    transition-duration: 0.2s;\n  }\n  .p-inputswitch.p-highlight .p-inputswitch-slider {\n    background: #14b8a6;\n  }\n  .p-inputswitch.p-highlight .p-inputswitch-slider:before {\n    background: #ffffff;\n    transform: translateX(1.25rem);\n  }\n  .p-inputswitch:not(.p-disabled):has(.p-inputswitch-input:hover) .p-inputswitch-slider {\n    background: #b7bcc5;\n  }\n  .p-inputswitch:not(.p-disabled):has(.p-inputswitch-input:hover).p-highlight .p-inputswitch-slider {\n    background: #0d9488;\n  }\n  .p-inputswitch:not(.p-disabled):has(.p-inputswitch-input:focus-visible) .p-inputswitch-slider {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-inputswitch.p-invalid > .p-inputswitch-slider {\n    border-color: #e24c4c;\n  }\n  .p-inputtext {\n    font-family: var(--font-family);\n    font-feature-settings: var(--font-feature-settings, normal);\n    font-size: 1rem;\n    color: #4b5563;\n    background: #ffffff;\n    padding: 0.75rem 0.75rem;\n    border: 1px solid #d1d5db;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n    appearance: none;\n    border-radius: 6px;\n    outline-color: transparent;\n  }\n  .p-inputtext:enabled:hover {\n    border-color: #14b8a6;\n  }\n  .p-inputtext:enabled:focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n    border-color: #14b8a6;\n  }\n  .p-inputtext.p-invalid.p-component {\n    border-color: #e24c4c;\n  }\n  .p-inputtext.p-variant-filled {\n    background-color: #f3f4f6;\n  }\n  .p-inputtext.p-variant-filled:enabled:hover {\n    background-color: #f3f4f6;\n  }\n  .p-inputtext.p-variant-filled:enabled:focus {\n    background-color: #ffffff;\n  }\n  .p-inputtext.p-inputtext-sm {\n    font-size: 0.875rem;\n    padding: 0.65625rem 0.65625rem;\n  }\n  .p-inputtext.p-inputtext-lg {\n    font-size: 1.25rem;\n    padding: 0.9375rem 0.9375rem;\n  }\n  .p-float-label > label {\n    left: 0.75rem;\n    color: #6b7280;\n    transition-duration: 0.2s;\n  }\n  .p-float-label > .p-invalid + label {\n    color: #e24c4c;\n  }\n  .p-icon-field-left > .p-inputtext {\n    padding-left: 2.5rem;\n  }\n  .p-icon-field-left.p-float-label > label {\n    left: 2.5rem;\n  }\n  .p-icon-field-right > .p-inputtext {\n    padding-right: 2.5rem;\n  }\n  ::-webkit-input-placeholder {\n    color: #6b7280;\n  }\n  :-moz-placeholder {\n    color: #6b7280;\n  }\n  ::-moz-placeholder {\n    color: #6b7280;\n  }\n  :-ms-input-placeholder {\n    color: #6b7280;\n  }\n  .p-input-filled .p-inputtext {\n    background-color: #f3f4f6;\n  }\n  .p-input-filled .p-inputtext:enabled:hover {\n    background-color: #f3f4f6;\n  }\n  .p-input-filled .p-inputtext:enabled:focus {\n    background-color: #ffffff;\n  }\n  .p-inputtext-sm .p-inputtext {\n    font-size: 0.875rem;\n    padding: 0.65625rem 0.65625rem;\n  }\n  .p-inputtext-lg .p-inputtext {\n    font-size: 1.25rem;\n    padding: 0.9375rem 0.9375rem;\n  }\n  .p-icon-field {\n    position: relative;\n  }\n  .p-icon-field > .p-input-icon {\n    position: absolute;\n    top: 50%;\n    margin-top: -0.5rem;\n  }\n  .p-fluid .p-icon-field-left,\n  .p-fluid .p-icon-field-right {\n    width: 100%;\n  }\n  .p-icon-field-left > .p-input-icon:first-of-type {\n    left: 0.75rem;\n    color: #6b7280;\n  }\n  .p-icon-field-right > .p-input-icon:last-of-type {\n    right: 0.75rem;\n    color: #6b7280;\n  }\n  .p-inputotp {\n    display: flex;\n    align-items: center;\n    gap: 0.5rem;\n  }\n  .p-inputotp-input {\n    text-align: center;\n    width: 2.5rem;\n  }\n  .p-listbox-list-wrapper {\n    overflow: auto;\n  }\n  .p-listbox-list {\n    list-style-type: none;\n    margin: 0;\n    padding: 0;\n  }\n  .p-listbox-item {\n    cursor: pointer;\n    position: relative;\n    overflow: hidden;\n  }\n  .p-listbox-item-group {\n    cursor: auto;\n  }\n  .p-listbox-filter-container {\n    position: relative;\n  }\n  .p-listbox-filter-icon {\n    position: absolute;\n    top: 50%;\n    margin-top: -0.5rem;\n  }\n  .p-listbox-filter {\n    width: 100%;\n  }\n  .p-listbox {\n    background: #ffffff;\n    color: #4b5563;\n    border: 1px solid #d1d5db;\n    border-radius: 6px;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n    outline-color: transparent;\n  }\n  .p-listbox .p-listbox-header {\n    padding: 0.75rem 1.25rem;\n    border-bottom: 1px solid #e5e7eb;\n    color: #374151;\n    background: #f9fafb;\n    margin: 0;\n    border-top-right-radius: 6px;\n    border-top-left-radius: 6px;\n  }\n  .p-listbox .p-listbox-header .p-listbox-filter {\n    padding-right: 1.75rem;\n  }\n  .p-listbox .p-listbox-header .p-listbox-filter-icon {\n    right: 0.75rem;\n    color: #6b7280;\n  }\n  .p-listbox .p-listbox-list {\n    padding: 0.75rem 0;\n    outline: 0 none;\n  }\n  .p-listbox .p-listbox-list .p-listbox-item {\n    margin: 0;\n    padding: 0.75rem 1.25rem;\n    border: 0 none;\n    color: #4b5563;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-listbox .p-listbox-list .p-listbox-item:first-child {\n    margin-top: 0;\n  }\n  .p-listbox .p-listbox-list .p-listbox-item:last-child {\n    margin-bottom: 0;\n  }\n  .p-listbox .p-listbox-list .p-listbox-item.p-highlight {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-listbox .p-listbox-list .p-listbox-item-group {\n    margin: 0;\n    padding: 0.75rem 1.25rem;\n    color: #374151;\n    background: #ffffff;\n    font-weight: 700;\n  }\n  .p-listbox .p-listbox-list .p-listbox-empty-message {\n    padding: 0.75rem 1.25rem;\n    color: #4b5563;\n    background: transparent;\n  }\n  .p-listbox:not(.p-disabled) .p-listbox-item.p-highlight.p-focus {\n    background: rgba(20, 184, 166, 0.24);\n  }\n  .p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled).p-focus {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled):hover {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-listbox:not(.p-disabled) .p-listbox-item:not(.p-highlight):not(.p-disabled):hover.p-focus {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-listbox.p-focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n    border-color: #14b8a6;\n  }\n  .p-listbox.p-invalid {\n    border-color: #e24c4c;\n  }\n  .p-mention-panel {\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    border-radius: 6px;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-mention-panel .p-mention-items {\n    padding: 0.75rem 0;\n  }\n  .p-mention-panel .p-mention-items .p-mention-item {\n    margin: 0;\n    padding: 0.75rem 1.25rem;\n    border: 0 none;\n    color: #4b5563;\n    background: transparent;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-mention-panel .p-mention-items .p-mention-item:hover {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-mention-panel .p-mention-items .p-mention-item.p-highlight {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-multiselect {\n    display: inline-flex;\n    cursor: pointer;\n    user-select: none;\n  }\n  .p-multiselect-trigger {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n  }\n  .p-multiselect-label-container {\n    overflow: hidden;\n    flex: 1 1 auto;\n    cursor: pointer;\n  }\n  .p-multiselect-label {\n    display: block;\n    white-space: nowrap;\n    cursor: pointer;\n    overflow: hidden;\n    text-overflow: ellipsis;\n  }\n  .p-multiselect-label-empty {\n    overflow: hidden;\n    visibility: hidden;\n  }\n  .p-multiselect-token {\n    cursor: default;\n    display: inline-flex;\n    align-items: center;\n    flex: 0 0 auto;\n  }\n  .p-multiselect-token-icon {\n    cursor: pointer;\n  }\n  .p-multiselect .p-multiselect-panel {\n    min-width: 100%;\n  }\n  .p-multiselect-items-wrapper {\n    overflow: auto;\n  }\n  .p-multiselect-items {\n    margin: 0;\n    padding: 0;\n    list-style-type: none;\n  }\n  .p-multiselect-item {\n    cursor: pointer;\n    display: flex;\n    align-items: center;\n    font-weight: normal;\n    white-space: nowrap;\n    position: relative;\n    overflow: hidden;\n  }\n  .p-multiselect-item-group {\n    cursor: auto;\n  }\n  .p-multiselect-header {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n  }\n  .p-multiselect-filter-container {\n    position: relative;\n    flex: 1 1 auto;\n  }\n  .p-multiselect-filter-icon {\n    position: absolute;\n    top: 50%;\n    margin-top: -0.5rem;\n  }\n  .p-multiselect-filter-container .p-inputtext {\n    width: 100%;\n  }\n  .p-multiselect-close {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n    overflow: hidden;\n    position: relative;\n    margin-left: auto;\n  }\n  .p-fluid .p-multiselect {\n    display: flex;\n  }\n  .p-multiselect {\n    background: #ffffff;\n    border: 1px solid #d1d5db;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n    border-radius: 6px;\n    outline-color: transparent;\n  }\n  .p-multiselect:not(.p-disabled):hover {\n    border-color: #14b8a6;\n  }\n  .p-multiselect:not(.p-disabled).p-focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n    border-color: #14b8a6;\n  }\n  .p-multiselect.p-variant-filled {\n    background: #f3f4f6;\n  }\n  .p-multiselect.p-variant-filled:not(.p-disabled):hover {\n    background-color: #f3f4f6;\n  }\n  .p-multiselect.p-variant-filled:not(.p-disabled).p-focus {\n    background-color: #ffffff;\n  }\n  .p-multiselect .p-multiselect-label {\n    padding: 0.75rem 0.75rem;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n  }\n  .p-multiselect .p-multiselect-label.p-placeholder {\n    color: #6b7280;\n  }\n  .p-multiselect.p-multiselect-chip .p-multiselect-token {\n    padding: 0.375rem 0.75rem;\n    margin-right: 0.5rem;\n    background: #e5e7eb;\n    color: #4b5563;\n    border-radius: 16px;\n  }\n  .p-multiselect.p-multiselect-chip .p-multiselect-token .p-multiselect-token-icon {\n    margin-left: 0.5rem;\n  }\n  .p-multiselect .p-multiselect-trigger {\n    background: transparent;\n    color: #6b7280;\n    width: 3rem;\n    border-top-right-radius: 6px;\n    border-bottom-right-radius: 6px;\n  }\n  .p-multiselect.p-invalid.p-component {\n    border-color: #e24c4c;\n  }\n  .p-inputwrapper-filled.p-multiselect.p-multiselect-chip .p-multiselect-label {\n    padding: 0.375rem 0.75rem;\n  }\n  .p-multiselect-panel {\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    border-radius: 6px;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-multiselect-panel .p-multiselect-header {\n    padding: 0.75rem 1.25rem;\n    border-bottom: 1px solid #e5e7eb;\n    color: #374151;\n    background: #f9fafb;\n    margin: 0;\n    border-top-right-radius: 6px;\n    border-top-left-radius: 6px;\n  }\n  .p-multiselect-panel .p-multiselect-header .p-multiselect-filter-container .p-inputtext {\n    padding-right: 1.75rem;\n  }\n  .p-multiselect-panel .p-multiselect-header .p-multiselect-filter-container .p-multiselect-filter-icon {\n    right: 0.75rem;\n    color: #6b7280;\n  }\n  .p-multiselect-panel .p-multiselect-header .p-checkbox {\n    margin-right: 0.5rem;\n  }\n  .p-multiselect-panel .p-multiselect-header .p-multiselect-close {\n    margin-left: 0.5rem;\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border: 0 none;\n    background: transparent;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-multiselect-panel .p-multiselect-header .p-multiselect-close:enabled:hover {\n    color: #374151;\n    border-color: transparent;\n    background: #f3f4f6;\n  }\n  .p-multiselect-panel .p-multiselect-header .p-multiselect-close:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-multiselect-panel .p-multiselect-items {\n    padding: 0.75rem 0;\n  }\n  .p-multiselect-panel .p-multiselect-items .p-multiselect-item {\n    margin: 0;\n    padding: 0.75rem 1.25rem;\n    border: 0 none;\n    color: #4b5563;\n    background: transparent;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-multiselect-panel .p-multiselect-items .p-multiselect-item:first-child {\n    margin-top: 0;\n  }\n  .p-multiselect-panel .p-multiselect-items .p-multiselect-item:last-child {\n    margin-bottom: 0;\n  }\n  .p-multiselect-panel .p-multiselect-items .p-multiselect-item.p-highlight {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-multiselect-panel .p-multiselect-items .p-multiselect-item.p-highlight.p-focus {\n    background: rgba(20, 184, 166, 0.24);\n  }\n  .p-multiselect-panel .p-multiselect-items .p-multiselect-item:not(.p-highlight):not(.p-disabled).p-focus {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-multiselect-panel .p-multiselect-items .p-multiselect-item .p-checkbox {\n    margin-right: 0.5rem;\n  }\n  .p-multiselect-panel .p-multiselect-items .p-multiselect-item-group {\n    margin: 0;\n    padding: 0.75rem 1.25rem;\n    color: #374151;\n    background: #ffffff;\n    font-weight: 700;\n  }\n  .p-multiselect-panel .p-multiselect-items .p-multiselect-empty-message {\n    padding: 0.75rem 1.25rem;\n    color: #4b5563;\n    background: transparent;\n  }\n  .p-password.p-invalid.p-component > .p-inputtext {\n    border-color: #e24c4c;\n  }\n  .p-password-panel {\n    padding: 1.25rem;\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n    border-radius: 6px;\n  }\n  .p-password-panel .p-password-meter {\n    margin-bottom: 0.5rem;\n    background: #e5e7eb;\n  }\n  .p-password-panel .p-password-meter .p-password-strength.weak {\n    background: #ea5455;\n  }\n  .p-password-panel .p-password-meter .p-password-strength.medium {\n    background: #ff9f42;\n  }\n  .p-password-panel .p-password-meter .p-password-strength.strong {\n    background: #29c76f;\n  }\n  .p-radiobutton {\n    position: relative;\n    display: inline-flex;\n    user-select: none;\n    vertical-align: bottom;\n  }\n  .p-radiobutton-input {\n    cursor: pointer;\n  }\n  .p-radiobutton-box {\n    display: flex;\n    justify-content: center;\n    align-items: center;\n  }\n  .p-radiobutton-icon {\n    -webkit-backface-visibility: hidden;\n    backface-visibility: hidden;\n    transform: translateZ(0) scale(0.1);\n    border-radius: 50%;\n    visibility: hidden;\n  }\n  .p-radiobutton.p-highlight .p-radiobutton-icon {\n    transform: translateZ(0) scale(1, 1);\n    visibility: visible;\n  }\n  .p-radiobutton {\n    width: 22px;\n    height: 22px;\n  }\n  .p-radiobutton .p-radiobutton-input {\n    appearance: none;\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    padding: 0;\n    margin: 0;\n    opacity: 0;\n    z-index: 1;\n    outline: 0 none;\n    border: 2px solid #d1d5db;\n    border-radius: 50%;\n  }\n  .p-radiobutton .p-radiobutton-box {\n    border: 2px solid #d1d5db;\n    background: #ffffff;\n    width: 22px;\n    height: 22px;\n    color: #4b5563;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n    outline-color: transparent;\n  }\n  .p-radiobutton .p-radiobutton-box .p-radiobutton-icon {\n    width: 12px;\n    height: 12px;\n    transition-duration: 0.2s;\n    background-color: #ffffff;\n  }\n  .p-radiobutton.p-highlight .p-radiobutton-box {\n    border-color: #14b8a6;\n    background: #14b8a6;\n  }\n  .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover) .p-radiobutton-box {\n    border-color: #14b8a6;\n  }\n  .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover).p-highlight .p-radiobutton-box {\n    border-color: #0f766e;\n    background: #0f766e;\n  }\n  .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover).p-highlight .p-radiobutton-box .p-radiobutton-icon {\n    background-color: #ffffff;\n  }\n  .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:focus-visible) .p-radiobutton-box {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n    border-color: #14b8a6;\n  }\n  .p-radiobutton.p-invalid > .p-radiobutton-box {\n    border-color: #e24c4c;\n  }\n  .p-radiobutton.p-variant-filled .p-radiobutton-box {\n    background-color: #f3f4f6;\n  }\n  .p-radiobutton.p-variant-filled.p-highlight .p-radiobutton-box {\n    background: #14b8a6;\n  }\n  .p-radiobutton.p-variant-filled:not(.p-disabled):has(.p-radiobutton-input:hover) .p-radiobutton-box {\n    background-color: #f3f4f6;\n  }\n  .p-radiobutton.p-variant-filled:not(.p-disabled):has(.p-radiobutton-input:hover).p-highlight .p-radiobutton-box {\n    background: #0f766e;\n  }\n  .p-input-filled .p-radiobutton .p-radiobutton-box {\n    background-color: #f3f4f6;\n  }\n  .p-input-filled .p-radiobutton.p-highlight .p-radiobutton-box {\n    background: #14b8a6;\n  }\n  .p-input-filled .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover) .p-radiobutton-box {\n    background-color: #f3f4f6;\n  }\n  .p-input-filled .p-radiobutton:not(.p-disabled):has(.p-radiobutton-input:hover).p-highlight .p-radiobutton-box {\n    background: #0f766e;\n  }\n  .p-rating {\n    position: relative;\n    display: flex;\n    align-items: center;\n  }\n  .p-rating-item {\n    display: inline-flex;\n    align-items: center;\n    cursor: pointer;\n  }\n  .p-rating.p-readonly .p-rating-item {\n    cursor: default;\n  }\n  .p-rating {\n    gap: 0.5rem;\n  }\n  .p-rating .p-rating-item {\n    outline-color: transparent;\n    border-radius: 50%;\n  }\n  .p-rating .p-rating-item .p-rating-icon {\n    color: #4b5563;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n    font-size: 1.143rem;\n  }\n  .p-rating .p-rating-item .p-rating-icon.p-icon {\n    width: 1.143rem;\n    height: 1.143rem;\n  }\n  .p-rating .p-rating-item .p-rating-icon.p-rating-cancel {\n    color: #ea5455;\n  }\n  .p-rating .p-rating-item.p-focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-rating .p-rating-item.p-rating-item-active .p-rating-icon {\n    color: #14b8a6;\n  }\n  .p-rating:not(.p-disabled):not(.p-readonly) .p-rating-item:hover .p-rating-icon {\n    color: #14b8a6;\n  }\n  .p-rating:not(.p-disabled):not(.p-readonly) .p-rating-item:hover .p-rating-icon.p-rating-cancel {\n    color: #e73d3e;\n  }\n  .p-selectbutton .p-button {\n    background: #ffffff;\n    border: 1px solid #d1d5db;\n    color: #4b5563;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n  }\n  .p-selectbutton .p-button .p-button-icon-left,\n  .p-selectbutton .p-button .p-button-icon-right {\n    color: #6b7280;\n  }\n  .p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover {\n    background: #f3f4f6;\n    border-color: #d1d5db;\n    color: #4b5563;\n  }\n  .p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-left,\n  .p-selectbutton .p-button:not(.p-disabled):not(.p-highlight):hover .p-button-icon-right {\n    color: #374151;\n  }\n  .p-selectbutton .p-button.p-highlight {\n    background: #14b8a6;\n    border-color: #14b8a6;\n    color: #ffffff;\n  }\n  .p-selectbutton .p-button.p-highlight .p-button-icon-left,\n  .p-selectbutton .p-button.p-highlight .p-button-icon-right {\n    color: #ffffff;\n  }\n  .p-selectbutton .p-button.p-highlight:hover {\n    background: #0d9488;\n    border-color: #0d9488;\n    color: #ffffff;\n  }\n  .p-selectbutton .p-button.p-highlight:hover .p-button-icon-left,\n  .p-selectbutton .p-button.p-highlight:hover .p-button-icon-right {\n    color: #ffffff;\n  }\n  .p-selectbutton.p-invalid > .p-button {\n    border-color: #e24c4c;\n  }\n  .p-slider {\n    background: #e5e7eb;\n    border: 0 none;\n    border-radius: 6px;\n  }\n  .p-slider.p-slider-horizontal {\n    height: 0.286rem;\n  }\n  .p-slider.p-slider-horizontal .p-slider-handle {\n    margin-top: -0.5715rem;\n    margin-left: -0.5715rem;\n  }\n  .p-slider.p-slider-vertical {\n    width: 0.286rem;\n  }\n  .p-slider.p-slider-vertical .p-slider-handle {\n    margin-left: -0.5715rem;\n    margin-bottom: -0.5715rem;\n  }\n  .p-slider .p-slider-handle {\n    height: 1.143rem;\n    width: 1.143rem;\n    background: #ffffff;\n    border: 2px solid #14b8a6;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n  }\n  .p-slider .p-slider-handle:focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-slider .p-slider-range {\n    background: #14b8a6;\n  }\n  .p-slider:not(.p-disabled) .p-slider-handle:hover {\n    background: #14b8a6;\n    border-color: #14b8a6;\n  }\n  .p-treeselect {\n    background: #ffffff;\n    border: 1px solid #d1d5db;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n    border-radius: 6px;\n  }\n  .p-treeselect:not(.p-disabled):hover {\n    border-color: #14b8a6;\n  }\n  .p-treeselect:not(.p-disabled).p-focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n    border-color: #14b8a6;\n  }\n  .p-treeselect.p-treeselect-clearable .p-treeselect-label {\n    padding-right: 1.75rem;\n  }\n  .p-treeselect.p-variant-filled {\n    background: #f3f4f6;\n  }\n  .p-treeselect.p-variant-filled:not(.p-disabled):hover {\n    background-color: #f3f4f6;\n  }\n  .p-treeselect.p-variant-filled:not(.p-disabled).p-focus {\n    background-color: #ffffff;\n  }\n  .p-treeselect .p-treeselect-label {\n    padding: 0.75rem 0.75rem;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n  }\n  .p-treeselect .p-treeselect-label.p-placeholder {\n    color: #6b7280;\n  }\n  .p-treeselect.p-treeselect-chip .p-treeselect-token {\n    padding: 0.375rem 0.75rem;\n    margin-right: 0.5rem;\n    background: #e5e7eb;\n    color: #4b5563;\n    border-radius: 16px;\n  }\n  .p-treeselect .p-treeselect-trigger {\n    background: transparent;\n    color: #6b7280;\n    width: 3rem;\n    border-top-right-radius: 6px;\n    border-bottom-right-radius: 6px;\n  }\n  .p-treeselect .p-treeselect-clear-icon {\n    color: #6b7280;\n    right: 3rem;\n  }\n  .p-treeselect.p-invalid.p-component {\n    border-color: #e24c4c;\n  }\n  .p-inputwrapper-filled.p-treeselect.p-treeselect-chip .p-treeselect-label {\n    padding: 0.375rem 0.75rem;\n  }\n  .p-treeselect-panel {\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    border-radius: 6px;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-treeselect-panel .p-treeselect-header {\n    padding: 0.75rem 1.25rem;\n    border-bottom: 1px solid #e5e7eb;\n    color: #374151;\n    background: #f9fafb;\n    margin: 0;\n    border-top-right-radius: 6px;\n    border-top-left-radius: 6px;\n  }\n  .p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container {\n    margin-right: 0.5rem;\n  }\n  .p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container .p-treeselect-filter {\n    padding-right: 1.75rem;\n  }\n  .p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container .p-treeselect-filter-icon {\n    right: 0.75rem;\n    color: #6b7280;\n  }\n  .p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container.p-treeselect-clearable-filter .p-treeselect-filter {\n    padding-right: 3.5rem;\n  }\n  .p-treeselect-panel .p-treeselect-header .p-treeselect-filter-container.p-treeselect-clearable-filter .p-treeselect-filter-clear-icon {\n    right: 2.5rem;\n  }\n  .p-treeselect-panel .p-treeselect-header .p-treeselect-close {\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border: 0 none;\n    background: transparent;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-treeselect-panel .p-treeselect-header .p-treeselect-close:enabled:hover {\n    color: #374151;\n    border-color: transparent;\n    background: #f3f4f6;\n  }\n  .p-treeselect-panel .p-treeselect-header .p-treeselect-close:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-treeselect-panel .p-treeselect-items-wrapper .p-tree {\n    border: 0 none;\n  }\n  .p-treeselect-panel .p-treeselect-items-wrapper .p-treeselect-empty-message {\n    padding: 0.75rem 1.25rem;\n    color: #4b5563;\n    background: transparent;\n  }\n  .p-input-filled .p-treeselect {\n    background: #f3f4f6;\n  }\n  .p-input-filled .p-treeselect:not(.p-disabled):hover {\n    background-color: #f3f4f6;\n  }\n  .p-input-filled .p-treeselect:not(.p-disabled).p-focus {\n    background-color: #ffffff;\n  }\n  .p-togglebutton {\n    position: relative;\n    display: inline-flex;\n    user-select: none;\n    vertical-align: bottom;\n  }\n  .p-togglebutton-input {\n    cursor: pointer;\n  }\n  .p-togglebutton .p-button {\n    flex: 1 1 auto;\n  }\n  .p-togglebutton .p-togglebutton-input {\n    appearance: none;\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    padding: 0;\n    margin: 0;\n    opacity: 0;\n    z-index: 1;\n    outline: 0 none;\n    border: 1px solid #d1d5db;\n    border-radius: 6px;\n  }\n  .p-togglebutton .p-button {\n    background: #ffffff;\n    border: 1px solid #d1d5db;\n    color: #4b5563;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n    outline-color: transparent;\n  }\n  .p-togglebutton .p-button .p-button-icon-left,\n  .p-togglebutton .p-button .p-button-icon-right {\n    color: #6b7280;\n  }\n  .p-togglebutton.p-highlight .p-button {\n    background: #14b8a6;\n    border-color: #14b8a6;\n    color: #ffffff;\n  }\n  .p-togglebutton.p-highlight .p-button .p-button-icon-left,\n  .p-togglebutton.p-highlight .p-button .p-button-icon-right {\n    color: #ffffff;\n  }\n  .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover):not(.p-highlight) .p-button {\n    background: #f3f4f6;\n    border-color: #d1d5db;\n    color: #4b5563;\n  }\n  .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover):not(.p-highlight) .p-button .p-button-icon-left,\n  .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover):not(.p-highlight) .p-button .p-button-icon-right {\n    color: #374151;\n  }\n  .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover).p-highlight .p-button {\n    background: #0d9488;\n    border-color: #0d9488;\n    color: #ffffff;\n  }\n  .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover).p-highlight .p-button .p-button-icon-left,\n  .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:hover).p-highlight .p-button .p-button-icon-right {\n    color: #ffffff;\n  }\n  .p-togglebutton:not(.p-disabled):has(.p-togglebutton-input:focus-visible) .p-button {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n    border-color: #14b8a6;\n  }\n  .p-togglebutton.p-invalid > .p-button {\n    border-color: #e24c4c;\n  }\n  .p-button {\n    color: #ffffff;\n    background: #14b8a6;\n    border: 1px solid #14b8a6;\n    padding: 0.75rem 1.25rem;\n    font-size: 1rem;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n    border-radius: 6px;\n  }\n  .p-button:not(:disabled):hover {\n    background: #0d9488;\n    color: #ffffff;\n    border-color: #0d9488;\n  }\n  .p-button:not(:disabled):active {\n    background: #0f766e;\n    color: #ffffff;\n    border-color: #0f766e;\n  }\n  .p-button.p-button-outlined {\n    background-color: transparent;\n    color: #14b8a6;\n    border: 1px solid;\n  }\n  .p-button.p-button-outlined:not(:disabled):hover {\n    background: rgba(20, 184, 166, 0.04);\n    color: #14b8a6;\n    border: 1px solid;\n  }\n  .p-button.p-button-outlined:not(:disabled):active {\n    background: rgba(20, 184, 166, 0.16);\n    color: #14b8a6;\n    border: 1px solid;\n  }\n  .p-button.p-button-outlined.p-button-plain {\n    color: #6b7280;\n    border-color: #6b7280;\n  }\n  .p-button.p-button-outlined.p-button-plain:not(:disabled):hover {\n    background: #f3f4f6;\n    color: #6b7280;\n  }\n  .p-button.p-button-outlined.p-button-plain:not(:disabled):active {\n    background: #e5e7eb;\n    color: #6b7280;\n  }\n  .p-button.p-button-text {\n    background-color: transparent;\n    color: #14b8a6;\n    border-color: transparent;\n  }\n  .p-button.p-button-text:not(:disabled):hover {\n    background: rgba(20, 184, 166, 0.04);\n    color: #14b8a6;\n    border-color: transparent;\n  }\n  .p-button.p-button-text:not(:disabled):active {\n    background: rgba(20, 184, 166, 0.16);\n    color: #14b8a6;\n    border-color: transparent;\n  }\n  .p-button.p-button-text.p-button-plain {\n    color: #6b7280;\n  }\n  .p-button.p-button-text.p-button-plain:not(:disabled):hover {\n    background: #f3f4f6;\n    color: #6b7280;\n  }\n  .p-button.p-button-text.p-button-plain:not(:disabled):active {\n    background: #e5e7eb;\n    color: #6b7280;\n  }\n  .p-button:focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-button .p-button-label {\n    transition-duration: 0.2s;\n  }\n  .p-button .p-button-icon-left {\n    margin-right: 0.5rem;\n  }\n  .p-button .p-button-icon-right {\n    margin-left: 0.5rem;\n  }\n  .p-button .p-button-icon-bottom {\n    margin-top: 0.5rem;\n  }\n  .p-button .p-button-icon-top {\n    margin-bottom: 0.5rem;\n  }\n  .p-button .p-badge {\n    margin-left: 0.5rem;\n    min-width: 1rem;\n    height: 1rem;\n    line-height: 1rem;\n    color: #14b8a6;\n    background-color: #ffffff;\n  }\n  .p-button.p-button-raised {\n    box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n  }\n  .p-button.p-button-rounded {\n    border-radius: 2rem;\n  }\n  .p-button.p-button-icon-only {\n    width: 3rem;\n    padding: 0.75rem 0;\n  }\n  .p-button.p-button-icon-only .p-button-icon-left,\n  .p-button.p-button-icon-only .p-button-icon-right {\n    margin: 0;\n  }\n  .p-button.p-button-icon-only.p-button-rounded {\n    border-radius: 50%;\n    height: 3rem;\n  }\n  .p-button.p-button-sm {\n    font-size: 0.875rem;\n    padding: 0.65625rem 1.09375rem;\n  }\n  .p-button.p-button-sm .p-button-icon {\n    font-size: 0.875rem;\n  }\n  .p-button.p-button-lg {\n    font-size: 1.25rem;\n    padding: 0.9375rem 1.5625rem;\n  }\n  .p-button.p-button-lg .p-button-icon {\n    font-size: 1.25rem;\n  }\n  .p-button.p-button-loading-label-only.p-button-loading-left .p-button-label {\n    margin-left: 0.5rem;\n  }\n  .p-button.p-button-loading-label-only.p-button-loading-right .p-button-label {\n    margin-right: 0.5rem;\n  }\n  .p-button.p-button-loading-label-only.p-button-loading-top .p-button-label {\n    margin-top: 0.5rem;\n  }\n  .p-button.p-button-loading-label-only.p-button-loading-bottom .p-button-label {\n    margin-bottom: 0.5rem;\n  }\n  .p-button.p-button-loading-label-only .p-button-loading-icon {\n    margin: 0;\n  }\n  .p-fluid .p-button {\n    width: 100%;\n  }\n  .p-fluid .p-button-icon-only {\n    width: 3rem;\n  }\n  .p-fluid .p-button-group {\n    display: flex;\n  }\n  .p-fluid .p-button-group .p-button {\n    flex: 1;\n  }\n  .p-button.p-button-secondary, .p-button-group.p-button-secondary > .p-button, .p-splitbutton.p-button-secondary > .p-button, .p-fileupload-choose.p-button-secondary {\n    color: #ffffff;\n    background: #64748b;\n    border: 1px solid #64748b;\n  }\n  .p-button.p-button-secondary:not(:disabled):hover, .p-button-group.p-button-secondary > .p-button:not(:disabled):hover, .p-splitbutton.p-button-secondary > .p-button:not(:disabled):hover, .p-fileupload-choose.p-button-secondary:not(:disabled):hover {\n    background: #475569;\n    color: #ffffff;\n    border-color: #475569;\n  }\n  .p-button.p-button-secondary:not(:disabled):focus, .p-button-group.p-button-secondary > .p-button:not(:disabled):focus, .p-splitbutton.p-button-secondary > .p-button:not(:disabled):focus, .p-fileupload-choose.p-button-secondary:not(:disabled):focus {\n    box-shadow: 0 0 0 0.2rem #e2e8f0;\n  }\n  .p-button.p-button-secondary:not(:disabled):active, .p-button-group.p-button-secondary > .p-button:not(:disabled):active, .p-splitbutton.p-button-secondary > .p-button:not(:disabled):active, .p-fileupload-choose.p-button-secondary:not(:disabled):active {\n    background: #334155;\n    color: #ffffff;\n    border-color: #334155;\n  }\n  .p-button.p-button-secondary.p-button-outlined, .p-button-group.p-button-secondary > .p-button.p-button-outlined, .p-splitbutton.p-button-secondary > .p-button.p-button-outlined, .p-fileupload-choose.p-button-secondary.p-button-outlined {\n    background-color: transparent;\n    color: #64748b;\n    border: 1px solid;\n  }\n  .p-button.p-button-secondary.p-button-outlined:not(:disabled):hover, .p-button-group.p-button-secondary > .p-button.p-button-outlined:not(:disabled):hover, .p-splitbutton.p-button-secondary > .p-button.p-button-outlined:not(:disabled):hover, .p-fileupload-choose.p-button-secondary.p-button-outlined:not(:disabled):hover {\n    background: rgba(100, 116, 139, 0.04);\n    color: #64748b;\n    border: 1px solid;\n  }\n  .p-button.p-button-secondary.p-button-outlined:not(:disabled):active, .p-button-group.p-button-secondary > .p-button.p-button-outlined:not(:disabled):active, .p-splitbutton.p-button-secondary > .p-button.p-button-outlined:not(:disabled):active, .p-fileupload-choose.p-button-secondary.p-button-outlined:not(:disabled):active {\n    background: rgba(100, 116, 139, 0.16);\n    color: #64748b;\n    border: 1px solid;\n  }\n  .p-button.p-button-secondary.p-button-text, .p-button-group.p-button-secondary > .p-button.p-button-text, .p-splitbutton.p-button-secondary > .p-button.p-button-text, .p-fileupload-choose.p-button-secondary.p-button-text {\n    background-color: transparent;\n    color: #64748b;\n    border-color: transparent;\n  }\n  .p-button.p-button-secondary.p-button-text:not(:disabled):hover, .p-button-group.p-button-secondary > .p-button.p-button-text:not(:disabled):hover, .p-splitbutton.p-button-secondary > .p-button.p-button-text:not(:disabled):hover, .p-fileupload-choose.p-button-secondary.p-button-text:not(:disabled):hover {\n    background: rgba(100, 116, 139, 0.04);\n    border-color: transparent;\n    color: #64748b;\n  }\n  .p-button.p-button-secondary.p-button-text:not(:disabled):active, .p-button-group.p-button-secondary > .p-button.p-button-text:not(:disabled):active, .p-splitbutton.p-button-secondary > .p-button.p-button-text:not(:disabled):active, .p-fileupload-choose.p-button-secondary.p-button-text:not(:disabled):active {\n    background: rgba(100, 116, 139, 0.16);\n    border-color: transparent;\n    color: #64748b;\n  }\n  .p-button.p-button-info, .p-button-group.p-button-info > .p-button, .p-splitbutton.p-button-info > .p-button, .p-fileupload-choose.p-button-info {\n    color: #ffffff;\n    background: #0ea5e9;\n    border: 1px solid #0ea5e9;\n  }\n  .p-button.p-button-info:not(:disabled):hover, .p-button-group.p-button-info > .p-button:not(:disabled):hover, .p-splitbutton.p-button-info > .p-button:not(:disabled):hover, .p-fileupload-choose.p-button-info:not(:disabled):hover {\n    background: #0284c7;\n    color: #ffffff;\n    border-color: #0284c7;\n  }\n  .p-button.p-button-info:not(:disabled):focus, .p-button-group.p-button-info > .p-button:not(:disabled):focus, .p-splitbutton.p-button-info > .p-button:not(:disabled):focus, .p-fileupload-choose.p-button-info:not(:disabled):focus {\n    box-shadow: 0 0 0 0.2rem #bfdbfe;\n  }\n  .p-button.p-button-info:not(:disabled):active, .p-button-group.p-button-info > .p-button:not(:disabled):active, .p-splitbutton.p-button-info > .p-button:not(:disabled):active, .p-fileupload-choose.p-button-info:not(:disabled):active {\n    background: #0369a1;\n    color: #ffffff;\n    border-color: #0369a1;\n  }\n  .p-button.p-button-info.p-button-outlined, .p-button-group.p-button-info > .p-button.p-button-outlined, .p-splitbutton.p-button-info > .p-button.p-button-outlined, .p-fileupload-choose.p-button-info.p-button-outlined {\n    background-color: transparent;\n    color: #0ea5e9;\n    border: 1px solid;\n  }\n  .p-button.p-button-info.p-button-outlined:not(:disabled):hover, .p-button-group.p-button-info > .p-button.p-button-outlined:not(:disabled):hover, .p-splitbutton.p-button-info > .p-button.p-button-outlined:not(:disabled):hover, .p-fileupload-choose.p-button-info.p-button-outlined:not(:disabled):hover {\n    background: rgba(14, 165, 233, 0.04);\n    color: #0ea5e9;\n    border: 1px solid;\n  }\n  .p-button.p-button-info.p-button-outlined:not(:disabled):active, .p-button-group.p-button-info > .p-button.p-button-outlined:not(:disabled):active, .p-splitbutton.p-button-info > .p-button.p-button-outlined:not(:disabled):active, .p-fileupload-choose.p-button-info.p-button-outlined:not(:disabled):active {\n    background: rgba(14, 165, 233, 0.16);\n    color: #0ea5e9;\n    border: 1px solid;\n  }\n  .p-button.p-button-info.p-button-text, .p-button-group.p-button-info > .p-button.p-button-text, .p-splitbutton.p-button-info > .p-button.p-button-text, .p-fileupload-choose.p-button-info.p-button-text {\n    background-color: transparent;\n    color: #0ea5e9;\n    border-color: transparent;\n  }\n  .p-button.p-button-info.p-button-text:not(:disabled):hover, .p-button-group.p-button-info > .p-button.p-button-text:not(:disabled):hover, .p-splitbutton.p-button-info > .p-button.p-button-text:not(:disabled):hover, .p-fileupload-choose.p-button-info.p-button-text:not(:disabled):hover {\n    background: rgba(14, 165, 233, 0.04);\n    border-color: transparent;\n    color: #0ea5e9;\n  }\n  .p-button.p-button-info.p-button-text:not(:disabled):active, .p-button-group.p-button-info > .p-button.p-button-text:not(:disabled):active, .p-splitbutton.p-button-info > .p-button.p-button-text:not(:disabled):active, .p-fileupload-choose.p-button-info.p-button-text:not(:disabled):active {\n    background: rgba(14, 165, 233, 0.16);\n    border-color: transparent;\n    color: #0ea5e9;\n  }\n  .p-button.p-button-success, .p-button-group.p-button-success > .p-button, .p-splitbutton.p-button-success > .p-button, .p-fileupload-choose.p-button-success {\n    color: #ffffff;\n    background: #22c55e;\n    border: 1px solid #22c55e;\n  }\n  .p-button.p-button-success:not(:disabled):hover, .p-button-group.p-button-success > .p-button:not(:disabled):hover, .p-splitbutton.p-button-success > .p-button:not(:disabled):hover, .p-fileupload-choose.p-button-success:not(:disabled):hover {\n    background: #16a34a;\n    color: #ffffff;\n    border-color: #16a34a;\n  }\n  .p-button.p-button-success:not(:disabled):focus, .p-button-group.p-button-success > .p-button:not(:disabled):focus, .p-splitbutton.p-button-success > .p-button:not(:disabled):focus, .p-fileupload-choose.p-button-success:not(:disabled):focus {\n    box-shadow: 0 0 0 0.2rem #bbf7d0;\n  }\n  .p-button.p-button-success:not(:disabled):active, .p-button-group.p-button-success > .p-button:not(:disabled):active, .p-splitbutton.p-button-success > .p-button:not(:disabled):active, .p-fileupload-choose.p-button-success:not(:disabled):active {\n    background: #15803d;\n    color: #ffffff;\n    border-color: #15803d;\n  }\n  .p-button.p-button-success.p-button-outlined, .p-button-group.p-button-success > .p-button.p-button-outlined, .p-splitbutton.p-button-success > .p-button.p-button-outlined, .p-fileupload-choose.p-button-success.p-button-outlined {\n    background-color: transparent;\n    color: #22c55e;\n    border: 1px solid;\n  }\n  .p-button.p-button-success.p-button-outlined:not(:disabled):hover, .p-button-group.p-button-success > .p-button.p-button-outlined:not(:disabled):hover, .p-splitbutton.p-button-success > .p-button.p-button-outlined:not(:disabled):hover, .p-fileupload-choose.p-button-success.p-button-outlined:not(:disabled):hover {\n    background: rgba(34, 197, 94, 0.04);\n    color: #22c55e;\n    border: 1px solid;\n  }\n  .p-button.p-button-success.p-button-outlined:not(:disabled):active, .p-button-group.p-button-success > .p-button.p-button-outlined:not(:disabled):active, .p-splitbutton.p-button-success > .p-button.p-button-outlined:not(:disabled):active, .p-fileupload-choose.p-button-success.p-button-outlined:not(:disabled):active {\n    background: rgba(34, 197, 94, 0.16);\n    color: #22c55e;\n    border: 1px solid;\n  }\n  .p-button.p-button-success.p-button-text, .p-button-group.p-button-success > .p-button.p-button-text, .p-splitbutton.p-button-success > .p-button.p-button-text, .p-fileupload-choose.p-button-success.p-button-text {\n    background-color: transparent;\n    color: #22c55e;\n    border-color: transparent;\n  }\n  .p-button.p-button-success.p-button-text:not(:disabled):hover, .p-button-group.p-button-success > .p-button.p-button-text:not(:disabled):hover, .p-splitbutton.p-button-success > .p-button.p-button-text:not(:disabled):hover, .p-fileupload-choose.p-button-success.p-button-text:not(:disabled):hover {\n    background: rgba(34, 197, 94, 0.04);\n    border-color: transparent;\n    color: #22c55e;\n  }\n  .p-button.p-button-success.p-button-text:not(:disabled):active, .p-button-group.p-button-success > .p-button.p-button-text:not(:disabled):active, .p-splitbutton.p-button-success > .p-button.p-button-text:not(:disabled):active, .p-fileupload-choose.p-button-success.p-button-text:not(:disabled):active {\n    background: rgba(34, 197, 94, 0.16);\n    border-color: transparent;\n    color: #22c55e;\n  }\n  .p-button.p-button-warning, .p-button-group.p-button-warning > .p-button, .p-splitbutton.p-button-warning > .p-button, .p-fileupload-choose.p-button-warning {\n    color: #ffffff;\n    background: #f97316;\n    border: 1px solid #f97316;\n  }\n  .p-button.p-button-warning:not(:disabled):hover, .p-button-group.p-button-warning > .p-button:not(:disabled):hover, .p-splitbutton.p-button-warning > .p-button:not(:disabled):hover, .p-fileupload-choose.p-button-warning:not(:disabled):hover {\n    background: #ea580c;\n    color: #ffffff;\n    border-color: #ea580c;\n  }\n  .p-button.p-button-warning:not(:disabled):focus, .p-button-group.p-button-warning > .p-button:not(:disabled):focus, .p-splitbutton.p-button-warning > .p-button:not(:disabled):focus, .p-fileupload-choose.p-button-warning:not(:disabled):focus {\n    box-shadow: 0 0 0 0.2rem #fde68a;\n  }\n  .p-button.p-button-warning:not(:disabled):active, .p-button-group.p-button-warning > .p-button:not(:disabled):active, .p-splitbutton.p-button-warning > .p-button:not(:disabled):active, .p-fileupload-choose.p-button-warning:not(:disabled):active {\n    background: #c2410c;\n    color: #ffffff;\n    border-color: #c2410c;\n  }\n  .p-button.p-button-warning.p-button-outlined, .p-button-group.p-button-warning > .p-button.p-button-outlined, .p-splitbutton.p-button-warning > .p-button.p-button-outlined, .p-fileupload-choose.p-button-warning.p-button-outlined {\n    background-color: transparent;\n    color: #f97316;\n    border: 1px solid;\n  }\n  .p-button.p-button-warning.p-button-outlined:not(:disabled):hover, .p-button-group.p-button-warning > .p-button.p-button-outlined:not(:disabled):hover, .p-splitbutton.p-button-warning > .p-button.p-button-outlined:not(:disabled):hover, .p-fileupload-choose.p-button-warning.p-button-outlined:not(:disabled):hover {\n    background: rgba(249, 115, 22, 0.04);\n    color: #f97316;\n    border: 1px solid;\n  }\n  .p-button.p-button-warning.p-button-outlined:not(:disabled):active, .p-button-group.p-button-warning > .p-button.p-button-outlined:not(:disabled):active, .p-splitbutton.p-button-warning > .p-button.p-button-outlined:not(:disabled):active, .p-fileupload-choose.p-button-warning.p-button-outlined:not(:disabled):active {\n    background: rgba(249, 115, 22, 0.16);\n    color: #f97316;\n    border: 1px solid;\n  }\n  .p-button.p-button-warning.p-button-text, .p-button-group.p-button-warning > .p-button.p-button-text, .p-splitbutton.p-button-warning > .p-button.p-button-text, .p-fileupload-choose.p-button-warning.p-button-text {\n    background-color: transparent;\n    color: #f97316;\n    border-color: transparent;\n  }\n  .p-button.p-button-warning.p-button-text:not(:disabled):hover, .p-button-group.p-button-warning > .p-button.p-button-text:not(:disabled):hover, .p-splitbutton.p-button-warning > .p-button.p-button-text:not(:disabled):hover, .p-fileupload-choose.p-button-warning.p-button-text:not(:disabled):hover {\n    background: rgba(249, 115, 22, 0.04);\n    border-color: transparent;\n    color: #f97316;\n  }\n  .p-button.p-button-warning.p-button-text:not(:disabled):active, .p-button-group.p-button-warning > .p-button.p-button-text:not(:disabled):active, .p-splitbutton.p-button-warning > .p-button.p-button-text:not(:disabled):active, .p-fileupload-choose.p-button-warning.p-button-text:not(:disabled):active {\n    background: rgba(249, 115, 22, 0.16);\n    border-color: transparent;\n    color: #f97316;\n  }\n  .p-button.p-button-help, .p-button-group.p-button-help > .p-button, .p-splitbutton.p-button-help > .p-button, .p-fileupload-choose.p-button-help {\n    color: #ffffff;\n    background: #a855f7;\n    border: 1px solid #a855f7;\n  }\n  .p-button.p-button-help:not(:disabled):hover, .p-button-group.p-button-help > .p-button:not(:disabled):hover, .p-splitbutton.p-button-help > .p-button:not(:disabled):hover, .p-fileupload-choose.p-button-help:not(:disabled):hover {\n    background: #9333ea;\n    color: #ffffff;\n    border-color: #9333ea;\n  }\n  .p-button.p-button-help:not(:disabled):focus, .p-button-group.p-button-help > .p-button:not(:disabled):focus, .p-splitbutton.p-button-help > .p-button:not(:disabled):focus, .p-fileupload-choose.p-button-help:not(:disabled):focus {\n    box-shadow: 0 0 0 0.2rem #e9d5ff;\n  }\n  .p-button.p-button-help:not(:disabled):active, .p-button-group.p-button-help > .p-button:not(:disabled):active, .p-splitbutton.p-button-help > .p-button:not(:disabled):active, .p-fileupload-choose.p-button-help:not(:disabled):active {\n    background: #7e22ce;\n    color: #ffffff;\n    border-color: #7e22ce;\n  }\n  .p-button.p-button-help.p-button-outlined, .p-button-group.p-button-help > .p-button.p-button-outlined, .p-splitbutton.p-button-help > .p-button.p-button-outlined, .p-fileupload-choose.p-button-help.p-button-outlined {\n    background-color: transparent;\n    color: #a855f7;\n    border: 1px solid;\n  }\n  .p-button.p-button-help.p-button-outlined:not(:disabled):hover, .p-button-group.p-button-help > .p-button.p-button-outlined:not(:disabled):hover, .p-splitbutton.p-button-help > .p-button.p-button-outlined:not(:disabled):hover, .p-fileupload-choose.p-button-help.p-button-outlined:not(:disabled):hover {\n    background: rgba(168, 85, 247, 0.04);\n    color: #a855f7;\n    border: 1px solid;\n  }\n  .p-button.p-button-help.p-button-outlined:not(:disabled):active, .p-button-group.p-button-help > .p-button.p-button-outlined:not(:disabled):active, .p-splitbutton.p-button-help > .p-button.p-button-outlined:not(:disabled):active, .p-fileupload-choose.p-button-help.p-button-outlined:not(:disabled):active {\n    background: rgba(168, 85, 247, 0.16);\n    color: #a855f7;\n    border: 1px solid;\n  }\n  .p-button.p-button-help.p-button-text, .p-button-group.p-button-help > .p-button.p-button-text, .p-splitbutton.p-button-help > .p-button.p-button-text, .p-fileupload-choose.p-button-help.p-button-text {\n    background-color: transparent;\n    color: #a855f7;\n    border-color: transparent;\n  }\n  .p-button.p-button-help.p-button-text:not(:disabled):hover, .p-button-group.p-button-help > .p-button.p-button-text:not(:disabled):hover, .p-splitbutton.p-button-help > .p-button.p-button-text:not(:disabled):hover, .p-fileupload-choose.p-button-help.p-button-text:not(:disabled):hover {\n    background: rgba(168, 85, 247, 0.04);\n    border-color: transparent;\n    color: #a855f7;\n  }\n  .p-button.p-button-help.p-button-text:not(:disabled):active, .p-button-group.p-button-help > .p-button.p-button-text:not(:disabled):active, .p-splitbutton.p-button-help > .p-button.p-button-text:not(:disabled):active, .p-fileupload-choose.p-button-help.p-button-text:not(:disabled):active {\n    background: rgba(168, 85, 247, 0.16);\n    border-color: transparent;\n    color: #a855f7;\n  }\n  .p-button.p-button-danger, .p-button-group.p-button-danger > .p-button, .p-splitbutton.p-button-danger > .p-button, .p-fileupload-choose.p-button-danger {\n    color: #ffffff;\n    background: #ef4444;\n    border: 1px solid #ef4444;\n  }\n  .p-button.p-button-danger:not(:disabled):hover, .p-button-group.p-button-danger > .p-button:not(:disabled):hover, .p-splitbutton.p-button-danger > .p-button:not(:disabled):hover, .p-fileupload-choose.p-button-danger:not(:disabled):hover {\n    background: #dc2626;\n    color: #ffffff;\n    border-color: #dc2626;\n  }\n  .p-button.p-button-danger:not(:disabled):focus, .p-button-group.p-button-danger > .p-button:not(:disabled):focus, .p-splitbutton.p-button-danger > .p-button:not(:disabled):focus, .p-fileupload-choose.p-button-danger:not(:disabled):focus {\n    box-shadow: 0 0 0 0.2rem #fecaca;\n  }\n  .p-button.p-button-danger:not(:disabled):active, .p-button-group.p-button-danger > .p-button:not(:disabled):active, .p-splitbutton.p-button-danger > .p-button:not(:disabled):active, .p-fileupload-choose.p-button-danger:not(:disabled):active {\n    background: #b91c1c;\n    color: #ffffff;\n    border-color: #b91c1c;\n  }\n  .p-button.p-button-danger.p-button-outlined, .p-button-group.p-button-danger > .p-button.p-button-outlined, .p-splitbutton.p-button-danger > .p-button.p-button-outlined, .p-fileupload-choose.p-button-danger.p-button-outlined {\n    background-color: transparent;\n    color: #ef4444;\n    border: 1px solid;\n  }\n  .p-button.p-button-danger.p-button-outlined:not(:disabled):hover, .p-button-group.p-button-danger > .p-button.p-button-outlined:not(:disabled):hover, .p-splitbutton.p-button-danger > .p-button.p-button-outlined:not(:disabled):hover, .p-fileupload-choose.p-button-danger.p-button-outlined:not(:disabled):hover {\n    background: rgba(239, 68, 68, 0.04);\n    color: #ef4444;\n    border: 1px solid;\n  }\n  .p-button.p-button-danger.p-button-outlined:not(:disabled):active, .p-button-group.p-button-danger > .p-button.p-button-outlined:not(:disabled):active, .p-splitbutton.p-button-danger > .p-button.p-button-outlined:not(:disabled):active, .p-fileupload-choose.p-button-danger.p-button-outlined:not(:disabled):active {\n    background: rgba(239, 68, 68, 0.16);\n    color: #ef4444;\n    border: 1px solid;\n  }\n  .p-button.p-button-danger.p-button-text, .p-button-group.p-button-danger > .p-button.p-button-text, .p-splitbutton.p-button-danger > .p-button.p-button-text, .p-fileupload-choose.p-button-danger.p-button-text {\n    background-color: transparent;\n    color: #ef4444;\n    border-color: transparent;\n  }\n  .p-button.p-button-danger.p-button-text:not(:disabled):hover, .p-button-group.p-button-danger > .p-button.p-button-text:not(:disabled):hover, .p-splitbutton.p-button-danger > .p-button.p-button-text:not(:disabled):hover, .p-fileupload-choose.p-button-danger.p-button-text:not(:disabled):hover {\n    background: rgba(239, 68, 68, 0.04);\n    border-color: transparent;\n    color: #ef4444;\n  }\n  .p-button.p-button-danger.p-button-text:not(:disabled):active, .p-button-group.p-button-danger > .p-button.p-button-text:not(:disabled):active, .p-splitbutton.p-button-danger > .p-button.p-button-text:not(:disabled):active, .p-fileupload-choose.p-button-danger.p-button-text:not(:disabled):active {\n    background: rgba(239, 68, 68, 0.16);\n    border-color: transparent;\n    color: #ef4444;\n  }\n  .p-button.p-button-contrast, .p-button-group.p-button-contrast > .p-button, .p-splitbutton.p-button-contrast > .p-button {\n    color: #ffffff;\n    background: #1f2937;\n    border: 1px solid #1f2937;\n  }\n  .p-button.p-button-contrast:not(:disabled):hover, .p-button-group.p-button-contrast > .p-button:not(:disabled):hover, .p-splitbutton.p-button-contrast > .p-button:not(:disabled):hover {\n    background: #374151;\n    color: #ffffff;\n    border-color: #374151;\n  }\n  .p-button.p-button-contrast:not(:disabled):focus, .p-button-group.p-button-contrast > .p-button:not(:disabled):focus, .p-splitbutton.p-button-contrast > .p-button:not(:disabled):focus {\n    box-shadow: none;\n  }\n  .p-button.p-button-contrast:not(:disabled):active, .p-button-group.p-button-contrast > .p-button:not(:disabled):active, .p-splitbutton.p-button-contrast > .p-button:not(:disabled):active {\n    background: #4b5563;\n    color: #ffffff;\n    border-color: #4b5563;\n  }\n  .p-button.p-button-contrast.p-button-outlined, .p-button-group.p-button-contrast > .p-button.p-button-outlined, .p-splitbutton.p-button-contrast > .p-button.p-button-outlined {\n    background-color: transparent;\n    color: #1f2937;\n    border: 1px solid;\n  }\n  .p-button.p-button-contrast.p-button-outlined:not(:disabled):hover, .p-button-group.p-button-contrast > .p-button.p-button-outlined:not(:disabled):hover, .p-splitbutton.p-button-contrast > .p-button.p-button-outlined:not(:disabled):hover {\n    background: rgba(31, 41, 55, 0.04);\n    color: #1f2937;\n    border: 1px solid;\n  }\n  .p-button.p-button-contrast.p-button-outlined:not(:disabled):active, .p-button-group.p-button-contrast > .p-button.p-button-outlined:not(:disabled):active, .p-splitbutton.p-button-contrast > .p-button.p-button-outlined:not(:disabled):active {\n    background: rgba(31, 41, 55, 0.16);\n    color: #1f2937;\n    border: 1px solid;\n  }\n  .p-button.p-button-contrast.p-button-text, .p-button-group.p-button-contrast > .p-button.p-button-text, .p-splitbutton.p-button-contrast > .p-button.p-button-text {\n    background-color: transparent;\n    color: #1f2937;\n    border-color: transparent;\n  }\n  .p-button.p-button-contrast.p-button-text:not(:disabled):hover, .p-button-group.p-button-contrast > .p-button.p-button-text:not(:disabled):hover, .p-splitbutton.p-button-contrast > .p-button.p-button-text:not(:disabled):hover {\n    background: rgba(31, 41, 55, 0.04);\n    border-color: transparent;\n    color: #1f2937;\n  }\n  .p-button.p-button-contrast.p-button-text:not(:disabled):active, .p-button-group.p-button-contrast > .p-button.p-button-text:not(:disabled):active, .p-splitbutton.p-button-contrast > .p-button.p-button-text:not(:disabled):active {\n    background: rgba(31, 41, 55, 0.16);\n    border-color: transparent;\n    color: #1f2937;\n  }\n  .p-button.p-button-link {\n    color: #0f766e;\n    background: transparent;\n    border: transparent;\n  }\n  .p-button.p-button-link:not(:disabled):hover {\n    background: transparent;\n    color: #0f766e;\n    border-color: transparent;\n  }\n  .p-button.p-button-link:not(:disabled):hover .p-button-label {\n    text-decoration: underline;\n  }\n  .p-button.p-button-link:not(:disabled):focus {\n    background: transparent;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n    border-color: transparent;\n  }\n  .p-button.p-button-link:not(:disabled):active {\n    background: transparent;\n    color: #0f766e;\n    border-color: transparent;\n  }\n  .p-splitbutton {\n    border-radius: 6px;\n  }\n  .p-splitbutton.p-button-outlined > .p-button {\n    background-color: transparent;\n    color: #14b8a6;\n    border: 1px solid;\n  }\n  .p-splitbutton.p-button-outlined > .p-button:not(:disabled):hover {\n    background: rgba(20, 184, 166, 0.04);\n    color: #14b8a6;\n  }\n  .p-splitbutton.p-button-outlined > .p-button:not(:disabled):active {\n    background: rgba(20, 184, 166, 0.16);\n    color: #14b8a6;\n  }\n  .p-splitbutton.p-button-outlined.p-button-plain > .p-button {\n    color: #6b7280;\n    border-color: #6b7280;\n  }\n  .p-splitbutton.p-button-outlined.p-button-plain > .p-button:not(:disabled):hover {\n    background: #f3f4f6;\n    color: #6b7280;\n  }\n  .p-splitbutton.p-button-outlined.p-button-plain > .p-button:not(:disabled):active {\n    background: #e5e7eb;\n    color: #6b7280;\n  }\n  .p-splitbutton.p-button-text > .p-button {\n    background-color: transparent;\n    color: #14b8a6;\n    border-color: transparent;\n  }\n  .p-splitbutton.p-button-text > .p-button:not(:disabled):hover {\n    background: rgba(20, 184, 166, 0.04);\n    color: #14b8a6;\n    border-color: transparent;\n  }\n  .p-splitbutton.p-button-text > .p-button:not(:disabled):active {\n    background: rgba(20, 184, 166, 0.16);\n    color: #14b8a6;\n    border-color: transparent;\n  }\n  .p-splitbutton.p-button-text.p-button-plain > .p-button {\n    color: #6b7280;\n  }\n  .p-splitbutton.p-button-text.p-button-plain > .p-button:not(:disabled):hover {\n    background: #f3f4f6;\n    color: #6b7280;\n  }\n  .p-splitbutton.p-button-text.p-button-plain > .p-button:not(:disabled):active {\n    background: #e5e7eb;\n    color: #6b7280;\n  }\n  .p-splitbutton.p-button-raised {\n    box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n  }\n  .p-splitbutton.p-button-rounded {\n    border-radius: 2rem;\n  }\n  .p-splitbutton.p-button-rounded > .p-button {\n    border-radius: 2rem;\n  }\n  .p-splitbutton.p-button-sm > .p-button {\n    font-size: 0.875rem;\n    padding: 0.65625rem 1.09375rem;\n  }\n  .p-splitbutton.p-button-sm > .p-button .p-button-icon {\n    font-size: 0.875rem;\n  }\n  .p-splitbutton.p-button-lg > .p-button {\n    font-size: 1.25rem;\n    padding: 0.9375rem 1.5625rem;\n  }\n  .p-splitbutton.p-button-lg > .p-button.p-button-icon-only {\n    width: auto;\n  }\n  .p-splitbutton.p-button-lg > .p-button .p-button-icon {\n    font-size: 1.25rem;\n  }\n  .p-splitbutton .p-splitbutton-menubutton,\n  .p-splitbutton .p-splitbutton.p-button-rounded > .p-splitbutton-menubutton.p-button,\n  .p-splitbutton .p-splitbutton.p-button-outlined > .p-splitbutton-menubutton.p-button {\n    border-top-left-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .p-splitbutton.p-button-secondary.p-button-outlined > .p-button {\n    background-color: transparent;\n    color: #64748b;\n    border: 1px solid;\n  }\n  .p-splitbutton.p-button-secondary.p-button-outlined > .p-button:not(:disabled):hover {\n    background: rgba(100, 116, 139, 0.04);\n    color: #64748b;\n  }\n  .p-splitbutton.p-button-secondary.p-button-outlined > .p-button:not(:disabled):active {\n    background: rgba(100, 116, 139, 0.16);\n    color: #64748b;\n  }\n  .p-splitbutton.p-button-secondary.p-button-text > .p-button {\n    background-color: transparent;\n    color: #64748b;\n    border-color: transparent;\n  }\n  .p-splitbutton.p-button-secondary.p-button-text > .p-button:not(:disabled):hover {\n    background: rgba(100, 116, 139, 0.04);\n    border-color: transparent;\n    color: #64748b;\n  }\n  .p-splitbutton.p-button-secondary.p-button-text > .p-button:not(:disabled):active {\n    background: rgba(100, 116, 139, 0.16);\n    border-color: transparent;\n    color: #64748b;\n  }\n  .p-splitbutton.p-button-info.p-button-outlined > .p-button {\n    background-color: transparent;\n    color: #0ea5e9;\n    border: 1px solid;\n  }\n  .p-splitbutton.p-button-info.p-button-outlined > .p-button:not(:disabled):hover {\n    background: rgba(14, 165, 233, 0.04);\n    color: #0ea5e9;\n  }\n  .p-splitbutton.p-button-info.p-button-outlined > .p-button:not(:disabled):active {\n    background: rgba(14, 165, 233, 0.16);\n    color: #0ea5e9;\n  }\n  .p-splitbutton.p-button-info.p-button-text > .p-button {\n    background-color: transparent;\n    color: #0ea5e9;\n    border-color: transparent;\n  }\n  .p-splitbutton.p-button-info.p-button-text > .p-button:not(:disabled):hover {\n    background: rgba(14, 165, 233, 0.04);\n    border-color: transparent;\n    color: #0ea5e9;\n  }\n  .p-splitbutton.p-button-info.p-button-text > .p-button:not(:disabled):active {\n    background: rgba(14, 165, 233, 0.16);\n    border-color: transparent;\n    color: #0ea5e9;\n  }\n  .p-splitbutton.p-button-success.p-button-outlined > .p-button {\n    background-color: transparent;\n    color: #22c55e;\n    border: 1px solid;\n  }\n  .p-splitbutton.p-button-success.p-button-outlined > .p-button:not(:disabled):hover {\n    background: rgba(34, 197, 94, 0.04);\n    color: #22c55e;\n  }\n  .p-splitbutton.p-button-success.p-button-outlined > .p-button:not(:disabled):active {\n    background: rgba(34, 197, 94, 0.16);\n    color: #22c55e;\n  }\n  .p-splitbutton.p-button-success.p-button-text > .p-button {\n    background-color: transparent;\n    color: #22c55e;\n    border-color: transparent;\n  }\n  .p-splitbutton.p-button-success.p-button-text > .p-button:not(:disabled):hover {\n    background: rgba(34, 197, 94, 0.04);\n    border-color: transparent;\n    color: #22c55e;\n  }\n  .p-splitbutton.p-button-success.p-button-text > .p-button:not(:disabled):active {\n    background: rgba(34, 197, 94, 0.16);\n    border-color: transparent;\n    color: #22c55e;\n  }\n  .p-splitbutton.p-button-warning.p-button-outlined > .p-button {\n    background-color: transparent;\n    color: #f97316;\n    border: 1px solid;\n  }\n  .p-splitbutton.p-button-warning.p-button-outlined > .p-button:not(:disabled):hover {\n    background: rgba(249, 115, 22, 0.04);\n    color: #f97316;\n  }\n  .p-splitbutton.p-button-warning.p-button-outlined > .p-button:not(:disabled):active {\n    background: rgba(249, 115, 22, 0.16);\n    color: #f97316;\n  }\n  .p-splitbutton.p-button-warning.p-button-text > .p-button {\n    background-color: transparent;\n    color: #f97316;\n    border-color: transparent;\n  }\n  .p-splitbutton.p-button-warning.p-button-text > .p-button:not(:disabled):hover {\n    background: rgba(249, 115, 22, 0.04);\n    border-color: transparent;\n    color: #f97316;\n  }\n  .p-splitbutton.p-button-warning.p-button-text > .p-button:not(:disabled):active {\n    background: rgba(249, 115, 22, 0.16);\n    border-color: transparent;\n    color: #f97316;\n  }\n  .p-splitbutton.p-button-help.p-button-outlined > .p-button {\n    background-color: transparent;\n    color: #a855f7;\n    border: 1px solid;\n  }\n  .p-splitbutton.p-button-help.p-button-outlined > .p-button:not(:disabled):hover {\n    background: rgba(168, 85, 247, 0.04);\n    color: #a855f7;\n  }\n  .p-splitbutton.p-button-help.p-button-outlined > .p-button:not(:disabled):active {\n    background: rgba(168, 85, 247, 0.16);\n    color: #a855f7;\n  }\n  .p-splitbutton.p-button-help.p-button-text > .p-button {\n    background-color: transparent;\n    color: #a855f7;\n    border-color: transparent;\n  }\n  .p-splitbutton.p-button-help.p-button-text > .p-button:not(:disabled):hover {\n    background: rgba(168, 85, 247, 0.04);\n    border-color: transparent;\n    color: #a855f7;\n  }\n  .p-splitbutton.p-button-help.p-button-text > .p-button:not(:disabled):active {\n    background: rgba(168, 85, 247, 0.16);\n    border-color: transparent;\n    color: #a855f7;\n  }\n  .p-splitbutton.p-button-danger.p-button-outlined > .p-button {\n    background-color: transparent;\n    color: #ef4444;\n    border: 1px solid;\n  }\n  .p-splitbutton.p-button-danger.p-button-outlined > .p-button:not(:disabled):hover {\n    background: rgba(239, 68, 68, 0.04);\n    color: #ef4444;\n  }\n  .p-splitbutton.p-button-danger.p-button-outlined > .p-button:not(:disabled):active {\n    background: rgba(239, 68, 68, 0.16);\n    color: #ef4444;\n  }\n  .p-splitbutton.p-button-danger.p-button-text > .p-button {\n    background-color: transparent;\n    color: #ef4444;\n    border-color: transparent;\n  }\n  .p-splitbutton.p-button-danger.p-button-text > .p-button:not(:disabled):hover {\n    background: rgba(239, 68, 68, 0.04);\n    border-color: transparent;\n    color: #ef4444;\n  }\n  .p-splitbutton.p-button-danger.p-button-text > .p-button:not(:disabled):active {\n    background: rgba(239, 68, 68, 0.16);\n    border-color: transparent;\n    color: #ef4444;\n  }\n  .p-speeddial-button.p-button.p-button-icon-only {\n    width: 4rem;\n    height: 4rem;\n  }\n  .p-speeddial-button.p-button.p-button-icon-only .p-button-icon {\n    font-size: 1.3rem;\n  }\n  .p-speeddial-button.p-button.p-button-icon-only .p-button-icon.p-icon {\n    width: 1.3rem;\n    height: 1.3rem;\n  }\n  .p-speeddial-list {\n    outline: 0 none;\n  }\n  .p-speeddial-action {\n    width: 3rem;\n    height: 3rem;\n    background: #4b5563;\n    color: #fff;\n  }\n  .p-speeddial-action:hover {\n    background: #022354;\n    color: #fff;\n  }\n  .p-speeddial-direction-up .p-speeddial-item {\n    margin: 0.25rem;\n  }\n  .p-speeddial-direction-up .p-speeddial-item:first-child {\n    margin-bottom: 0.5rem;\n  }\n  .p-speeddial-direction-down .p-speeddial-item {\n    margin: 0.25rem;\n  }\n  .p-speeddial-direction-down .p-speeddial-item:first-child {\n    margin-top: 0.5rem;\n  }\n  .p-speeddial-direction-left .p-speeddial-item {\n    margin: 0 0.25rem;\n  }\n  .p-speeddial-direction-left .p-speeddial-item:first-child {\n    margin-right: 0.5rem;\n  }\n  .p-speeddial-direction-right .p-speeddial-item {\n    margin: 0 0.25rem;\n  }\n  .p-speeddial-direction-right .p-speeddial-item:first-child {\n    margin-left: 0.5rem;\n  }\n  .p-speeddial-circle .p-speeddial-item,\n  .p-speeddial-semi-circle .p-speeddial-item,\n  .p-speeddial-quarter-circle .p-speeddial-item {\n    margin: 0;\n  }\n  .p-speeddial-circle .p-speeddial-item:first-child, .p-speeddial-circle .p-speeddial-item:last-child,\n  .p-speeddial-semi-circle .p-speeddial-item:first-child,\n  .p-speeddial-semi-circle .p-speeddial-item:last-child,\n  .p-speeddial-quarter-circle .p-speeddial-item:first-child,\n  .p-speeddial-quarter-circle .p-speeddial-item:last-child {\n    margin: 0;\n  }\n  .p-speeddial-mask {\n    background-color: rgba(0, 0, 0, 0.4);\n    border-radius: 6px;\n  }\n  .p-carousel .p-carousel-content .p-carousel-prev,\n  .p-carousel .p-carousel-content .p-carousel-next {\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border: 0 none;\n    background: transparent;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-carousel .p-carousel-content .p-carousel-prev:enabled:hover,\n  .p-carousel .p-carousel-content .p-carousel-next:enabled:hover {\n    color: #374151;\n    border-color: transparent;\n    background: #f3f4f6;\n  }\n  .p-carousel .p-carousel-content .p-carousel-prev:focus-visible,\n  .p-carousel .p-carousel-content .p-carousel-next:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-carousel .p-carousel-content .p-carousel-prev,\n  .p-carousel .p-carousel-content .p-carousel-next {\n    margin: 0.5rem;\n  }\n  .p-carousel .p-carousel-indicators {\n    padding: 1rem;\n  }\n  .p-carousel .p-carousel-indicators .p-carousel-indicator {\n    margin-right: 0.5rem;\n    margin-bottom: 0.5rem;\n  }\n  .p-carousel .p-carousel-indicators .p-carousel-indicator button {\n    background-color: #d1d5db;\n    width: 2rem;\n    height: 0.5rem;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-carousel .p-carousel-indicators .p-carousel-indicator button:hover {\n    background: #9ca3af;\n  }\n  .p-carousel .p-carousel-indicators .p-carousel-indicator.p-highlight button {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-datatable .p-paginator-top {\n    border-width: 0 0 1px 0;\n    border-radius: 0;\n  }\n  .p-datatable .p-paginator-bottom {\n    border-width: 0 0 1px 0;\n    border-radius: 0;\n  }\n  .p-datatable .p-datatable-header {\n    background: #f9fafb;\n    color: #374151;\n    border: 1px solid #e5e7eb;\n    border-width: 1px 0 1px 0;\n    padding: 1rem 1rem;\n    font-weight: 700;\n  }\n  .p-datatable .p-datatable-footer {\n    background: #f9fafb;\n    color: #374151;\n    border: 1px solid #e5e7eb;\n    border-width: 0 0 1px 0;\n    padding: 1rem 1rem;\n    font-weight: 700;\n  }\n  .p-datatable .p-datatable-thead > tr > th {\n    text-align: left;\n    padding: 1rem 1rem;\n    border: 1px solid #e5e7eb;\n    border-width: 0 0 1px 0;\n    font-weight: 700;\n    color: #374151;\n    background: #f9fafb;\n    transition: box-shadow 0.2s;\n  }\n  .p-datatable .p-datatable-tfoot > tr > td {\n    text-align: left;\n    padding: 1rem 1rem;\n    border: 1px solid #e5e7eb;\n    border-width: 0 0 1px 0;\n    font-weight: 700;\n    color: #374151;\n    background: #f9fafb;\n  }\n  .p-datatable .p-sortable-column .p-sortable-column-icon {\n    color: #374151;\n    margin-left: 0.5rem;\n  }\n  .p-datatable .p-sortable-column .p-sortable-column-badge {\n    border-radius: 50%;\n    height: 1.143rem;\n    min-width: 1.143rem;\n    line-height: 1.143rem;\n    color: #0f766e;\n    background: #0f766e;\n    margin-left: 0.5rem;\n  }\n  .p-datatable .p-sortable-column:not(.p-highlight):not(.p-sortable-disabled):hover {\n    background: #f3f4f6;\n    color: #374151;\n  }\n  .p-datatable .p-sortable-column:not(.p-highlight):not(.p-sortable-disabled):hover .p-sortable-column-icon {\n    color: #374151;\n  }\n  .p-datatable .p-sortable-column.p-highlight {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-datatable .p-sortable-column.p-highlight .p-sortable-column-icon {\n    color: #0f766e;\n  }\n  .p-datatable .p-sortable-column.p-highlight:not(.p-sortable-disabled):hover {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-datatable .p-sortable-column.p-highlight:not(.p-sortable-disabled):hover .p-sortable-column-icon {\n    color: #0f766e;\n  }\n  .p-datatable .p-sortable-column:focus-visible {\n    box-shadow: inset 0 0 0 0.15rem #99f6e4;\n    outline: 0 none;\n  }\n  .p-datatable .p-datatable-tbody > tr {\n    background: #ffffff;\n    color: #4b5563;\n    transition: box-shadow 0.2s;\n  }\n  .p-datatable .p-datatable-tbody > tr > td {\n    text-align: left;\n    border: 1px solid #e5e7eb;\n    border-width: 0 0 1px 0;\n    padding: 1rem 1rem;\n  }\n  .p-datatable .p-datatable-tbody > tr > td .p-row-toggler,\n  .p-datatable .p-datatable-tbody > tr > td .p-row-editor-init,\n  .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save,\n  .p-datatable .p-datatable-tbody > tr > td .p-row-editor-cancel {\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border: 0 none;\n    background: transparent;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-datatable .p-datatable-tbody > tr > td .p-row-toggler:enabled:hover,\n  .p-datatable .p-datatable-tbody > tr > td .p-row-editor-init:enabled:hover,\n  .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save:enabled:hover,\n  .p-datatable .p-datatable-tbody > tr > td .p-row-editor-cancel:enabled:hover {\n    color: #374151;\n    border-color: transparent;\n    background: #f3f4f6;\n  }\n  .p-datatable .p-datatable-tbody > tr > td .p-row-toggler:focus-visible,\n  .p-datatable .p-datatable-tbody > tr > td .p-row-editor-init:focus-visible,\n  .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save:focus-visible,\n  .p-datatable .p-datatable-tbody > tr > td .p-row-editor-cancel:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-datatable .p-datatable-tbody > tr > td .p-row-editor-save {\n    margin-right: 0.5rem;\n  }\n  .p-datatable .p-datatable-tbody > tr > td > .p-column-title {\n    font-weight: 700;\n  }\n  .p-datatable .p-datatable-tbody > tr > td.p-highlight {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-datatable .p-datatable-tbody > tr.p-highlight {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-datatable .p-datatable-tbody > tr.p-highlight-contextmenu {\n    outline: 0.15rem solid #99f6e4;\n    outline-offset: -0.15rem;\n  }\n  .p-datatable .p-datatable-tbody > tr.p-datatable-dragpoint-top > td {\n    box-shadow: inset 0 2px 0 0 #0f766e;\n  }\n  .p-datatable .p-datatable-tbody > tr.p-datatable-dragpoint-bottom > td {\n    box-shadow: inset 0 -2px 0 0 #0f766e;\n  }\n  .p-datatable.p-datatable-selectable .p-datatable-tbody > tr.p-selectable-row:not(.p-highlight):not(.p-datatable-emptymessage):hover {\n    background: #f3f4f6;\n    color: #4b5563;\n  }\n  .p-datatable.p-datatable-selectable .p-datatable-tbody > tr.p-selectable-row:focus-visible {\n    outline: 0.15rem solid #99f6e4;\n    outline-offset: -0.15rem;\n  }\n  .p-datatable.p-datatable-selectable-cell .p-datatable-tbody > tr.p-selectable-row > td.p-selectable-cell:not(.p-highlight):hover {\n    background: #f3f4f6;\n    color: #4b5563;\n  }\n  .p-datatable.p-datatable-selectable-cell .p-datatable-tbody > tr.p-selectable-row > td.p-selectable-cell:focus-visible {\n    outline: 0.15rem solid #99f6e4;\n    outline-offset: -0.15rem;\n  }\n  .p-datatable.p-datatable-hoverable-rows .p-datatable-tbody > tr:not(.p-highlight):not(.p-datatable-emptymessage):hover {\n    background: #f3f4f6;\n    color: #4b5563;\n  }\n  .p-datatable .p-column-resizer-helper {\n    background: #14b8a6;\n  }\n  .p-datatable .p-datatable-scrollable-header,\n  .p-datatable .p-datatable-scrollable-footer {\n    background: #f9fafb;\n  }\n  .p-datatable.p-datatable-scrollable > .p-datatable-wrapper > .p-datatable-table > .p-datatable-thead,\n  .p-datatable.p-datatable-scrollable > .p-datatable-wrapper > .p-datatable-table > .p-datatable-tfoot, .p-datatable.p-datatable-scrollable > .p-datatable-wrapper > .p-virtualscroller > .p-datatable-table > .p-datatable-thead,\n  .p-datatable.p-datatable-scrollable > .p-datatable-wrapper > .p-virtualscroller > .p-datatable-table > .p-datatable-tfoot {\n    background-color: #f9fafb;\n  }\n  .p-datatable .p-datatable-loading-icon {\n    font-size: 2rem;\n  }\n  .p-datatable .p-datatable-loading-icon.p-icon {\n    width: 2rem;\n    height: 2rem;\n  }\n  .p-datatable.p-datatable-gridlines .p-datatable-header {\n    border-width: 1px 1px 0 1px;\n  }\n  .p-datatable.p-datatable-gridlines .p-datatable-footer {\n    border-width: 0 1px 1px 1px;\n  }\n  .p-datatable.p-datatable-gridlines .p-paginator-top {\n    border-width: 0 1px 0 1px;\n  }\n  .p-datatable.p-datatable-gridlines .p-paginator-bottom {\n    border-width: 0 1px 1px 1px;\n  }\n  .p-datatable.p-datatable-gridlines .p-datatable-thead > tr > th {\n    border-width: 1px 0 1px 1px;\n  }\n  .p-datatable.p-datatable-gridlines .p-datatable-thead > tr > th:last-child {\n    border-width: 1px;\n  }\n  .p-datatable.p-datatable-gridlines .p-datatable-tbody > tr > td {\n    border-width: 1px 0 0 1px;\n  }\n  .p-datatable.p-datatable-gridlines .p-datatable-tbody > tr > td:last-child {\n    border-width: 1px 1px 0 1px;\n  }\n  .p-datatable.p-datatable-gridlines .p-datatable-tbody > tr:last-child > td {\n    border-width: 1px 0 1px 1px;\n  }\n  .p-datatable.p-datatable-gridlines .p-datatable-tbody > tr:last-child > td:last-child {\n    border-width: 1px;\n  }\n  .p-datatable.p-datatable-gridlines .p-datatable-tfoot > tr > td {\n    border-width: 1px 0 1px 1px;\n  }\n  .p-datatable.p-datatable-gridlines .p-datatable-tfoot > tr > td:last-child {\n    border-width: 1px 1px 1px 1px;\n  }\n  .p-datatable.p-datatable-gridlines .p-datatable-thead + .p-datatable-tfoot > tr > td {\n    border-width: 0 0 1px 1px;\n  }\n  .p-datatable.p-datatable-gridlines .p-datatable-thead + .p-datatable-tfoot > tr > td:last-child {\n    border-width: 0 1px 1px 1px;\n  }\n  .p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody > tr > td {\n    border-width: 0 0 1px 1px;\n  }\n  .p-datatable.p-datatable-gridlines:has(.p-datatable-thead):has(.p-datatable-tbody) .p-datatable-tbody > tr > td:last-child {\n    border-width: 0 1px 1px 1px;\n  }\n  .p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody > tr:last-child > td {\n    border-width: 0 0 0 1px;\n  }\n  .p-datatable.p-datatable-gridlines:has(.p-datatable-tbody):has(.p-datatable-tfoot) .p-datatable-tbody > tr:last-child > td:last-child {\n    border-width: 0 1px 0 1px;\n  }\n  .p-datatable.p-datatable-striped .p-datatable-tbody > tr.p-row-odd {\n    background: #f8f8fa;\n  }\n  .p-datatable.p-datatable-striped .p-datatable-tbody > tr.p-row-odd.p-highlight {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-datatable.p-datatable-striped .p-datatable-tbody > tr.p-row-odd.p-highlight .p-row-toggler {\n    color: #0f766e;\n  }\n  .p-datatable.p-datatable-striped .p-datatable-tbody > tr.p-row-odd.p-highlight .p-row-toggler:hover {\n    color: #0f766e;\n  }\n  .p-datatable.p-datatable-striped .p-datatable-tbody > tr.p-row-odd + .p-row-expanded {\n    background: #f8f8fa;\n  }\n  .p-datatable.p-datatable-sm .p-datatable-header {\n    padding: 0.5rem 0.5rem;\n  }\n  .p-datatable.p-datatable-sm .p-datatable-thead > tr > th {\n    padding: 0.5rem 0.5rem;\n  }\n  .p-datatable.p-datatable-sm .p-datatable-tbody > tr > td {\n    padding: 0.5rem 0.5rem;\n  }\n  .p-datatable.p-datatable-sm .p-datatable-tfoot > tr > td {\n    padding: 0.5rem 0.5rem;\n  }\n  .p-datatable.p-datatable-sm .p-datatable-footer {\n    padding: 0.5rem 0.5rem;\n  }\n  .p-datatable.p-datatable-lg .p-datatable-header {\n    padding: 1.25rem 1.25rem;\n  }\n  .p-datatable.p-datatable-lg .p-datatable-thead > tr > th {\n    padding: 1.25rem 1.25rem;\n  }\n  .p-datatable.p-datatable-lg .p-datatable-tbody > tr > td {\n    padding: 1.25rem 1.25rem;\n  }\n  .p-datatable.p-datatable-lg .p-datatable-tfoot > tr > td {\n    padding: 1.25rem 1.25rem;\n  }\n  .p-datatable.p-datatable-lg .p-datatable-footer {\n    padding: 1.25rem 1.25rem;\n  }\n  .p-datatable-drag-selection-helper {\n    background: rgba(20, 184, 166, 0.16);\n  }\n  .p-dataview .p-paginator-top {\n    border-width: 0 0 1px 0;\n    border-radius: 0;\n  }\n  .p-dataview .p-paginator-bottom {\n    border-width: 0 0 1px 0;\n    border-radius: 0;\n  }\n  .p-dataview .p-dataview-header {\n    background: #f9fafb;\n    color: #374151;\n    border: 1px solid #e5e7eb;\n    border-width: 1px 0 1px 0;\n    padding: 1rem 1rem;\n    font-weight: 700;\n  }\n  .p-dataview .p-dataview-content {\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    padding: 0;\n  }\n  .p-dataview .p-dataview-footer {\n    background: #f9fafb;\n    color: #374151;\n    border: 1px solid #e5e7eb;\n    border-width: 0 0 1px 0;\n    padding: 1rem 1rem;\n    font-weight: 700;\n    border-bottom-left-radius: 6px;\n    border-bottom-right-radius: 6px;\n  }\n  .p-dataview .p-dataview-loading-icon {\n    font-size: 2rem;\n  }\n  .p-dataview .p-dataview-loading-icon.p-icon {\n    width: 2rem;\n    height: 2rem;\n  }\n  .p-datascroller .p-paginator-top {\n    border-width: 0 0 1px 0;\n    border-radius: 0;\n  }\n  .p-datascroller .p-paginator-bottom {\n    border-width: 0 0 1px 0;\n    border-radius: 0;\n  }\n  .p-datascroller .p-datascroller-header {\n    background: #f9fafb;\n    color: #374151;\n    border: 1px solid #e5e7eb;\n    border-width: 1px 0 1px 0;\n    padding: 1rem 1rem;\n    font-weight: 700;\n  }\n  .p-datascroller .p-datascroller-content {\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    padding: 0;\n  }\n  .p-datascroller.p-datascroller-inline .p-datascroller-list > li {\n    border: solid #e5e7eb;\n    border-width: 0 0 1px 0;\n  }\n  .p-datascroller .p-datascroller-footer {\n    background: #f9fafb;\n    color: #374151;\n    border: 1px solid #e5e7eb;\n    border-width: 0 0 1px 0;\n    padding: 1rem 1rem;\n    font-weight: 700;\n    border-bottom-left-radius: 6px;\n    border-bottom-right-radius: 6px;\n  }\n  .p-column-filter-row .p-column-filter-menu-button,\n  .p-column-filter-row .p-column-filter-clear-button {\n    margin-left: 0.5rem;\n  }\n  .p-column-filter-menu-button {\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border: 0 none;\n    background: transparent;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-column-filter-menu-button:hover {\n    color: #374151;\n    border-color: transparent;\n    background: #f3f4f6;\n  }\n  .p-column-filter-menu-button.p-column-filter-menu-button-open, .p-column-filter-menu-button.p-column-filter-menu-button-open:hover {\n    background: #f3f4f6;\n    color: #374151;\n  }\n  .p-column-filter-menu-button.p-column-filter-menu-button-active, .p-column-filter-menu-button.p-column-filter-menu-button-active:hover {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-column-filter-menu-button:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-column-filter-clear-button {\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border: 0 none;\n    background: transparent;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-column-filter-clear-button:hover {\n    color: #374151;\n    border-color: transparent;\n    background: #f3f4f6;\n  }\n  .p-column-filter-clear-button:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-column-filter-overlay {\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    border-radius: 6px;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n    min-width: 12.5rem;\n  }\n  .p-column-filter-overlay .p-column-filter-row-items {\n    padding: 0.75rem 0;\n  }\n  .p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item {\n    margin: 0;\n    padding: 0.75rem 1.25rem;\n    border: 0 none;\n    color: #4b5563;\n    background: transparent;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item.p-highlight {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item:not(.p-highlight):not(.p-disabled):hover {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-column-filter-overlay .p-column-filter-row-items .p-column-filter-row-item:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: inset 0 0 0 0.15rem #99f6e4;\n  }\n  .p-column-filter-overlay .p-column-filter-row-items .p-column-filter-separator {\n    border-top: 1px solid #e5e7eb;\n    margin: 0.25rem 0;\n  }\n  .p-column-filter-overlay-menu .p-column-filter-operator {\n    padding: 0.75rem 1.25rem;\n    border-bottom: 1px solid #e5e7eb;\n    color: #374151;\n    background: #f9fafb;\n    margin: 0;\n    border-top-right-radius: 6px;\n    border-top-left-radius: 6px;\n  }\n  .p-column-filter-overlay-menu .p-column-filter-constraint {\n    padding: 1.25rem;\n    border-bottom: 1px solid #e5e7eb;\n  }\n  .p-column-filter-overlay-menu .p-column-filter-constraint .p-column-filter-matchmode-dropdown {\n    margin-bottom: 0.5rem;\n  }\n  .p-column-filter-overlay-menu .p-column-filter-constraint .p-column-filter-remove-button {\n    margin-top: 0.5rem;\n  }\n  .p-column-filter-overlay-menu .p-column-filter-constraint:last-child {\n    border-bottom: 0 none;\n  }\n  .p-column-filter-overlay-menu .p-column-filter-add-rule {\n    padding: 0.75rem 1.25rem;\n  }\n  .p-column-filter-overlay-menu .p-column-filter-buttonbar {\n    padding: 1.25rem;\n  }\n  .p-orderlist .p-orderlist-controls {\n    padding: 1.25rem;\n  }\n  .p-orderlist .p-orderlist-controls .p-button {\n    margin-bottom: 0.5rem;\n  }\n  .p-orderlist .p-orderlist-header {\n    background: #f9fafb;\n    color: #374151;\n    border: 1px solid #e5e7eb;\n    padding: 1.25rem;\n    font-weight: 700;\n    border-bottom: 0 none;\n    border-top-right-radius: 6px;\n    border-top-left-radius: 6px;\n  }\n  .p-orderlist .p-orderlist-filter-container {\n    padding: 1.25rem;\n    background: #ffffff;\n    border: 1px solid #e5e7eb;\n    border-bottom: 0 none;\n  }\n  .p-orderlist .p-orderlist-filter-container .p-orderlist-filter-input {\n    padding-right: 1.75rem;\n  }\n  .p-orderlist .p-orderlist-filter-container .p-orderlist-filter-icon {\n    right: 0.75rem;\n    color: #6b7280;\n  }\n  .p-orderlist .p-orderlist-list {\n    border: 1px solid #e5e7eb;\n    background: #ffffff;\n    color: #4b5563;\n    padding: 0.75rem 0;\n    border-bottom-right-radius: 6px;\n    border-bottom-left-radius: 6px;\n    outline: 0 none;\n  }\n  .p-orderlist .p-orderlist-list .p-orderlist-item {\n    padding: 0.75rem 1.25rem;\n    margin: 0;\n    border: 0 none;\n    color: #4b5563;\n    background: transparent;\n    transition: transform 0.2s, box-shadow 0.2s;\n  }\n  .p-orderlist .p-orderlist-list .p-orderlist-item:not(.p-highlight):hover {\n    background: #f3f4f6;\n    color: #4b5563;\n  }\n  .p-orderlist .p-orderlist-list .p-orderlist-item.p-focus {\n    color: #4b5563;\n    background: #e5e7eb;\n  }\n  .p-orderlist .p-orderlist-list .p-orderlist-item.p-highlight {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-orderlist .p-orderlist-list .p-orderlist-item.p-highlight.p-focus {\n    background: rgba(20, 184, 166, 0.24);\n  }\n  .p-orderlist.p-orderlist-striped .p-orderlist-list .p-orderlist-item:nth-child(even) {\n    background: #f8f8fa;\n  }\n  .p-orderlist.p-orderlist-striped .p-orderlist-list .p-orderlist-item:nth-child(even):hover {\n    background: #f3f4f6;\n  }\n  .p-organizationchart .p-organizationchart-node-content.p-organizationchart-selectable-node:not(.p-highlight):hover {\n    background: #f3f4f6;\n    color: #4b5563;\n  }\n  .p-organizationchart .p-organizationchart-node-content.p-highlight {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-organizationchart .p-organizationchart-node-content.p-highlight .p-node-toggler i {\n    color: #010505;\n  }\n  .p-organizationchart .p-organizationchart-line-down {\n    background: #e5e7eb;\n  }\n  .p-organizationchart .p-organizationchart-line-left {\n    border-right: 1px solid #e5e7eb;\n    border-color: #e5e7eb;\n  }\n  .p-organizationchart .p-organizationchart-line-top {\n    border-top: 1px solid #e5e7eb;\n    border-color: #e5e7eb;\n  }\n  .p-organizationchart .p-organizationchart-node-content {\n    border: 1px solid #e5e7eb;\n    background: #ffffff;\n    color: #4b5563;\n    padding: 1.25rem;\n  }\n  .p-organizationchart .p-organizationchart-node-content .p-node-toggler {\n    background: inherit;\n    color: inherit;\n    border-radius: 50%;\n  }\n  .p-organizationchart .p-organizationchart-node-content .p-node-toggler:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-paginator {\n    background: #ffffff;\n    color: #6b7280;\n    border: solid #f3f4f6;\n    border-width: 0;\n    padding: 0.5rem 1rem;\n    border-radius: 6px;\n  }\n  .p-paginator .p-paginator-first,\n  .p-paginator .p-paginator-prev,\n  .p-paginator .p-paginator-next,\n  .p-paginator .p-paginator-last {\n    background-color: transparent;\n    border: 0 none;\n    color: #6b7280;\n    min-width: 3rem;\n    height: 3rem;\n    margin: 0.143rem;\n    transition: box-shadow 0.2s;\n    border-radius: 50%;\n  }\n  .p-paginator .p-paginator-first:not(.p-disabled):not(.p-highlight):hover,\n  .p-paginator .p-paginator-prev:not(.p-disabled):not(.p-highlight):hover,\n  .p-paginator .p-paginator-next:not(.p-disabled):not(.p-highlight):hover,\n  .p-paginator .p-paginator-last:not(.p-disabled):not(.p-highlight):hover {\n    background: #f3f4f6;\n    border-color: transparent;\n    color: #374151;\n  }\n  .p-paginator .p-paginator-first {\n    border-top-left-radius: 50%;\n    border-bottom-left-radius: 50%;\n  }\n  .p-paginator .p-paginator-last {\n    border-top-right-radius: 50%;\n    border-bottom-right-radius: 50%;\n  }\n  .p-paginator .p-dropdown {\n    margin-left: 0.5rem;\n    height: 3rem;\n  }\n  .p-paginator .p-dropdown .p-dropdown-label {\n    padding-right: 0;\n  }\n  .p-paginator .p-paginator-page-input {\n    margin-left: 0.5rem;\n    margin-right: 0.5rem;\n  }\n  .p-paginator .p-paginator-page-input .p-inputtext {\n    max-width: 3rem;\n  }\n  .p-paginator .p-paginator-current {\n    background-color: transparent;\n    border: 0 none;\n    color: #6b7280;\n    min-width: 3rem;\n    height: 3rem;\n    margin: 0.143rem;\n    padding: 0 0.5rem;\n  }\n  .p-paginator .p-paginator-pages .p-paginator-page {\n    background-color: transparent;\n    border: 0 none;\n    color: #6b7280;\n    min-width: 3rem;\n    height: 3rem;\n    margin: 0.143rem;\n    transition: box-shadow 0.2s;\n    border-radius: 50%;\n  }\n  .p-paginator .p-paginator-pages .p-paginator-page.p-highlight {\n    background: #0f766e;\n    border-color: #0f766e;\n    color: #0f766e;\n  }\n  .p-paginator .p-paginator-pages .p-paginator-page:not(.p-highlight):hover {\n    background: #f3f4f6;\n    border-color: transparent;\n    color: #374151;\n  }\n  .p-picklist .p-picklist-buttons {\n    padding: 1.25rem;\n  }\n  .p-picklist .p-picklist-buttons .p-button {\n    margin-bottom: 0.5rem;\n  }\n  .p-picklist .p-picklist-header {\n    background: #f9fafb;\n    color: #374151;\n    border: 1px solid #e5e7eb;\n    padding: 1.25rem;\n    font-weight: 700;\n    border-bottom: 0 none;\n    border-top-right-radius: 6px;\n    border-top-left-radius: 6px;\n  }\n  .p-picklist .p-picklist-filter-container {\n    padding: 1.25rem;\n    background: #ffffff;\n    border: 1px solid #e5e7eb;\n    border-bottom: 0 none;\n  }\n  .p-picklist .p-picklist-filter-container .p-picklist-filter-input {\n    padding-right: 1.75rem;\n  }\n  .p-picklist .p-picklist-filter-container .p-picklist-filter-icon {\n    right: 0.75rem;\n    color: #6b7280;\n  }\n  .p-picklist .p-picklist-list {\n    border: 1px solid #e5e7eb;\n    background: #ffffff;\n    color: #4b5563;\n    padding: 0.75rem 0;\n    border-bottom-right-radius: 6px;\n    border-bottom-left-radius: 6px;\n    outline: 0 none;\n  }\n  .p-picklist .p-picklist-list .p-picklist-item {\n    padding: 0.75rem 1.25rem;\n    margin: 0;\n    border: 0 none;\n    color: #4b5563;\n    background: transparent;\n    transition: transform 0.2s, box-shadow 0.2s;\n  }\n  .p-picklist .p-picklist-list .p-picklist-item:not(.p-highlight):hover {\n    background: #f3f4f6;\n    color: #4b5563;\n  }\n  .p-picklist .p-picklist-list .p-picklist-item.p-focus {\n    color: #4b5563;\n    background: #e5e7eb;\n  }\n  .p-picklist .p-picklist-list .p-picklist-item.p-highlight {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-picklist .p-picklist-list .p-picklist-item.p-highlight.p-focus {\n    background: rgba(20, 184, 166, 0.24);\n  }\n  .p-tree-container {\n    margin: 0;\n    padding: 0;\n    list-style-type: none;\n    overflow: auto;\n  }\n  .p-treenode-children {\n    margin: 0;\n    padding: 0;\n    list-style-type: none;\n  }\n  .p-treenode-selectable {\n    cursor: pointer;\n    user-select: none;\n  }\n  .p-tree-toggler {\n    cursor: pointer;\n    user-select: none;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    overflow: hidden;\n    position: relative;\n    flex-shrink: 0;\n  }\n  .p-treenode-leaf > .p-treenode-content .p-tree-toggler {\n    visibility: hidden;\n  }\n  .p-treenode-content {\n    display: flex;\n    align-items: center;\n  }\n  .p-tree-filter {\n    width: 100%;\n  }\n  .p-tree-filter-container {\n    position: relative;\n    display: block;\n    width: 100%;\n  }\n  .p-tree-filter-icon {\n    position: absolute;\n    top: 50%;\n    margin-top: -0.5rem;\n  }\n  .p-tree-loading {\n    position: relative;\n    min-height: 4rem;\n  }\n  .p-tree .p-tree-loading-overlay {\n    position: absolute;\n    z-index: 1;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n  .p-tree {\n    border: 1px solid #e5e7eb;\n    background: #ffffff;\n    color: #4b5563;\n    padding: 1.25rem;\n    border-radius: 6px;\n  }\n  .p-tree .p-tree-container .p-treenode {\n    padding: 0.143rem;\n    outline: 0 none;\n  }\n  .p-tree .p-tree-container .p-treenode:focus > .p-treenode-content {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: inset 0 0 0 0.15rem #99f6e4;\n  }\n  .p-tree .p-tree-container .p-treenode .p-treenode-content {\n    border-radius: 6px;\n    transition: box-shadow 0.2s;\n    padding: 0.5rem;\n  }\n  .p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler {\n    margin-right: 0.5rem;\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border: 0 none;\n    background: transparent;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler:enabled:hover {\n    color: #374151;\n    border-color: transparent;\n    background: #f3f4f6;\n  }\n  .p-tree .p-tree-container .p-treenode .p-treenode-content .p-tree-toggler:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-tree .p-tree-container .p-treenode .p-treenode-content .p-treenode-icon {\n    margin-right: 0.5rem;\n    color: #6b7280;\n  }\n  .p-tree .p-tree-container .p-treenode .p-treenode-content .p-checkbox {\n    margin-right: 0.5rem;\n  }\n  .p-tree .p-tree-container .p-treenode .p-treenode-content .p-checkbox.p-indeterminate .p-checkbox-icon {\n    color: #4b5563;\n  }\n  .p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-tree-toggler,\n  .p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-treenode-icon {\n    color: #0f766e;\n  }\n  .p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-tree-toggler:hover,\n  .p-tree .p-tree-container .p-treenode .p-treenode-content.p-highlight .p-treenode-icon:hover {\n    color: #0f766e;\n  }\n  .p-tree .p-tree-container .p-treenode .p-treenode-content.p-treenode-selectable:not(.p-highlight):hover {\n    background: #f3f4f6;\n    color: #4b5563;\n  }\n  .p-tree .p-tree-container .p-treenode .p-treenode-content.p-treenode-dragover {\n    background: #f3f4f6;\n    color: #4b5563;\n  }\n  .p-tree .p-tree-filter-container {\n    margin-bottom: 0.5rem;\n  }\n  .p-tree .p-tree-filter-container .p-tree-filter {\n    width: 100%;\n    padding-right: 1.75rem;\n  }\n  .p-tree .p-tree-filter-container .p-tree-filter-icon {\n    right: 0.75rem;\n    color: #6b7280;\n  }\n  .p-tree .p-treenode-children {\n    padding: 0 0 0 1rem;\n  }\n  .p-tree .p-tree-loading-icon {\n    font-size: 2rem;\n  }\n  .p-tree .p-tree-loading-icon.p-icon {\n    width: 2rem;\n    height: 2rem;\n  }\n  .p-tree .p-treenode-droppoint {\n    height: 0.5rem;\n  }\n  .p-tree .p-treenode-droppoint.p-treenode-droppoint-active {\n    background: #0c5e58;\n  }\n  .p-treetable {\n    position: relative;\n  }\n  .p-treetable > .p-treetable-wrapper {\n    overflow: auto;\n  }\n  .p-treetable table {\n    border-collapse: collapse;\n    width: 100%;\n    table-layout: fixed;\n  }\n  .p-treetable .p-sortable-column {\n    cursor: pointer;\n    user-select: none;\n  }\n  .p-treetable-selectable .p-treetable-tbody > tr {\n    cursor: pointer;\n  }\n  .p-treetable-toggler {\n    cursor: pointer;\n    user-select: none;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    flex-shrink: 0;\n    vertical-align: middle;\n    overflow: hidden;\n    position: relative;\n  }\n  .p-treetable-toggler + .p-checkbox {\n    vertical-align: middle;\n  }\n  .p-treetable-toggler + .p-checkbox + span {\n    vertical-align: middle;\n  }\n  /* Resizable */\n  .p-treetable-resizable > .p-treetable-wrapper {\n    overflow-x: auto;\n  }\n  .p-treetable-resizable .p-treetable-thead > tr > th,\n  .p-treetable-resizable .p-treetable-tfoot > tr > td,\n  .p-treetable-resizable .p-treetable-tbody > tr > td {\n    overflow: hidden;\n  }\n  .p-treetable-resizable .p-resizable-column {\n    background-clip: padding-box;\n    position: relative;\n  }\n  .p-treetable-resizable-fit .p-resizable-column:last-child .p-column-resizer {\n    display: none;\n  }\n  .p-treetable .p-column-resizer {\n    display: block;\n    position: absolute;\n    top: 0;\n    right: 0;\n    margin: 0;\n    width: 0.5rem;\n    height: 100%;\n    padding: 0px;\n    cursor: col-resize;\n    border: 1px solid transparent;\n  }\n  .p-treetable .p-column-resizer-helper {\n    width: 1px;\n    position: absolute;\n    z-index: 10;\n    display: none;\n  }\n  /* Scrollable */\n  .p-treetable-scrollable-wrapper {\n    position: relative;\n  }\n  .p-treetable-scrollable-header,\n  .p-treetable-scrollable-footer {\n    overflow: hidden;\n    border: 0 none;\n  }\n  .p-treetable-scrollable-body {\n    overflow: auto;\n    position: relative;\n  }\n  .p-treetable-virtual-table {\n    position: absolute;\n  }\n  /* Frozen Columns */\n  .p-treetable-frozen-view .p-treetable-scrollable-body {\n    overflow: hidden;\n  }\n  .p-treetable-unfrozen-view {\n    position: absolute;\n    top: 0px;\n    left: 0px;\n  }\n  /* Reorder */\n  .p-treetable-reorder-indicator-up,\n  .p-treetable-reorder-indicator-down {\n    position: absolute;\n    display: none;\n  }\n  /* Loader */\n  .p-treetable .p-treetable-loading-overlay {\n    position: absolute;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    z-index: 2;\n  }\n  /* Alignment */\n  .p-treetable .p-treetable-thead > tr > th.p-align-left > .p-column-header-content,\n  .p-treetable .p-treetable-tbody > tr > td.p-align-left,\n  .p-treetable .p-treetable-tfoot > tr > td.p-align-left {\n    text-align: left;\n    justify-content: flex-start;\n  }\n  .p-treetable .p-treetable-thead > tr > th.p-align-right > .p-column-header-content,\n  .p-treetable .p-treetable-tbody > tr > td.p-align-right,\n  .p-treetable .p-treetable-tfoot > tr > td.p-align-right {\n    text-align: right;\n    justify-content: flex-end;\n  }\n  .p-treetable .p-treetable-thead > tr > th.p-align-center > .p-column-header-content,\n  .p-treetable .p-treetable-tbody > tr > td.p-align-center,\n  .p-treetable .p-treetable-tfoot > tr > td.p-align-center {\n    text-align: center;\n    justify-content: center;\n  }\n  .p-treetable .p-paginator-top {\n    border-width: 0 0 1px 0;\n    border-radius: 0;\n  }\n  .p-treetable .p-paginator-bottom {\n    border-width: 0 0 1px 0;\n    border-radius: 0;\n  }\n  .p-treetable .p-treetable-header {\n    background: #f9fafb;\n    color: #374151;\n    border: 1px solid #e5e7eb;\n    border-width: 1px 0 1px 0;\n    padding: 1rem 1rem;\n    font-weight: 700;\n  }\n  .p-treetable .p-treetable-footer {\n    background: #f9fafb;\n    color: #374151;\n    border: 1px solid #e5e7eb;\n    border-width: 0 0 1px 0;\n    padding: 1rem 1rem;\n    font-weight: 700;\n  }\n  .p-treetable .p-treetable-thead > tr > th {\n    text-align: left;\n    padding: 1rem 1rem;\n    border: 1px solid #e5e7eb;\n    border-width: 0 0 1px 0;\n    font-weight: 700;\n    color: #374151;\n    background: #f9fafb;\n    transition: box-shadow 0.2s;\n  }\n  .p-treetable .p-treetable-tfoot > tr > td {\n    text-align: left;\n    padding: 1rem 1rem;\n    border: 1px solid #e5e7eb;\n    border-width: 0 0 1px 0;\n    font-weight: 700;\n    color: #374151;\n    background: #f9fafb;\n  }\n  .p-treetable .p-sortable-column {\n    outline-color: #99f6e4;\n  }\n  .p-treetable .p-sortable-column .p-sortable-column-icon {\n    color: #374151;\n    margin-left: 0.5rem;\n  }\n  .p-treetable .p-sortable-column .p-sortable-column-badge {\n    border-radius: 50%;\n    height: 1.143rem;\n    min-width: 1.143rem;\n    line-height: 1.143rem;\n    color: #0f766e;\n    background: #0f766e;\n    margin-left: 0.5rem;\n  }\n  .p-treetable .p-sortable-column:not(.p-highlight):hover {\n    background: #f3f4f6;\n    color: #374151;\n  }\n  .p-treetable .p-sortable-column:not(.p-highlight):hover .p-sortable-column-icon {\n    color: #374151;\n  }\n  .p-treetable .p-sortable-column.p-highlight {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-treetable .p-sortable-column.p-highlight .p-sortable-column-icon {\n    color: #0f766e;\n  }\n  .p-treetable .p-treetable-tbody > tr {\n    background: #ffffff;\n    color: #4b5563;\n    transition: box-shadow 0.2s;\n  }\n  .p-treetable .p-treetable-tbody > tr > td {\n    text-align: left;\n    border: 1px solid #e5e7eb;\n    border-width: 0 0 1px 0;\n    padding: 1rem 1rem;\n  }\n  .p-treetable .p-treetable-tbody > tr > td .p-treetable-toggler {\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border: 0 none;\n    background: transparent;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-treetable .p-treetable-tbody > tr > td .p-treetable-toggler:enabled:hover {\n    color: #374151;\n    border-color: transparent;\n    background: #f3f4f6;\n  }\n  .p-treetable .p-treetable-tbody > tr > td .p-treetable-toggler:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-treetable .p-treetable-tbody > tr > td .p-treetable-toggler {\n    margin-right: 0.5rem;\n  }\n  .p-treetable .p-treetable-tbody > tr > td .p-treetable-toggler + .p-checkbox {\n    margin-right: 0.5rem;\n  }\n  .p-treetable .p-treetable-tbody > tr > td .p-treetable-toggler + .p-checkbox .p-indeterminate .p-checkbox-icon {\n    color: #4b5563;\n  }\n  .p-treetable .p-treetable-tbody > tr:focus-visible {\n    outline: 0.15rem solid #99f6e4;\n    outline-offset: -0.15rem;\n  }\n  .p-treetable .p-treetable-tbody > tr.p-highlight {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-treetable .p-treetable-tbody > tr.p-highlight .p-treetable-toggler {\n    color: #0f766e;\n  }\n  .p-treetable .p-treetable-tbody > tr.p-highlight .p-treetable-toggler:hover {\n    color: #0f766e;\n  }\n  .p-treetable.p-treetable-selectable .p-treetable-tbody > tr:not(.p-highlight):hover, .p-treetable.p-treetable-hoverable-rows .p-treetable-tbody > tr:not(.p-highlight):hover {\n    background: #f3f4f6;\n    color: #4b5563;\n  }\n  .p-treetable.p-treetable-selectable .p-treetable-tbody > tr:not(.p-highlight):hover .p-treetable-toggler, .p-treetable.p-treetable-hoverable-rows .p-treetable-tbody > tr:not(.p-highlight):hover .p-treetable-toggler {\n    color: #4b5563;\n  }\n  .p-treetable .p-column-resizer-helper {\n    background: #14b8a6;\n  }\n  .p-treetable .p-treetable-scrollable-header,\n  .p-treetable .p-treetable-scrollable-footer {\n    background: #f9fafb;\n  }\n  .p-treetable .p-treetable-loading-icon {\n    font-size: 2rem;\n  }\n  .p-treetable .p-treetable-loading-icon.p-icon {\n    width: 2rem;\n    height: 2rem;\n  }\n  .p-treetable.p-treetable-gridlines .p-treetable-header {\n    border-width: 1px 1px 0 1px;\n  }\n  .p-treetable.p-treetable-gridlines .p-treetable-footer {\n    border-width: 0 1px 1px 1px;\n  }\n  .p-treetable.p-treetable-gridlines .p-treetable-top {\n    border-width: 0 1px 0 1px;\n  }\n  .p-treetable.p-treetable-gridlines .p-treetable-bottom {\n    border-width: 0 1px 1px 1px;\n  }\n  .p-treetable.p-treetable-gridlines .p-treetable-thead > tr > th {\n    border-width: 1px;\n  }\n  .p-treetable.p-treetable-gridlines .p-treetable-tbody > tr > td {\n    border-width: 1px;\n  }\n  .p-treetable.p-treetable-gridlines .p-treetable-tfoot > tr > td {\n    border-width: 1px;\n  }\n  .p-treetable.p-treetable-striped .p-treetable-tbody > tr.p-row-odd {\n    background: #f8f8fa;\n  }\n  .p-treetable.p-treetable-striped .p-treetable-tbody > tr.p-row-odd.p-highlight {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-treetable.p-treetable-striped .p-treetable-tbody > tr.p-row-odd.p-highlight .p-row-toggler {\n    color: #0f766e;\n  }\n  .p-treetable.p-treetable-striped .p-treetable-tbody > tr.p-row-odd.p-highlight .p-row-toggler:hover {\n    color: #0f766e;\n  }\n  .p-treetable.p-treetable-striped .p-treetable-tbody > tr.p-row-odd + .p-row-expanded {\n    background: #f8f8fa;\n  }\n  .p-treetable.p-treetable-sm .p-treetable-header {\n    padding: 0.875rem 0.875rem;\n  }\n  .p-treetable.p-treetable-sm .p-treetable-thead > tr > th {\n    padding: 0.5rem 0.5rem;\n  }\n  .p-treetable.p-treetable-sm .p-treetable-tbody > tr > td {\n    padding: 0.5rem 0.5rem;\n  }\n  .p-treetable.p-treetable-sm .p-treetable-tfoot > tr > td {\n    padding: 0.5rem 0.5rem;\n  }\n  .p-treetable.p-treetable-sm .p-treetable-footer {\n    padding: 0.5rem 0.5rem;\n  }\n  .p-treetable.p-treetable-lg .p-treetable-header {\n    padding: 1.25rem 1.25rem;\n  }\n  .p-treetable.p-treetable-lg .p-treetable-thead > tr > th {\n    padding: 1.25rem 1.25rem;\n  }\n  .p-treetable.p-treetable-lg .p-treetable-tbody > tr > td {\n    padding: 1.25rem 1.25rem;\n  }\n  .p-treetable.p-treetable-lg .p-treetable-tfoot > tr > td {\n    padding: 1.25rem 1.25rem;\n  }\n  .p-treetable.p-treetable-lg .p-treetable-footer {\n    padding: 1.25rem 1.25rem;\n  }\n  .p-timeline .p-timeline-event-marker {\n    border: 2px solid #14b8a6;\n    border-radius: 50%;\n    width: 1rem;\n    height: 1rem;\n    background-color: #ffffff;\n  }\n  .p-timeline .p-timeline-event-connector {\n    background-color: #e5e7eb;\n  }\n  .p-timeline.p-timeline-vertical .p-timeline-event-opposite,\n  .p-timeline.p-timeline-vertical .p-timeline-event-content {\n    padding: 0 1rem;\n  }\n  .p-timeline.p-timeline-vertical .p-timeline-event-connector {\n    width: 2px;\n  }\n  .p-timeline.p-timeline-horizontal .p-timeline-event-opposite,\n  .p-timeline.p-timeline-horizontal .p-timeline-event-content {\n    padding: 1rem 0;\n  }\n  .p-timeline.p-timeline-horizontal .p-timeline-event-connector {\n    height: 2px;\n  }\n  .p-accordion .p-accordion-header .p-accordion-header-link {\n    padding: 1.25rem;\n    border: 1px solid #e5e7eb;\n    color: #6b7280;\n    background: #f9fafb;\n    font-weight: 700;\n    border-radius: 6px;\n    transition: box-shadow 0.2s;\n  }\n  .p-accordion .p-accordion-header .p-accordion-header-link .p-accordion-toggle-icon {\n    margin-right: 0.5rem;\n  }\n  .p-accordion .p-accordion-header:not(.p-disabled) .p-accordion-header-link:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-accordion .p-accordion-header:not(.p-highlight):not(.p-disabled):hover .p-accordion-header-link {\n    background: #f3f4f6;\n    border-color: #e5e7eb;\n    color: #374151;\n  }\n  .p-accordion .p-accordion-header:not(.p-disabled).p-highlight .p-accordion-header-link {\n    background: #f9fafb;\n    border-color: #e5e7eb;\n    color: #374151;\n    border-bottom-right-radius: 0;\n    border-bottom-left-radius: 0;\n  }\n  .p-accordion .p-accordion-header:not(.p-disabled).p-highlight:hover .p-accordion-header-link {\n    border-color: #e5e7eb;\n    background: #f3f4f6;\n    color: #374151;\n  }\n  .p-accordion .p-accordion-content {\n    padding: 1.25rem;\n    border: 1px solid #e5e7eb;\n    background: #ffffff;\n    color: #4b5563;\n    border-top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    border-bottom-right-radius: 6px;\n    border-bottom-left-radius: 6px;\n  }\n  .p-accordion .p-accordion-tab {\n    margin-bottom: 4px;\n  }\n  .p-card {\n    background: #ffffff;\n    color: #4b5563;\n    box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\n    border-radius: 6px;\n  }\n  .p-card .p-card-body {\n    padding: 1.25rem;\n  }\n  .p-card .p-card-title {\n    font-size: 1.5rem;\n    font-weight: 700;\n    margin-bottom: 0.5rem;\n  }\n  .p-card .p-card-subtitle {\n    font-weight: 400;\n    margin-bottom: 0.5rem;\n    color: #6b7280;\n  }\n  .p-card .p-card-content {\n    padding: 1.25rem 0;\n  }\n  .p-card .p-card-footer {\n    padding: 1.25rem 0 0 0;\n  }\n  .p-fieldset {\n    border: 1px solid #e5e7eb;\n    background: #ffffff;\n    color: #4b5563;\n    border-radius: 6px;\n  }\n  .p-fieldset .p-fieldset-legend {\n    padding: 1.25rem;\n    border: 1px solid #e5e7eb;\n    color: #374151;\n    background: #f9fafb;\n    font-weight: 700;\n    border-radius: 6px;\n  }\n  .p-fieldset.p-fieldset-toggleable .p-fieldset-legend {\n    padding: 0;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-fieldset.p-fieldset-toggleable .p-fieldset-legend a {\n    padding: 1.25rem;\n    color: #374151;\n    border-radius: 6px;\n    transition: box-shadow 0.2s;\n  }\n  .p-fieldset.p-fieldset-toggleable .p-fieldset-legend a .p-fieldset-toggler {\n    margin-right: 0.5rem;\n  }\n  .p-fieldset.p-fieldset-toggleable .p-fieldset-legend a:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-fieldset.p-fieldset-toggleable .p-fieldset-legend:hover {\n    background: #f3f4f6;\n    border-color: #e5e7eb;\n    color: #374151;\n  }\n  .p-fieldset .p-fieldset-content {\n    padding: 1.25rem;\n  }\n  .p-divider .p-divider-content {\n    background-color: #ffffff;\n  }\n  .p-divider.p-divider-horizontal {\n    margin: 1.25rem 0;\n    padding: 0 1.25rem;\n  }\n  .p-divider.p-divider-horizontal:before {\n    border-top: 1px #e5e7eb;\n  }\n  .p-divider.p-divider-horizontal .p-divider-content {\n    padding: 0 0.5rem;\n  }\n  .p-divider.p-divider-vertical {\n    margin: 0 1.25rem;\n    padding: 1.25rem 0;\n  }\n  .p-divider.p-divider-vertical:before {\n    border-left: 1px #e5e7eb;\n  }\n  .p-divider.p-divider-vertical .p-divider-content {\n    padding: 0.5rem 0;\n  }\n  .p-panel .p-panel-header {\n    border: 1px solid #e5e7eb;\n    padding: 1.25rem;\n    background: #f9fafb;\n    color: #374151;\n    border-top-right-radius: 6px;\n    border-top-left-radius: 6px;\n  }\n  .p-panel .p-panel-header .p-panel-title {\n    font-weight: 700;\n  }\n  .p-panel .p-panel-header .p-panel-header-icon {\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border: 0 none;\n    background: transparent;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-panel .p-panel-header .p-panel-header-icon:enabled:hover {\n    color: #374151;\n    border-color: transparent;\n    background: #f3f4f6;\n  }\n  .p-panel .p-panel-header .p-panel-header-icon:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-panel.p-panel-toggleable .p-panel-header {\n    padding: 0.75rem 1.25rem;\n  }\n  .p-panel:has(> .p-panel-footer) .p-panel-content {\n    border-bottom-left-radius: 0;\n    border-bottom-right-radius: 0;\n  }\n  .p-panel .p-panel-content {\n    padding: 1.25rem;\n    border: 1px solid #e5e7eb;\n    background: #ffffff;\n    color: #4b5563;\n    border-bottom-right-radius: 6px;\n    border-bottom-left-radius: 6px;\n    border-top: 0 none;\n  }\n  .p-panel .p-panel-footer {\n    padding: 0.75rem 1.25rem;\n    border: 1px solid #e5e7eb;\n    background: #ffffff;\n    color: #4b5563;\n    border-top: 0 none;\n  }\n  .p-splitter {\n    border: 1px solid #e5e7eb;\n    background: #ffffff;\n    border-radius: 6px;\n    color: #4b5563;\n  }\n  .p-splitter .p-splitter-gutter {\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n    background: #f9fafb;\n  }\n  .p-splitter .p-splitter-gutter .p-splitter-gutter-handle {\n    background: #e5e7eb;\n  }\n  .p-splitter .p-splitter-gutter .p-splitter-gutter-handle:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-splitter .p-splitter-gutter-resizing {\n    background: #e5e7eb;\n  }\n  .p-stepper .p-stepper-nav {\n    display: flex;\n    justify-content: space-between;\n    margin: 0;\n    padding: 0;\n    list-style-type: none;\n  }\n  .p-stepper .p-stepper-header {\n    padding: 0.5rem;\n  }\n  .p-stepper .p-stepper-header .p-stepper-action {\n    transition: box-shadow 0.2s;\n    border-radius: 6px;\n    background: #ffffff;\n    outline-color: transparent;\n  }\n  .p-stepper .p-stepper-header .p-stepper-action .p-stepper-number {\n    color: #4b5563;\n    border: 1px solid #f3f4f6;\n    border-width: 2px;\n    background: #ffffff;\n    min-width: 2rem;\n    height: 2rem;\n    line-height: 2rem;\n    font-size: 1.143rem;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-stepper .p-stepper-header .p-stepper-action .p-stepper-title {\n    margin-left: 0.5rem;\n    color: #6b7280;\n    font-weight: 700;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-stepper .p-stepper-header .p-stepper-action:not(.p-disabled):focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-stepper .p-stepper-header.p-highlight .p-stepper-number {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-stepper .p-stepper-header.p-highlight .p-stepper-title {\n    color: #4b5563;\n  }\n  .p-stepper .p-stepper-header:not(.p-disabled):focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-stepper .p-stepper-header:has(~ .p-highlight) .p-stepper-separator {\n    background-color: #14b8a6;\n  }\n  .p-stepper .p-stepper-panels {\n    background: #ffffff;\n    padding: 1.25rem;\n    color: #4b5563;\n  }\n  .p-stepper .p-stepper-separator {\n    background-color: #e5e7eb;\n    width: 100%;\n    height: 2px;\n    margin-inline-start: 1rem;\n    transition: box-shadow 0.2s;\n  }\n  .p-stepper.p-stepper-vertical {\n    display: flex;\n    flex-direction: column;\n  }\n  .p-stepper.p-stepper-vertical .p-stepper-toggleable-content {\n    display: flex;\n    flex: 1 1 auto;\n    background: #ffffff;\n    color: #4b5563;\n  }\n  .p-stepper.p-stepper-vertical .p-stepper-panel {\n    display: flex;\n    flex-direction: column;\n    flex: initial;\n  }\n  .p-stepper.p-stepper-vertical .p-stepper-panel.p-stepper-panel-active {\n    flex: 1 1 auto;\n  }\n  .p-stepper.p-stepper-vertical .p-stepper-panel .p-stepper-header {\n    flex: initial;\n  }\n  .p-stepper.p-stepper-vertical .p-stepper-panel .p-stepper-content {\n    width: 100%;\n    padding-left: 1rem;\n  }\n  .p-stepper.p-stepper-vertical .p-stepper-panel .p-stepper-separator {\n    flex: 0 0 auto;\n    width: 2px;\n    height: auto;\n    margin-inline-start: calc(1.75rem + 2px);\n  }\n  .p-stepper.p-stepper-vertical .p-stepper-panel:has(~ .p-stepper-panel-active) .p-stepper-separator {\n    background-color: #14b8a6;\n  }\n  .p-stepper.p-stepper-vertical .p-stepper-panel:last-of-type .p-stepper-content {\n    padding-left: 3rem;\n  }\n  .p-scrollpanel .p-scrollpanel-bar {\n    background: #f9fafb;\n    border: 0 none;\n  }\n  .p-scrollpanel .p-scrollpanel-bar:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-tabview-nav-container {\n    position: relative;\n  }\n  .p-tabview-scrollable .p-tabview-nav-container {\n    overflow: hidden;\n  }\n  .p-tabview-nav-content {\n    overflow-x: auto;\n    overflow-y: hidden;\n    scroll-behavior: smooth;\n    scrollbar-width: none;\n    overscroll-behavior: contain auto;\n    position: relative;\n  }\n  .p-tabview-nav {\n    display: flex;\n    margin: 0;\n    padding: 0;\n    list-style-type: none;\n    flex: 1 1 auto;\n  }\n  .p-tabview-nav-link {\n    cursor: pointer;\n    user-select: none;\n    display: flex;\n    align-items: center;\n    position: relative;\n    text-decoration: none;\n    overflow: hidden;\n  }\n  .p-tabview-ink-bar {\n    display: none;\n    z-index: 1;\n  }\n  .p-tabview-nav-link:focus {\n    z-index: 1;\n  }\n  .p-tabview-close {\n    z-index: 1;\n  }\n  .p-tabview-title {\n    line-height: 1;\n    white-space: nowrap;\n  }\n  .p-tabview-nav-btn {\n    position: absolute;\n    top: 0;\n    z-index: 2;\n    height: 100%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n  .p-tabview-nav-prev {\n    left: 0;\n  }\n  .p-tabview-nav-next {\n    right: 0;\n  }\n  .p-tabview-nav-content::-webkit-scrollbar {\n    display: none;\n  }\n  .p-tabview .p-tabview-nav {\n    background: #ffffff;\n    border: 1px solid #e5e7eb;\n    border-width: 0 0 2px 0;\n  }\n  .p-tabview .p-tabview-nav li {\n    margin-right: 0;\n  }\n  .p-tabview .p-tabview-nav li .p-tabview-nav-link {\n    border: solid #e5e7eb;\n    border-width: 0 0 2px 0;\n    border-color: transparent transparent #e5e7eb transparent;\n    background: #ffffff;\n    color: #6b7280;\n    padding: 1.25rem;\n    font-weight: 700;\n    border-top-right-radius: 6px;\n    border-top-left-radius: 6px;\n    transition: box-shadow 0.2s;\n    margin: 0 0 -2px 0;\n  }\n  .p-tabview .p-tabview-nav li .p-tabview-nav-link:not(.p-disabled):focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: inset 0 0 0 0.2rem #99f6e4;\n  }\n  .p-tabview .p-tabview-nav li:not(.p-highlight):not(.p-disabled):hover .p-tabview-nav-link {\n    background: #ffffff;\n    border-color: #9ca3af;\n    color: #6b7280;\n  }\n  .p-tabview .p-tabview-nav li.p-highlight .p-tabview-nav-link {\n    background: #ffffff;\n    border-color: #14b8a6;\n    color: #14b8a6;\n  }\n  .p-tabview .p-tabview-close {\n    margin-left: 0.5rem;\n  }\n  .p-tabview .p-tabview-nav-btn.p-link {\n    background: #ffffff;\n    color: #14b8a6;\n    width: 3rem;\n    box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n    border-radius: 0;\n  }\n  .p-tabview .p-tabview-nav-btn.p-link:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: inset 0 0 0 0.2rem #99f6e4;\n  }\n  .p-tabview .p-tabview-panels {\n    background: #ffffff;\n    padding: 1.25rem;\n    border: 0 none;\n    color: #4b5563;\n    border-bottom-right-radius: 6px;\n    border-bottom-left-radius: 6px;\n  }\n  .p-toolbar {\n    background: #f9fafb;\n    border: 1px solid #e5e7eb;\n    padding: 1.25rem;\n    border-radius: 6px;\n    gap: 0.5rem;\n  }\n  .p-toolbar .p-toolbar-separator {\n    margin: 0 0.5rem;\n  }\n  .p-confirm-popup {\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    border-radius: 6px;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);\n  }\n  .p-confirm-popup .p-confirm-popup-content {\n    padding: 1.25rem;\n  }\n  .p-confirm-popup .p-confirm-popup-footer {\n    text-align: right;\n    padding: 0 1.25rem 1.25rem 1.25rem;\n  }\n  .p-confirm-popup .p-confirm-popup-footer button {\n    margin: 0 0.5rem 0 0;\n    width: auto;\n  }\n  .p-confirm-popup .p-confirm-popup-footer button:last-child {\n    margin: 0;\n  }\n  .p-confirm-popup:after {\n    border: solid transparent;\n    border-color: rgba(255, 255, 255, 0);\n    border-bottom-color: #ffffff;\n  }\n  .p-confirm-popup:before {\n    border: solid transparent;\n    border-color: rgba(255, 255, 255, 0);\n    border-bottom-color: #f2f2f2;\n  }\n  .p-confirm-popup.p-confirm-popup-flipped:after {\n    border-top-color: #ffffff;\n  }\n  .p-confirm-popup.p-confirm-popup-flipped:before {\n    border-top-color: #ffffff;\n  }\n  .p-confirm-popup .p-confirm-popup-icon {\n    font-size: 1.5rem;\n  }\n  .p-confirm-popup .p-confirm-popup-icon.p-icon {\n    width: 1.5rem;\n    height: 1.5rem;\n  }\n  .p-confirm-popup .p-confirm-popup-message {\n    margin-left: 1rem;\n  }\n  .p-dialog {\n    border-radius: 6px;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);\n    border: 0 none;\n  }\n  .p-dialog .p-dialog-header {\n    border-bottom: 0 none;\n    background: #ffffff;\n    color: #374151;\n    padding: 1.5rem;\n    border-top-right-radius: 6px;\n    border-top-left-radius: 6px;\n  }\n  .p-dialog .p-dialog-header .p-dialog-title {\n    font-weight: 700;\n    font-size: 1.25rem;\n  }\n  .p-dialog .p-dialog-header .p-dialog-header-icon {\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border: 0 none;\n    background: transparent;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-dialog .p-dialog-header .p-dialog-header-icon:enabled:hover {\n    color: #374151;\n    border-color: transparent;\n    background: #f3f4f6;\n  }\n  .p-dialog .p-dialog-header .p-dialog-header-icon:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-dialog .p-dialog-header .p-dialog-header-icon {\n    margin-right: 0.5rem;\n  }\n  .p-dialog .p-dialog-header .p-dialog-header-icon:last-child {\n    margin-right: 0;\n  }\n  .p-dialog .p-dialog-content {\n    background: #ffffff;\n    color: #4b5563;\n    padding: 0 1.5rem 2rem 1.5rem;\n  }\n  .p-dialog .p-dialog-content:last-of-type {\n    border-bottom-right-radius: 6px;\n    border-bottom-left-radius: 6px;\n  }\n  .p-dialog .p-dialog-footer {\n    border-top: 0 none;\n    background: #ffffff;\n    color: #4b5563;\n    padding: 0 1.5rem 1.5rem 1.5rem;\n    text-align: right;\n    border-bottom-right-radius: 6px;\n    border-bottom-left-radius: 6px;\n  }\n  .p-dialog .p-dialog-footer button {\n    margin: 0 0.5rem 0 0;\n    width: auto;\n  }\n  .p-dialog.p-dialog-maximized .p-dialog-header, .p-dialog.p-dialog-maximized .p-dialog-content:last-of-type {\n    border-radius: 0;\n  }\n  .p-dialog.p-confirm-dialog .p-confirm-dialog-icon {\n    font-size: 2rem;\n  }\n  .p-dialog.p-confirm-dialog .p-confirm-dialog-icon.p-icon {\n    width: 2rem;\n    height: 2rem;\n  }\n  .p-dialog.p-confirm-dialog .p-confirm-dialog-message {\n    margin-left: 1rem;\n  }\n  .p-overlaypanel {\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    border-radius: 6px;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);\n  }\n  .p-overlaypanel .p-overlaypanel-content {\n    padding: 1.25rem;\n  }\n  .p-overlaypanel .p-overlaypanel-close {\n    background: #14b8a6;\n    color: #ffffff;\n    width: 2rem;\n    height: 2rem;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n    border-radius: 50%;\n    position: absolute;\n    top: -1rem;\n    right: -1rem;\n  }\n  .p-overlaypanel .p-overlaypanel-close:enabled:hover {\n    background: #0d9488;\n    color: #ffffff;\n  }\n  .p-overlaypanel:after {\n    border: solid transparent;\n    border-color: rgba(255, 255, 255, 0);\n    border-bottom-color: #ffffff;\n  }\n  .p-overlaypanel:before {\n    border: solid transparent;\n    border-color: rgba(255, 255, 255, 0);\n    border-bottom-color: #f2f2f2;\n  }\n  .p-overlaypanel.p-overlaypanel-flipped:after {\n    border-top-color: #ffffff;\n  }\n  .p-overlaypanel.p-overlaypanel-flipped:before {\n    border-top-color: #ffffff;\n  }\n  .p-sidebar {\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);\n  }\n  .p-sidebar .p-sidebar-header {\n    padding: 1.25rem;\n  }\n  .p-sidebar .p-sidebar-header .p-sidebar-close,\n  .p-sidebar .p-sidebar-header .p-sidebar-icon {\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border: 0 none;\n    background: transparent;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-sidebar .p-sidebar-header .p-sidebar-close:enabled:hover,\n  .p-sidebar .p-sidebar-header .p-sidebar-icon:enabled:hover {\n    color: #374151;\n    border-color: transparent;\n    background: #f3f4f6;\n  }\n  .p-sidebar .p-sidebar-header .p-sidebar-close:focus-visible,\n  .p-sidebar .p-sidebar-header .p-sidebar-icon:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-sidebar .p-sidebar-header + .p-sidebar-content {\n    padding-top: 0;\n  }\n  .p-sidebar .p-sidebar-content {\n    padding: 1.25rem;\n  }\n  .p-tooltip .p-tooltip-text {\n    background: #4b5563;\n    color: #ffffff;\n    padding: 0.75rem 0.75rem;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n    border-radius: 6px;\n  }\n  .p-tooltip.p-tooltip-right .p-tooltip-arrow {\n    border-right-color: #4b5563;\n  }\n  .p-tooltip.p-tooltip-left .p-tooltip-arrow {\n    border-left-color: #4b5563;\n  }\n  .p-tooltip.p-tooltip-top .p-tooltip-arrow {\n    border-top-color: #4b5563;\n  }\n  .p-tooltip.p-tooltip-bottom .p-tooltip-arrow {\n    border-bottom-color: #4b5563;\n  }\n  .p-fileupload .p-fileupload-buttonbar {\n    background: #f9fafb;\n    padding: 1.25rem;\n    border: 1px solid #e5e7eb;\n    color: #374151;\n    border-bottom: 0 none;\n    border-top-right-radius: 6px;\n    border-top-left-radius: 6px;\n    gap: 0.5rem;\n  }\n  .p-fileupload .p-fileupload-buttonbar .p-button {\n    margin-right: 0.5rem;\n  }\n  .p-fileupload .p-fileupload-content {\n    background: #ffffff;\n    padding: 2rem 1rem;\n    border: 1px solid #e5e7eb;\n    color: #4b5563;\n    border-bottom-right-radius: 6px;\n    border-bottom-left-radius: 6px;\n  }\n  .p-fileupload .p-progressbar {\n    height: 0.25rem;\n  }\n  .p-fileupload .p-fileupload-row > div {\n    padding: 1rem 1rem;\n  }\n  .p-fileupload.p-fileupload-advanced .p-message {\n    margin-top: 0;\n  }\n  .p-breadcrumb {\n    background: #ffffff;\n    border: 1px solid #e5e7eb;\n    border-radius: 6px;\n    padding: 1rem;\n  }\n  .p-breadcrumb .p-breadcrumb-list li .p-menuitem-link {\n    transition: box-shadow 0.2s;\n    border-radius: 6px;\n  }\n  .p-breadcrumb .p-breadcrumb-list li .p-menuitem-link:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-breadcrumb .p-breadcrumb-list li .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-breadcrumb .p-breadcrumb-list li .p-menuitem-link .p-menuitem-icon {\n    color: #6b7280;\n  }\n  .p-breadcrumb .p-breadcrumb-list li.p-menuitem-separator {\n    margin: 0 0.5rem 0 0.5rem;\n    color: #4b5563;\n  }\n  .p-breadcrumb .p-breadcrumb-list li:last-child .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-breadcrumb .p-breadcrumb-list li:last-child .p-menuitem-icon {\n    color: #6b7280;\n  }\n  .p-contextmenu {\n    padding: 0.5rem 0;\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n    border-radius: 6px;\n    width: 12.5rem;\n  }\n  .p-contextmenu .p-contextmenu-root-list {\n    outline: 0 none;\n  }\n  .p-contextmenu .p-submenu-list {\n    padding: 0.5rem 0;\n    background: #ffffff;\n    border: 0 none;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n    border-radius: 6px;\n  }\n  .p-contextmenu .p-menuitem > .p-menuitem-content {\n    color: #4b5563;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-contextmenu .p-menuitem > .p-menuitem-content .p-menuitem-link {\n    color: #4b5563;\n    padding: 0.75rem 1.25rem;\n    user-select: none;\n  }\n  .p-contextmenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-contextmenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon {\n    color: #6b7280;\n    margin-right: 0.5rem;\n  }\n  .p-contextmenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-contextmenu .p-menuitem.p-highlight > .p-menuitem-content {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-contextmenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #0f766e;\n  }\n  .p-contextmenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-contextmenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #0f766e;\n  }\n  .p-contextmenu .p-menuitem.p-highlight.p-focus > .p-menuitem-content {\n    background: rgba(20, 184, 166, 0.24);\n  }\n  .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content {\n    color: #4b5563;\n    background: #e5e7eb;\n  }\n  .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #4b5563;\n  }\n  .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,\n  .p-contextmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-contextmenu .p-menuitem-separator {\n    border-top: 1px solid #e5e7eb;\n    margin: 0.25rem 0;\n  }\n  .p-contextmenu .p-submenu-icon {\n    font-size: 0.875rem;\n  }\n  .p-contextmenu .p-submenu-icon.p-icon {\n    width: 0.875rem;\n    height: 0.875rem;\n  }\n  .p-dock .p-dock-list-container {\n    background: rgba(255, 255, 255, 0.1);\n    border: 1px solid rgba(255, 255, 255, 0.2);\n    padding: 0.5rem 0.5rem;\n    border-radius: 0.5rem;\n  }\n  .p-dock .p-dock-list-container .p-dock-list {\n    outline: 0 none;\n  }\n  .p-dock .p-dock-item {\n    padding: 0.5rem;\n    border-radius: 6px;\n  }\n  .p-dock .p-dock-item.p-focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: inset 0 0 0 0.15rem #99f6e4;\n  }\n  .p-dock .p-dock-action {\n    width: 4rem;\n    height: 4rem;\n  }\n  .p-dock.p-dock-top .p-dock-item-second-prev,\n  .p-dock.p-dock-top .p-dock-item-second-next, .p-dock.p-dock-bottom .p-dock-item-second-prev,\n  .p-dock.p-dock-bottom .p-dock-item-second-next {\n    margin: 0 0.9rem;\n  }\n  .p-dock.p-dock-top .p-dock-item-prev,\n  .p-dock.p-dock-top .p-dock-item-next, .p-dock.p-dock-bottom .p-dock-item-prev,\n  .p-dock.p-dock-bottom .p-dock-item-next {\n    margin: 0 1.3rem;\n  }\n  .p-dock.p-dock-top .p-dock-item-current, .p-dock.p-dock-bottom .p-dock-item-current {\n    margin: 0 1.5rem;\n  }\n  .p-dock.p-dock-left .p-dock-item-second-prev,\n  .p-dock.p-dock-left .p-dock-item-second-next, .p-dock.p-dock-right .p-dock-item-second-prev,\n  .p-dock.p-dock-right .p-dock-item-second-next {\n    margin: 0.9rem 0;\n  }\n  .p-dock.p-dock-left .p-dock-item-prev,\n  .p-dock.p-dock-left .p-dock-item-next, .p-dock.p-dock-right .p-dock-item-prev,\n  .p-dock.p-dock-right .p-dock-item-next {\n    margin: 1.3rem 0;\n  }\n  .p-dock.p-dock-left .p-dock-item-current, .p-dock.p-dock-right .p-dock-item-current {\n    margin: 1.5rem 0;\n  }\n  .p-dock.p-dock-mobile.p-dock-top .p-dock-list-container, .p-dock.p-dock-mobile.p-dock-bottom .p-dock-list-container {\n    overflow-x: auto;\n    width: 100%;\n  }\n  .p-dock.p-dock-mobile.p-dock-top .p-dock-list-container .p-dock-list, .p-dock.p-dock-mobile.p-dock-bottom .p-dock-list-container .p-dock-list {\n    margin: 0 auto;\n  }\n  .p-dock.p-dock-mobile.p-dock-left .p-dock-list-container, .p-dock.p-dock-mobile.p-dock-right .p-dock-list-container {\n    overflow-y: auto;\n    height: 100%;\n  }\n  .p-dock.p-dock-mobile.p-dock-left .p-dock-list-container .p-dock-list, .p-dock.p-dock-mobile.p-dock-right .p-dock-list-container .p-dock-list {\n    margin: auto 0;\n  }\n  .p-dock.p-dock-mobile .p-dock-list .p-dock-item {\n    transform: none;\n    margin: 0;\n  }\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-top .p-dock-item-second-prev,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-top .p-dock-item-second-next,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-top .p-dock-item-prev,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-top .p-dock-item-next,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-top .p-dock-item-current, .p-dock.p-dock-mobile.p-dock-magnification.p-dock-bottom .p-dock-item-second-prev,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-bottom .p-dock-item-second-next,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-bottom .p-dock-item-prev,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-bottom .p-dock-item-next,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-bottom .p-dock-item-current, .p-dock.p-dock-mobile.p-dock-magnification.p-dock-left .p-dock-item-second-prev,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-left .p-dock-item-second-next,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-left .p-dock-item-prev,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-left .p-dock-item-next,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-left .p-dock-item-current, .p-dock.p-dock-mobile.p-dock-magnification.p-dock-right .p-dock-item-second-prev,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-right .p-dock-item-second-next,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-right .p-dock-item-prev,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-right .p-dock-item-next,\n  .p-dock.p-dock-mobile.p-dock-magnification.p-dock-right .p-dock-item-current {\n    transform: none;\n    margin: 0;\n  }\n  .p-megamenu {\n    padding: 0.5rem;\n    background: #f9fafb;\n    color: #4b5563;\n    border: 1px solid #e5e7eb;\n    border-radius: 6px;\n  }\n  .p-megamenu .p-megamenu-root-list {\n    outline: 0 none;\n  }\n  .p-megamenu .p-menuitem > .p-menuitem-content {\n    color: #4b5563;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-megamenu .p-menuitem > .p-menuitem-content .p-menuitem-link {\n    color: #4b5563;\n    padding: 0.75rem 1.25rem;\n    user-select: none;\n  }\n  .p-megamenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-megamenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon {\n    color: #6b7280;\n    margin-right: 0.5rem;\n  }\n  .p-megamenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-megamenu .p-menuitem.p-highlight > .p-menuitem-content {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-megamenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #0f766e;\n  }\n  .p-megamenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-megamenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #0f766e;\n  }\n  .p-megamenu .p-menuitem.p-highlight.p-focus > .p-menuitem-content {\n    background: rgba(20, 184, 166, 0.24);\n  }\n  .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content {\n    color: #4b5563;\n    background: #e5e7eb;\n  }\n  .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #4b5563;\n  }\n  .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,\n  .p-megamenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-megamenu .p-megamenu-panel {\n    background: #ffffff;\n    color: #4b5563;\n    border: 0 none;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-megamenu .p-submenu-header {\n    margin: 0;\n    padding: 0.75rem 1.25rem;\n    color: #374151;\n    background: #ffffff;\n    font-weight: 700;\n    border-top-right-radius: 6px;\n    border-top-left-radius: 6px;\n  }\n  .p-megamenu .p-submenu-list {\n    padding: 0.5rem 0;\n    width: 12.5rem;\n  }\n  .p-megamenu .p-submenu-list .p-menuitem-separator {\n    border-top: 1px solid #e5e7eb;\n    margin: 0.25rem 0;\n  }\n  .p-megamenu.p-megamenu-vertical {\n    width: 12.5rem;\n    padding: 0.5rem 0;\n  }\n  .p-megamenu .p-megamenu-button {\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-megamenu .p-megamenu-button:hover {\n    color: #6b7280;\n    background: #f3f4f6;\n  }\n  .p-megamenu .p-megamenu-button:focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem > .p-menuitem-content {\n    color: #4b5563;\n    transition: box-shadow 0.2s;\n    border-radius: 6px;\n  }\n  .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link {\n    padding: 0.75rem 1.25rem;\n    user-select: none;\n  }\n  .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon {\n    color: #6b7280;\n    margin-right: 0.5rem;\n  }\n  .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n    margin-left: 0.5rem;\n  }\n  .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,\n  .p-megamenu.p-megamenu-horizontal .p-megamenu-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list {\n    padding: 0.5rem 0;\n    background: #ffffff;\n    border: 0 none;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list .p-menu-separator {\n    border-top: 1px solid #e5e7eb;\n    margin: 0.25rem 0;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list .p-submenu-icon {\n    font-size: 0.875rem;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list .p-submenu-icon.p-icon {\n    width: 0.875rem;\n    height: 0.875rem;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem {\n    width: 100%;\n    position: static;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link > .p-menuitem-content {\n    color: #4b5563;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link > .p-menuitem-content .p-menuitem-link {\n    color: #4b5563;\n    padding: 0.75rem 1.25rem;\n    user-select: none;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link > .p-menuitem-content .p-menuitem-link .p-menuitem-icon {\n    color: #6b7280;\n    margin-right: 0.5rem;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link.p-highlight > .p-menuitem-content {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #0f766e;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #0f766e;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link.p-highlight.p-focus > .p-menuitem-content {\n    background: rgba(20, 184, 166, 0.24);\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content {\n    color: #4b5563;\n    background: #e5e7eb;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #4b5563;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem > .p-menuitem-link > .p-submenu-icon {\n    margin-left: auto;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list > .p-menuitem.p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n    transform: rotate(-180deg);\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list .p-submenu-list {\n    width: 100%;\n    position: static;\n    box-shadow: none;\n    border: 0 none;\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list .p-submenu-list .p-submenu-icon {\n    transition: transform 0.2s;\n    transform: rotate(90deg);\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list .p-submenu-list .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n    transform: rotate(-90deg);\n  }\n  .p-megamenu.p-megamenu-mobile-active .p-megamenu-root-list .p-menuitem {\n    width: 100%;\n    position: static;\n  }\n  .p-menu {\n    padding: 0.5rem 0;\n    background: #ffffff;\n    color: #4b5563;\n    border: 1px solid #e5e7eb;\n    border-radius: 6px;\n    width: 12.5rem;\n  }\n  .p-menu .p-menuitem > .p-menuitem-content {\n    color: #4b5563;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-menu .p-menuitem > .p-menuitem-content .p-menuitem-link {\n    color: #4b5563;\n    padding: 0.75rem 1.25rem;\n    user-select: none;\n  }\n  .p-menu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-menu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon {\n    color: #6b7280;\n    margin-right: 0.5rem;\n  }\n  .p-menu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-menu .p-menuitem.p-highlight > .p-menuitem-content {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-menu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #0f766e;\n  }\n  .p-menu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-menu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #0f766e;\n  }\n  .p-menu .p-menuitem.p-highlight.p-focus > .p-menuitem-content {\n    background: rgba(20, 184, 166, 0.24);\n  }\n  .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content {\n    color: #4b5563;\n    background: #e5e7eb;\n  }\n  .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #4b5563;\n  }\n  .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,\n  .p-menu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-menu.p-menu-overlay {\n    background: #ffffff;\n    border: 0 none;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-menu .p-submenu-header {\n    margin: 0;\n    padding: 0.75rem 1.25rem;\n    color: #374151;\n    background: #ffffff;\n    font-weight: 700;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n  }\n  .p-menu .p-menu-separator {\n    border-top: 1px solid #e5e7eb;\n    margin: 0.25rem 0;\n  }\n  .p-menubar {\n    padding: 0.5rem;\n    background: #f9fafb;\n    color: #4b5563;\n    border: 1px solid #e5e7eb;\n    border-radius: 6px;\n  }\n  .p-menubar .p-menubar-root-list {\n    outline: 0 none;\n  }\n  .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-content {\n    color: #4b5563;\n    transition: box-shadow 0.2s;\n    border-radius: 6px;\n  }\n  .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link {\n    padding: 0.75rem 1.25rem;\n    user-select: none;\n  }\n  .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon {\n    color: #6b7280;\n    margin-right: 0.5rem;\n  }\n  .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n    margin-left: 0.5rem;\n  }\n  .p-menubar .p-menubar-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-menubar .p-menubar-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-menubar .p-menubar-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,\n  .p-menubar .p-menubar-root-list > .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-menubar .p-menuitem > .p-menuitem-content {\n    color: #4b5563;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-menubar .p-menuitem > .p-menuitem-content .p-menuitem-link {\n    color: #4b5563;\n    padding: 0.75rem 1.25rem;\n    user-select: none;\n  }\n  .p-menubar .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-menubar .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon {\n    color: #6b7280;\n    margin-right: 0.5rem;\n  }\n  .p-menubar .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-menubar .p-menuitem.p-highlight > .p-menuitem-content {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-menubar .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #0f766e;\n  }\n  .p-menubar .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-menubar .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #0f766e;\n  }\n  .p-menubar .p-menuitem.p-highlight.p-focus > .p-menuitem-content {\n    background: rgba(20, 184, 166, 0.24);\n  }\n  .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content {\n    color: #4b5563;\n    background: #e5e7eb;\n  }\n  .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #4b5563;\n  }\n  .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,\n  .p-menubar .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-menubar .p-submenu-list {\n    padding: 0.5rem 0;\n    background: #ffffff;\n    border: 0 none;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n    width: 12.5rem;\n  }\n  .p-menubar .p-submenu-list .p-menuitem-separator {\n    border-top: 1px solid #e5e7eb;\n    margin: 0.25rem 0;\n  }\n  .p-menubar .p-submenu-list .p-submenu-icon {\n    font-size: 0.875rem;\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-button {\n    width: 2rem;\n    height: 2rem;\n    color: #6b7280;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-button:hover {\n    color: #6b7280;\n    background: #f3f4f6;\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-button:focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-root-list {\n    padding: 0.5rem 0;\n    background: #ffffff;\n    border: 0 none;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-root-list .p-menuitem-separator {\n    border-top: 1px solid #e5e7eb;\n    margin: 0.25rem 0;\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-root-list .p-submenu-icon {\n    font-size: 0.875rem;\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-root-list .p-menuitem .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    margin-left: auto;\n    transition: transform 0.2s;\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-root-list .p-menuitem.p-menuitem-active > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon {\n    transform: rotate(-180deg);\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-root-list .p-submenu-list .p-submenu-icon {\n    transition: transform 0.2s;\n    transform: rotate(90deg);\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-root-list .p-submenu-list .p-menuitem-active > .p-menuitem-content > .p-menuitem-link > .p-submenu-icon {\n    transform: rotate(-90deg);\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-root-list ul li a {\n    padding-left: 2.25rem;\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-root-list ul li ul li a {\n    padding-left: 3.75rem;\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-root-list ul li ul li ul li a {\n    padding-left: 5.25rem;\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-root-list ul li ul li ul li ul li a {\n    padding-left: 6.75rem;\n  }\n  .p-menubar.p-menubar-mobile .p-menubar-root-list ul li ul li ul li ul li ul li a {\n    padding-left: 8.25rem;\n  }\n  @media screen and (max-width: 960px) {\n    .p-menubar {\n      position: relative;\n    }\n    .p-menubar .p-menubar-button {\n      display: flex;\n      width: 2rem;\n      height: 2rem;\n      color: #6b7280;\n      border-radius: 50%;\n      transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n    }\n    .p-menubar .p-menubar-button:hover {\n      color: #6b7280;\n      background: #f3f4f6;\n    }\n    .p-menubar .p-menubar-button:focus {\n      outline: 0 none;\n      outline-offset: 0;\n      box-shadow: 0 0 0 0.2rem #99f6e4;\n    }\n    .p-menubar .p-menubar-root-list {\n      position: absolute;\n      display: none;\n      padding: 0.5rem 0;\n      background: #ffffff;\n      border: 0 none;\n      box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n      width: 100%;\n    }\n    .p-menubar .p-menubar-root-list .p-menu-separator {\n      border-top: 1px solid #e5e7eb;\n      margin: 0.25rem 0;\n    }\n    .p-menubar .p-menubar-root-list .p-submenu-icon {\n      font-size: 0.875rem;\n    }\n    .p-menubar .p-menubar-root-list .p-submenu-icon.p-icon {\n      width: 0.875rem;\n      height: 0.875rem;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem {\n      width: 100%;\n      position: static;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link > .p-menuitem-content {\n      color: #4b5563;\n      transition: box-shadow 0.2s;\n      border-radius: 0;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link > .p-menuitem-content .p-menuitem-link {\n      color: #4b5563;\n      padding: 0.75rem 1.25rem;\n      user-select: none;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n      color: #4b5563;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link > .p-menuitem-content .p-menuitem-link .p-menuitem-icon {\n      color: #6b7280;\n      margin-right: 0.5rem;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n      color: #6b7280;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link.p-highlight > .p-menuitem-content {\n      color: #0f766e;\n      background: #0f766e;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n      color: #0f766e;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n      color: #0f766e;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link.p-highlight.p-focus > .p-menuitem-content {\n      background: rgba(20, 184, 166, 0.24);\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content {\n      color: #4b5563;\n      background: #e5e7eb;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n      color: #4b5563;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n      color: #4b5563;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover {\n      color: #4b5563;\n      background: #f3f4f6;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text {\n      color: #4b5563;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon {\n      color: #6b7280;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem > .p-menuitem-link > .p-submenu-icon {\n      margin-left: auto;\n      transition: transform 0.2s;\n    }\n    .p-menubar .p-menubar-root-list > .p-menuitem.p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n      transform: rotate(-180deg);\n    }\n    .p-menubar .p-menubar-root-list .p-submenu-list {\n      width: 100%;\n      position: static;\n      box-shadow: none;\n      border: 0 none;\n    }\n    .p-menubar .p-menubar-root-list .p-submenu-list .p-submenu-icon {\n      transition: transform 0.2s;\n      transform: rotate(90deg);\n    }\n    .p-menubar .p-menubar-root-list .p-submenu-list .p-menuitem-active > .p-menuitem-link > .p-submenu-icon {\n      transform: rotate(-90deg);\n    }\n    .p-menubar .p-menubar-root-list .p-menuitem {\n      width: 100%;\n      position: static;\n    }\n    .p-menubar .p-menubar-root-list ul li a {\n      padding-left: 2.25rem;\n    }\n    .p-menubar .p-menubar-root-list ul li ul li a {\n      padding-left: 3.75rem;\n    }\n    .p-menubar .p-menubar-root-list ul li ul li ul li a {\n      padding-left: 5.25rem;\n    }\n    .p-menubar .p-menubar-root-list ul li ul li ul li ul li a {\n      padding-left: 6.75rem;\n    }\n    .p-menubar .p-menubar-root-list ul li ul li ul li ul li ul li a {\n      padding-left: 8.25rem;\n    }\n    .p-menubar.p-menubar-mobile-active .p-menubar-root-list {\n      display: flex;\n      flex-direction: column;\n      top: 100%;\n      left: 0;\n      z-index: 1;\n    }\n  }\n  .p-panelmenu .p-panelmenu-header {\n    outline: 0 none;\n  }\n  .p-panelmenu .p-panelmenu-header .p-panelmenu-header-content {\n    border: 1px solid #e5e7eb;\n    color: #6b7280;\n    background: #f9fafb;\n    border-radius: 6px;\n    transition: box-shadow 0.2s;\n  }\n  .p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-link {\n    color: #6b7280;\n    padding: 1.25rem;\n    font-weight: 700;\n  }\n  .p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-link .p-submenu-icon {\n    margin-right: 0.5rem;\n  }\n  .p-panelmenu .p-panelmenu-header .p-panelmenu-header-content .p-panelmenu-header-link .p-menuitem-icon {\n    margin-right: 0.5rem;\n  }\n  .p-panelmenu .p-panelmenu-header:not(.p-disabled):focus-visible .p-panelmenu-header-content {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: inset 0 0 0 0.2rem #99f6e4;\n  }\n  .p-panelmenu .p-panelmenu-header:not(.p-highlight):not(.p-disabled):hover .p-panelmenu-header-content {\n    background: #f3f4f6;\n    border-color: #e5e7eb;\n    color: #374151;\n  }\n  .p-panelmenu .p-panelmenu-header:not(.p-disabled).p-highlight .p-panelmenu-header-content {\n    background: #f9fafb;\n    border-color: #e5e7eb;\n    color: #374151;\n    border-bottom-right-radius: 0;\n    border-bottom-left-radius: 0;\n    margin-bottom: 0;\n  }\n  .p-panelmenu .p-panelmenu-header:not(.p-disabled).p-highlight:hover .p-panelmenu-header-content {\n    border-color: #e5e7eb;\n    background: #f3f4f6;\n    color: #374151;\n  }\n  .p-panelmenu .p-panelmenu-content {\n    padding: 0.5rem 0;\n    border: 1px solid #e5e7eb;\n    background: #ffffff;\n    color: #4b5563;\n    border-top: 0;\n    border-top-right-radius: 0;\n    border-top-left-radius: 0;\n    border-bottom-right-radius: 6px;\n    border-bottom-left-radius: 6px;\n  }\n  .p-panelmenu .p-panelmenu-content .p-panelmenu-root-list {\n    outline: 0 none;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem > .p-menuitem-content {\n    color: #4b5563;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem > .p-menuitem-content .p-menuitem-link {\n    color: #4b5563;\n    padding: 0.75rem 1.25rem;\n    user-select: none;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon {\n    color: #6b7280;\n    margin-right: 0.5rem;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight > .p-menuitem-content {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #0f766e;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #0f766e;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem.p-highlight.p-focus > .p-menuitem-content {\n    background: rgba(20, 184, 166, 0.24);\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content {\n    color: #4b5563;\n    background: #e5e7eb;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #4b5563;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,\n  .p-panelmenu .p-panelmenu-content .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    margin-right: 0.5rem;\n  }\n  .p-panelmenu .p-panelmenu-content .p-menuitem-separator {\n    border-top: 1px solid #e5e7eb;\n    margin: 0.25rem 0;\n  }\n  .p-panelmenu .p-panelmenu-content .p-submenu-list:not(.p-panelmenu-root-list) {\n    padding: 0 0 0 1rem;\n  }\n  .p-panelmenu .p-panelmenu-panel {\n    margin-bottom: 4px;\n  }\n  .p-slidemenu {\n    padding: 0.5rem 0;\n    background: #ffffff;\n    color: #4b5563;\n    border: 1px solid #e5e7eb;\n    border-radius: 6px;\n    width: 12.5rem;\n  }\n  .p-slidemenu .p-menuitem-link > .p-menuitem-content {\n    color: #4b5563;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-slidemenu .p-menuitem-link > .p-menuitem-content .p-menuitem-link {\n    color: #4b5563;\n    padding: 0.75rem 1.25rem;\n    user-select: none;\n  }\n  .p-slidemenu .p-menuitem-link > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-slidemenu .p-menuitem-link > .p-menuitem-content .p-menuitem-link .p-menuitem-icon {\n    color: #6b7280;\n    margin-right: 0.5rem;\n  }\n  .p-slidemenu .p-menuitem-link > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-slidemenu .p-menuitem-link.p-highlight > .p-menuitem-content {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-slidemenu .p-menuitem-link.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #0f766e;\n  }\n  .p-slidemenu .p-menuitem-link.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-slidemenu .p-menuitem-link.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #0f766e;\n  }\n  .p-slidemenu .p-menuitem-link.p-highlight.p-focus > .p-menuitem-content {\n    background: rgba(20, 184, 166, 0.24);\n  }\n  .p-slidemenu .p-menuitem-link:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content {\n    color: #4b5563;\n    background: #e5e7eb;\n  }\n  .p-slidemenu .p-menuitem-link:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-slidemenu .p-menuitem-link:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-slidemenu .p-menuitem-link:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #4b5563;\n  }\n  .p-slidemenu .p-menuitem-link:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-slidemenu .p-menuitem-link:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-slidemenu .p-menuitem-link:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,\n  .p-slidemenu .p-menuitem-link:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-slidemenu.p-slidemenu-overlay {\n    background: #ffffff;\n    border: 0 none;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-slidemenu .p-slidemenu-list {\n    padding: 0.5rem 0;\n    background: #ffffff;\n    border: 0 none;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-slidemenu .p-slidemenu.p-slidemenu-active > .p-slidemenu-link {\n    background: #0f766e;\n  }\n  .p-slidemenu .p-slidemenu.p-slidemenu-active > .p-slidemenu-link .p-slidemenu-text {\n    color: #0f766e;\n  }\n  .p-slidemenu .p-slidemenu.p-slidemenu-active > .p-slidemenu-link .p-slidemenu-icon, .p-slidemenu .p-slidemenu.p-slidemenu-active > .p-slidemenu-link .p-slidemenu-icon {\n    color: #0f766e;\n  }\n  .p-slidemenu .p-slidemenu-separator {\n    border-top: 1px solid #e5e7eb;\n    margin: 0.25rem 0;\n  }\n  .p-slidemenu .p-slidemenu-icon {\n    font-size: 0.875rem;\n  }\n  .p-slidemenu .p-slidemenu-icon.p-icon {\n    width: 0.875rem;\n    height: 0.875rem;\n  }\n  .p-slidemenu .p-slidemenu-backward {\n    padding: 0.75rem 1.25rem;\n    color: #4b5563;\n  }\n  .p-steps .p-steps-item .p-menuitem-link {\n    background: transparent;\n    transition: box-shadow 0.2s;\n    border-radius: 6px;\n    background: #ffffff;\n  }\n  .p-steps .p-steps-item .p-menuitem-link .p-steps-number {\n    color: #4b5563;\n    border: 1px solid #f3f4f6;\n    background: #ffffff;\n    min-width: 2rem;\n    height: 2rem;\n    line-height: 2rem;\n    font-size: 1.143rem;\n    z-index: 1;\n    border-radius: 50%;\n  }\n  .p-steps .p-steps-item .p-menuitem-link .p-steps-title {\n    margin-top: 0.5rem;\n    color: #6b7280;\n  }\n  .p-steps .p-steps-item .p-menuitem-link:not(.p-disabled):focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-steps .p-steps-item.p-highlight .p-steps-number {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-steps .p-steps-item.p-highlight .p-steps-title {\n    font-weight: 700;\n    color: #4b5563;\n  }\n  .p-steps .p-steps-item:before {\n    content: \" \";\n    border-top: 1px solid #e5e7eb;\n    width: 100%;\n    top: 50%;\n    left: 0;\n    display: block;\n    position: absolute;\n    margin-top: -1rem;\n  }\n  .p-tabmenu .p-tabmenu-nav {\n    background: #ffffff;\n    border: 1px solid #e5e7eb;\n    border-width: 0 0 2px 0;\n  }\n  .p-tabmenu .p-tabmenu-nav .p-tabmenuitem {\n    margin-right: 0;\n  }\n  .p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link {\n    border: solid #e5e7eb;\n    border-width: 0 0 2px 0;\n    border-color: transparent transparent #e5e7eb transparent;\n    background: #ffffff;\n    color: #6b7280;\n    padding: 1.25rem;\n    font-weight: 700;\n    border-top-right-radius: 6px;\n    border-top-left-radius: 6px;\n    transition: box-shadow 0.2s;\n    margin: 0 0 -2px 0;\n    height: calc(100% + 2px);\n  }\n  .p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link .p-menuitem-icon {\n    margin-right: 0.5rem;\n  }\n  .p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link:not(.p-disabled):focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: inset 0 0 0 0.2rem #99f6e4;\n  }\n  .p-tabmenu .p-tabmenu-nav .p-tabmenuitem:not(.p-highlight):not(.p-disabled):hover .p-menuitem-link {\n    background: #ffffff;\n    border-color: #9ca3af;\n    color: #6b7280;\n  }\n  .p-tabmenu .p-tabmenu-nav .p-tabmenuitem.p-highlight .p-menuitem-link {\n    background: #ffffff;\n    border-color: #14b8a6;\n    color: #14b8a6;\n  }\n  .p-tieredmenu {\n    padding: 0.5rem 0;\n    background: #ffffff;\n    color: #4b5563;\n    border: 1px solid #e5e7eb;\n    border-radius: 6px;\n    width: 12.5rem;\n  }\n  .p-tieredmenu.p-tieredmenu-overlay {\n    background: #ffffff;\n    border: 0 none;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-tieredmenu .p-tieredmenu-root-list {\n    outline: 0 none;\n  }\n  .p-tieredmenu .p-submenu-list {\n    padding: 0.5rem 0;\n    background: #ffffff;\n    border: 0 none;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n  }\n  .p-tieredmenu .p-menuitem > .p-menuitem-content {\n    color: #4b5563;\n    transition: box-shadow 0.2s;\n    border-radius: 0;\n  }\n  .p-tieredmenu .p-menuitem > .p-menuitem-content .p-menuitem-link {\n    color: #4b5563;\n    padding: 0.75rem 1.25rem;\n    user-select: none;\n  }\n  .p-tieredmenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-tieredmenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-menuitem-icon {\n    color: #6b7280;\n    margin-right: 0.5rem;\n  }\n  .p-tieredmenu .p-menuitem > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-tieredmenu .p-menuitem.p-highlight > .p-menuitem-content {\n    color: #0f766e;\n    background: #0f766e;\n  }\n  .p-tieredmenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #0f766e;\n  }\n  .p-tieredmenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-tieredmenu .p-menuitem.p-highlight > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #0f766e;\n  }\n  .p-tieredmenu .p-menuitem.p-highlight.p-focus > .p-menuitem-content {\n    background: rgba(20, 184, 166, 0.24);\n  }\n  .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content {\n    color: #4b5563;\n    background: #e5e7eb;\n  }\n  .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-menuitem-icon,\n  .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled).p-focus > .p-menuitem-content .p-menuitem-link .p-submenu-icon {\n    color: #4b5563;\n  }\n  .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover {\n    color: #4b5563;\n    background: #f3f4f6;\n  }\n  .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-text {\n    color: #4b5563;\n  }\n  .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-menuitem-icon,\n  .p-tieredmenu .p-menuitem:not(.p-highlight):not(.p-disabled) > .p-menuitem-content:hover .p-menuitem-link .p-submenu-icon {\n    color: #6b7280;\n  }\n  .p-tieredmenu .p-menuitem-separator {\n    border-top: 1px solid #e5e7eb;\n    margin: 0.25rem 0;\n  }\n  .p-tieredmenu .p-submenu-icon {\n    font-size: 0.875rem;\n  }\n  .p-tieredmenu .p-submenu-icon.p-icon {\n    width: 0.875rem;\n    height: 0.875rem;\n  }\n  .p-inline-message {\n    padding: 0.75rem 0.75rem;\n    margin: 0;\n    border-radius: 6px;\n  }\n  .p-inline-message.p-inline-message-info {\n    background: rgba(219, 234, 254, 0.7);\n    border: solid #3b82f6;\n    border-width: 0px;\n    color: #3b82f6;\n  }\n  .p-inline-message.p-inline-message-info .p-inline-message-icon {\n    color: #3b82f6;\n  }\n  .p-inline-message.p-inline-message-success {\n    background: rgba(228, 248, 240, 0.7);\n    border: solid #1ea97c;\n    border-width: 0px;\n    color: #1ea97c;\n  }\n  .p-inline-message.p-inline-message-success .p-inline-message-icon {\n    color: #1ea97c;\n  }\n  .p-inline-message.p-inline-message-warn {\n    background: rgba(255, 242, 226, 0.7);\n    border: solid #cc8925;\n    border-width: 0px;\n    color: #cc8925;\n  }\n  .p-inline-message.p-inline-message-warn .p-inline-message-icon {\n    color: #cc8925;\n  }\n  .p-inline-message.p-inline-message-error {\n    background: rgba(255, 231, 230, 0.7);\n    border: solid #ff5757;\n    border-width: 0px;\n    color: #ff5757;\n  }\n  .p-inline-message.p-inline-message-error .p-inline-message-icon {\n    color: #ff5757;\n  }\n  .p-inline-message .p-inline-message-icon {\n    font-size: 1rem;\n    margin-right: 0.5rem;\n  }\n  .p-inline-message .p-inline-message-icon.p-icon {\n    width: 1rem;\n    height: 1rem;\n  }\n  .p-inline-message .p-inline-message-text {\n    font-size: 1rem;\n  }\n  .p-inline-message.p-inline-message-icon-only .p-inline-message-icon {\n    margin-right: 0;\n  }\n  .p-message {\n    margin: 1rem 0;\n    border-radius: 6px;\n  }\n  .p-message .p-message-wrapper {\n    padding: 1.25rem 1.75rem;\n  }\n  .p-message .p-message-close {\n    width: 2rem;\n    height: 2rem;\n    border-radius: 50%;\n    background: transparent;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-message .p-message-close:hover {\n    background: rgba(255, 255, 255, 0.5);\n  }\n  .p-message .p-message-close:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-message.p-message-info {\n    background: rgba(219, 234, 254, 0.7);\n    border: solid #3b82f6;\n    border-width: 0 0 0 6px;\n    color: #3b82f6;\n  }\n  .p-message.p-message-info .p-message-icon {\n    color: #3b82f6;\n  }\n  .p-message.p-message-info .p-message-close {\n    color: #3b82f6;\n  }\n  .p-message.p-message-success {\n    background: rgba(228, 248, 240, 0.7);\n    border: solid #1ea97c;\n    border-width: 0 0 0 6px;\n    color: #1ea97c;\n  }\n  .p-message.p-message-success .p-message-icon {\n    color: #1ea97c;\n  }\n  .p-message.p-message-success .p-message-close {\n    color: #1ea97c;\n  }\n  .p-message.p-message-warn {\n    background: rgba(255, 242, 226, 0.7);\n    border: solid #cc8925;\n    border-width: 0 0 0 6px;\n    color: #cc8925;\n  }\n  .p-message.p-message-warn .p-message-icon {\n    color: #cc8925;\n  }\n  .p-message.p-message-warn .p-message-close {\n    color: #cc8925;\n  }\n  .p-message.p-message-error {\n    background: rgba(255, 231, 230, 0.7);\n    border: solid #ff5757;\n    border-width: 0 0 0 6px;\n    color: #ff5757;\n  }\n  .p-message.p-message-error .p-message-icon {\n    color: #ff5757;\n  }\n  .p-message.p-message-error .p-message-close {\n    color: #ff5757;\n  }\n  .p-message .p-message-text {\n    font-size: 1rem;\n    font-weight: 500;\n  }\n  .p-message .p-message-icon {\n    font-size: 1.5rem;\n    margin-right: 0.5rem;\n  }\n  .p-message .p-message-icon.p-icon {\n    width: 1.5rem;\n    height: 1.5rem;\n  }\n  .p-message .p-message-summary {\n    font-weight: 700;\n  }\n  .p-message .p-message-detail {\n    margin-left: 0.5rem;\n  }\n  .p-toast {\n    opacity: 1;\n  }\n  .p-toast .p-toast-message {\n    margin: 0 0 1rem 0;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n    border-radius: 6px;\n  }\n  .p-toast .p-toast-message .p-toast-message-content {\n    padding: 1rem;\n  }\n  .p-toast .p-toast-message .p-toast-message-content .p-toast-message-text {\n    margin: 0 0 0 1rem;\n  }\n  .p-toast .p-toast-message .p-toast-message-content .p-toast-message-icon {\n    font-size: 2rem;\n  }\n  .p-toast .p-toast-message .p-toast-message-content .p-toast-message-icon.p-icon {\n    width: 2rem;\n    height: 2rem;\n  }\n  .p-toast .p-toast-message .p-toast-message-content .p-toast-summary {\n    font-weight: 700;\n  }\n  .p-toast .p-toast-message .p-toast-message-content .p-toast-detail {\n    margin: 0.5rem 0 0 0;\n  }\n  .p-toast .p-toast-message .p-toast-icon-close {\n    width: 2rem;\n    height: 2rem;\n    border-radius: 50%;\n    background: transparent;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-toast .p-toast-message .p-toast-icon-close:hover {\n    background: rgba(255, 255, 255, 0.5);\n  }\n  .p-toast .p-toast-message .p-toast-icon-close:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-toast .p-toast-message.p-toast-message-info {\n    background: rgba(219, 234, 254, 0.7);\n    border: solid #3b82f6;\n    border-width: 0 0 0 6px;\n    color: #3b82f6;\n  }\n  .p-toast .p-toast-message.p-toast-message-info .p-toast-message-icon,\n  .p-toast .p-toast-message.p-toast-message-info .p-toast-icon-close {\n    color: #3b82f6;\n  }\n  .p-toast .p-toast-message.p-toast-message-success {\n    background: rgba(228, 248, 240, 0.7);\n    border: solid #1ea97c;\n    border-width: 0 0 0 6px;\n    color: #1ea97c;\n  }\n  .p-toast .p-toast-message.p-toast-message-success .p-toast-message-icon,\n  .p-toast .p-toast-message.p-toast-message-success .p-toast-icon-close {\n    color: #1ea97c;\n  }\n  .p-toast .p-toast-message.p-toast-message-warn {\n    background: rgba(255, 242, 226, 0.7);\n    border: solid #cc8925;\n    border-width: 0 0 0 6px;\n    color: #cc8925;\n  }\n  .p-toast .p-toast-message.p-toast-message-warn .p-toast-message-icon,\n  .p-toast .p-toast-message.p-toast-message-warn .p-toast-icon-close {\n    color: #cc8925;\n  }\n  .p-toast .p-toast-message.p-toast-message-error {\n    background: rgba(255, 231, 230, 0.7);\n    border: solid #ff5757;\n    border-width: 0 0 0 6px;\n    color: #ff5757;\n  }\n  .p-toast .p-toast-message.p-toast-message-error .p-toast-message-icon,\n  .p-toast .p-toast-message.p-toast-message-error .p-toast-icon-close {\n    color: #ff5757;\n  }\n  .p-galleria .p-galleria-close {\n    margin: 0.5rem;\n    background: transparent;\n    color: #f9fafb;\n    width: 4rem;\n    height: 4rem;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n    border-radius: 50%;\n  }\n  .p-galleria .p-galleria-close .p-galleria-close-icon {\n    font-size: 2rem;\n  }\n  .p-galleria .p-galleria-close .p-galleria-close-icon.p-icon {\n    width: 2rem;\n    height: 2rem;\n  }\n  .p-galleria .p-galleria-close:hover {\n    background: rgba(255, 255, 255, 0.1);\n    color: #f9fafb;\n  }\n  .p-galleria .p-galleria-item-nav {\n    background: transparent;\n    color: #f9fafb;\n    width: 4rem;\n    height: 4rem;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n    border-radius: 6px;\n    margin: 0 0.5rem;\n  }\n  .p-galleria .p-galleria-item-nav .p-galleria-item-prev-icon,\n  .p-galleria .p-galleria-item-nav .p-galleria-item-next-icon {\n    font-size: 2rem;\n  }\n  .p-galleria .p-galleria-item-nav .p-galleria-item-prev-icon.p-icon,\n  .p-galleria .p-galleria-item-nav .p-galleria-item-next-icon.p-icon {\n    width: 2rem;\n    height: 2rem;\n  }\n  .p-galleria .p-galleria-item-nav:not(.p-disabled):hover {\n    background: rgba(255, 255, 255, 0.1);\n    color: #f9fafb;\n  }\n  .p-galleria .p-galleria-caption {\n    background: rgba(0, 0, 0, 0.5);\n    color: #f9fafb;\n    padding: 1rem;\n  }\n  .p-galleria .p-galleria-indicators {\n    padding: 1rem;\n  }\n  .p-galleria .p-galleria-indicators .p-galleria-indicator button {\n    background-color: #d1d5db;\n    width: 1rem;\n    height: 1rem;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n    border-radius: 50%;\n  }\n  .p-galleria .p-galleria-indicators .p-galleria-indicator button:hover {\n    background: #9ca3af;\n  }\n  .p-galleria .p-galleria-indicators .p-galleria-indicator.p-highlight button {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-galleria.p-galleria-indicators-bottom .p-galleria-indicator, .p-galleria.p-galleria-indicators-top .p-galleria-indicator {\n    margin-right: 0.5rem;\n  }\n  .p-galleria.p-galleria-indicators-left .p-galleria-indicator, .p-galleria.p-galleria-indicators-right .p-galleria-indicator {\n    margin-bottom: 0.5rem;\n  }\n  .p-galleria.p-galleria-indicator-onitem .p-galleria-indicators {\n    background: rgba(0, 0, 0, 0.5);\n  }\n  .p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator button {\n    background: rgba(255, 255, 255, 0.4);\n  }\n  .p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator button:hover {\n    background: rgba(255, 255, 255, 0.6);\n  }\n  .p-galleria.p-galleria-indicator-onitem .p-galleria-indicators .p-galleria-indicator.p-highlight button {\n    background: #0f766e;\n    color: #0f766e;\n  }\n  .p-galleria .p-galleria-thumbnail-container {\n    background: rgba(0, 0, 0, 0.9);\n    padding: 1rem 0.25rem;\n  }\n  .p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-prev,\n  .p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-next {\n    margin: 0.5rem;\n    background-color: transparent;\n    color: #f9fafb;\n    width: 2rem;\n    height: 2rem;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n    border-radius: 50%;\n  }\n  .p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-prev:hover,\n  .p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-next:hover {\n    background: rgba(255, 255, 255, 0.1);\n    color: #f9fafb;\n  }\n  .p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-item-content {\n    transition: box-shadow 0.2s;\n  }\n  .p-galleria .p-galleria-thumbnail-container .p-galleria-thumbnail-item-content:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-galleria-mask {\n    --maskbg: rgba(0, 0, 0, 0.9);\n  }\n  .p-image-mask {\n    --maskbg: rgba(0, 0, 0, 0.9);\n  }\n  .p-image-preview-indicator {\n    background-color: transparent;\n    color: #f8f9fa;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-image-preview-indicator .p-icon {\n    width: 1.5rem;\n    height: 1.5rem;\n  }\n  .p-image-preview-container:hover > .p-image-preview-indicator {\n    background-color: rgba(0, 0, 0, 0.5);\n  }\n  .p-image-toolbar {\n    padding: 1rem;\n  }\n  .p-image-action.p-link {\n    color: #f8f9fa;\n    background-color: transparent;\n    width: 3rem;\n    height: 3rem;\n    border-radius: 50%;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n    margin-right: 0.5rem;\n  }\n  .p-image-action.p-link:last-child {\n    margin-right: 0;\n  }\n  .p-image-action.p-link:hover {\n    color: #f8f9fa;\n    background-color: rgba(255, 255, 255, 0.1);\n  }\n  .p-image-action.p-link span {\n    font-size: 1.5rem;\n  }\n  .p-image-action.p-link .p-icon {\n    width: 1.5rem;\n    height: 1.5rem;\n  }\n  .p-avatar {\n    background-color: #e5e7eb;\n    border-radius: 6px;\n  }\n  .p-avatar.p-avatar-lg {\n    width: 3rem;\n    height: 3rem;\n    font-size: 1.5rem;\n  }\n  .p-avatar.p-avatar-lg .p-avatar-icon {\n    font-size: 1.5rem;\n  }\n  .p-avatar.p-avatar-xl {\n    width: 4rem;\n    height: 4rem;\n    font-size: 2rem;\n  }\n  .p-avatar.p-avatar-xl .p-avatar-icon {\n    font-size: 2rem;\n  }\n  .p-avatar-circle {\n    border-radius: 50%;\n  }\n  .p-avatar-group .p-avatar {\n    border: 2px solid #ffffff;\n  }\n  .p-chip {\n    background-color: #e5e7eb;\n    color: #4b5563;\n    border-radius: 16px;\n    padding: 0 0.75rem;\n  }\n  .p-chip .p-chip-text {\n    line-height: 1.5;\n    margin-top: 0.375rem;\n    margin-bottom: 0.375rem;\n  }\n  .p-chip .p-chip-icon {\n    margin-right: 0.5rem;\n  }\n  .p-chip img {\n    width: 2.25rem;\n    height: 2.25rem;\n    margin-left: -0.75rem;\n    margin-right: 0.5rem;\n  }\n  .p-chip .p-chip-remove-icon {\n    border-radius: 6px;\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n    margin-left: 0.5rem;\n  }\n  .p-chip .p-chip-remove-icon:focus-visible {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-chip .p-chip-remove-icon:focus {\n    outline: 0 none;\n  }\n  .p-scrolltop {\n    width: 3rem;\n    height: 3rem;\n    border-radius: 50%;\n    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);\n    transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;\n  }\n  .p-scrolltop.p-link {\n    background: rgba(0, 0, 0, 0.7);\n  }\n  .p-scrolltop.p-link:hover {\n    background: rgba(0, 0, 0, 0.8);\n  }\n  .p-scrolltop .p-scrolltop-icon {\n    font-size: 1.5rem;\n    color: #f9fafb;\n  }\n  .p-scrolltop .p-scrolltop-icon.p-icon {\n    width: 1.5rem;\n    height: 1.5rem;\n  }\n  .p-skeleton {\n    background-color: #e5e7eb;\n    border-radius: 6px;\n  }\n  .p-skeleton:after {\n    background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0));\n  }\n  .p-tag {\n    background: #14b8a6;\n    color: #ffffff;\n    font-size: 0.75rem;\n    font-weight: 700;\n    padding: 0.25rem 0.4rem;\n    border-radius: 6px;\n  }\n  .p-tag.p-tag-success {\n    background-color: #22c55e;\n    color: #ffffff;\n  }\n  .p-tag.p-tag-info {\n    background-color: #0ea5e9;\n    color: #ffffff;\n  }\n  .p-tag.p-tag-warning {\n    background-color: #f97316;\n    color: #ffffff;\n  }\n  .p-tag.p-tag-danger {\n    background-color: #ef4444;\n    color: #ffffff;\n  }\n  .p-tag .p-tag-icon {\n    margin-right: 0.25rem;\n    font-size: 0.75rem;\n  }\n  .p-tag .p-tag-icon.p-icon {\n    width: 0.75rem;\n    height: 0.75rem;\n  }\n  .p-inplace .p-inplace-display {\n    padding: 0.75rem 0.75rem;\n    border-radius: 6px;\n    transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n  }\n  .p-inplace .p-inplace-display:not(.p-disabled):hover {\n    background: #f3f4f6;\n    color: #4b5563;\n  }\n  .p-inplace .p-inplace-display:focus {\n    outline: 0 none;\n    outline-offset: 0;\n    box-shadow: 0 0 0 0.2rem #99f6e4;\n  }\n  .p-metergroup .p-metergroup-meter-container {\n    background: #e5e7eb;\n    border-radius: 6px;\n  }\n  .p-metergroup .p-metergroup-meter {\n    border: 0 none;\n    background: #14b8a6;\n  }\n  .p-metergroup .p-metergroup-label-list .p-metergroup-label-list-item {\n    line-height: 1.5rem;\n  }\n  .p-metergroup .p-metergroup-label-list .p-metergroup-label-type {\n    background: #14b8a6;\n    width: 0.5rem;\n    height: 0.5rem;\n    border-radius: 100%;\n    margin-right: 0.5rem;\n  }\n  .p-metergroup .p-metergroup-label-list .p-metergroup-label {\n    margin-right: 1rem;\n  }\n  .p-metergroup .p-metergroup-label-list .p-metergroup-label-icon {\n    width: 1rem;\n    height: 1rem;\n    margin-right: 0.5rem;\n  }\n  .p-metergroup.p-metergroup-horizontal .p-metergroup-meter-container {\n    height: 0.5rem;\n  }\n  .p-metergroup.p-metergroup-horizontal .p-metergroup-meter:first-of-type {\n    border-top-left-radius: 6px;\n    border-bottom-left-radius: 6px;\n  }\n  .p-metergroup.p-metergroup-horizontal .p-metergroup-meter:last-of-type {\n    border-top-right-radius: 6px;\n    border-bottom-right-radius: 6px;\n  }\n  .p-metergroup.p-metergroup-horizontal .p-metergroup-label-list-start {\n    margin-bottom: 1rem;\n  }\n  .p-metergroup.p-metergroup-horizontal .p-metergroup-label-list-end {\n    margin-top: 1rem;\n  }\n  .p-metergroup.p-metergroup-vertical .p-metergroup-meter-container {\n    width: 0.5rem;\n    height: 100%;\n  }\n  .p-metergroup.p-metergroup-vertical .p-metergroup-meter:first-of-type {\n    border-top-left-radius: 6px;\n    border-top-right-radius: 6px;\n  }\n  .p-metergroup.p-metergroup-vertical .p-metergroup-meter:last-of-type {\n    border-bottom-left-radius: 6px;\n    border-bottom-right-radius: 6px;\n  }\n  .p-metergroup.p-metergroup-vertical .p-metergroup-label-list:not(.p-metergroup-label-list-start) {\n    margin-left: 1rem;\n  }\n  .p-progressbar {\n    border: 0 none;\n    height: 1.5rem;\n    background: #e5e7eb;\n    border-radius: 6px;\n  }\n  .p-progressbar .p-progressbar-value {\n    border: 0 none;\n    margin: 0;\n    background: #14b8a6;\n  }\n  .p-progressbar .p-progressbar-label {\n    color: #ffffff;\n    line-height: 1.5rem;\n  }\n  .p-terminal {\n    background: #ffffff;\n    color: #4b5563;\n    border: 1px solid #e5e7eb;\n    padding: 1.25rem;\n  }\n  .p-terminal .p-terminal-input {\n    font-family: var(--font-family);\n    font-feature-settings: var(--font-feature-settings, normal);\n    font-size: 1rem;\n  }\n  .p-badge {\n    background: #14b8a6;\n    color: #ffffff;\n    font-size: 0.75rem;\n    font-weight: 700;\n    min-width: 1.5rem;\n    height: 1.5rem;\n    line-height: 1.5rem;\n  }\n  .p-badge.p-badge-secondary {\n    background-color: #64748b;\n    color: #ffffff;\n  }\n  .p-badge.p-badge-success {\n    background-color: #22c55e;\n    color: #ffffff;\n  }\n  .p-badge.p-badge-info {\n    background-color: #0ea5e9;\n    color: #ffffff;\n  }\n  .p-badge.p-badge-warning {\n    background-color: #f97316;\n    color: #ffffff;\n  }\n  .p-badge.p-badge-danger {\n    background-color: #ef4444;\n    color: #ffffff;\n  }\n  .p-badge.p-badge-lg {\n    font-size: 1.125rem;\n    min-width: 2.25rem;\n    height: 2.25rem;\n    line-height: 2.25rem;\n  }\n  .p-badge.p-badge-xl {\n    font-size: 1.5rem;\n    min-width: 3rem;\n    height: 3rem;\n    line-height: 3rem;\n  }\n  .p-tag {\n    background: #14b8a6;\n    color: #ffffff;\n    font-size: 0.75rem;\n    font-weight: 700;\n    padding: 0.25rem 0.4rem;\n    border-radius: 6px;\n  }\n  .p-tag.p-tag-success {\n    background-color: #22c55e;\n    color: #ffffff;\n  }\n  .p-tag.p-tag-info {\n    background-color: #0ea5e9;\n    color: #ffffff;\n  }\n  .p-tag.p-tag-warning {\n    background-color: #f97316;\n    color: #ffffff;\n  }\n  .p-tag.p-tag-danger {\n    background-color: #ef4444;\n    color: #ffffff;\n  }\n}\n@layer primereact {\n  .p-button-label {\n    font-weight: 700;\n  }\n  .p-selectbutton > .p-button,\n  .p-togglebutton.p-button {\n    transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s;\n  }\n  .p-accordion .p-accordion-header .p-accordion-header-link {\n    transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s;\n  }\n  .p-tabview .p-tabview-nav li .p-tabview-nav-link {\n    transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s;\n  }\n  .p-tabmenu .p-tabmenu-nav .p-tabmenuitem .p-menuitem-link {\n    transition: background-color 0.2s, border-color 0.2s, box-shadow 0.2s;\n  }\n  .p-carousel .p-carousel-indicators .p-carousel-indicator.p-highlight button {\n    background-color: #14b8a6;\n  }\n  .p-galleria .p-galleria-indicators .p-galleria-indicator.p-highlight button {\n    background-color: #14b8a6;\n  }\n  .p-button:focus {\n    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #75f0e3, 0 1px 2px 0 rgb(0, 0, 0);\n  }\n  .p-button.p-button-secondary:enabled:focus {\n    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #b0b9c6, 0 1px 2px 0 rgb(0, 0, 0);\n  }\n  .p-button.p-button-success:enabled:focus {\n    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #88eaac, 0 1px 2px 0 rgb(0, 0, 0);\n  }\n  .p-button.p-button-info:enabled:focus {\n    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #83d3f8, 0 1px 2px 0 rgb(0, 0, 0);\n  }\n  .p-button.p-button-warning:enabled:focus {\n    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #fcb98b, 0 1px 2px 0 rgb(0, 0, 0);\n  }\n  .p-button.p-button-help:enabled:focus {\n    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #d4aafb, 0 1px 2px 0 rgb(0, 0, 0);\n  }\n  .p-button.p-button-danger:enabled:focus {\n    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #f7a2a2, 0 1px 2px 0 rgb(0, 0, 0);\n  }\n  .p-datatable .p-datatable-tbody > tr.p-datatable-dragpoint-top > td {\n    box-shadow: inset 0 2px 0 0 #14b8a6;\n  }\n  .p-datatable .p-datatable-tbody > tr.p-datatable-dragpoint-bottom > td {\n    box-shadow: inset 0 -2px 0 0 #14b8a6;\n  }\n  .p-speeddial-item.p-focus > .p-speeddial-action {\n    box-shadow: 0 0 0 2px #ffffff, 0 0 0 4px #75f0e3, 0 1px 2px 0 rgb(0, 0, 0);\n  }\n  .p-toast-message {\n    backdrop-filter: blur(10px);\n  }\n  .p-inline-message-text {\n    font-weight: 500;\n  }\n  .p-picklist-buttons .p-button,\n  .p-orderlist-controls .p-button {\n    transition: opacity 0.2s, background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;\n  }\n  .p-steps .p-steps-item.p-highlight .p-steps-number {\n    background: #14b8a6;\n    color: #ffffff;\n  }\n  .p-stepper .p-stepper-header.p-highlight .p-stepper-number {\n    background: #14b8a6;\n    color: #ffffff;\n  }\n}`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/primereact/resources/themes/lara-light-teal/theme.css?./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js\n}");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/prismjs/themes/prism.css":
/*!**************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/prismjs/themes/prism.css ***!
  \**************************************************************************************************************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../assets/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../assets/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * prism.js default theme for JavaScript, CSS and HTML\n * Based on dabblet (http://dabblet.com)\n * @author Lea Verou\n */\ncode[class*=language-],\npre[class*=language-] {\n  color: black;\n  background: none;\n  text-shadow: 0 1px white;\n  font-family: Consolas, Monaco, \"Andale Mono\", \"Ubuntu Mono\", monospace;\n  font-size: 1em;\n  text-align: left;\n  white-space: pre;\n  word-spacing: normal;\n  word-break: normal;\n  word-wrap: normal;\n  line-height: 1.5;\n  -moz-tab-size: 4;\n  -o-tab-size: 4;\n  tab-size: 4;\n  -webkit-hyphens: none;\n  -moz-hyphens: none;\n  -ms-hyphens: none;\n  hyphens: none;\n}\n\npre[class*=language-]::-moz-selection, pre[class*=language-] ::-moz-selection,\ncode[class*=language-]::-moz-selection, code[class*=language-] ::-moz-selection {\n  text-shadow: none;\n  background: #b3d4fc;\n}\n\npre[class*=language-]::selection, pre[class*=language-] ::selection,\ncode[class*=language-]::selection, code[class*=language-] ::selection {\n  text-shadow: none;\n  background: #b3d4fc;\n}\n\n@media print {\n  code[class*=language-],\n  pre[class*=language-] {\n    text-shadow: none;\n  }\n}\n/* Code blocks */\npre[class*=language-] {\n  padding: 1em;\n  margin: 0.5em 0;\n  overflow: auto;\n}\n\n:not(pre) > code[class*=language-],\npre[class*=language-] {\n  background: #f5f2f0;\n}\n\n/* Inline code */\n:not(pre) > code[class*=language-] {\n  padding: 0.1em;\n  border-radius: 0.3em;\n  white-space: normal;\n}\n\n.token.comment,\n.token.prolog,\n.token.doctype,\n.token.cdata {\n  color: slategray;\n}\n\n.token.punctuation {\n  color: #999;\n}\n\n.token.namespace {\n  opacity: 0.7;\n}\n\n.token.property,\n.token.tag,\n.token.boolean,\n.token.number,\n.token.constant,\n.token.symbol,\n.token.deleted {\n  color: #905;\n}\n\n.token.selector,\n.token.attr-name,\n.token.string,\n.token.char,\n.token.builtin,\n.token.inserted {\n  color: #690;\n}\n\n.token.operator,\n.token.entity,\n.token.url,\n.language-css .token.string,\n.style .token.string {\n  color: #9a6e3a;\n  /* This background color was intended by the author of this theme. */\n  background: hsla(0, 0%, 100%, 0.5);\n}\n\n.token.atrule,\n.token.attr-value,\n.token.keyword {\n  color: #07a;\n}\n\n.token.function,\n.token.class-name {\n  color: #DD4A68;\n}\n\n.token.regex,\n.token.important,\n.token.variable {\n  color: #e90;\n}\n\n.token.important,\n.token.bold {\n  font-weight: bold;\n}\n\n.token.italic {\n  font-style: italic;\n}\n\n.token.entity {\n  cursor: help;\n}`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/prismjs/themes/prism.css?./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js\n}");

/***/ }),

/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/react-quill-new/dist/quill.snow.css":
/*!*************************************************************************************************************************************************!*\
  !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js!../react-ui/node_modules/react-quill-new/dist/quill.snow.css ***!
  \*************************************************************************************************************************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../assets/node_modules/css-loader/dist/runtime/noSourceMaps.js */ \"./node_modules/css-loader/dist/runtime/noSourceMaps.js\");\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../assets/node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\n/* harmony import */ var _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);\n// Imports\n\n\nvar ___CSS_LOADER_EXPORT___ = _assets_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_assets_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";\n/*!\n * Quill Editor v2.0.2\n * https://quilljs.com\n * Copyright (c) 2017-2024, Slab\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */\n.ql-container {\n  box-sizing: border-box;\n  font-family: Helvetica, Arial, sans-serif;\n  font-size: 13px;\n  height: 100%;\n  margin: 0;\n  position: relative;\n}\n\n.ql-container.ql-disabled .ql-tooltip {\n  visibility: hidden;\n}\n\n.ql-container:not(.ql-disabled) li[data-list=checked] > .ql-ui, .ql-container:not(.ql-disabled) li[data-list=unchecked] > .ql-ui {\n  cursor: pointer;\n}\n\n.ql-clipboard {\n  left: -100000px;\n  height: 1px;\n  overflow-y: hidden;\n  position: absolute;\n  top: 50%;\n}\n\n.ql-clipboard p {\n  margin: 0;\n  padding: 0;\n}\n\n.ql-editor {\n  box-sizing: border-box;\n  counter-reset: list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n  line-height: 1.42;\n  height: 100%;\n  outline: none;\n  overflow-y: auto;\n  padding: 12px 15px;\n  tab-size: 4;\n  -moz-tab-size: 4;\n  text-align: left;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n}\n\n.ql-editor > * {\n  cursor: text;\n}\n\n.ql-editor p, .ql-editor ol, .ql-editor pre, .ql-editor blockquote, .ql-editor h1, .ql-editor h2, .ql-editor h3, .ql-editor h4, .ql-editor h5, .ql-editor h6 {\n  margin: 0;\n  padding: 0;\n}\n\n@supports (counter-set: none) {\n  .ql-editor p, .ql-editor h1, .ql-editor h2, .ql-editor h3, .ql-editor h4, .ql-editor h5, .ql-editor h6 {\n    counter-set: list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n  }\n}\n@supports not (counter-set: none) {\n  .ql-editor p, .ql-editor h1, .ql-editor h2, .ql-editor h3, .ql-editor h4, .ql-editor h5, .ql-editor h6 {\n    counter-reset: list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n  }\n}\n.ql-editor table {\n  border-collapse: collapse;\n}\n\n.ql-editor td {\n  border: 1px solid #000;\n  padding: 2px 5px;\n}\n\n.ql-editor ol {\n  padding-left: 1.5em;\n}\n\n.ql-editor li {\n  list-style-type: none;\n  padding-left: 1.5em;\n  position: relative;\n}\n\n.ql-editor li > .ql-ui:before {\n  display: inline-block;\n  margin-left: -1.5em;\n  margin-right: 0.3em;\n  text-align: right;\n  white-space: nowrap;\n  width: 1.2em;\n}\n\n.ql-editor li[data-list=checked] > .ql-ui, .ql-editor li[data-list=unchecked] > .ql-ui {\n  color: #777;\n}\n\n.ql-editor li[data-list=bullet] > .ql-ui:before {\n  content: \"•\";\n}\n\n.ql-editor li[data-list=checked] > .ql-ui:before {\n  content: \"☑\";\n}\n\n.ql-editor li[data-list=unchecked] > .ql-ui:before {\n  content: \"☐\";\n}\n\n@supports (counter-set: none) {\n  .ql-editor li[data-list] {\n    counter-set: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n  }\n}\n@supports not (counter-set: none) {\n  .ql-editor li[data-list] {\n    counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n  }\n}\n.ql-editor li[data-list=ordered] {\n  counter-increment: list-0;\n}\n\n.ql-editor li[data-list=ordered] > .ql-ui:before {\n  content: counter(list-0, decimal) \". \";\n}\n\n.ql-editor li[data-list=ordered].ql-indent-1 {\n  counter-increment: list-1;\n}\n\n.ql-editor li[data-list=ordered].ql-indent-1 > .ql-ui:before {\n  content: counter(list-1, lower-alpha) \". \";\n}\n\n@supports (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-1 {\n    counter-set: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n  }\n}\n@supports not (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-1 {\n    counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n  }\n}\n.ql-editor li[data-list=ordered].ql-indent-2 {\n  counter-increment: list-2;\n}\n\n.ql-editor li[data-list=ordered].ql-indent-2 > .ql-ui:before {\n  content: counter(list-2, lower-roman) \". \";\n}\n\n@supports (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-2 {\n    counter-set: list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n  }\n}\n@supports not (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-2 {\n    counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;\n  }\n}\n.ql-editor li[data-list=ordered].ql-indent-3 {\n  counter-increment: list-3;\n}\n\n.ql-editor li[data-list=ordered].ql-indent-3 > .ql-ui:before {\n  content: counter(list-3, decimal) \". \";\n}\n\n@supports (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-3 {\n    counter-set: list-4 list-5 list-6 list-7 list-8 list-9;\n  }\n}\n@supports not (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-3 {\n    counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;\n  }\n}\n.ql-editor li[data-list=ordered].ql-indent-4 {\n  counter-increment: list-4;\n}\n\n.ql-editor li[data-list=ordered].ql-indent-4 > .ql-ui:before {\n  content: counter(list-4, lower-alpha) \". \";\n}\n\n@supports (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-4 {\n    counter-set: list-5 list-6 list-7 list-8 list-9;\n  }\n}\n@supports not (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-4 {\n    counter-reset: list-5 list-6 list-7 list-8 list-9;\n  }\n}\n.ql-editor li[data-list=ordered].ql-indent-5 {\n  counter-increment: list-5;\n}\n\n.ql-editor li[data-list=ordered].ql-indent-5 > .ql-ui:before {\n  content: counter(list-5, lower-roman) \". \";\n}\n\n@supports (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-5 {\n    counter-set: list-6 list-7 list-8 list-9;\n  }\n}\n@supports not (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-5 {\n    counter-reset: list-6 list-7 list-8 list-9;\n  }\n}\n.ql-editor li[data-list=ordered].ql-indent-6 {\n  counter-increment: list-6;\n}\n\n.ql-editor li[data-list=ordered].ql-indent-6 > .ql-ui:before {\n  content: counter(list-6, decimal) \". \";\n}\n\n@supports (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-6 {\n    counter-set: list-7 list-8 list-9;\n  }\n}\n@supports not (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-6 {\n    counter-reset: list-7 list-8 list-9;\n  }\n}\n.ql-editor li[data-list=ordered].ql-indent-7 {\n  counter-increment: list-7;\n}\n\n.ql-editor li[data-list=ordered].ql-indent-7 > .ql-ui:before {\n  content: counter(list-7, lower-alpha) \". \";\n}\n\n@supports (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-7 {\n    counter-set: list-8 list-9;\n  }\n}\n@supports not (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-7 {\n    counter-reset: list-8 list-9;\n  }\n}\n.ql-editor li[data-list=ordered].ql-indent-8 {\n  counter-increment: list-8;\n}\n\n.ql-editor li[data-list=ordered].ql-indent-8 > .ql-ui:before {\n  content: counter(list-8, lower-roman) \". \";\n}\n\n@supports (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-8 {\n    counter-set: list-9;\n  }\n}\n@supports not (counter-set: none) {\n  .ql-editor li[data-list].ql-indent-8 {\n    counter-reset: list-9;\n  }\n}\n.ql-editor li[data-list=ordered].ql-indent-9 {\n  counter-increment: list-9;\n}\n\n.ql-editor li[data-list=ordered].ql-indent-9 > .ql-ui:before {\n  content: counter(list-9, decimal) \". \";\n}\n\n.ql-editor .ql-indent-1:not(.ql-direction-rtl) {\n  padding-left: 3em;\n}\n\n.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {\n  padding-left: 4.5em;\n}\n\n.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {\n  padding-right: 3em;\n}\n\n.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {\n  padding-right: 4.5em;\n}\n\n.ql-editor .ql-indent-2:not(.ql-direction-rtl) {\n  padding-left: 6em;\n}\n\n.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {\n  padding-left: 7.5em;\n}\n\n.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {\n  padding-right: 6em;\n}\n\n.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {\n  padding-right: 7.5em;\n}\n\n.ql-editor .ql-indent-3:not(.ql-direction-rtl) {\n  padding-left: 9em;\n}\n\n.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {\n  padding-left: 10.5em;\n}\n\n.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {\n  padding-right: 9em;\n}\n\n.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {\n  padding-right: 10.5em;\n}\n\n.ql-editor .ql-indent-4:not(.ql-direction-rtl) {\n  padding-left: 12em;\n}\n\n.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {\n  padding-left: 13.5em;\n}\n\n.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {\n  padding-right: 12em;\n}\n\n.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {\n  padding-right: 13.5em;\n}\n\n.ql-editor .ql-indent-5:not(.ql-direction-rtl) {\n  padding-left: 15em;\n}\n\n.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {\n  padding-left: 16.5em;\n}\n\n.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {\n  padding-right: 15em;\n}\n\n.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {\n  padding-right: 16.5em;\n}\n\n.ql-editor .ql-indent-6:not(.ql-direction-rtl) {\n  padding-left: 18em;\n}\n\n.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {\n  padding-left: 19.5em;\n}\n\n.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {\n  padding-right: 18em;\n}\n\n.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {\n  padding-right: 19.5em;\n}\n\n.ql-editor .ql-indent-7:not(.ql-direction-rtl) {\n  padding-left: 21em;\n}\n\n.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {\n  padding-left: 22.5em;\n}\n\n.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {\n  padding-right: 21em;\n}\n\n.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {\n  padding-right: 22.5em;\n}\n\n.ql-editor .ql-indent-8:not(.ql-direction-rtl) {\n  padding-left: 24em;\n}\n\n.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {\n  padding-left: 25.5em;\n}\n\n.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {\n  padding-right: 24em;\n}\n\n.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {\n  padding-right: 25.5em;\n}\n\n.ql-editor .ql-indent-9:not(.ql-direction-rtl) {\n  padding-left: 27em;\n}\n\n.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {\n  padding-left: 28.5em;\n}\n\n.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {\n  padding-right: 27em;\n}\n\n.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {\n  padding-right: 28.5em;\n}\n\n.ql-editor li.ql-direction-rtl {\n  padding-right: 1.5em;\n}\n\n.ql-editor li.ql-direction-rtl > .ql-ui:before {\n  margin-left: 0.3em;\n  margin-right: -1.5em;\n  text-align: left;\n}\n\n.ql-editor table {\n  table-layout: fixed;\n  width: 100%;\n}\n\n.ql-editor table td {\n  outline: none;\n}\n\n.ql-editor .ql-code-block-container {\n  font-family: monospace;\n}\n\n.ql-editor .ql-video {\n  display: block;\n  max-width: 100%;\n}\n\n.ql-editor .ql-video.ql-align-center {\n  margin: 0 auto;\n}\n\n.ql-editor .ql-video.ql-align-right {\n  margin: 0 0 0 auto;\n}\n\n.ql-editor .ql-bg-black {\n  background-color: #000;\n}\n\n.ql-editor .ql-bg-red {\n  background-color: #e60000;\n}\n\n.ql-editor .ql-bg-orange {\n  background-color: #f90;\n}\n\n.ql-editor .ql-bg-yellow {\n  background-color: #ff0;\n}\n\n.ql-editor .ql-bg-green {\n  background-color: #008a00;\n}\n\n.ql-editor .ql-bg-blue {\n  background-color: #06c;\n}\n\n.ql-editor .ql-bg-purple {\n  background-color: #93f;\n}\n\n.ql-editor .ql-color-white {\n  color: #fff;\n}\n\n.ql-editor .ql-color-red {\n  color: #e60000;\n}\n\n.ql-editor .ql-color-orange {\n  color: #f90;\n}\n\n.ql-editor .ql-color-yellow {\n  color: #ff0;\n}\n\n.ql-editor .ql-color-green {\n  color: #008a00;\n}\n\n.ql-editor .ql-color-blue {\n  color: #06c;\n}\n\n.ql-editor .ql-color-purple {\n  color: #93f;\n}\n\n.ql-editor .ql-font-serif {\n  font-family: Georgia, Times New Roman, serif;\n}\n\n.ql-editor .ql-font-monospace {\n  font-family: Monaco, Courier New, monospace;\n}\n\n.ql-editor .ql-size-small {\n  font-size: 0.75em;\n}\n\n.ql-editor .ql-size-large {\n  font-size: 1.5em;\n}\n\n.ql-editor .ql-size-huge {\n  font-size: 2.5em;\n}\n\n.ql-editor .ql-direction-rtl {\n  direction: rtl;\n  text-align: inherit;\n}\n\n.ql-editor .ql-align-center {\n  text-align: center;\n}\n\n.ql-editor .ql-align-justify {\n  text-align: justify;\n}\n\n.ql-editor .ql-align-right {\n  text-align: right;\n}\n\n.ql-editor .ql-ui {\n  position: absolute;\n}\n\n.ql-editor.ql-blank::before {\n  color: rgba(0, 0, 0, 0.6);\n  content: attr(data-placeholder);\n  font-style: italic;\n  left: 15px;\n  pointer-events: none;\n  position: absolute;\n  right: 15px;\n}\n\n.ql-snow.ql-toolbar:after, .ql-snow .ql-toolbar:after {\n  clear: both;\n  content: \"\";\n  display: table;\n}\n\n.ql-snow.ql-toolbar button, .ql-snow .ql-toolbar button {\n  background: none;\n  border: none;\n  cursor: pointer;\n  display: inline-block;\n  float: left;\n  height: 24px;\n  padding: 3px 5px;\n  width: 28px;\n}\n\n.ql-snow.ql-toolbar button svg, .ql-snow .ql-toolbar button svg {\n  float: left;\n  height: 100%;\n}\n\n.ql-snow.ql-toolbar button:active:hover, .ql-snow .ql-toolbar button:active:hover {\n  outline: none;\n}\n\n.ql-snow.ql-toolbar input.ql-image[type=file], .ql-snow .ql-toolbar input.ql-image[type=file] {\n  display: none;\n}\n\n.ql-snow.ql-toolbar button:hover, .ql-snow .ql-toolbar button:hover, .ql-snow.ql-toolbar button:focus, .ql-snow .ql-toolbar button:focus, .ql-snow.ql-toolbar button.ql-active, .ql-snow .ql-toolbar button.ql-active, .ql-snow.ql-toolbar .ql-picker-label:hover, .ql-snow .ql-toolbar .ql-picker-label:hover, .ql-snow.ql-toolbar .ql-picker-label.ql-active, .ql-snow .ql-toolbar .ql-picker-label.ql-active, .ql-snow.ql-toolbar .ql-picker-item:hover, .ql-snow .ql-toolbar .ql-picker-item:hover, .ql-snow.ql-toolbar .ql-picker-item.ql-selected, .ql-snow .ql-toolbar .ql-picker-item.ql-selected {\n  color: #06c;\n}\n\n.ql-snow.ql-toolbar button:hover .ql-fill, .ql-snow .ql-toolbar button:hover .ql-fill, .ql-snow.ql-toolbar button:focus .ql-fill, .ql-snow .ql-toolbar button:focus .ql-fill, .ql-snow.ql-toolbar button.ql-active .ql-fill, .ql-snow .ql-toolbar button.ql-active .ql-fill, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill, .ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill, .ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill, .ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill, .ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill, .ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill, .ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {\n  fill: #06c;\n}\n\n.ql-snow.ql-toolbar button:hover .ql-stroke, .ql-snow .ql-toolbar button:hover .ql-stroke, .ql-snow.ql-toolbar button:focus .ql-stroke, .ql-snow .ql-toolbar button:focus .ql-stroke, .ql-snow.ql-toolbar button.ql-active .ql-stroke, .ql-snow .ql-toolbar button.ql-active .ql-stroke, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke, .ql-snow.ql-toolbar button:hover .ql-stroke-miter, .ql-snow .ql-toolbar button:hover .ql-stroke-miter, .ql-snow.ql-toolbar button:focus .ql-stroke-miter, .ql-snow .ql-toolbar button:focus .ql-stroke-miter, .ql-snow.ql-toolbar button.ql-active .ql-stroke-miter, .ql-snow .ql-toolbar button.ql-active .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter, .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter, .ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {\n  stroke: #06c;\n}\n\n@media (pointer: coarse) {\n  .ql-snow.ql-toolbar button:hover:not(.ql-active), .ql-snow .ql-toolbar button:hover:not(.ql-active) {\n    color: #444;\n  }\n  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill, .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill, .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill, .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {\n    fill: #444;\n  }\n  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke, .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke, .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter, .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {\n    stroke: #444;\n  }\n}\n.ql-snow {\n  box-sizing: border-box;\n}\n\n.ql-snow * {\n  box-sizing: border-box;\n}\n\n.ql-snow .ql-hidden {\n  display: none;\n}\n\n.ql-snow .ql-out-bottom, .ql-snow .ql-out-top {\n  visibility: hidden;\n}\n\n.ql-snow .ql-tooltip {\n  position: absolute;\n  transform: translateY(10px);\n}\n\n.ql-snow .ql-tooltip a {\n  cursor: pointer;\n  text-decoration: none;\n}\n\n.ql-snow .ql-tooltip.ql-flip {\n  transform: translateY(-10px);\n}\n\n.ql-snow .ql-formats {\n  display: inline-block;\n  vertical-align: middle;\n}\n\n.ql-snow .ql-formats:after {\n  clear: both;\n  content: \"\";\n  display: table;\n}\n\n.ql-snow .ql-stroke {\n  fill: none;\n  stroke: #444;\n  stroke-linecap: round;\n  stroke-linejoin: round;\n  stroke-width: 2;\n}\n\n.ql-snow .ql-stroke-miter {\n  fill: none;\n  stroke: #444;\n  stroke-miterlimit: 10;\n  stroke-width: 2;\n}\n\n.ql-snow .ql-fill, .ql-snow .ql-stroke.ql-fill {\n  fill: #444;\n}\n\n.ql-snow .ql-empty {\n  fill: none;\n}\n\n.ql-snow .ql-even {\n  fill-rule: evenodd;\n}\n\n.ql-snow .ql-thin, .ql-snow .ql-stroke.ql-thin {\n  stroke-width: 1;\n}\n\n.ql-snow .ql-transparent {\n  opacity: 0.4;\n}\n\n.ql-snow .ql-direction svg:last-child {\n  display: none;\n}\n\n.ql-snow .ql-direction.ql-active svg:last-child {\n  display: inline;\n}\n\n.ql-snow .ql-direction.ql-active svg:first-child {\n  display: none;\n}\n\n.ql-snow .ql-editor h1 {\n  font-size: 2em;\n}\n\n.ql-snow .ql-editor h2 {\n  font-size: 1.5em;\n}\n\n.ql-snow .ql-editor h3 {\n  font-size: 1.17em;\n}\n\n.ql-snow .ql-editor h4 {\n  font-size: 1em;\n}\n\n.ql-snow .ql-editor h5 {\n  font-size: 0.83em;\n}\n\n.ql-snow .ql-editor h6 {\n  font-size: 0.67em;\n}\n\n.ql-snow .ql-editor a {\n  text-decoration: underline;\n}\n\n.ql-snow .ql-editor blockquote {\n  border-left: 4px solid #ccc;\n  margin-bottom: 5px;\n  margin-top: 5px;\n  padding-left: 16px;\n}\n\n.ql-snow .ql-editor code, .ql-snow .ql-editor .ql-code-block-container {\n  background-color: #f0f0f0;\n  border-radius: 3px;\n}\n\n.ql-snow .ql-editor .ql-code-block-container {\n  margin-bottom: 5px;\n  margin-top: 5px;\n  padding: 5px 10px;\n}\n\n.ql-snow .ql-editor code {\n  font-size: 85%;\n  padding: 2px 4px;\n}\n\n.ql-snow .ql-editor .ql-code-block-container {\n  background-color: #23241f;\n  color: #f8f8f2;\n  overflow: visible;\n}\n\n.ql-snow .ql-editor img {\n  max-width: 100%;\n}\n\n.ql-snow .ql-picker {\n  color: #444;\n  display: inline-block;\n  float: left;\n  font-size: 14px;\n  font-weight: 500;\n  height: 24px;\n  position: relative;\n  vertical-align: middle;\n}\n\n.ql-snow .ql-picker-label {\n  cursor: pointer;\n  display: inline-block;\n  height: 100%;\n  padding-left: 8px;\n  padding-right: 2px;\n  position: relative;\n  width: 100%;\n}\n\n.ql-snow .ql-picker-label::before {\n  display: inline-block;\n  line-height: 22px;\n}\n\n.ql-snow .ql-picker-options {\n  background-color: #fff;\n  display: none;\n  min-width: 100%;\n  padding: 4px 8px;\n  position: absolute;\n  white-space: nowrap;\n}\n\n.ql-snow .ql-picker-options .ql-picker-item {\n  cursor: pointer;\n  display: block;\n  padding-bottom: 5px;\n  padding-top: 5px;\n}\n\n.ql-snow .ql-picker.ql-expanded .ql-picker-label {\n  color: #ccc;\n  z-index: 2;\n}\n\n.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {\n  fill: #ccc;\n}\n\n.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {\n  stroke: #ccc;\n}\n\n.ql-snow .ql-picker.ql-expanded .ql-picker-options {\n  display: block;\n  margin-top: -1px;\n  top: 100%;\n  z-index: 1;\n}\n\n.ql-snow .ql-color-picker, .ql-snow .ql-icon-picker {\n  width: 28px;\n}\n\n.ql-snow .ql-color-picker .ql-picker-label, .ql-snow .ql-icon-picker .ql-picker-label {\n  padding: 2px 4px;\n}\n\n.ql-snow .ql-color-picker .ql-picker-label svg, .ql-snow .ql-icon-picker .ql-picker-label svg {\n  right: 4px;\n}\n\n.ql-snow .ql-icon-picker .ql-picker-options {\n  padding: 4px 0;\n}\n\n.ql-snow .ql-icon-picker .ql-picker-item {\n  height: 24px;\n  width: 24px;\n  padding: 2px 4px;\n}\n\n.ql-snow .ql-color-picker .ql-picker-options {\n  padding: 3px 5px;\n  width: 152px;\n}\n\n.ql-snow .ql-color-picker .ql-picker-item {\n  border: 1px solid transparent;\n  float: left;\n  height: 16px;\n  margin: 2px;\n  padding: 0;\n  width: 16px;\n}\n\n.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {\n  position: absolute;\n  margin-top: -9px;\n  right: 0;\n  top: 50%;\n  width: 18px;\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=\"\"])::before, .ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=\"\"])::before, .ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=\"\"])::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=\"\"])::before, .ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=\"\"])::before, .ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=\"\"])::before {\n  content: attr(data-label);\n}\n\n.ql-snow .ql-picker.ql-header {\n  width: 98px;\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-label::before, .ql-snow .ql-picker.ql-header .ql-picker-item::before {\n  content: \"Normal\";\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"1\"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]::before {\n  content: \"Heading 1\";\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"2\"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]::before {\n  content: \"Heading 2\";\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"3\"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]::before {\n  content: \"Heading 3\";\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"4\"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]::before {\n  content: \"Heading 4\";\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"5\"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]::before {\n  content: \"Heading 5\";\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-label[data-value=\"6\"]::before, .ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]::before {\n  content: \"Heading 6\";\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"1\"]::before {\n  font-size: 2em;\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"2\"]::before {\n  font-size: 1.5em;\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"3\"]::before {\n  font-size: 1.17em;\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"4\"]::before {\n  font-size: 1em;\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"5\"]::before {\n  font-size: 0.83em;\n}\n\n.ql-snow .ql-picker.ql-header .ql-picker-item[data-value=\"6\"]::before {\n  font-size: 0.67em;\n}\n\n.ql-snow .ql-picker.ql-font {\n  width: 108px;\n}\n\n.ql-snow .ql-picker.ql-font .ql-picker-label::before, .ql-snow .ql-picker.ql-font .ql-picker-item::before {\n  content: \"Sans Serif\";\n}\n\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before, .ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {\n  content: \"Serif\";\n}\n\n.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before, .ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {\n  content: \"Monospace\";\n}\n\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {\n  font-family: Georgia, Times New Roman, serif;\n}\n\n.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {\n  font-family: Monaco, Courier New, monospace;\n}\n\n.ql-snow .ql-picker.ql-size {\n  width: 98px;\n}\n\n.ql-snow .ql-picker.ql-size .ql-picker-label::before, .ql-snow .ql-picker.ql-size .ql-picker-item::before {\n  content: \"Normal\";\n}\n\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before, .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {\n  content: \"Small\";\n}\n\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before, .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {\n  content: \"Large\";\n}\n\n.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before, .ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {\n  content: \"Huge\";\n}\n\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {\n  font-size: 10px;\n}\n\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {\n  font-size: 18px;\n}\n\n.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {\n  font-size: 32px;\n}\n\n.ql-snow .ql-color-picker.ql-background .ql-picker-item {\n  background-color: #fff;\n}\n\n.ql-snow .ql-color-picker.ql-color .ql-picker-item {\n  background-color: #000;\n}\n\n.ql-code-block-container {\n  position: relative;\n}\n\n.ql-code-block-container .ql-ui {\n  right: 5px;\n  top: 5px;\n}\n\n.ql-toolbar.ql-snow {\n  border: 1px solid #ccc;\n  box-sizing: border-box;\n  font-family: \"Helvetica Neue\", \"Helvetica\", \"Arial\", sans-serif;\n  padding: 8px;\n}\n\n.ql-toolbar.ql-snow .ql-formats {\n  margin-right: 15px;\n}\n\n.ql-toolbar.ql-snow .ql-picker-label {\n  border: 1px solid transparent;\n}\n\n.ql-toolbar.ql-snow .ql-picker-options {\n  border: 1px solid transparent;\n  box-shadow: rgba(0, 0, 0, 0.2) 0 2px 8px;\n}\n\n.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {\n  border-color: #ccc;\n}\n\n.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {\n  border-color: #ccc;\n}\n\n.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected, .ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {\n  border-color: #000;\n}\n\n.ql-toolbar.ql-snow + .ql-container.ql-snow {\n  border-top: 0;\n}\n\n.ql-snow .ql-tooltip {\n  background-color: #fff;\n  border: 1px solid #ccc;\n  box-shadow: 0 0 5px #ddd;\n  color: #444;\n  padding: 5px 12px;\n  white-space: nowrap;\n}\n\n.ql-snow .ql-tooltip::before {\n  content: \"Visit URL:\";\n  line-height: 26px;\n  margin-right: 8px;\n}\n\n.ql-snow .ql-tooltip input[type=text] {\n  display: none;\n  border: 1px solid #ccc;\n  font-size: 13px;\n  height: 26px;\n  margin: 0;\n  padding: 3px 5px;\n  width: 170px;\n}\n\n.ql-snow .ql-tooltip a.ql-preview {\n  display: inline-block;\n  max-width: 200px;\n  overflow-x: hidden;\n  text-overflow: ellipsis;\n  vertical-align: top;\n}\n\n.ql-snow .ql-tooltip a.ql-action::after {\n  border-right: 1px solid #ccc;\n  content: \"Edit\";\n  margin-left: 16px;\n  padding-right: 8px;\n}\n\n.ql-snow .ql-tooltip a.ql-remove::before {\n  content: \"Remove\";\n  margin-left: 8px;\n}\n\n.ql-snow .ql-tooltip a {\n  line-height: 26px;\n}\n\n.ql-snow .ql-tooltip.ql-editing a.ql-preview, .ql-snow .ql-tooltip.ql-editing a.ql-remove {\n  display: none;\n}\n\n.ql-snow .ql-tooltip.ql-editing input[type=text] {\n  display: inline-block;\n}\n\n.ql-snow .ql-tooltip.ql-editing a.ql-action::after {\n  border-right: 0;\n  content: \"Save\";\n  padding-right: 0;\n}\n\n.ql-snow .ql-tooltip[data-mode=link]::before {\n  content: \"Enter link:\";\n}\n\n.ql-snow .ql-tooltip[data-mode=formula]::before {\n  content: \"Enter formula:\";\n}\n\n.ql-snow .ql-tooltip[data-mode=video]::before {\n  content: \"Enter video:\";\n}\n\n.ql-snow a {\n  color: #06c;\n}\n\n.ql-container.ql-snow {\n  border: 1px solid #ccc;\n}\n\n`, \"\"]);\n// Exports\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);\n\n\n//# sourceURL=webpack:///../react-ui/node_modules/react-quill-new/dist/quill.snow.css?./node_modules/css-loader/dist/cjs.js!./node_modules/sass-loader/dist/cjs.js\n}");

/***/ }),

/***/ "./node_modules/css-loader/dist/runtime/api.js":
/*!*****************************************************!*\
  !*** ./node_modules/css-loader/dist/runtime/api.js ***!
  \*****************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n  var list = [];\n\n  // return the list of modules as css string\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = \"\";\n      var needLayer = typeof item[5] !== \"undefined\";\n      if (item[4]) {\n        content += \"@supports (\".concat(item[4], \") {\");\n      }\n      if (item[2]) {\n        content += \"@media \".concat(item[2], \" {\");\n      }\n      if (needLayer) {\n        content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n      }\n      content += cssWithMappingToString(item);\n      if (needLayer) {\n        content += \"}\";\n      }\n      if (item[2]) {\n        content += \"}\";\n      }\n      if (item[4]) {\n        content += \"}\";\n      }\n      return content;\n    }).join(\"\");\n  };\n\n  // import a list of modules into the list\n  list.i = function i(modules, media, dedupe, supports, layer) {\n    if (typeof modules === \"string\") {\n      modules = [[null, modules, undefined]];\n    }\n    var alreadyImportedModules = {};\n    if (dedupe) {\n      for (var k = 0; k < this.length; k++) {\n        var id = this[k][0];\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n    for (var _k = 0; _k < modules.length; _k++) {\n      var item = [].concat(modules[_k]);\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        continue;\n      }\n      if (typeof layer !== \"undefined\") {\n        if (typeof item[5] === \"undefined\") {\n          item[5] = layer;\n        } else {\n          item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n          item[5] = layer;\n        }\n      }\n      if (media) {\n        if (!item[2]) {\n          item[2] = media;\n        } else {\n          item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n          item[2] = media;\n        }\n      }\n      if (supports) {\n        if (!item[4]) {\n          item[4] = \"\".concat(supports);\n        } else {\n          item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n          item[4] = supports;\n        }\n      }\n      list.push(item);\n    }\n  };\n  return list;\n};\n\n//# sourceURL=webpack:///./node_modules/css-loader/dist/runtime/api.js?\n}");

/***/ }),

/***/ "./node_modules/css-loader/dist/runtime/getUrl.js":
/*!********************************************************!*\
  !*** ./node_modules/css-loader/dist/runtime/getUrl.js ***!
  \********************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\nmodule.exports = function (url, options) {\n  if (!options) {\n    options = {};\n  }\n  if (!url) {\n    return url;\n  }\n  url = String(url.__esModule ? url.default : url);\n\n  // If url is already wrapped in quotes, remove them\n  if (/^['\"].*['\"]$/.test(url)) {\n    url = url.slice(1, -1);\n  }\n  if (options.hash) {\n    url += options.hash;\n  }\n\n  // Should url be wrapped?\n  // See https://drafts.csswg.org/css-values-3/#urls\n  if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n    return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n  }\n  return url;\n};\n\n//# sourceURL=webpack:///./node_modules/css-loader/dist/runtime/getUrl.js?\n}");

/***/ }),

/***/ "./node_modules/css-loader/dist/runtime/noSourceMaps.js":
/*!**************************************************************!*\
  !*** ./node_modules/css-loader/dist/runtime/noSourceMaps.js ***!
  \**************************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\nmodule.exports = function (i) {\n  return i[1];\n};\n\n//# sourceURL=webpack:///./node_modules/css-loader/dist/runtime/noSourceMaps.js?\n}");

/***/ }),

/***/ "./node_modules/dunder-proto/get.js":
/*!******************************************!*\
  !*** ./node_modules/dunder-proto/get.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar callBind = __webpack_require__(/*! call-bind-apply-helpers */ \"./node_modules/call-bind-apply-helpers/index.js\");\nvar gOPD = __webpack_require__(/*! gopd */ \"./node_modules/gopd/index.js\");\nvar hasProtoAccessor;\ntry {\n  // eslint-disable-next-line no-extra-parens, no-proto\n  hasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */[].__proto__ === Array.prototype;\n} catch (e) {\n  if (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n    throw e;\n  }\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */'__proto__');\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function' ? callBind([desc.get]) : typeof $getPrototypeOf === 'function' ? /** @type {import('./get')} */function getDunder(value) {\n  // eslint-disable-next-line eqeqeq\n  return $getPrototypeOf(value == null ? value : $Object(value));\n} : false;\n\n//# sourceURL=webpack:///./node_modules/dunder-proto/get.js?\n}");

/***/ }),

/***/ "./node_modules/es-define-property/index.js":
/*!**************************************************!*\
  !*** ./node_modules/es-define-property/index.js ***!
  \**************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n  try {\n    $defineProperty({}, 'a', {\n      value: 1\n    });\n  } catch (e) {\n    // IE 8 has a broken defineProperty\n    $defineProperty = false;\n  }\n}\nmodule.exports = $defineProperty;\n\n//# sourceURL=webpack:///./node_modules/es-define-property/index.js?\n}");

/***/ }),

/***/ "./node_modules/es-errors/eval.js":
/*!****************************************!*\
  !*** ./node_modules/es-errors/eval.js ***!
  \****************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n\n//# sourceURL=webpack:///./node_modules/es-errors/eval.js?\n}");

/***/ }),

/***/ "./node_modules/es-errors/index.js":
/*!*****************************************!*\
  !*** ./node_modules/es-errors/index.js ***!
  \*****************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('.')} */\nmodule.exports = Error;\n\n//# sourceURL=webpack:///./node_modules/es-errors/index.js?\n}");

/***/ }),

/***/ "./node_modules/es-errors/range.js":
/*!*****************************************!*\
  !*** ./node_modules/es-errors/range.js ***!
  \*****************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n\n//# sourceURL=webpack:///./node_modules/es-errors/range.js?\n}");

/***/ }),

/***/ "./node_modules/es-errors/ref.js":
/*!***************************************!*\
  !*** ./node_modules/es-errors/ref.js ***!
  \***************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n\n//# sourceURL=webpack:///./node_modules/es-errors/ref.js?\n}");

/***/ }),

/***/ "./node_modules/es-errors/syntax.js":
/*!******************************************!*\
  !*** ./node_modules/es-errors/syntax.js ***!
  \******************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n\n//# sourceURL=webpack:///./node_modules/es-errors/syntax.js?\n}");

/***/ }),

/***/ "./node_modules/es-errors/type.js":
/*!****************************************!*\
  !*** ./node_modules/es-errors/type.js ***!
  \****************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n\n//# sourceURL=webpack:///./node_modules/es-errors/type.js?\n}");

/***/ }),

/***/ "./node_modules/es-errors/uri.js":
/*!***************************************!*\
  !*** ./node_modules/es-errors/uri.js ***!
  \***************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n\n//# sourceURL=webpack:///./node_modules/es-errors/uri.js?\n}");

/***/ }),

/***/ "./node_modules/es-object-atoms/index.js":
/*!***********************************************!*\
  !*** ./node_modules/es-object-atoms/index.js ***!
  \***********************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('.')} */\nmodule.exports = Object;\n\n//# sourceURL=webpack:///./node_modules/es-object-atoms/index.js?\n}");

/***/ }),

/***/ "./node_modules/fast-deep-equal/index.js":
/*!***********************************************!*\
  !*** ./node_modules/fast-deep-equal/index.js ***!
  \***********************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n// do not edit .js files directly - edit src/index.jst\nmodule.exports = function equal(a, b) {\n  if (a === b) return true;\n  if (a && b && typeof a == 'object' && typeof b == 'object') {\n    if (a.constructor !== b.constructor) return false;\n    var length, i, keys;\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length != b.length) return false;\n      for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;\n      return true;\n    }\n    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) return false;\n    for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n    for (i = length; i-- !== 0;) {\n      var key = keys[i];\n      if (!equal(a[key], b[key])) return false;\n    }\n    return true;\n  }\n\n  // true if both NaN, false otherwise\n  return a !== a && b !== b;\n};\n\n//# sourceURL=webpack:///./node_modules/fast-deep-equal/index.js?\n}");

/***/ }),

/***/ "./node_modules/function-bind/implementation.js":
/*!******************************************************!*\
  !*** ./node_modules/function-bind/implementation.js ***!
  \******************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/* eslint no-invalid-this: 1 */\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\nvar concatty = function concatty(a, b) {\n  var arr = [];\n  for (var i = 0; i < a.length; i += 1) {\n    arr[i] = a[i];\n  }\n  for (var j = 0; j < b.length; j += 1) {\n    arr[j + a.length] = b[j];\n  }\n  return arr;\n};\nvar slicy = function slicy(arrLike, offset) {\n  var arr = [];\n  for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n    arr[j] = arrLike[i];\n  }\n  return arr;\n};\nvar joiny = function (arr, joiner) {\n  var str = '';\n  for (var i = 0; i < arr.length; i += 1) {\n    str += arr[i];\n    if (i + 1 < arr.length) {\n      str += joiner;\n    }\n  }\n  return str;\n};\nmodule.exports = function bind(that) {\n  var target = this;\n  if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n    throw new TypeError(ERROR_MESSAGE + target);\n  }\n  var args = slicy(arguments, 1);\n  var bound;\n  var binder = function () {\n    if (this instanceof bound) {\n      var result = target.apply(this, concatty(args, arguments));\n      if (Object(result) === result) {\n        return result;\n      }\n      return this;\n    }\n    return target.apply(that, concatty(args, arguments));\n  };\n  var boundLength = max(0, target.length - args.length);\n  var boundArgs = [];\n  for (var i = 0; i < boundLength; i++) {\n    boundArgs[i] = '$' + i;\n  }\n  bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n  if (target.prototype) {\n    var Empty = function Empty() {};\n    Empty.prototype = target.prototype;\n    bound.prototype = new Empty();\n    Empty.prototype = null;\n  }\n  return bound;\n};\n\n//# sourceURL=webpack:///./node_modules/function-bind/implementation.js?\n}");

/***/ }),

/***/ "./node_modules/function-bind/index.js":
/*!*********************************************!*\
  !*** ./node_modules/function-bind/index.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar implementation = __webpack_require__(/*! ./implementation */ \"./node_modules/function-bind/implementation.js\");\nmodule.exports = Function.prototype.bind || implementation;\n\n//# sourceURL=webpack:///./node_modules/function-bind/index.js?\n}");

/***/ }),

/***/ "./node_modules/get-intrinsic/index.js":
/*!*********************************************!*\
  !*** ./node_modules/get-intrinsic/index.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar undefined;\nvar $Object = __webpack_require__(/*! es-object-atoms */ \"./node_modules/es-object-atoms/index.js\");\nvar $Error = __webpack_require__(/*! es-errors */ \"./node_modules/es-errors/index.js\");\nvar $EvalError = __webpack_require__(/*! es-errors/eval */ \"./node_modules/es-errors/eval.js\");\nvar $RangeError = __webpack_require__(/*! es-errors/range */ \"./node_modules/es-errors/range.js\");\nvar $ReferenceError = __webpack_require__(/*! es-errors/ref */ \"./node_modules/es-errors/ref.js\");\nvar $SyntaxError = __webpack_require__(/*! es-errors/syntax */ \"./node_modules/es-errors/syntax.js\");\nvar $TypeError = __webpack_require__(/*! es-errors/type */ \"./node_modules/es-errors/type.js\");\nvar $URIError = __webpack_require__(/*! es-errors/uri */ \"./node_modules/es-errors/uri.js\");\nvar abs = __webpack_require__(/*! math-intrinsics/abs */ \"./node_modules/math-intrinsics/abs.js\");\nvar floor = __webpack_require__(/*! math-intrinsics/floor */ \"./node_modules/math-intrinsics/floor.js\");\nvar max = __webpack_require__(/*! math-intrinsics/max */ \"./node_modules/math-intrinsics/max.js\");\nvar min = __webpack_require__(/*! math-intrinsics/min */ \"./node_modules/math-intrinsics/min.js\");\nvar pow = __webpack_require__(/*! math-intrinsics/pow */ \"./node_modules/math-intrinsics/pow.js\");\nvar round = __webpack_require__(/*! math-intrinsics/round */ \"./node_modules/math-intrinsics/round.js\");\nvar sign = __webpack_require__(/*! math-intrinsics/sign */ \"./node_modules/math-intrinsics/sign.js\");\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n  try {\n    return $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n  } catch (e) {}\n};\nvar $gOPD = __webpack_require__(/*! gopd */ \"./node_modules/gopd/index.js\");\nvar $defineProperty = __webpack_require__(/*! es-define-property */ \"./node_modules/es-define-property/index.js\");\nvar throwTypeError = function () {\n  throw new $TypeError();\n};\nvar ThrowTypeError = $gOPD ? function () {\n  try {\n    // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n    arguments.callee; // IE 8 does not throw here\n    return throwTypeError;\n  } catch (calleeThrows) {\n    try {\n      // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n      return $gOPD(arguments, 'callee').get;\n    } catch (gOPDthrows) {\n      return throwTypeError;\n    }\n  }\n}() : throwTypeError;\nvar hasSymbols = __webpack_require__(/*! has-symbols */ \"./node_modules/has-symbols/index.js\")();\nvar getProto = __webpack_require__(/*! get-proto */ \"./node_modules/get-proto/index.js\");\nvar $ObjectGPO = __webpack_require__(/*! get-proto/Object.getPrototypeOf */ \"./node_modules/get-proto/Object.getPrototypeOf.js\");\nvar $ReflectGPO = __webpack_require__(/*! get-proto/Reflect.getPrototypeOf */ \"./node_modules/get-proto/Reflect.getPrototypeOf.js\");\nvar $apply = __webpack_require__(/*! call-bind-apply-helpers/functionApply */ \"./node_modules/call-bind-apply-helpers/functionApply.js\");\nvar $call = __webpack_require__(/*! call-bind-apply-helpers/functionCall */ \"./node_modules/call-bind-apply-helpers/functionCall.js\");\nvar needsEval = {};\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\nvar INTRINSICS = {\n  __proto__: null,\n  '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n  '%Array%': Array,\n  '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n  '%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n  '%AsyncFromSyncIteratorPrototype%': undefined,\n  '%AsyncFunction%': needsEval,\n  '%AsyncGenerator%': needsEval,\n  '%AsyncGeneratorFunction%': needsEval,\n  '%AsyncIteratorPrototype%': needsEval,\n  '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n  '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n  '%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n  '%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n  '%Boolean%': Boolean,\n  '%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n  '%Date%': Date,\n  '%decodeURI%': decodeURI,\n  '%decodeURIComponent%': decodeURIComponent,\n  '%encodeURI%': encodeURI,\n  '%encodeURIComponent%': encodeURIComponent,\n  '%Error%': $Error,\n  '%eval%': eval,\n  // eslint-disable-line no-eval\n  '%EvalError%': $EvalError,\n  '%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n  '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n  '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n  '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n  '%Function%': $Function,\n  '%GeneratorFunction%': needsEval,\n  '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n  '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n  '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n  '%isFinite%': isFinite,\n  '%isNaN%': isNaN,\n  '%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n  '%JSON%': typeof JSON === 'object' ? JSON : undefined,\n  '%Map%': typeof Map === 'undefined' ? undefined : Map,\n  '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n  '%Math%': Math,\n  '%Number%': Number,\n  '%Object%': $Object,\n  '%Object.getOwnPropertyDescriptor%': $gOPD,\n  '%parseFloat%': parseFloat,\n  '%parseInt%': parseInt,\n  '%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n  '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n  '%RangeError%': $RangeError,\n  '%ReferenceError%': $ReferenceError,\n  '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n  '%RegExp%': RegExp,\n  '%Set%': typeof Set === 'undefined' ? undefined : Set,\n  '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n  '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n  '%String%': String,\n  '%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n  '%Symbol%': hasSymbols ? Symbol : undefined,\n  '%SyntaxError%': $SyntaxError,\n  '%ThrowTypeError%': ThrowTypeError,\n  '%TypedArray%': TypedArray,\n  '%TypeError%': $TypeError,\n  '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n  '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n  '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n  '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n  '%URIError%': $URIError,\n  '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n  '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n  '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n  '%Function.prototype.call%': $call,\n  '%Function.prototype.apply%': $apply,\n  '%Object.defineProperty%': $defineProperty,\n  '%Object.getPrototypeOf%': $ObjectGPO,\n  '%Math.abs%': abs,\n  '%Math.floor%': floor,\n  '%Math.max%': max,\n  '%Math.min%': min,\n  '%Math.pow%': pow,\n  '%Math.round%': round,\n  '%Math.sign%': sign,\n  '%Reflect.getPrototypeOf%': $ReflectGPO\n};\nif (getProto) {\n  try {\n    null.error; // eslint-disable-line no-unused-expressions\n  } catch (e) {\n    // https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n    var errorProto = getProto(getProto(e));\n    INTRINSICS['%Error.prototype%'] = errorProto;\n  }\n}\nvar doEval = function doEval(name) {\n  var value;\n  if (name === '%AsyncFunction%') {\n    value = getEvalledConstructor('async function () {}');\n  } else if (name === '%GeneratorFunction%') {\n    value = getEvalledConstructor('function* () {}');\n  } else if (name === '%AsyncGeneratorFunction%') {\n    value = getEvalledConstructor('async function* () {}');\n  } else if (name === '%AsyncGenerator%') {\n    var fn = doEval('%AsyncGeneratorFunction%');\n    if (fn) {\n      value = fn.prototype;\n    }\n  } else if (name === '%AsyncIteratorPrototype%') {\n    var gen = doEval('%AsyncGenerator%');\n    if (gen && getProto) {\n      value = getProto(gen.prototype);\n    }\n  }\n  INTRINSICS[name] = value;\n  return value;\n};\nvar LEGACY_ALIASES = {\n  __proto__: null,\n  '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n  '%ArrayPrototype%': ['Array', 'prototype'],\n  '%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n  '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n  '%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n  '%ArrayProto_values%': ['Array', 'prototype', 'values'],\n  '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n  '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n  '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n  '%BooleanPrototype%': ['Boolean', 'prototype'],\n  '%DataViewPrototype%': ['DataView', 'prototype'],\n  '%DatePrototype%': ['Date', 'prototype'],\n  '%ErrorPrototype%': ['Error', 'prototype'],\n  '%EvalErrorPrototype%': ['EvalError', 'prototype'],\n  '%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n  '%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n  '%FunctionPrototype%': ['Function', 'prototype'],\n  '%Generator%': ['GeneratorFunction', 'prototype'],\n  '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n  '%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n  '%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n  '%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n  '%JSONParse%': ['JSON', 'parse'],\n  '%JSONStringify%': ['JSON', 'stringify'],\n  '%MapPrototype%': ['Map', 'prototype'],\n  '%NumberPrototype%': ['Number', 'prototype'],\n  '%ObjectPrototype%': ['Object', 'prototype'],\n  '%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n  '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n  '%PromisePrototype%': ['Promise', 'prototype'],\n  '%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n  '%Promise_all%': ['Promise', 'all'],\n  '%Promise_reject%': ['Promise', 'reject'],\n  '%Promise_resolve%': ['Promise', 'resolve'],\n  '%RangeErrorPrototype%': ['RangeError', 'prototype'],\n  '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n  '%RegExpPrototype%': ['RegExp', 'prototype'],\n  '%SetPrototype%': ['Set', 'prototype'],\n  '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n  '%StringPrototype%': ['String', 'prototype'],\n  '%SymbolPrototype%': ['Symbol', 'prototype'],\n  '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n  '%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n  '%TypeErrorPrototype%': ['TypeError', 'prototype'],\n  '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n  '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n  '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n  '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n  '%URIErrorPrototype%': ['URIError', 'prototype'],\n  '%WeakMapPrototype%': ['WeakMap', 'prototype'],\n  '%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\nvar bind = __webpack_require__(/*! function-bind */ \"./node_modules/function-bind/index.js\");\nvar hasOwn = __webpack_require__(/*! hasown */ \"./node_modules/hasown/index.js\");\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n  var first = $strSlice(string, 0, 1);\n  var last = $strSlice(string, -1);\n  if (first === '%' && last !== '%') {\n    throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n  } else if (last === '%' && first !== '%') {\n    throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n  }\n  var result = [];\n  $replace(string, rePropName, function (match, number, quote, subString) {\n    result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n  });\n  return result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n  var intrinsicName = name;\n  var alias;\n  if (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n    alias = LEGACY_ALIASES[intrinsicName];\n    intrinsicName = '%' + alias[0] + '%';\n  }\n  if (hasOwn(INTRINSICS, intrinsicName)) {\n    var value = INTRINSICS[intrinsicName];\n    if (value === needsEval) {\n      value = doEval(intrinsicName);\n    }\n    if (typeof value === 'undefined' && !allowMissing) {\n      throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n    }\n    return {\n      alias: alias,\n      name: intrinsicName,\n      value: value\n    };\n  }\n  throw new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n  if (typeof name !== 'string' || name.length === 0) {\n    throw new $TypeError('intrinsic name must be a non-empty string');\n  }\n  if (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n    throw new $TypeError('\"allowMissing\" argument must be a boolean');\n  }\n  if ($exec(/^%?[^%]*%?$/, name) === null) {\n    throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n  }\n  var parts = stringToPath(name);\n  var intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n  var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n  var intrinsicRealName = intrinsic.name;\n  var value = intrinsic.value;\n  var skipFurtherCaching = false;\n  var alias = intrinsic.alias;\n  if (alias) {\n    intrinsicBaseName = alias[0];\n    $spliceApply(parts, $concat([0, 1], alias));\n  }\n  for (var i = 1, isOwn = true; i < parts.length; i += 1) {\n    var part = parts[i];\n    var first = $strSlice(part, 0, 1);\n    var last = $strSlice(part, -1);\n    if ((first === '\"' || first === \"'\" || first === '`' || last === '\"' || last === \"'\" || last === '`') && first !== last) {\n      throw new $SyntaxError('property names with quotes must have matching quotes');\n    }\n    if (part === 'constructor' || !isOwn) {\n      skipFurtherCaching = true;\n    }\n    intrinsicBaseName += '.' + part;\n    intrinsicRealName = '%' + intrinsicBaseName + '%';\n    if (hasOwn(INTRINSICS, intrinsicRealName)) {\n      value = INTRINSICS[intrinsicRealName];\n    } else if (value != null) {\n      if (!(part in value)) {\n        if (!allowMissing) {\n          throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n        }\n        return void undefined;\n      }\n      if ($gOPD && i + 1 >= parts.length) {\n        var desc = $gOPD(value, part);\n        isOwn = !!desc;\n\n        // By convention, when a data property is converted to an accessor\n        // property to emulate a data property that does not suffer from\n        // the override mistake, that accessor's getter is marked with\n        // an `originalValue` property. Here, when we detect this, we\n        // uphold the illusion by pretending to see that original data\n        // property, i.e., returning the value rather than the getter\n        // itself.\n        if (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n          value = desc.get;\n        } else {\n          value = value[part];\n        }\n      } else {\n        isOwn = hasOwn(value, part);\n        value = value[part];\n      }\n      if (isOwn && !skipFurtherCaching) {\n        INTRINSICS[intrinsicRealName] = value;\n      }\n    }\n  }\n  return value;\n};\n\n//# sourceURL=webpack:///./node_modules/get-intrinsic/index.js?\n}");

/***/ }),

/***/ "./node_modules/get-proto/Object.getPrototypeOf.js":
/*!*********************************************************!*\
  !*** ./node_modules/get-proto/Object.getPrototypeOf.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar $Object = __webpack_require__(/*! es-object-atoms */ \"./node_modules/es-object-atoms/index.js\");\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n\n//# sourceURL=webpack:///./node_modules/get-proto/Object.getPrototypeOf.js?\n}");

/***/ }),

/***/ "./node_modules/get-proto/Reflect.getPrototypeOf.js":
/*!**********************************************************!*\
  !*** ./node_modules/get-proto/Reflect.getPrototypeOf.js ***!
  \**********************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect.getPrototypeOf || null;\n\n//# sourceURL=webpack:///./node_modules/get-proto/Reflect.getPrototypeOf.js?\n}");

/***/ }),

/***/ "./node_modules/get-proto/index.js":
/*!*****************************************!*\
  !*** ./node_modules/get-proto/index.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar reflectGetProto = __webpack_require__(/*! ./Reflect.getPrototypeOf */ \"./node_modules/get-proto/Reflect.getPrototypeOf.js\");\nvar originalGetProto = __webpack_require__(/*! ./Object.getPrototypeOf */ \"./node_modules/get-proto/Object.getPrototypeOf.js\");\nvar getDunderProto = __webpack_require__(/*! dunder-proto/get */ \"./node_modules/dunder-proto/get.js\");\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto ? function getProto(O) {\n  // @ts-expect-error TS can't narrow inside a closure, for some reason\n  return reflectGetProto(O);\n} : originalGetProto ? function getProto(O) {\n  if (!O || typeof O !== 'object' && typeof O !== 'function') {\n    throw new TypeError('getProto: not an object');\n  }\n  // @ts-expect-error TS can't narrow inside a closure, for some reason\n  return originalGetProto(O);\n} : getDunderProto ? function getProto(O) {\n  // @ts-expect-error TS can't narrow inside a closure, for some reason\n  return getDunderProto(O);\n} : null;\n\n//# sourceURL=webpack:///./node_modules/get-proto/index.js?\n}");

/***/ }),

/***/ "./node_modules/gopd/gOPD.js":
/*!***********************************!*\
  !*** ./node_modules/gopd/gOPD.js ***!
  \***********************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n\n//# sourceURL=webpack:///./node_modules/gopd/gOPD.js?\n}");

/***/ }),

/***/ "./node_modules/gopd/index.js":
/*!************************************!*\
  !*** ./node_modules/gopd/index.js ***!
  \************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\n/** @type {import('.')} */\nvar $gOPD = __webpack_require__(/*! ./gOPD */ \"./node_modules/gopd/gOPD.js\");\nif ($gOPD) {\n  try {\n    $gOPD([], 'length');\n  } catch (e) {\n    // IE 8 has a broken gOPD\n    $gOPD = null;\n  }\n}\nmodule.exports = $gOPD;\n\n//# sourceURL=webpack:///./node_modules/gopd/index.js?\n}");

/***/ }),

/***/ "./node_modules/has-symbols/index.js":
/*!*******************************************!*\
  !*** ./node_modules/has-symbols/index.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = __webpack_require__(/*! ./shams */ \"./node_modules/has-symbols/shams.js\");\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n  if (typeof origSymbol !== 'function') {\n    return false;\n  }\n  if (typeof Symbol !== 'function') {\n    return false;\n  }\n  if (typeof origSymbol('foo') !== 'symbol') {\n    return false;\n  }\n  if (typeof Symbol('bar') !== 'symbol') {\n    return false;\n  }\n  return hasSymbolSham();\n};\n\n//# sourceURL=webpack:///./node_modules/has-symbols/index.js?\n}");

/***/ }),

/***/ "./node_modules/has-symbols/shams.js":
/*!*******************************************!*\
  !*** ./node_modules/has-symbols/shams.js ***!
  \*******************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n  if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') {\n    return false;\n  }\n  if (typeof Symbol.iterator === 'symbol') {\n    return true;\n  }\n\n  /** @type {{ [k in symbol]?: unknown }} */\n  var obj = {};\n  var sym = Symbol('test');\n  var symObj = Object(sym);\n  if (typeof sym === 'string') {\n    return false;\n  }\n  if (Object.prototype.toString.call(sym) !== '[object Symbol]') {\n    return false;\n  }\n  if (Object.prototype.toString.call(symObj) !== '[object Symbol]') {\n    return false;\n  }\n\n  // temp disabled per https://github.com/ljharb/object.assign/issues/17\n  // if (sym instanceof Symbol) { return false; }\n  // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n  // if (!(symObj instanceof Symbol)) { return false; }\n\n  // if (typeof Symbol.prototype.toString !== 'function') { return false; }\n  // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n  var symVal = 42;\n  obj[sym] = symVal;\n  for (var _ in obj) {\n    return false;\n  } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n  if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) {\n    return false;\n  }\n  if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) {\n    return false;\n  }\n  var syms = Object.getOwnPropertySymbols(obj);\n  if (syms.length !== 1 || syms[0] !== sym) {\n    return false;\n  }\n  if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {\n    return false;\n  }\n  if (typeof Object.getOwnPropertyDescriptor === 'function') {\n    // eslint-disable-next-line no-extra-parens\n    var descriptor = /** @type {PropertyDescriptor} */Object.getOwnPropertyDescriptor(obj, sym);\n    if (descriptor.value !== symVal || descriptor.enumerable !== true) {\n      return false;\n    }\n  }\n  return true;\n};\n\n//# sourceURL=webpack:///./node_modules/has-symbols/shams.js?\n}");

/***/ }),

/***/ "./node_modules/hasown/index.js":
/*!**************************************!*\
  !*** ./node_modules/hasown/index.js ***!
  \**************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = __webpack_require__(/*! function-bind */ \"./node_modules/function-bind/index.js\");\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n\n//# sourceURL=webpack:///./node_modules/hasown/index.js?\n}");

/***/ }),

/***/ "./node_modules/jquery/dist/jquery.js":
/*!********************************************!*\
  !*** ./node_modules/jquery/dist/jquery.js ***!
  \********************************************/
/***/ (function(module, exports) {

eval("{var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * jQuery JavaScript Library v3.7.1\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-08-28T13:37Z\n */\n(function (global, factory) {\n  \"use strict\";\n\n  if ( true && typeof module.exports === \"object\") {\n    // For CommonJS and CommonJS-like environments where a proper `window`\n    // is present, execute the factory and get jQuery.\n    // For environments that do not have a `window` with a `document`\n    // (such as Node.js), expose a factory as module.exports.\n    // This accentuates the need for the creation of a real `window`.\n    // e.g. var jQuery = require(\"jquery\")(window);\n    // See ticket trac-14549 for more info.\n    module.exports = global.document ? factory(global, true) : function (w) {\n      if (!w.document) {\n        throw new Error(\"jQuery requires a window with a document\");\n      }\n      return factory(w);\n    };\n  } else {\n    factory(global);\n  }\n\n  // Pass this if window is not defined yet\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n  // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n  // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n  // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n  // enough that all such attempts are guarded in a try block.\n  \"use strict\";\n\n  var arr = [];\n  var getProto = Object.getPrototypeOf;\n  var slice = arr.slice;\n  var flat = arr.flat ? function (array) {\n    return arr.flat.call(array);\n  } : function (array) {\n    return arr.concat.apply([], array);\n  };\n  var push = arr.push;\n  var indexOf = arr.indexOf;\n  var class2type = {};\n  var toString = class2type.toString;\n  var hasOwn = class2type.hasOwnProperty;\n  var fnToString = hasOwn.toString;\n  var ObjectFunctionString = fnToString.call(Object);\n  var support = {};\n  var isFunction = function isFunction(obj) {\n    // Support: Chrome <=57, Firefox <=52\n    // In some browsers, typeof returns \"function\" for HTML <object> elements\n    // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n    // We don't want to classify *any* DOM node as a function.\n    // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n    // Plus for old WebKit, typeof returns \"function\" for HTML collections\n    // (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n    return typeof obj === \"function\" && typeof obj.nodeType !== \"number\" && typeof obj.item !== \"function\";\n  };\n  var isWindow = function isWindow(obj) {\n    return obj != null && obj === obj.window;\n  };\n  var document = window.document;\n  var preservedScriptAttributes = {\n    type: true,\n    src: true,\n    nonce: true,\n    noModule: true\n  };\n  function DOMEval(code, node, doc) {\n    doc = doc || document;\n    var i,\n      val,\n      script = doc.createElement(\"script\");\n    script.text = code;\n    if (node) {\n      for (i in preservedScriptAttributes) {\n        // Support: Firefox 64+, Edge 18+\n        // Some browsers don't support the \"nonce\" property on scripts.\n        // On the other hand, just using `getAttribute` is not enough as\n        // the `nonce` attribute is reset to an empty string whenever it\n        // becomes browsing-context connected.\n        // See https://github.com/whatwg/html/issues/2369\n        // See https://html.spec.whatwg.org/#nonce-attributes\n        // The `node.getAttribute` check was added for the sake of\n        // `jQuery.globalEval` so that it can fake a nonce-containing node\n        // via an object.\n        val = node[i] || node.getAttribute && node.getAttribute(i);\n        if (val) {\n          script.setAttribute(i, val);\n        }\n      }\n    }\n    doc.head.appendChild(script).parentNode.removeChild(script);\n  }\n  function toType(obj) {\n    if (obj == null) {\n      return obj + \"\";\n    }\n\n    // Support: Android <=2.3 only (functionish RegExp)\n    return typeof obj === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : typeof obj;\n  }\n  /* global Symbol */\n  // Defining this global in .eslintrc.json would create a danger of using the global\n  // unguarded in another place, it seems safer to define global only for this module\n\n  var version = \"3.7.1\",\n    rhtmlSuffix = /HTML$/i,\n    // Define a local copy of jQuery\n    jQuery = function (selector, context) {\n      // The jQuery object is actually just the init constructor 'enhanced'\n      // Need init if jQuery is called (just allow error to be thrown if not included)\n      return new jQuery.fn.init(selector, context);\n    };\n  jQuery.fn = jQuery.prototype = {\n    // The current version of jQuery being used\n    jquery: version,\n    constructor: jQuery,\n    // The default length of a jQuery object is 0\n    length: 0,\n    toArray: function () {\n      return slice.call(this);\n    },\n    // Get the Nth element in the matched element set OR\n    // Get the whole matched element set as a clean array\n    get: function (num) {\n      // Return all the elements in a clean array\n      if (num == null) {\n        return slice.call(this);\n      }\n\n      // Return just the one element from the set\n      return num < 0 ? this[num + this.length] : this[num];\n    },\n    // Take an array of elements and push it onto the stack\n    // (returning the new matched element set)\n    pushStack: function (elems) {\n      // Build a new jQuery matched element set\n      var ret = jQuery.merge(this.constructor(), elems);\n\n      // Add the old object onto the stack (as a reference)\n      ret.prevObject = this;\n\n      // Return the newly-formed element set\n      return ret;\n    },\n    // Execute a callback for every element in the matched set.\n    each: function (callback) {\n      return jQuery.each(this, callback);\n    },\n    map: function (callback) {\n      return this.pushStack(jQuery.map(this, function (elem, i) {\n        return callback.call(elem, i, elem);\n      }));\n    },\n    slice: function () {\n      return this.pushStack(slice.apply(this, arguments));\n    },\n    first: function () {\n      return this.eq(0);\n    },\n    last: function () {\n      return this.eq(-1);\n    },\n    even: function () {\n      return this.pushStack(jQuery.grep(this, function (_elem, i) {\n        return (i + 1) % 2;\n      }));\n    },\n    odd: function () {\n      return this.pushStack(jQuery.grep(this, function (_elem, i) {\n        return i % 2;\n      }));\n    },\n    eq: function (i) {\n      var len = this.length,\n        j = +i + (i < 0 ? len : 0);\n      return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n    },\n    end: function () {\n      return this.prevObject || this.constructor();\n    },\n    // For internal use only.\n    // Behaves like an Array's method, not like a jQuery method.\n    push: push,\n    sort: arr.sort,\n    splice: arr.splice\n  };\n  jQuery.extend = jQuery.fn.extend = function () {\n    var options,\n      name,\n      src,\n      copy,\n      copyIsArray,\n      clone,\n      target = arguments[0] || {},\n      i = 1,\n      length = arguments.length,\n      deep = false;\n\n    // Handle a deep copy situation\n    if (typeof target === \"boolean\") {\n      deep = target;\n\n      // Skip the boolean and the target\n      target = arguments[i] || {};\n      i++;\n    }\n\n    // Handle case when target is a string or something (possible in deep copy)\n    if (typeof target !== \"object\" && !isFunction(target)) {\n      target = {};\n    }\n\n    // Extend jQuery itself if only one argument is passed\n    if (i === length) {\n      target = this;\n      i--;\n    }\n    for (; i < length; i++) {\n      // Only deal with non-null/undefined values\n      if ((options = arguments[i]) != null) {\n        // Extend the base object\n        for (name in options) {\n          copy = options[name];\n\n          // Prevent Object.prototype pollution\n          // Prevent never-ending loop\n          if (name === \"__proto__\" || target === copy) {\n            continue;\n          }\n\n          // Recurse if we're merging plain objects or arrays\n          if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n            src = target[name];\n\n            // Ensure proper type for the source value\n            if (copyIsArray && !Array.isArray(src)) {\n              clone = [];\n            } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n              clone = {};\n            } else {\n              clone = src;\n            }\n            copyIsArray = false;\n\n            // Never move original objects, clone them\n            target[name] = jQuery.extend(deep, clone, copy);\n\n            // Don't bring in undefined values\n          } else if (copy !== undefined) {\n            target[name] = copy;\n          }\n        }\n      }\n    }\n\n    // Return the modified object\n    return target;\n  };\n  jQuery.extend({\n    // Unique for each copy of jQuery on the page\n    expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n    // Assume jQuery is ready without the ready module\n    isReady: true,\n    error: function (msg) {\n      throw new Error(msg);\n    },\n    noop: function () {},\n    isPlainObject: function (obj) {\n      var proto, Ctor;\n\n      // Detect obvious negatives\n      // Use toString instead of jQuery.type to catch host objects\n      if (!obj || toString.call(obj) !== \"[object Object]\") {\n        return false;\n      }\n      proto = getProto(obj);\n\n      // Objects with no prototype (e.g., `Object.create( null )`) are plain\n      if (!proto) {\n        return true;\n      }\n\n      // Objects with prototype are plain iff they were constructed by a global Object function\n      Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n      return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n    },\n    isEmptyObject: function (obj) {\n      var name;\n      for (name in obj) {\n        return false;\n      }\n      return true;\n    },\n    // Evaluates a script in a provided context; falls back to the global one\n    // if not specified.\n    globalEval: function (code, options, doc) {\n      DOMEval(code, {\n        nonce: options && options.nonce\n      }, doc);\n    },\n    each: function (obj, callback) {\n      var length,\n        i = 0;\n      if (isArrayLike(obj)) {\n        length = obj.length;\n        for (; i < length; i++) {\n          if (callback.call(obj[i], i, obj[i]) === false) {\n            break;\n          }\n        }\n      } else {\n        for (i in obj) {\n          if (callback.call(obj[i], i, obj[i]) === false) {\n            break;\n          }\n        }\n      }\n      return obj;\n    },\n    // Retrieve the text value of an array of DOM nodes\n    text: function (elem) {\n      var node,\n        ret = \"\",\n        i = 0,\n        nodeType = elem.nodeType;\n      if (!nodeType) {\n        // If no nodeType, this is expected to be an array\n        while (node = elem[i++]) {\n          // Do not traverse comment nodes\n          ret += jQuery.text(node);\n        }\n      }\n      if (nodeType === 1 || nodeType === 11) {\n        return elem.textContent;\n      }\n      if (nodeType === 9) {\n        return elem.documentElement.textContent;\n      }\n      if (nodeType === 3 || nodeType === 4) {\n        return elem.nodeValue;\n      }\n\n      // Do not include comment or processing instruction nodes\n\n      return ret;\n    },\n    // results is for internal usage only\n    makeArray: function (arr, results) {\n      var ret = results || [];\n      if (arr != null) {\n        if (isArrayLike(Object(arr))) {\n          jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n        } else {\n          push.call(ret, arr);\n        }\n      }\n      return ret;\n    },\n    inArray: function (elem, arr, i) {\n      return arr == null ? -1 : indexOf.call(arr, elem, i);\n    },\n    isXMLDoc: function (elem) {\n      var namespace = elem && elem.namespaceURI,\n        docElem = elem && (elem.ownerDocument || elem).documentElement;\n\n      // Assume HTML when documentElement doesn't yet exist, such as inside\n      // document fragments.\n      return !rhtmlSuffix.test(namespace || docElem && docElem.nodeName || \"HTML\");\n    },\n    // Support: Android <=4.0 only, PhantomJS 1 only\n    // push.apply(_, arraylike) throws on ancient WebKit\n    merge: function (first, second) {\n      var len = +second.length,\n        j = 0,\n        i = first.length;\n      for (; j < len; j++) {\n        first[i++] = second[j];\n      }\n      first.length = i;\n      return first;\n    },\n    grep: function (elems, callback, invert) {\n      var callbackInverse,\n        matches = [],\n        i = 0,\n        length = elems.length,\n        callbackExpect = !invert;\n\n      // Go through the array, only saving the items\n      // that pass the validator function\n      for (; i < length; i++) {\n        callbackInverse = !callback(elems[i], i);\n        if (callbackInverse !== callbackExpect) {\n          matches.push(elems[i]);\n        }\n      }\n      return matches;\n    },\n    // arg is for internal usage only\n    map: function (elems, callback, arg) {\n      var length,\n        value,\n        i = 0,\n        ret = [];\n\n      // Go through the array, translating each of the items to their new values\n      if (isArrayLike(elems)) {\n        length = elems.length;\n        for (; i < length; i++) {\n          value = callback(elems[i], i, arg);\n          if (value != null) {\n            ret.push(value);\n          }\n        }\n\n        // Go through every key on the object,\n      } else {\n        for (i in elems) {\n          value = callback(elems[i], i, arg);\n          if (value != null) {\n            ret.push(value);\n          }\n        }\n      }\n\n      // Flatten any nested arrays\n      return flat(ret);\n    },\n    // A global GUID counter for objects\n    guid: 1,\n    // jQuery.support is not used in Core but other projects attach their\n    // properties to it so it needs to exist.\n    support: support\n  });\n  if (typeof Symbol === \"function\") {\n    jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n  }\n\n  // Populate the class2type map\n  jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n    class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n  });\n  function isArrayLike(obj) {\n    // Support: real iOS 8.2 only (not reproducible in simulator)\n    // `in` check used to prevent JIT error (gh-2145)\n    // hasOwn isn't used here due to false negatives\n    // regarding Nodelist length in IE\n    var length = !!obj && \"length\" in obj && obj.length,\n      type = toType(obj);\n    if (isFunction(obj) || isWindow(obj)) {\n      return false;\n    }\n    return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n  }\n  function nodeName(elem, name) {\n    return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n  }\n  var pop = arr.pop;\n  var sort = arr.sort;\n  var splice = arr.splice;\n  var whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n  var rtrimCSS = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\");\n\n  // Note: an element does not contain itself\n  jQuery.contains = function (a, b) {\n    var bup = b && b.parentNode;\n    return a === bup || !!(bup && bup.nodeType === 1 && (\n    // Support: IE 9 - 11+\n    // IE doesn't have `contains` on SVG.\n    a.contains ? a.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n  };\n\n  // CSS string/identifier serialization\n  // https://drafts.csswg.org/cssom/#common-serializing-idioms\n  var rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n  function fcssescape(ch, asCodePoint) {\n    if (asCodePoint) {\n      // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n      if (ch === \"\\0\") {\n        return \"\\uFFFD\";\n      }\n\n      // Control characters and (dependent upon position) numbers get escaped as code points\n      return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n    }\n\n    // Other potentially-special ASCII characters get backslash-escaped\n    return \"\\\\\" + ch;\n  }\n  jQuery.escapeSelector = function (sel) {\n    return (sel + \"\").replace(rcssescape, fcssescape);\n  };\n  var preferredDoc = document,\n    pushNative = push;\n  (function () {\n    var i,\n      Expr,\n      outermostContext,\n      sortInput,\n      hasDuplicate,\n      push = pushNative,\n      // Local document vars\n      document,\n      documentElement,\n      documentIsHTML,\n      rbuggyQSA,\n      matches,\n      // Instance-specific data\n      expando = jQuery.expando,\n      dirruns = 0,\n      done = 0,\n      classCache = createCache(),\n      tokenCache = createCache(),\n      compilerCache = createCache(),\n      nonnativeSelectorCache = createCache(),\n      sortOrder = function (a, b) {\n        if (a === b) {\n          hasDuplicate = true;\n        }\n        return 0;\n      },\n      booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" + \"loop|multiple|open|readonly|required|scoped\",\n      // Regular expressions\n\n      // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n      identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n      // Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n      attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n      // Operator (capture 2)\n      \"*([*^$|!~]?=)\" + whitespace +\n      // \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n      \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n      pseudos = \":(\" + identifier + \")(?:\\\\((\" +\n      // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n      // 1. quoted (capture 3; capture 4 or capture 5)\n      \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n      // 2. simple (capture 6)\n      \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n      // 3. anything else (capture 2)\n      \".*\" + \")\\\\)|)\",\n      // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n      rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n      rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n      rleadingCombinator = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n      rdescend = new RegExp(whitespace + \"|>\"),\n      rpseudo = new RegExp(pseudos),\n      ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n      matchExpr = {\n        ID: new RegExp(\"^#(\" + identifier + \")\"),\n        CLASS: new RegExp(\"^\\\\.(\" + identifier + \")\"),\n        TAG: new RegExp(\"^(\" + identifier + \"|[*])\"),\n        ATTR: new RegExp(\"^\" + attributes),\n        PSEUDO: new RegExp(\"^\" + pseudos),\n        CHILD: new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n        bool: new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n        // For use in libraries implementing .is()\n        // We use this for POS matching in `select`\n        needsContext: new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n      },\n      rinputs = /^(?:input|select|textarea|button)$/i,\n      rheader = /^h\\d$/i,\n      // Easily-parseable/retrievable ID or TAG or CLASS selectors\n      rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n      rsibling = /[+~]/,\n      // CSS escapes\n      // https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n      runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n      funescape = function (escape, nonHex) {\n        var high = \"0x\" + escape.slice(1) - 0x10000;\n        if (nonHex) {\n          // Strip the backslash prefix from a non-hex escape sequence\n          return nonHex;\n        }\n\n        // Replace a hexadecimal escape sequence with the encoded Unicode code point\n        // Support: IE <=11+\n        // For values outside the Basic Multilingual Plane (BMP), manually construct a\n        // surrogate pair\n        return high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n      },\n      // Used for iframes; see `setDocument`.\n      // Support: IE 9 - 11+, Edge 12 - 18+\n      // Removing the function wrapper causes a \"Permission Denied\"\n      // error in IE/Edge.\n      unloadHandler = function () {\n        setDocument();\n      },\n      inDisabledFieldset = addCombinator(function (elem) {\n        return elem.disabled === true && nodeName(elem, \"fieldset\");\n      }, {\n        dir: \"parentNode\",\n        next: \"legend\"\n      });\n\n    // Support: IE <=9 only\n    // Accessing document.activeElement can throw unexpectedly\n    // https://bugs.jquery.com/ticket/13393\n    function safeActiveElement() {\n      try {\n        return document.activeElement;\n      } catch (err) {}\n    }\n\n    // Optimize for push.apply( _, NodeList )\n    try {\n      push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes);\n\n      // Support: Android <=4.0\n      // Detect silently failing push.apply\n      // eslint-disable-next-line no-unused-expressions\n      arr[preferredDoc.childNodes.length].nodeType;\n    } catch (e) {\n      push = {\n        apply: function (target, els) {\n          pushNative.apply(target, slice.call(els));\n        },\n        call: function (target) {\n          pushNative.apply(target, slice.call(arguments, 1));\n        }\n      };\n    }\n    function find(selector, context, results, seed) {\n      var m,\n        i,\n        elem,\n        nid,\n        match,\n        groups,\n        newSelector,\n        newContext = context && context.ownerDocument,\n        // nodeType defaults to 9, since context defaults to document\n        nodeType = context ? context.nodeType : 9;\n      results = results || [];\n\n      // Return early from calls with invalid selector or context\n      if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n        return results;\n      }\n\n      // Try to shortcut find operations (as opposed to filters) in HTML documents\n      if (!seed) {\n        setDocument(context);\n        context = context || document;\n        if (documentIsHTML) {\n          // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n          // (excepting DocumentFragment context, where the methods don't exist)\n          if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n            // ID selector\n            if (m = match[1]) {\n              // Document context\n              if (nodeType === 9) {\n                if (elem = context.getElementById(m)) {\n                  // Support: IE 9 only\n                  // getElementById can match elements by name instead of ID\n                  if (elem.id === m) {\n                    push.call(results, elem);\n                    return results;\n                  }\n                } else {\n                  return results;\n                }\n\n                // Element context\n              } else {\n                // Support: IE 9 only\n                // getElementById can match elements by name instead of ID\n                if (newContext && (elem = newContext.getElementById(m)) && find.contains(context, elem) && elem.id === m) {\n                  push.call(results, elem);\n                  return results;\n                }\n              }\n\n              // Type selector\n            } else if (match[2]) {\n              push.apply(results, context.getElementsByTagName(selector));\n              return results;\n\n              // Class selector\n            } else if ((m = match[3]) && context.getElementsByClassName) {\n              push.apply(results, context.getElementsByClassName(m));\n              return results;\n            }\n          }\n\n          // Take advantage of querySelectorAll\n          if (!nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector))) {\n            newSelector = selector;\n            newContext = context;\n\n            // qSA considers elements outside a scoping root when evaluating child or\n            // descendant combinators, which is not what we want.\n            // In such cases, we work around the behavior by prefixing every selector in the\n            // list with an ID selector referencing the scope context.\n            // The technique has to be used as well when a leading combinator is used\n            // as such selectors are not recognized by querySelectorAll.\n            // Thanks to Andrew Dupont for this technique.\n            if (nodeType === 1 && (rdescend.test(selector) || rleadingCombinator.test(selector))) {\n              // Expand context for sibling selectors\n              newContext = rsibling.test(selector) && testContext(context.parentNode) || context;\n\n              // We can use :scope instead of the ID hack if the browser\n              // supports it & if we're not changing the context.\n              // Support: IE 11+, Edge 17 - 18+\n              // IE/Edge sometimes throw a \"Permission denied\" error when\n              // strict-comparing two documents; shallow comparisons work.\n              // eslint-disable-next-line eqeqeq\n              if (newContext != context || !support.scope) {\n                // Capture the context ID, setting it first if necessary\n                if (nid = context.getAttribute(\"id\")) {\n                  nid = jQuery.escapeSelector(nid);\n                } else {\n                  context.setAttribute(\"id\", nid = expando);\n                }\n              }\n\n              // Prefix every selector in the list\n              groups = tokenize(selector);\n              i = groups.length;\n              while (i--) {\n                groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n              }\n              newSelector = groups.join(\",\");\n            }\n            try {\n              push.apply(results, newContext.querySelectorAll(newSelector));\n              return results;\n            } catch (qsaError) {\n              nonnativeSelectorCache(selector, true);\n            } finally {\n              if (nid === expando) {\n                context.removeAttribute(\"id\");\n              }\n            }\n          }\n        }\n      }\n\n      // All others\n      return select(selector.replace(rtrimCSS, \"$1\"), context, results, seed);\n    }\n\n    /**\n     * Create key-value caches of limited size\n     * @returns {function(string, object)} Returns the Object data after storing it on itself with\n     *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n     *\tdeleting the oldest entry\n     */\n    function createCache() {\n      var keys = [];\n      function cache(key, value) {\n        // Use (key + \" \") to avoid collision with native prototype properties\n        // (see https://github.com/jquery/sizzle/issues/157)\n        if (keys.push(key + \" \") > Expr.cacheLength) {\n          // Only keep the most recent entries\n          delete cache[keys.shift()];\n        }\n        return cache[key + \" \"] = value;\n      }\n      return cache;\n    }\n\n    /**\n     * Mark a function for special use by jQuery selector module\n     * @param {Function} fn The function to mark\n     */\n    function markFunction(fn) {\n      fn[expando] = true;\n      return fn;\n    }\n\n    /**\n     * Support testing using an element\n     * @param {Function} fn Passed the created element and returns a boolean result\n     */\n    function assert(fn) {\n      var el = document.createElement(\"fieldset\");\n      try {\n        return !!fn(el);\n      } catch (e) {\n        return false;\n      } finally {\n        // Remove from its parent by default\n        if (el.parentNode) {\n          el.parentNode.removeChild(el);\n        }\n\n        // release memory in IE\n        el = null;\n      }\n    }\n\n    /**\n     * Returns a function to use in pseudos for input types\n     * @param {String} type\n     */\n    function createInputPseudo(type) {\n      return function (elem) {\n        return nodeName(elem, \"input\") && elem.type === type;\n      };\n    }\n\n    /**\n     * Returns a function to use in pseudos for buttons\n     * @param {String} type\n     */\n    function createButtonPseudo(type) {\n      return function (elem) {\n        return (nodeName(elem, \"input\") || nodeName(elem, \"button\")) && elem.type === type;\n      };\n    }\n\n    /**\n     * Returns a function to use in pseudos for :enabled/:disabled\n     * @param {Boolean} disabled true for :disabled; false for :enabled\n     */\n    function createDisabledPseudo(disabled) {\n      // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n      return function (elem) {\n        // Only certain elements can match :enabled or :disabled\n        // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n        // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n        if (\"form\" in elem) {\n          // Check for inherited disabledness on relevant non-disabled elements:\n          // * listed form-associated elements in a disabled fieldset\n          //   https://html.spec.whatwg.org/multipage/forms.html#category-listed\n          //   https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n          // * option elements in a disabled optgroup\n          //   https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n          // All such elements have a \"form\" property.\n          if (elem.parentNode && elem.disabled === false) {\n            // Option elements defer to a parent optgroup if present\n            if (\"label\" in elem) {\n              if (\"label\" in elem.parentNode) {\n                return elem.parentNode.disabled === disabled;\n              } else {\n                return elem.disabled === disabled;\n              }\n            }\n\n            // Support: IE 6 - 11+\n            // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n            return elem.isDisabled === disabled ||\n            // Where there is no isDisabled, check manually\n            elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n          }\n          return elem.disabled === disabled;\n\n          // Try to winnow out elements that can't be disabled before trusting the disabled property.\n          // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n          // even exist on them, let alone have a boolean value.\n        } else if (\"label\" in elem) {\n          return elem.disabled === disabled;\n        }\n\n        // Remaining elements are neither :enabled nor :disabled\n        return false;\n      };\n    }\n\n    /**\n     * Returns a function to use in pseudos for positionals\n     * @param {Function} fn\n     */\n    function createPositionalPseudo(fn) {\n      return markFunction(function (argument) {\n        argument = +argument;\n        return markFunction(function (seed, matches) {\n          var j,\n            matchIndexes = fn([], seed.length, argument),\n            i = matchIndexes.length;\n\n          // Match elements found at the specified indexes\n          while (i--) {\n            if (seed[j = matchIndexes[i]]) {\n              seed[j] = !(matches[j] = seed[j]);\n            }\n          }\n        });\n      });\n    }\n\n    /**\n     * Checks a node for validity as a jQuery selector context\n     * @param {Element|Object=} context\n     * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n     */\n    function testContext(context) {\n      return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n    }\n\n    /**\n     * Sets document-related variables once based on the current document\n     * @param {Element|Object} [node] An element or document object to use to set the document\n     * @returns {Object} Returns the current document\n     */\n    function setDocument(node) {\n      var subWindow,\n        doc = node ? node.ownerDocument || node : preferredDoc;\n\n      // Return early if doc is invalid or already selected\n      // Support: IE 11+, Edge 17 - 18+\n      // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n      // two documents; shallow comparisons work.\n      // eslint-disable-next-line eqeqeq\n      if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n        return document;\n      }\n\n      // Update global variables\n      document = doc;\n      documentElement = document.documentElement;\n      documentIsHTML = !jQuery.isXMLDoc(document);\n\n      // Support: iOS 7 only, IE 9 - 11+\n      // Older browsers didn't support unprefixed `matches`.\n      matches = documentElement.matches || documentElement.webkitMatchesSelector || documentElement.msMatchesSelector;\n\n      // Support: IE 9 - 11+, Edge 12 - 18+\n      // Accessing iframe documents after unload throws \"permission denied\" errors\n      // (see trac-13936).\n      // Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n      // all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n      if (documentElement.msMatchesSelector &&\n      // Support: IE 11+, Edge 17 - 18+\n      // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n      // two documents; shallow comparisons work.\n      // eslint-disable-next-line eqeqeq\n      preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n        // Support: IE 9 - 11+, Edge 12 - 18+\n        subWindow.addEventListener(\"unload\", unloadHandler);\n      }\n\n      // Support: IE <10\n      // Check if getElementById returns elements by name\n      // The broken getElementById methods don't pick up programmatically-set names,\n      // so use a roundabout getElementsByName test\n      support.getById = assert(function (el) {\n        documentElement.appendChild(el).id = jQuery.expando;\n        return !document.getElementsByName || !document.getElementsByName(jQuery.expando).length;\n      });\n\n      // Support: IE 9 only\n      // Check to see if it's possible to do matchesSelector\n      // on a disconnected node.\n      support.disconnectedMatch = assert(function (el) {\n        return matches.call(el, \"*\");\n      });\n\n      // Support: IE 9 - 11+, Edge 12 - 18+\n      // IE/Edge don't support the :scope pseudo-class.\n      support.scope = assert(function () {\n        return document.querySelectorAll(\":scope\");\n      });\n\n      // Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n      // Make sure the `:has()` argument is parsed unforgivingly.\n      // We include `*` in the test to detect buggy implementations that are\n      // _selectively_ forgiving (specifically when the list includes at least\n      // one valid selector).\n      // Note that we treat complete lack of support for `:has()` as if it were\n      // spec-compliant support, which is fine because use of `:has()` in such\n      // environments will fail in the qSA path and fall back to jQuery traversal\n      // anyway.\n      support.cssHas = assert(function () {\n        try {\n          document.querySelector(\":has(*,:jqfake)\");\n          return false;\n        } catch (e) {\n          return true;\n        }\n      });\n\n      // ID filter and find\n      if (support.getById) {\n        Expr.filter.ID = function (id) {\n          var attrId = id.replace(runescape, funescape);\n          return function (elem) {\n            return elem.getAttribute(\"id\") === attrId;\n          };\n        };\n        Expr.find.ID = function (id, context) {\n          if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n            var elem = context.getElementById(id);\n            return elem ? [elem] : [];\n          }\n        };\n      } else {\n        Expr.filter.ID = function (id) {\n          var attrId = id.replace(runescape, funescape);\n          return function (elem) {\n            var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n            return node && node.value === attrId;\n          };\n        };\n\n        // Support: IE 6 - 7 only\n        // getElementById is not reliable as a find shortcut\n        Expr.find.ID = function (id, context) {\n          if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n            var node,\n              i,\n              elems,\n              elem = context.getElementById(id);\n            if (elem) {\n              // Verify the id attribute\n              node = elem.getAttributeNode(\"id\");\n              if (node && node.value === id) {\n                return [elem];\n              }\n\n              // Fall back on getElementsByName\n              elems = context.getElementsByName(id);\n              i = 0;\n              while (elem = elems[i++]) {\n                node = elem.getAttributeNode(\"id\");\n                if (node && node.value === id) {\n                  return [elem];\n                }\n              }\n            }\n            return [];\n          }\n        };\n      }\n\n      // Tag\n      Expr.find.TAG = function (tag, context) {\n        if (typeof context.getElementsByTagName !== \"undefined\") {\n          return context.getElementsByTagName(tag);\n\n          // DocumentFragment nodes don't have gEBTN\n        } else {\n          return context.querySelectorAll(tag);\n        }\n      };\n\n      // Class\n      Expr.find.CLASS = function (className, context) {\n        if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n          return context.getElementsByClassName(className);\n        }\n      };\n\n      /* QSA/matchesSelector\n      ---------------------------------------------------------------------- */\n\n      // QSA and matchesSelector support\n\n      rbuggyQSA = [];\n\n      // Build QSA regex\n      // Regex strategy adopted from Diego Perini\n      assert(function (el) {\n        var input;\n        documentElement.appendChild(el).innerHTML = \"<a id='\" + expando + \"' href='' disabled='disabled'></a>\" + \"<select id='\" + expando + \"-\\r\\\\' disabled='disabled'>\" + \"<option selected=''></option></select>\";\n\n        // Support: iOS <=7 - 8 only\n        // Boolean attributes and \"value\" are not treated correctly in some XML documents\n        if (!el.querySelectorAll(\"[selected]\").length) {\n          rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n        }\n\n        // Support: iOS <=7 - 8 only\n        if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n          rbuggyQSA.push(\"~=\");\n        }\n\n        // Support: iOS 8 only\n        // https://bugs.webkit.org/show_bug.cgi?id=136851\n        // In-page `selector#id sibling-combinator selector` fails\n        if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n          rbuggyQSA.push(\".#.+[+~]\");\n        }\n\n        // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n        // In some of the document kinds, these selectors wouldn't work natively.\n        // This is probably OK but for backwards compatibility we want to maintain\n        // handling them through jQuery traversal in jQuery 3.x.\n        if (!el.querySelectorAll(\":checked\").length) {\n          rbuggyQSA.push(\":checked\");\n        }\n\n        // Support: Windows 8 Native Apps\n        // The type and name attributes are restricted during .innerHTML assignment\n        input = document.createElement(\"input\");\n        input.setAttribute(\"type\", \"hidden\");\n        el.appendChild(input).setAttribute(\"name\", \"D\");\n\n        // Support: IE 9 - 11+\n        // IE's :disabled selector does not pick up the children of disabled fieldsets\n        // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n        // In some of the document kinds, these selectors wouldn't work natively.\n        // This is probably OK but for backwards compatibility we want to maintain\n        // handling them through jQuery traversal in jQuery 3.x.\n        documentElement.appendChild(el).disabled = true;\n        if (el.querySelectorAll(\":disabled\").length !== 2) {\n          rbuggyQSA.push(\":enabled\", \":disabled\");\n        }\n\n        // Support: IE 11+, Edge 15 - 18+\n        // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n        // Adding a temporary attribute to the document before the selection works\n        // around the issue.\n        // Interestingly, IE 10 & older don't seem to have the issue.\n        input = document.createElement(\"input\");\n        input.setAttribute(\"name\", \"\");\n        el.appendChild(input);\n        if (!el.querySelectorAll(\"[name='']\").length) {\n          rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n        }\n      });\n      if (!support.cssHas) {\n        // Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n        // Our regular `try-catch` mechanism fails to detect natively-unsupported\n        // pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n        // in browsers that parse the `:has()` argument as a forgiving selector list.\n        // https://drafts.csswg.org/selectors/#relational now requires the argument\n        // to be parsed unforgivingly, but browsers have not yet fully adjusted.\n        rbuggyQSA.push(\":has\");\n      }\n      rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n\n      /* Sorting\n      ---------------------------------------------------------------------- */\n\n      // Document order sorting\n      sortOrder = function (a, b) {\n        // Flag for duplicate removal\n        if (a === b) {\n          hasDuplicate = true;\n          return 0;\n        }\n\n        // Sort on method existence if only one input has compareDocumentPosition\n        var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n        if (compare) {\n          return compare;\n        }\n\n        // Calculate position if both inputs belong to the same document\n        // Support: IE 11+, Edge 17 - 18+\n        // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n        // two documents; shallow comparisons work.\n        // eslint-disable-next-line eqeqeq\n        compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) :\n        // Otherwise we know they are disconnected\n        1;\n\n        // Disconnected nodes\n        if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n          // Choose the first element that is related to our preferred document\n          // Support: IE 11+, Edge 17 - 18+\n          // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n          // two documents; shallow comparisons work.\n          // eslint-disable-next-line eqeqeq\n          if (a === document || a.ownerDocument == preferredDoc && find.contains(preferredDoc, a)) {\n            return -1;\n          }\n\n          // Support: IE 11+, Edge 17 - 18+\n          // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n          // two documents; shallow comparisons work.\n          // eslint-disable-next-line eqeqeq\n          if (b === document || b.ownerDocument == preferredDoc && find.contains(preferredDoc, b)) {\n            return 1;\n          }\n\n          // Maintain original order\n          return sortInput ? indexOf.call(sortInput, a) - indexOf.call(sortInput, b) : 0;\n        }\n        return compare & 4 ? -1 : 1;\n      };\n      return document;\n    }\n    find.matches = function (expr, elements) {\n      return find(expr, null, null, elements);\n    };\n    find.matchesSelector = function (elem, expr) {\n      setDocument(elem);\n      if (documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n        try {\n          var ret = matches.call(elem, expr);\n\n          // IE 9's matchesSelector returns false on disconnected nodes\n          if (ret || support.disconnectedMatch ||\n          // As well, disconnected nodes are said to be in a document\n          // fragment in IE 9\n          elem.document && elem.document.nodeType !== 11) {\n            return ret;\n          }\n        } catch (e) {\n          nonnativeSelectorCache(expr, true);\n        }\n      }\n      return find(expr, document, null, [elem]).length > 0;\n    };\n    find.contains = function (context, elem) {\n      // Set document vars if needed\n      // Support: IE 11+, Edge 17 - 18+\n      // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n      // two documents; shallow comparisons work.\n      // eslint-disable-next-line eqeqeq\n      if ((context.ownerDocument || context) != document) {\n        setDocument(context);\n      }\n      return jQuery.contains(context, elem);\n    };\n    find.attr = function (elem, name) {\n      // Set document vars if needed\n      // Support: IE 11+, Edge 17 - 18+\n      // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n      // two documents; shallow comparisons work.\n      // eslint-disable-next-line eqeqeq\n      if ((elem.ownerDocument || elem) != document) {\n        setDocument(elem);\n      }\n      var fn = Expr.attrHandle[name.toLowerCase()],\n        // Don't get fooled by Object.prototype properties (see trac-13807)\n        val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n      if (val !== undefined) {\n        return val;\n      }\n      return elem.getAttribute(name);\n    };\n    find.error = function (msg) {\n      throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n    };\n\n    /**\n     * Document sorting and removing duplicates\n     * @param {ArrayLike} results\n     */\n    jQuery.uniqueSort = function (results) {\n      var elem,\n        duplicates = [],\n        j = 0,\n        i = 0;\n\n      // Unless we *know* we can detect duplicates, assume their presence\n      //\n      // Support: Android <=4.0+\n      // Testing for detecting duplicates is unpredictable so instead assume we can't\n      // depend on duplicate detection in all browsers without a stable sort.\n      hasDuplicate = !support.sortStable;\n      sortInput = !support.sortStable && slice.call(results, 0);\n      sort.call(results, sortOrder);\n      if (hasDuplicate) {\n        while (elem = results[i++]) {\n          if (elem === results[i]) {\n            j = duplicates.push(i);\n          }\n        }\n        while (j--) {\n          splice.call(results, duplicates[j], 1);\n        }\n      }\n\n      // Clear input after sorting to release objects\n      // See https://github.com/jquery/sizzle/pull/225\n      sortInput = null;\n      return results;\n    };\n    jQuery.fn.uniqueSort = function () {\n      return this.pushStack(jQuery.uniqueSort(slice.apply(this)));\n    };\n    Expr = jQuery.expr = {\n      // Can be adjusted by the user\n      cacheLength: 50,\n      createPseudo: markFunction,\n      match: matchExpr,\n      attrHandle: {},\n      find: {},\n      relative: {\n        \">\": {\n          dir: \"parentNode\",\n          first: true\n        },\n        \" \": {\n          dir: \"parentNode\"\n        },\n        \"+\": {\n          dir: \"previousSibling\",\n          first: true\n        },\n        \"~\": {\n          dir: \"previousSibling\"\n        }\n      },\n      preFilter: {\n        ATTR: function (match) {\n          match[1] = match[1].replace(runescape, funescape);\n\n          // Move the given value to match[3] whether quoted or unquoted\n          match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n          if (match[2] === \"~=\") {\n            match[3] = \" \" + match[3] + \" \";\n          }\n          return match.slice(0, 4);\n        },\n        CHILD: function (match) {\n          /* matches from matchExpr[\"CHILD\"]\n          \t1 type (only|nth|...)\n          \t2 what (child|of-type)\n          \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n          \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n          \t5 sign of xn-component\n          \t6 x of xn-component\n          \t7 sign of y-component\n          \t8 y of y-component\n          */\n          match[1] = match[1].toLowerCase();\n          if (match[1].slice(0, 3) === \"nth\") {\n            // nth-* requires argument\n            if (!match[3]) {\n              find.error(match[0]);\n            }\n\n            // numeric x and y parameters for Expr.filter.CHILD\n            // remember that false/true cast respectively to 0/1\n            match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n            match[5] = +(match[7] + match[8] || match[3] === \"odd\");\n\n            // other types prohibit arguments\n          } else if (match[3]) {\n            find.error(match[0]);\n          }\n          return match;\n        },\n        PSEUDO: function (match) {\n          var excess,\n            unquoted = !match[6] && match[2];\n          if (matchExpr.CHILD.test(match[0])) {\n            return null;\n          }\n\n          // Accept quoted arguments as-is\n          if (match[3]) {\n            match[2] = match[4] || match[5] || \"\";\n\n            // Strip excess characters from unquoted arguments\n          } else if (unquoted && rpseudo.test(unquoted) && (\n          // Get excess from tokenize (recursively)\n          excess = tokenize(unquoted, true)) && (\n          // advance to the next closing parenthesis\n          excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n            // excess is a negative index\n            match[0] = match[0].slice(0, excess);\n            match[2] = unquoted.slice(0, excess);\n          }\n\n          // Return only captures needed by the pseudo filter method (type and argument)\n          return match.slice(0, 3);\n        }\n      },\n      filter: {\n        TAG: function (nodeNameSelector) {\n          var expectedNodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n          return nodeNameSelector === \"*\" ? function () {\n            return true;\n          } : function (elem) {\n            return nodeName(elem, expectedNodeName);\n          };\n        },\n        CLASS: function (className) {\n          var pattern = classCache[className + \" \"];\n          return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n            return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n          });\n        },\n        ATTR: function (name, operator, check) {\n          return function (elem) {\n            var result = find.attr(elem, name);\n            if (result == null) {\n              return operator === \"!=\";\n            }\n            if (!operator) {\n              return true;\n            }\n            result += \"\";\n            if (operator === \"=\") {\n              return result === check;\n            }\n            if (operator === \"!=\") {\n              return result !== check;\n            }\n            if (operator === \"^=\") {\n              return check && result.indexOf(check) === 0;\n            }\n            if (operator === \"*=\") {\n              return check && result.indexOf(check) > -1;\n            }\n            if (operator === \"$=\") {\n              return check && result.slice(-check.length) === check;\n            }\n            if (operator === \"~=\") {\n              return (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1;\n            }\n            if (operator === \"|=\") {\n              return result === check || result.slice(0, check.length + 1) === check + \"-\";\n            }\n            return false;\n          };\n        },\n        CHILD: function (type, what, _argument, first, last) {\n          var simple = type.slice(0, 3) !== \"nth\",\n            forward = type.slice(-4) !== \"last\",\n            ofType = what === \"of-type\";\n          return first === 1 && last === 0 ?\n          // Shortcut for :nth-*(n)\n          function (elem) {\n            return !!elem.parentNode;\n          } : function (elem, _context, xml) {\n            var cache,\n              outerCache,\n              node,\n              nodeIndex,\n              start,\n              dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n              parent = elem.parentNode,\n              name = ofType && elem.nodeName.toLowerCase(),\n              useCache = !xml && !ofType,\n              diff = false;\n            if (parent) {\n              // :(first|last|only)-(child|of-type)\n              if (simple) {\n                while (dir) {\n                  node = elem;\n                  while (node = node[dir]) {\n                    if (ofType ? nodeName(node, name) : node.nodeType === 1) {\n                      return false;\n                    }\n                  }\n\n                  // Reverse direction for :only-* (if we haven't yet done so)\n                  start = dir = type === \"only\" && !start && \"nextSibling\";\n                }\n                return true;\n              }\n              start = [forward ? parent.firstChild : parent.lastChild];\n\n              // non-xml :nth-child(...) stores cache data on `parent`\n              if (forward && useCache) {\n                // Seek `elem` from a previously-cached index\n                outerCache = parent[expando] || (parent[expando] = {});\n                cache = outerCache[type] || [];\n                nodeIndex = cache[0] === dirruns && cache[1];\n                diff = nodeIndex && cache[2];\n                node = nodeIndex && parent.childNodes[nodeIndex];\n                while (node = ++nodeIndex && node && node[dir] || (\n                // Fallback to seeking `elem` from the start\n                diff = nodeIndex = 0) || start.pop()) {\n                  // When found, cache indexes on `parent` and break\n                  if (node.nodeType === 1 && ++diff && node === elem) {\n                    outerCache[type] = [dirruns, nodeIndex, diff];\n                    break;\n                  }\n                }\n              } else {\n                // Use previously-cached element index if available\n                if (useCache) {\n                  outerCache = elem[expando] || (elem[expando] = {});\n                  cache = outerCache[type] || [];\n                  nodeIndex = cache[0] === dirruns && cache[1];\n                  diff = nodeIndex;\n                }\n\n                // xml :nth-child(...)\n                // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n                if (diff === false) {\n                  // Use the same loop as above to seek `elem` from the start\n                  while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n                    if ((ofType ? nodeName(node, name) : node.nodeType === 1) && ++diff) {\n                      // Cache the index of each encountered element\n                      if (useCache) {\n                        outerCache = node[expando] || (node[expando] = {});\n                        outerCache[type] = [dirruns, diff];\n                      }\n                      if (node === elem) {\n                        break;\n                      }\n                    }\n                  }\n                }\n              }\n\n              // Incorporate the offset, then check against cycle size\n              diff -= last;\n              return diff === first || diff % first === 0 && diff / first >= 0;\n            }\n          };\n        },\n        PSEUDO: function (pseudo, argument) {\n          // pseudo-class names are case-insensitive\n          // https://www.w3.org/TR/selectors/#pseudo-classes\n          // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n          // Remember that setFilters inherits from pseudos\n          var args,\n            fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || find.error(\"unsupported pseudo: \" + pseudo);\n\n          // The user may use createPseudo to indicate that\n          // arguments are needed to create the filter function\n          // just as jQuery does\n          if (fn[expando]) {\n            return fn(argument);\n          }\n\n          // But maintain support for old signatures\n          if (fn.length > 1) {\n            args = [pseudo, pseudo, \"\", argument];\n            return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n              var idx,\n                matched = fn(seed, argument),\n                i = matched.length;\n              while (i--) {\n                idx = indexOf.call(seed, matched[i]);\n                seed[idx] = !(matches[idx] = matched[i]);\n              }\n            }) : function (elem) {\n              return fn(elem, 0, args);\n            };\n          }\n          return fn;\n        }\n      },\n      pseudos: {\n        // Potentially complex pseudos\n        not: markFunction(function (selector) {\n          // Trim the selector passed to compile\n          // to avoid treating leading and trailing\n          // spaces as combinators\n          var input = [],\n            results = [],\n            matcher = compile(selector.replace(rtrimCSS, \"$1\"));\n          return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n            var elem,\n              unmatched = matcher(seed, null, xml, []),\n              i = seed.length;\n\n            // Match elements unmatched by `matcher`\n            while (i--) {\n              if (elem = unmatched[i]) {\n                seed[i] = !(matches[i] = elem);\n              }\n            }\n          }) : function (elem, _context, xml) {\n            input[0] = elem;\n            matcher(input, null, xml, results);\n\n            // Don't keep the element\n            // (see https://github.com/jquery/sizzle/issues/299)\n            input[0] = null;\n            return !results.pop();\n          };\n        }),\n        has: markFunction(function (selector) {\n          return function (elem) {\n            return find(selector, elem).length > 0;\n          };\n        }),\n        contains: markFunction(function (text) {\n          text = text.replace(runescape, funescape);\n          return function (elem) {\n            return (elem.textContent || jQuery.text(elem)).indexOf(text) > -1;\n          };\n        }),\n        // \"Whether an element is represented by a :lang() selector\n        // is based solely on the element's language value\n        // being equal to the identifier C,\n        // or beginning with the identifier C immediately followed by \"-\".\n        // The matching of C against the element's language value is performed case-insensitively.\n        // The identifier C does not have to be a valid language name.\"\n        // https://www.w3.org/TR/selectors/#lang-pseudo\n        lang: markFunction(function (lang) {\n          // lang value must be a valid identifier\n          if (!ridentifier.test(lang || \"\")) {\n            find.error(\"unsupported lang: \" + lang);\n          }\n          lang = lang.replace(runescape, funescape).toLowerCase();\n          return function (elem) {\n            var elemLang;\n            do {\n              if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n                elemLang = elemLang.toLowerCase();\n                return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n              }\n            } while ((elem = elem.parentNode) && elem.nodeType === 1);\n            return false;\n          };\n        }),\n        // Miscellaneous\n        target: function (elem) {\n          var hash = window.location && window.location.hash;\n          return hash && hash.slice(1) === elem.id;\n        },\n        root: function (elem) {\n          return elem === documentElement;\n        },\n        focus: function (elem) {\n          return elem === safeActiveElement() && document.hasFocus() && !!(elem.type || elem.href || ~elem.tabIndex);\n        },\n        // Boolean properties\n        enabled: createDisabledPseudo(false),\n        disabled: createDisabledPseudo(true),\n        checked: function (elem) {\n          // In CSS3, :checked should return both checked and selected elements\n          // https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n          return nodeName(elem, \"input\") && !!elem.checked || nodeName(elem, \"option\") && !!elem.selected;\n        },\n        selected: function (elem) {\n          // Support: IE <=11+\n          // Accessing the selectedIndex property\n          // forces the browser to treat the default option as\n          // selected when in an optgroup.\n          if (elem.parentNode) {\n            // eslint-disable-next-line no-unused-expressions\n            elem.parentNode.selectedIndex;\n          }\n          return elem.selected === true;\n        },\n        // Contents\n        empty: function (elem) {\n          // https://www.w3.org/TR/selectors/#empty-pseudo\n          // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n          //   but not by others (comment: 8; processing instruction: 7; etc.)\n          // nodeType < 6 works because attributes (2) do not appear as children\n          for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n            if (elem.nodeType < 6) {\n              return false;\n            }\n          }\n          return true;\n        },\n        parent: function (elem) {\n          return !Expr.pseudos.empty(elem);\n        },\n        // Element/input types\n        header: function (elem) {\n          return rheader.test(elem.nodeName);\n        },\n        input: function (elem) {\n          return rinputs.test(elem.nodeName);\n        },\n        button: function (elem) {\n          return nodeName(elem, \"input\") && elem.type === \"button\" || nodeName(elem, \"button\");\n        },\n        text: function (elem) {\n          var attr;\n          return nodeName(elem, \"input\") && elem.type === \"text\" && (\n          // Support: IE <10 only\n          // New HTML5 attribute values (e.g., \"search\") appear\n          // with elem.type === \"text\"\n          (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n        },\n        // Position-in-collection\n        first: createPositionalPseudo(function () {\n          return [0];\n        }),\n        last: createPositionalPseudo(function (_matchIndexes, length) {\n          return [length - 1];\n        }),\n        eq: createPositionalPseudo(function (_matchIndexes, length, argument) {\n          return [argument < 0 ? argument + length : argument];\n        }),\n        even: createPositionalPseudo(function (matchIndexes, length) {\n          var i = 0;\n          for (; i < length; i += 2) {\n            matchIndexes.push(i);\n          }\n          return matchIndexes;\n        }),\n        odd: createPositionalPseudo(function (matchIndexes, length) {\n          var i = 1;\n          for (; i < length; i += 2) {\n            matchIndexes.push(i);\n          }\n          return matchIndexes;\n        }),\n        lt: createPositionalPseudo(function (matchIndexes, length, argument) {\n          var i;\n          if (argument < 0) {\n            i = argument + length;\n          } else if (argument > length) {\n            i = length;\n          } else {\n            i = argument;\n          }\n          for (; --i >= 0;) {\n            matchIndexes.push(i);\n          }\n          return matchIndexes;\n        }),\n        gt: createPositionalPseudo(function (matchIndexes, length, argument) {\n          var i = argument < 0 ? argument + length : argument;\n          for (; ++i < length;) {\n            matchIndexes.push(i);\n          }\n          return matchIndexes;\n        })\n      }\n    };\n    Expr.pseudos.nth = Expr.pseudos.eq;\n\n    // Add button/input type pseudos\n    for (i in {\n      radio: true,\n      checkbox: true,\n      file: true,\n      password: true,\n      image: true\n    }) {\n      Expr.pseudos[i] = createInputPseudo(i);\n    }\n    for (i in {\n      submit: true,\n      reset: true\n    }) {\n      Expr.pseudos[i] = createButtonPseudo(i);\n    }\n\n    // Easy API for creating new setFilters\n    function setFilters() {}\n    setFilters.prototype = Expr.filters = Expr.pseudos;\n    Expr.setFilters = new setFilters();\n    function tokenize(selector, parseOnly) {\n      var matched,\n        match,\n        tokens,\n        type,\n        soFar,\n        groups,\n        preFilters,\n        cached = tokenCache[selector + \" \"];\n      if (cached) {\n        return parseOnly ? 0 : cached.slice(0);\n      }\n      soFar = selector;\n      groups = [];\n      preFilters = Expr.preFilter;\n      while (soFar) {\n        // Comma and first run\n        if (!matched || (match = rcomma.exec(soFar))) {\n          if (match) {\n            // Don't consume trailing commas as valid\n            soFar = soFar.slice(match[0].length) || soFar;\n          }\n          groups.push(tokens = []);\n        }\n        matched = false;\n\n        // Combinators\n        if (match = rleadingCombinator.exec(soFar)) {\n          matched = match.shift();\n          tokens.push({\n            value: matched,\n            // Cast descendant combinators to space\n            type: match[0].replace(rtrimCSS, \" \")\n          });\n          soFar = soFar.slice(matched.length);\n        }\n\n        // Filters\n        for (type in Expr.filter) {\n          if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n            matched = match.shift();\n            tokens.push({\n              value: matched,\n              type: type,\n              matches: match\n            });\n            soFar = soFar.slice(matched.length);\n          }\n        }\n        if (!matched) {\n          break;\n        }\n      }\n\n      // Return the length of the invalid excess\n      // if we're just parsing\n      // Otherwise, throw an error or return tokens\n      if (parseOnly) {\n        return soFar.length;\n      }\n      return soFar ? find.error(selector) :\n      // Cache the tokens\n      tokenCache(selector, groups).slice(0);\n    }\n    function toSelector(tokens) {\n      var i = 0,\n        len = tokens.length,\n        selector = \"\";\n      for (; i < len; i++) {\n        selector += tokens[i].value;\n      }\n      return selector;\n    }\n    function addCombinator(matcher, combinator, base) {\n      var dir = combinator.dir,\n        skip = combinator.next,\n        key = skip || dir,\n        checkNonElements = base && key === \"parentNode\",\n        doneName = done++;\n      return combinator.first ?\n      // Check against closest ancestor/preceding element\n      function (elem, context, xml) {\n        while (elem = elem[dir]) {\n          if (elem.nodeType === 1 || checkNonElements) {\n            return matcher(elem, context, xml);\n          }\n        }\n        return false;\n      } :\n      // Check against all ancestor/preceding elements\n      function (elem, context, xml) {\n        var oldCache,\n          outerCache,\n          newCache = [dirruns, doneName];\n\n        // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n        if (xml) {\n          while (elem = elem[dir]) {\n            if (elem.nodeType === 1 || checkNonElements) {\n              if (matcher(elem, context, xml)) {\n                return true;\n              }\n            }\n          }\n        } else {\n          while (elem = elem[dir]) {\n            if (elem.nodeType === 1 || checkNonElements) {\n              outerCache = elem[expando] || (elem[expando] = {});\n              if (skip && nodeName(elem, skip)) {\n                elem = elem[dir] || elem;\n              } else if ((oldCache = outerCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n                // Assign to newCache so results back-propagate to previous elements\n                return newCache[2] = oldCache[2];\n              } else {\n                // Reuse newcache so results back-propagate to previous elements\n                outerCache[key] = newCache;\n\n                // A match means we're done; a fail means we have to keep checking\n                if (newCache[2] = matcher(elem, context, xml)) {\n                  return true;\n                }\n              }\n            }\n          }\n        }\n        return false;\n      };\n    }\n    function elementMatcher(matchers) {\n      return matchers.length > 1 ? function (elem, context, xml) {\n        var i = matchers.length;\n        while (i--) {\n          if (!matchers[i](elem, context, xml)) {\n            return false;\n          }\n        }\n        return true;\n      } : matchers[0];\n    }\n    function multipleContexts(selector, contexts, results) {\n      var i = 0,\n        len = contexts.length;\n      for (; i < len; i++) {\n        find(selector, contexts[i], results);\n      }\n      return results;\n    }\n    function condense(unmatched, map, filter, context, xml) {\n      var elem,\n        newUnmatched = [],\n        i = 0,\n        len = unmatched.length,\n        mapped = map != null;\n      for (; i < len; i++) {\n        if (elem = unmatched[i]) {\n          if (!filter || filter(elem, context, xml)) {\n            newUnmatched.push(elem);\n            if (mapped) {\n              map.push(i);\n            }\n          }\n        }\n      }\n      return newUnmatched;\n    }\n    function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n      if (postFilter && !postFilter[expando]) {\n        postFilter = setMatcher(postFilter);\n      }\n      if (postFinder && !postFinder[expando]) {\n        postFinder = setMatcher(postFinder, postSelector);\n      }\n      return markFunction(function (seed, results, context, xml) {\n        var temp,\n          i,\n          elem,\n          matcherOut,\n          preMap = [],\n          postMap = [],\n          preexisting = results.length,\n          // Get initial elements from seed or context\n          elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n          // Prefilter to get matcher input, preserving a map for seed-results synchronization\n          matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems;\n        if (matcher) {\n          // If we have a postFinder, or filtered seed, or non-seed postFilter\n          // or preexisting results,\n          matcherOut = postFinder || (seed ? preFilter : preexisting || postFilter) ?\n          // ...intermediate processing is necessary\n          [] :\n          // ...otherwise use results directly\n          results;\n\n          // Find primary matches\n          matcher(matcherIn, matcherOut, context, xml);\n        } else {\n          matcherOut = matcherIn;\n        }\n\n        // Apply postFilter\n        if (postFilter) {\n          temp = condense(matcherOut, postMap);\n          postFilter(temp, [], context, xml);\n\n          // Un-match failing elements by moving them back to matcherIn\n          i = temp.length;\n          while (i--) {\n            if (elem = temp[i]) {\n              matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n            }\n          }\n        }\n        if (seed) {\n          if (postFinder || preFilter) {\n            if (postFinder) {\n              // Get the final matcherOut by condensing this intermediate into postFinder contexts\n              temp = [];\n              i = matcherOut.length;\n              while (i--) {\n                if (elem = matcherOut[i]) {\n                  // Restore matcherIn since elem is not yet a final match\n                  temp.push(matcherIn[i] = elem);\n                }\n              }\n              postFinder(null, matcherOut = [], temp, xml);\n            }\n\n            // Move matched elements from seed to results to keep them synchronized\n            i = matcherOut.length;\n            while (i--) {\n              if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf.call(seed, elem) : preMap[i]) > -1) {\n                seed[temp] = !(results[temp] = elem);\n              }\n            }\n          }\n\n          // Add elements to results, through postFinder if defined\n        } else {\n          matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n          if (postFinder) {\n            postFinder(null, results, matcherOut, xml);\n          } else {\n            push.apply(results, matcherOut);\n          }\n        }\n      });\n    }\n    function matcherFromTokens(tokens) {\n      var checkContext,\n        matcher,\n        j,\n        len = tokens.length,\n        leadingRelative = Expr.relative[tokens[0].type],\n        implicitRelative = leadingRelative || Expr.relative[\" \"],\n        i = leadingRelative ? 1 : 0,\n        // The foundational matcher ensures that elements are reachable from top-level context(s)\n        matchContext = addCombinator(function (elem) {\n          return elem === checkContext;\n        }, implicitRelative, true),\n        matchAnyContext = addCombinator(function (elem) {\n          return indexOf.call(checkContext, elem) > -1;\n        }, implicitRelative, true),\n        matchers = [function (elem, context, xml) {\n          // Support: IE 11+, Edge 17 - 18+\n          // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n          // two documents; shallow comparisons work.\n          // eslint-disable-next-line eqeqeq\n          var ret = !leadingRelative && (xml || context != outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml));\n\n          // Avoid hanging onto element\n          // (see https://github.com/jquery/sizzle/issues/299)\n          checkContext = null;\n          return ret;\n        }];\n      for (; i < len; i++) {\n        if (matcher = Expr.relative[tokens[i].type]) {\n          matchers = [addCombinator(elementMatcher(matchers), matcher)];\n        } else {\n          matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches);\n\n          // Return special upon seeing a positional matcher\n          if (matcher[expando]) {\n            // Find the next relative operator (if any) for proper handling\n            j = ++i;\n            for (; j < len; j++) {\n              if (Expr.relative[tokens[j].type]) {\n                break;\n              }\n            }\n            return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector(\n            // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n            tokens.slice(0, i - 1).concat({\n              value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n            })).replace(rtrimCSS, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n          }\n          matchers.push(matcher);\n        }\n      }\n      return elementMatcher(matchers);\n    }\n    function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n      var bySet = setMatchers.length > 0,\n        byElement = elementMatchers.length > 0,\n        superMatcher = function (seed, context, xml, results, outermost) {\n          var elem,\n            j,\n            matcher,\n            matchedCount = 0,\n            i = \"0\",\n            unmatched = seed && [],\n            setMatched = [],\n            contextBackup = outermostContext,\n            // We must always have either seed elements or outermost context\n            elems = seed || byElement && Expr.find.TAG(\"*\", outermost),\n            // Use integer dirruns iff this is the outermost matcher\n            dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n            len = elems.length;\n          if (outermost) {\n            // Support: IE 11+, Edge 17 - 18+\n            // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n            // two documents; shallow comparisons work.\n            // eslint-disable-next-line eqeqeq\n            outermostContext = context == document || context || outermost;\n          }\n\n          // Add elements passing elementMatchers directly to results\n          // Support: iOS <=7 - 9 only\n          // Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching\n          // elements by id. (see trac-14142)\n          for (; i !== len && (elem = elems[i]) != null; i++) {\n            if (byElement && elem) {\n              j = 0;\n\n              // Support: IE 11+, Edge 17 - 18+\n              // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n              // two documents; shallow comparisons work.\n              // eslint-disable-next-line eqeqeq\n              if (!context && elem.ownerDocument != document) {\n                setDocument(elem);\n                xml = !documentIsHTML;\n              }\n              while (matcher = elementMatchers[j++]) {\n                if (matcher(elem, context || document, xml)) {\n                  push.call(results, elem);\n                  break;\n                }\n              }\n              if (outermost) {\n                dirruns = dirrunsUnique;\n              }\n            }\n\n            // Track unmatched elements for set filters\n            if (bySet) {\n              // They will have gone through all possible matchers\n              if (elem = !matcher && elem) {\n                matchedCount--;\n              }\n\n              // Lengthen the array for every element, matched or not\n              if (seed) {\n                unmatched.push(elem);\n              }\n            }\n          }\n\n          // `i` is now the count of elements visited above, and adding it to `matchedCount`\n          // makes the latter nonnegative.\n          matchedCount += i;\n\n          // Apply set filters to unmatched elements\n          // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n          // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n          // no element matchers and no seed.\n          // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n          // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n          // numerically zero.\n          if (bySet && i !== matchedCount) {\n            j = 0;\n            while (matcher = setMatchers[j++]) {\n              matcher(unmatched, setMatched, context, xml);\n            }\n            if (seed) {\n              // Reintegrate element matches to eliminate the need for sorting\n              if (matchedCount > 0) {\n                while (i--) {\n                  if (!(unmatched[i] || setMatched[i])) {\n                    setMatched[i] = pop.call(results);\n                  }\n                }\n              }\n\n              // Discard index placeholder values to get only actual matches\n              setMatched = condense(setMatched);\n            }\n\n            // Add matches to results\n            push.apply(results, setMatched);\n\n            // Seedless set matches succeeding multiple successful matchers stipulate sorting\n            if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n              jQuery.uniqueSort(results);\n            }\n          }\n\n          // Override manipulation of globals by nested matchers\n          if (outermost) {\n            dirruns = dirrunsUnique;\n            outermostContext = contextBackup;\n          }\n          return unmatched;\n        };\n      return bySet ? markFunction(superMatcher) : superMatcher;\n    }\n    function compile(selector, match /* Internal Use Only */) {\n      var i,\n        setMatchers = [],\n        elementMatchers = [],\n        cached = compilerCache[selector + \" \"];\n      if (!cached) {\n        // Generate a function of recursive functions that can be used to check each element\n        if (!match) {\n          match = tokenize(selector);\n        }\n        i = match.length;\n        while (i--) {\n          cached = matcherFromTokens(match[i]);\n          if (cached[expando]) {\n            setMatchers.push(cached);\n          } else {\n            elementMatchers.push(cached);\n          }\n        }\n\n        // Cache the compiled function\n        cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers));\n\n        // Save selector and tokenization\n        cached.selector = selector;\n      }\n      return cached;\n    }\n\n    /**\n     * A low-level selection function that works with jQuery's compiled\n     *  selector functions\n     * @param {String|Function} selector A selector or a pre-compiled\n     *  selector function built with jQuery selector compile\n     * @param {Element} context\n     * @param {Array} [results]\n     * @param {Array} [seed] A set of elements to match against\n     */\n    function select(selector, context, results, seed) {\n      var i,\n        tokens,\n        token,\n        type,\n        find,\n        compiled = typeof selector === \"function\" && selector,\n        match = !seed && tokenize(selector = compiled.selector || selector);\n      results = results || [];\n\n      // Try to minimize operations if there is only one selector in the list and no seed\n      // (the latter of which guarantees us context)\n      if (match.length === 1) {\n        // Reduce context if the leading compound selector is an ID\n        tokens = match[0] = match[0].slice(0);\n        if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n          context = (Expr.find.ID(token.matches[0].replace(runescape, funescape), context) || [])[0];\n          if (!context) {\n            return results;\n\n            // Precompiled matchers will still verify ancestry, so step up a level\n          } else if (compiled) {\n            context = context.parentNode;\n          }\n          selector = selector.slice(tokens.shift().value.length);\n        }\n\n        // Fetch a seed set for right-to-left matching\n        i = matchExpr.needsContext.test(selector) ? 0 : tokens.length;\n        while (i--) {\n          token = tokens[i];\n\n          // Abort if we hit a combinator\n          if (Expr.relative[type = token.type]) {\n            break;\n          }\n          if (find = Expr.find[type]) {\n            // Search, expanding context for leading sibling combinators\n            if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n              // If seed is empty or no tokens remain, we can return early\n              tokens.splice(i, 1);\n              selector = seed.length && toSelector(tokens);\n              if (!selector) {\n                push.apply(results, seed);\n                return results;\n              }\n              break;\n            }\n          }\n        }\n      }\n\n      // Compile and execute a filtering function if one is not provided\n      // Provide `match` to avoid retokenization if we modified the selector above\n      (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n      return results;\n    }\n\n    // One-time assignments\n\n    // Support: Android <=4.0 - 4.1+\n    // Sort stability\n    support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando;\n\n    // Initialize against the default document\n    setDocument();\n\n    // Support: Android <=4.0 - 4.1+\n    // Detached nodes confoundingly follow *each other*\n    support.sortDetached = assert(function (el) {\n      // Should return 1, but returns 4 (following)\n      return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n    });\n    jQuery.find = find;\n\n    // Deprecated\n    jQuery.expr[\":\"] = jQuery.expr.pseudos;\n    jQuery.unique = jQuery.uniqueSort;\n\n    // These have always been private, but they used to be documented as part of\n    // Sizzle so let's maintain them for now for backwards compatibility purposes.\n    find.compile = compile;\n    find.select = select;\n    find.setDocument = setDocument;\n    find.tokenize = tokenize;\n    find.escape = jQuery.escapeSelector;\n    find.getText = jQuery.text;\n    find.isXML = jQuery.isXMLDoc;\n    find.selectors = jQuery.expr;\n    find.support = jQuery.support;\n    find.uniqueSort = jQuery.uniqueSort;\n\n    /* eslint-enable */\n  })();\n  var dir = function (elem, dir, until) {\n    var matched = [],\n      truncate = until !== undefined;\n    while ((elem = elem[dir]) && elem.nodeType !== 9) {\n      if (elem.nodeType === 1) {\n        if (truncate && jQuery(elem).is(until)) {\n          break;\n        }\n        matched.push(elem);\n      }\n    }\n    return matched;\n  };\n  var siblings = function (n, elem) {\n    var matched = [];\n    for (; n; n = n.nextSibling) {\n      if (n.nodeType === 1 && n !== elem) {\n        matched.push(n);\n      }\n    }\n    return matched;\n  };\n  var rneedsContext = jQuery.expr.match.needsContext;\n  var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i;\n\n  // Implement the identical functionality for filter and not\n  function winnow(elements, qualifier, not) {\n    if (isFunction(qualifier)) {\n      return jQuery.grep(elements, function (elem, i) {\n        return !!qualifier.call(elem, i, elem) !== not;\n      });\n    }\n\n    // Single element\n    if (qualifier.nodeType) {\n      return jQuery.grep(elements, function (elem) {\n        return elem === qualifier !== not;\n      });\n    }\n\n    // Arraylike of elements (jQuery, arguments, Array)\n    if (typeof qualifier !== \"string\") {\n      return jQuery.grep(elements, function (elem) {\n        return indexOf.call(qualifier, elem) > -1 !== not;\n      });\n    }\n\n    // Filtered directly for both simple and complex selectors\n    return jQuery.filter(qualifier, elements, not);\n  }\n  jQuery.filter = function (expr, elems, not) {\n    var elem = elems[0];\n    if (not) {\n      expr = \":not(\" + expr + \")\";\n    }\n    if (elems.length === 1 && elem.nodeType === 1) {\n      return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n    }\n    return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n      return elem.nodeType === 1;\n    }));\n  };\n  jQuery.fn.extend({\n    find: function (selector) {\n      var i,\n        ret,\n        len = this.length,\n        self = this;\n      if (typeof selector !== \"string\") {\n        return this.pushStack(jQuery(selector).filter(function () {\n          for (i = 0; i < len; i++) {\n            if (jQuery.contains(self[i], this)) {\n              return true;\n            }\n          }\n        }));\n      }\n      ret = this.pushStack([]);\n      for (i = 0; i < len; i++) {\n        jQuery.find(selector, self[i], ret);\n      }\n      return len > 1 ? jQuery.uniqueSort(ret) : ret;\n    },\n    filter: function (selector) {\n      return this.pushStack(winnow(this, selector || [], false));\n    },\n    not: function (selector) {\n      return this.pushStack(winnow(this, selector || [], true));\n    },\n    is: function (selector) {\n      return !!winnow(this,\n      // If this is a positional/relative selector, check membership in the returned set\n      // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n      typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n    }\n  });\n\n  // Initialize a jQuery object\n\n  // A central reference to the root jQuery(document)\n  var rootjQuery,\n    // A simple way to check for HTML strings\n    // Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)\n    // Strict HTML recognition (trac-11290: must start with <)\n    // Shortcut simple #id case for speed\n    rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n    init = jQuery.fn.init = function (selector, context, root) {\n      var match, elem;\n\n      // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n      if (!selector) {\n        return this;\n      }\n\n      // Method init() accepts an alternate rootjQuery\n      // so migrate can support jQuery.sub (gh-2101)\n      root = root || rootjQuery;\n\n      // Handle HTML strings\n      if (typeof selector === \"string\") {\n        if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n          // Assume that strings that start and end with <> are HTML and skip the regex check\n          match = [null, selector, null];\n        } else {\n          match = rquickExpr.exec(selector);\n        }\n\n        // Match html or make sure no context is specified for #id\n        if (match && (match[1] || !context)) {\n          // HANDLE: $(html) -> $(array)\n          if (match[1]) {\n            context = context instanceof jQuery ? context[0] : context;\n\n            // Option to run scripts is true for back-compat\n            // Intentionally let the error be thrown if parseHTML is not present\n            jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true));\n\n            // HANDLE: $(html, props)\n            if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n              for (match in context) {\n                // Properties of context are called as methods if possible\n                if (isFunction(this[match])) {\n                  this[match](context[match]);\n\n                  // ...and otherwise set as attributes\n                } else {\n                  this.attr(match, context[match]);\n                }\n              }\n            }\n            return this;\n\n            // HANDLE: $(#id)\n          } else {\n            elem = document.getElementById(match[2]);\n            if (elem) {\n              // Inject the element directly into the jQuery object\n              this[0] = elem;\n              this.length = 1;\n            }\n            return this;\n          }\n\n          // HANDLE: $(expr, $(...))\n        } else if (!context || context.jquery) {\n          return (context || root).find(selector);\n\n          // HANDLE: $(expr, context)\n          // (which is just equivalent to: $(context).find(expr)\n        } else {\n          return this.constructor(context).find(selector);\n        }\n\n        // HANDLE: $(DOMElement)\n      } else if (selector.nodeType) {\n        this[0] = selector;\n        this.length = 1;\n        return this;\n\n        // HANDLE: $(function)\n        // Shortcut for document ready\n      } else if (isFunction(selector)) {\n        return root.ready !== undefined ? root.ready(selector) :\n        // Execute immediately if ready is not present\n        selector(jQuery);\n      }\n      return jQuery.makeArray(selector, this);\n    };\n\n  // Give the init function the jQuery prototype for later instantiation\n  init.prototype = jQuery.fn;\n\n  // Initialize central reference\n  rootjQuery = jQuery(document);\n  var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n    // Methods guaranteed to produce a unique set when starting from a unique set\n    guaranteedUnique = {\n      children: true,\n      contents: true,\n      next: true,\n      prev: true\n    };\n  jQuery.fn.extend({\n    has: function (target) {\n      var targets = jQuery(target, this),\n        l = targets.length;\n      return this.filter(function () {\n        var i = 0;\n        for (; i < l; i++) {\n          if (jQuery.contains(this, targets[i])) {\n            return true;\n          }\n        }\n      });\n    },\n    closest: function (selectors, context) {\n      var cur,\n        i = 0,\n        l = this.length,\n        matched = [],\n        targets = typeof selectors !== \"string\" && jQuery(selectors);\n\n      // Positional selectors never match, since there's no _selection_ context\n      if (!rneedsContext.test(selectors)) {\n        for (; i < l; i++) {\n          for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n            // Always skip document fragments\n            if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 :\n            // Don't pass non-elements to jQuery#find\n            cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n              matched.push(cur);\n              break;\n            }\n          }\n        }\n      }\n      return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n    },\n    // Determine the position of an element within the set\n    index: function (elem) {\n      // No argument, return index in parent\n      if (!elem) {\n        return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n      }\n\n      // Index in selector\n      if (typeof elem === \"string\") {\n        return indexOf.call(jQuery(elem), this[0]);\n      }\n\n      // Locate the position of the desired element\n      return indexOf.call(this,\n      // If it receives a jQuery object, the first element is used\n      elem.jquery ? elem[0] : elem);\n    },\n    add: function (selector, context) {\n      return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n    },\n    addBack: function (selector) {\n      return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n    }\n  });\n  function sibling(cur, dir) {\n    while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n    return cur;\n  }\n  jQuery.each({\n    parent: function (elem) {\n      var parent = elem.parentNode;\n      return parent && parent.nodeType !== 11 ? parent : null;\n    },\n    parents: function (elem) {\n      return dir(elem, \"parentNode\");\n    },\n    parentsUntil: function (elem, _i, until) {\n      return dir(elem, \"parentNode\", until);\n    },\n    next: function (elem) {\n      return sibling(elem, \"nextSibling\");\n    },\n    prev: function (elem) {\n      return sibling(elem, \"previousSibling\");\n    },\n    nextAll: function (elem) {\n      return dir(elem, \"nextSibling\");\n    },\n    prevAll: function (elem) {\n      return dir(elem, \"previousSibling\");\n    },\n    nextUntil: function (elem, _i, until) {\n      return dir(elem, \"nextSibling\", until);\n    },\n    prevUntil: function (elem, _i, until) {\n      return dir(elem, \"previousSibling\", until);\n    },\n    siblings: function (elem) {\n      return siblings((elem.parentNode || {}).firstChild, elem);\n    },\n    children: function (elem) {\n      return siblings(elem.firstChild);\n    },\n    contents: function (elem) {\n      if (elem.contentDocument != null &&\n      // Support: IE 11+\n      // <object> elements with no `data` attribute has an object\n      // `contentDocument` with a `null` prototype.\n      getProto(elem.contentDocument)) {\n        return elem.contentDocument;\n      }\n\n      // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n      // Treat the template element as a regular one in browsers that\n      // don't support it.\n      if (nodeName(elem, \"template\")) {\n        elem = elem.content || elem;\n      }\n      return jQuery.merge([], elem.childNodes);\n    }\n  }, function (name, fn) {\n    jQuery.fn[name] = function (until, selector) {\n      var matched = jQuery.map(this, fn, until);\n      if (name.slice(-5) !== \"Until\") {\n        selector = until;\n      }\n      if (selector && typeof selector === \"string\") {\n        matched = jQuery.filter(selector, matched);\n      }\n      if (this.length > 1) {\n        // Remove duplicates\n        if (!guaranteedUnique[name]) {\n          jQuery.uniqueSort(matched);\n        }\n\n        // Reverse order for parents* and prev-derivatives\n        if (rparentsprev.test(name)) {\n          matched.reverse();\n        }\n      }\n      return this.pushStack(matched);\n    };\n  });\n  var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g;\n\n  // Convert String-formatted options into Object-formatted ones\n  function createOptions(options) {\n    var object = {};\n    jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n      object[flag] = true;\n    });\n    return object;\n  }\n\n  /*\n   * Create a callback list using the following parameters:\n   *\n   *\toptions: an optional list of space-separated options that will change how\n   *\t\t\tthe callback list behaves or a more traditional option object\n   *\n   * By default a callback list will act like an event callback list and can be\n   * \"fired\" multiple times.\n   *\n   * Possible options:\n   *\n   *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n   *\n   *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n   *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n   *\t\t\t\t\tvalues (like a Deferred)\n   *\n   *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n   *\n   *\tstopOnFalse:\tinterrupt callings when a callback returns false\n   *\n   */\n  jQuery.Callbacks = function (options) {\n    // Convert options from String-formatted to Object-formatted if needed\n    // (we check in cache first)\n    options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n    var\n      // Flag to know if list is currently firing\n      firing,\n      // Last fire value for non-forgettable lists\n      memory,\n      // Flag to know if list was already fired\n      fired,\n      // Flag to prevent firing\n      locked,\n      // Actual callback list\n      list = [],\n      // Queue of execution data for repeatable lists\n      queue = [],\n      // Index of currently firing callback (modified by add/remove as needed)\n      firingIndex = -1,\n      // Fire callbacks\n      fire = function () {\n        // Enforce single-firing\n        locked = locked || options.once;\n\n        // Execute callbacks for all pending executions,\n        // respecting firingIndex overrides and runtime changes\n        fired = firing = true;\n        for (; queue.length; firingIndex = -1) {\n          memory = queue.shift();\n          while (++firingIndex < list.length) {\n            // Run callback and check for early termination\n            if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n              // Jump to end and forget the data so .add doesn't re-fire\n              firingIndex = list.length;\n              memory = false;\n            }\n          }\n        }\n\n        // Forget the data if we're done with it\n        if (!options.memory) {\n          memory = false;\n        }\n        firing = false;\n\n        // Clean up if we're done firing for good\n        if (locked) {\n          // Keep an empty list if we have data for future add calls\n          if (memory) {\n            list = [];\n\n            // Otherwise, this object is spent\n          } else {\n            list = \"\";\n          }\n        }\n      },\n      // Actual Callbacks object\n      self = {\n        // Add a callback or a collection of callbacks to the list\n        add: function () {\n          if (list) {\n            // If we have memory from a past run, we should fire after adding\n            if (memory && !firing) {\n              firingIndex = list.length - 1;\n              queue.push(memory);\n            }\n            (function add(args) {\n              jQuery.each(args, function (_, arg) {\n                if (isFunction(arg)) {\n                  if (!options.unique || !self.has(arg)) {\n                    list.push(arg);\n                  }\n                } else if (arg && arg.length && toType(arg) !== \"string\") {\n                  // Inspect recursively\n                  add(arg);\n                }\n              });\n            })(arguments);\n            if (memory && !firing) {\n              fire();\n            }\n          }\n          return this;\n        },\n        // Remove a callback from the list\n        remove: function () {\n          jQuery.each(arguments, function (_, arg) {\n            var index;\n            while ((index = jQuery.inArray(arg, list, index)) > -1) {\n              list.splice(index, 1);\n\n              // Handle firing indexes\n              if (index <= firingIndex) {\n                firingIndex--;\n              }\n            }\n          });\n          return this;\n        },\n        // Check if a given callback is in the list.\n        // If no argument is given, return whether or not list has callbacks attached.\n        has: function (fn) {\n          return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n        },\n        // Remove all callbacks from the list\n        empty: function () {\n          if (list) {\n            list = [];\n          }\n          return this;\n        },\n        // Disable .fire and .add\n        // Abort any current/pending executions\n        // Clear all callbacks and values\n        disable: function () {\n          locked = queue = [];\n          list = memory = \"\";\n          return this;\n        },\n        disabled: function () {\n          return !list;\n        },\n        // Disable .fire\n        // Also disable .add unless we have memory (since it would have no effect)\n        // Abort any pending executions\n        lock: function () {\n          locked = queue = [];\n          if (!memory && !firing) {\n            list = memory = \"\";\n          }\n          return this;\n        },\n        locked: function () {\n          return !!locked;\n        },\n        // Call all callbacks with the given context and arguments\n        fireWith: function (context, args) {\n          if (!locked) {\n            args = args || [];\n            args = [context, args.slice ? args.slice() : args];\n            queue.push(args);\n            if (!firing) {\n              fire();\n            }\n          }\n          return this;\n        },\n        // Call all the callbacks with the given arguments\n        fire: function () {\n          self.fireWith(this, arguments);\n          return this;\n        },\n        // To know if the callbacks have already been called at least once\n        fired: function () {\n          return !!fired;\n        }\n      };\n    return self;\n  };\n  function Identity(v) {\n    return v;\n  }\n  function Thrower(ex) {\n    throw ex;\n  }\n  function adoptValue(value, resolve, reject, noValue) {\n    var method;\n    try {\n      // Check for promise aspect first to privilege synchronous behavior\n      if (value && isFunction(method = value.promise)) {\n        method.call(value).done(resolve).fail(reject);\n\n        // Other thenables\n      } else if (value && isFunction(method = value.then)) {\n        method.call(value, resolve, reject);\n\n        // Other non-thenables\n      } else {\n        // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n        // * false: [ value ].slice( 0 ) => resolve( value )\n        // * true: [ value ].slice( 1 ) => resolve()\n        resolve.apply(undefined, [value].slice(noValue));\n      }\n\n      // For Promises/A+, convert exceptions into rejections\n      // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n      // Deferred#then to conditionally suppress rejection.\n    } catch (value) {\n      // Support: Android 4.0 only\n      // Strict mode functions invoked without .call/.apply get global-object context\n      reject.apply(undefined, [value]);\n    }\n  }\n  jQuery.extend({\n    Deferred: function (func) {\n      var tuples = [\n        // action, add listener, callbacks,\n        // ... .then handlers, argument index, [final state]\n        [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n        state = \"pending\",\n        promise = {\n          state: function () {\n            return state;\n          },\n          always: function () {\n            deferred.done(arguments).fail(arguments);\n            return this;\n          },\n          \"catch\": function (fn) {\n            return promise.then(null, fn);\n          },\n          // Keep pipe for back-compat\n          pipe: function /* fnDone, fnFail, fnProgress */\n          () {\n            var fns = arguments;\n            return jQuery.Deferred(function (newDefer) {\n              jQuery.each(tuples, function (_i, tuple) {\n                // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n                var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]];\n\n                // deferred.progress(function() { bind to newDefer or newDefer.notify })\n                // deferred.done(function() { bind to newDefer or newDefer.resolve })\n                // deferred.fail(function() { bind to newDefer or newDefer.reject })\n                deferred[tuple[1]](function () {\n                  var returned = fn && fn.apply(this, arguments);\n                  if (returned && isFunction(returned.promise)) {\n                    returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n                  } else {\n                    newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n                  }\n                });\n              });\n              fns = null;\n            }).promise();\n          },\n          then: function (onFulfilled, onRejected, onProgress) {\n            var maxDepth = 0;\n            function resolve(depth, deferred, handler, special) {\n              return function () {\n                var that = this,\n                  args = arguments,\n                  mightThrow = function () {\n                    var returned, then;\n\n                    // Support: Promises/A+ section 2.3.3.3.3\n                    // https://promisesaplus.com/#point-59\n                    // Ignore double-resolution attempts\n                    if (depth < maxDepth) {\n                      return;\n                    }\n                    returned = handler.apply(that, args);\n\n                    // Support: Promises/A+ section 2.3.1\n                    // https://promisesaplus.com/#point-48\n                    if (returned === deferred.promise()) {\n                      throw new TypeError(\"Thenable self-resolution\");\n                    }\n\n                    // Support: Promises/A+ sections 2.3.3.1, 3.5\n                    // https://promisesaplus.com/#point-54\n                    // https://promisesaplus.com/#point-75\n                    // Retrieve `then` only once\n                    then = returned && (\n                    // Support: Promises/A+ section 2.3.4\n                    // https://promisesaplus.com/#point-64\n                    // Only check objects and functions for thenability\n                    typeof returned === \"object\" || typeof returned === \"function\") && returned.then;\n\n                    // Handle a returned thenable\n                    if (isFunction(then)) {\n                      // Special processors (notify) just wait for resolution\n                      if (special) {\n                        then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special));\n\n                        // Normal processors (resolve) also hook into progress\n                      } else {\n                        // ...and disregard older resolution values\n                        maxDepth++;\n                        then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n                      }\n\n                      // Handle all other returned values\n                    } else {\n                      // Only substitute handlers pass on context\n                      // and multiple values (non-spec behavior)\n                      if (handler !== Identity) {\n                        that = undefined;\n                        args = [returned];\n                      }\n\n                      // Process the value(s)\n                      // Default process is resolve\n                      (special || deferred.resolveWith)(that, args);\n                    }\n                  },\n                  // Only normal processors (resolve) catch and reject exceptions\n                  process = special ? mightThrow : function () {\n                    try {\n                      mightThrow();\n                    } catch (e) {\n                      if (jQuery.Deferred.exceptionHook) {\n                        jQuery.Deferred.exceptionHook(e, process.error);\n                      }\n\n                      // Support: Promises/A+ section 2.3.3.3.4.1\n                      // https://promisesaplus.com/#point-61\n                      // Ignore post-resolution exceptions\n                      if (depth + 1 >= maxDepth) {\n                        // Only substitute handlers pass on context\n                        // and multiple values (non-spec behavior)\n                        if (handler !== Thrower) {\n                          that = undefined;\n                          args = [e];\n                        }\n                        deferred.rejectWith(that, args);\n                      }\n                    }\n                  };\n\n                // Support: Promises/A+ section 2.3.3.3.1\n                // https://promisesaplus.com/#point-57\n                // Re-resolve promises immediately to dodge false rejection from\n                // subsequent errors\n                if (depth) {\n                  process();\n                } else {\n                  // Call an optional hook to record the error, in case of exception\n                  // since it's otherwise lost when execution goes async\n                  if (jQuery.Deferred.getErrorHook) {\n                    process.error = jQuery.Deferred.getErrorHook();\n\n                    // The deprecated alias of the above. While the name suggests\n                    // returning the stack, not an error instance, jQuery just passes\n                    // it directly to `console.warn` so both will work; an instance\n                    // just better cooperates with source maps.\n                  } else if (jQuery.Deferred.getStackHook) {\n                    process.error = jQuery.Deferred.getStackHook();\n                  }\n                  window.setTimeout(process);\n                }\n              };\n            }\n            return jQuery.Deferred(function (newDefer) {\n              // progress_handlers.add( ... )\n              tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith));\n\n              // fulfilled_handlers.add( ... )\n              tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity));\n\n              // rejected_handlers.add( ... )\n              tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n            }).promise();\n          },\n          // Get a promise for this deferred\n          // If obj is provided, the promise aspect is added to the object\n          promise: function (obj) {\n            return obj != null ? jQuery.extend(obj, promise) : promise;\n          }\n        },\n        deferred = {};\n\n      // Add list-specific methods\n      jQuery.each(tuples, function (i, tuple) {\n        var list = tuple[2],\n          stateString = tuple[5];\n\n        // promise.progress = list.add\n        // promise.done = list.add\n        // promise.fail = list.add\n        promise[tuple[1]] = list.add;\n\n        // Handle state\n        if (stateString) {\n          list.add(function () {\n            // state = \"resolved\" (i.e., fulfilled)\n            // state = \"rejected\"\n            state = stateString;\n          },\n          // rejected_callbacks.disable\n          // fulfilled_callbacks.disable\n          tuples[3 - i][2].disable,\n          // rejected_handlers.disable\n          // fulfilled_handlers.disable\n          tuples[3 - i][3].disable,\n          // progress_callbacks.lock\n          tuples[0][2].lock,\n          // progress_handlers.lock\n          tuples[0][3].lock);\n        }\n\n        // progress_handlers.fire\n        // fulfilled_handlers.fire\n        // rejected_handlers.fire\n        list.add(tuple[3].fire);\n\n        // deferred.notify = function() { deferred.notifyWith(...) }\n        // deferred.resolve = function() { deferred.resolveWith(...) }\n        // deferred.reject = function() { deferred.rejectWith(...) }\n        deferred[tuple[0]] = function () {\n          deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n          return this;\n        };\n\n        // deferred.notifyWith = list.fireWith\n        // deferred.resolveWith = list.fireWith\n        // deferred.rejectWith = list.fireWith\n        deferred[tuple[0] + \"With\"] = list.fireWith;\n      });\n\n      // Make the deferred a promise\n      promise.promise(deferred);\n\n      // Call given func if any\n      if (func) {\n        func.call(deferred, deferred);\n      }\n\n      // All done!\n      return deferred;\n    },\n    // Deferred helper\n    when: function (singleValue) {\n      var\n        // count of uncompleted subordinates\n        remaining = arguments.length,\n        // count of unprocessed arguments\n        i = remaining,\n        // subordinate fulfillment data\n        resolveContexts = Array(i),\n        resolveValues = slice.call(arguments),\n        // the primary Deferred\n        primary = jQuery.Deferred(),\n        // subordinate callback factory\n        updateFunc = function (i) {\n          return function (value) {\n            resolveContexts[i] = this;\n            resolveValues[i] = arguments.length > 1 ? slice.call(arguments) : value;\n            if (! --remaining) {\n              primary.resolveWith(resolveContexts, resolveValues);\n            }\n          };\n        };\n\n      // Single- and empty arguments are adopted like Promise.resolve\n      if (remaining <= 1) {\n        adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining);\n\n        // Use .then() to unwrap secondary thenables (cf. gh-3000)\n        if (primary.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n          return primary.then();\n        }\n      }\n\n      // Multiple arguments are aggregated like Promise.all array elements\n      while (i--) {\n        adoptValue(resolveValues[i], updateFunc(i), primary.reject);\n      }\n      return primary.promise();\n    }\n  });\n\n  // These usually indicate a programmer mistake during development,\n  // warn about them ASAP rather than swallowing them by default.\n  var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n  // If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n  // captured before the async barrier to get the original error cause\n  // which may otherwise be hidden.\n  jQuery.Deferred.exceptionHook = function (error, asyncError) {\n    // Support: IE 8 - 9 only\n    // Console exists when dev tools are open, which can happen at any time\n    if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n      window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, asyncError);\n    }\n  };\n  jQuery.readyException = function (error) {\n    window.setTimeout(function () {\n      throw error;\n    });\n  };\n\n  // The deferred used on DOM ready\n  var readyList = jQuery.Deferred();\n  jQuery.fn.ready = function (fn) {\n    readyList.then(fn)\n\n    // Wrap jQuery.readyException in a function so that the lookup\n    // happens at the time of error handling instead of callback\n    // registration.\n    .catch(function (error) {\n      jQuery.readyException(error);\n    });\n    return this;\n  };\n  jQuery.extend({\n    // Is the DOM ready to be used? Set to true once it occurs.\n    isReady: false,\n    // A counter to track how many items to wait for before\n    // the ready event fires. See trac-6781\n    readyWait: 1,\n    // Handle when the DOM is ready\n    ready: function (wait) {\n      // Abort if there are pending holds or we're already ready\n      if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n        return;\n      }\n\n      // Remember that the DOM is ready\n      jQuery.isReady = true;\n\n      // If a normal DOM Ready event fired, decrement, and wait if need be\n      if (wait !== true && --jQuery.readyWait > 0) {\n        return;\n      }\n\n      // If there are functions bound, to execute\n      readyList.resolveWith(document, [jQuery]);\n    }\n  });\n  jQuery.ready.then = readyList.then;\n\n  // The ready event handler and self cleanup method\n  function completed() {\n    document.removeEventListener(\"DOMContentLoaded\", completed);\n    window.removeEventListener(\"load\", completed);\n    jQuery.ready();\n  }\n\n  // Catch cases where $(document).ready() is called\n  // after the browser event has already occurred.\n  // Support: IE <=9 - 10 only\n  // Older IE sometimes signals \"interactive\" too soon\n  if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n    // Handle it asynchronously to allow scripts the opportunity to delay ready\n    window.setTimeout(jQuery.ready);\n  } else {\n    // Use the handy event callback\n    document.addEventListener(\"DOMContentLoaded\", completed);\n\n    // A fallback to window.onload, that will always work\n    window.addEventListener(\"load\", completed);\n  }\n\n  // Multifunctional method to get and set values of a collection\n  // The value/s can optionally be executed if it's a function\n  var access = function (elems, fn, key, value, chainable, emptyGet, raw) {\n    var i = 0,\n      len = elems.length,\n      bulk = key == null;\n\n    // Sets many values\n    if (toType(key) === \"object\") {\n      chainable = true;\n      for (i in key) {\n        access(elems, fn, i, key[i], true, emptyGet, raw);\n      }\n\n      // Sets one value\n    } else if (value !== undefined) {\n      chainable = true;\n      if (!isFunction(value)) {\n        raw = true;\n      }\n      if (bulk) {\n        // Bulk operations run against the entire set\n        if (raw) {\n          fn.call(elems, value);\n          fn = null;\n\n          // ...except when executing function values\n        } else {\n          bulk = fn;\n          fn = function (elem, _key, value) {\n            return bulk.call(jQuery(elem), value);\n          };\n        }\n      }\n      if (fn) {\n        for (; i < len; i++) {\n          fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n        }\n      }\n    }\n    if (chainable) {\n      return elems;\n    }\n\n    // Gets\n    if (bulk) {\n      return fn.call(elems);\n    }\n    return len ? fn(elems[0], key) : emptyGet;\n  };\n\n  // Matches dashed string for camelizing\n  var rmsPrefix = /^-ms-/,\n    rdashAlpha = /-([a-z])/g;\n\n  // Used by camelCase as callback to replace()\n  function fcamelCase(_all, letter) {\n    return letter.toUpperCase();\n  }\n\n  // Convert dashed to camelCase; used by the css and data modules\n  // Support: IE <=9 - 11, Edge 12 - 15\n  // Microsoft forgot to hump their vendor prefix (trac-9572)\n  function camelCase(string) {\n    return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n  }\n  var acceptData = function (owner) {\n    // Accepts only:\n    //  - Node\n    //    - Node.ELEMENT_NODE\n    //    - Node.DOCUMENT_NODE\n    //  - Object\n    //    - Any\n    return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n  };\n  function Data() {\n    this.expando = jQuery.expando + Data.uid++;\n  }\n  Data.uid = 1;\n  Data.prototype = {\n    cache: function (owner) {\n      // Check if the owner object already has a cache\n      var value = owner[this.expando];\n\n      // If not, create one\n      if (!value) {\n        value = {};\n\n        // We can accept data for non-element nodes in modern browsers,\n        // but we should not, see trac-8335.\n        // Always return an empty object.\n        if (acceptData(owner)) {\n          // If it is a node unlikely to be stringify-ed or looped over\n          // use plain assignment\n          if (owner.nodeType) {\n            owner[this.expando] = value;\n\n            // Otherwise secure it in a non-enumerable property\n            // configurable must be true to allow the property to be\n            // deleted when data is removed\n          } else {\n            Object.defineProperty(owner, this.expando, {\n              value: value,\n              configurable: true\n            });\n          }\n        }\n      }\n      return value;\n    },\n    set: function (owner, data, value) {\n      var prop,\n        cache = this.cache(owner);\n\n      // Handle: [ owner, key, value ] args\n      // Always use camelCase key (gh-2257)\n      if (typeof data === \"string\") {\n        cache[camelCase(data)] = value;\n\n        // Handle: [ owner, { properties } ] args\n      } else {\n        // Copy the properties one-by-one to the cache object\n        for (prop in data) {\n          cache[camelCase(prop)] = data[prop];\n        }\n      }\n      return cache;\n    },\n    get: function (owner, key) {\n      return key === undefined ? this.cache(owner) :\n      // Always use camelCase key (gh-2257)\n      owner[this.expando] && owner[this.expando][camelCase(key)];\n    },\n    access: function (owner, key, value) {\n      // In cases where either:\n      //\n      //   1. No key was specified\n      //   2. A string key was specified, but no value provided\n      //\n      // Take the \"read\" path and allow the get method to determine\n      // which value to return, respectively either:\n      //\n      //   1. The entire cache object\n      //   2. The data stored at the key\n      //\n      if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n        return this.get(owner, key);\n      }\n\n      // When the key is not a string, or both a key and value\n      // are specified, set or extend (existing objects) with either:\n      //\n      //   1. An object of properties\n      //   2. A key and value\n      //\n      this.set(owner, key, value);\n\n      // Since the \"set\" path can have two possible entry points\n      // return the expected data based on which path was taken[*]\n      return value !== undefined ? value : key;\n    },\n    remove: function (owner, key) {\n      var i,\n        cache = owner[this.expando];\n      if (cache === undefined) {\n        return;\n      }\n      if (key !== undefined) {\n        // Support array or space separated string of keys\n        if (Array.isArray(key)) {\n          // If key is an array of keys...\n          // We always set camelCase keys, so remove that.\n          key = key.map(camelCase);\n        } else {\n          key = camelCase(key);\n\n          // If a key with the spaces exists, use it.\n          // Otherwise, create an array by matching non-whitespace\n          key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n        }\n        i = key.length;\n        while (i--) {\n          delete cache[key[i]];\n        }\n      }\n\n      // Remove the expando if there's no more data\n      if (key === undefined || jQuery.isEmptyObject(cache)) {\n        // Support: Chrome <=35 - 45\n        // Webkit & Blink performance suffers when deleting properties\n        // from DOM nodes, so set to undefined instead\n        // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n        if (owner.nodeType) {\n          owner[this.expando] = undefined;\n        } else {\n          delete owner[this.expando];\n        }\n      }\n    },\n    hasData: function (owner) {\n      var cache = owner[this.expando];\n      return cache !== undefined && !jQuery.isEmptyObject(cache);\n    }\n  };\n  var dataPriv = new Data();\n  var dataUser = new Data();\n\n  //\tImplementation Summary\n  //\n  //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n  //\t2. Improve the module's maintainability by reducing the storage\n  //\t\tpaths to a single mechanism.\n  //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n  //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n  //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n  //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n  var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n    rmultiDash = /[A-Z]/g;\n  function getData(data) {\n    if (data === \"true\") {\n      return true;\n    }\n    if (data === \"false\") {\n      return false;\n    }\n    if (data === \"null\") {\n      return null;\n    }\n\n    // Only convert to a number if it doesn't change the string\n    if (data === +data + \"\") {\n      return +data;\n    }\n    if (rbrace.test(data)) {\n      return JSON.parse(data);\n    }\n    return data;\n  }\n  function dataAttr(elem, key, data) {\n    var name;\n\n    // If nothing was found internally, try to fetch any\n    // data from the HTML5 data-* attribute\n    if (data === undefined && elem.nodeType === 1) {\n      name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n      data = elem.getAttribute(name);\n      if (typeof data === \"string\") {\n        try {\n          data = getData(data);\n        } catch (e) {}\n\n        // Make sure we set the data so it isn't changed later\n        dataUser.set(elem, key, data);\n      } else {\n        data = undefined;\n      }\n    }\n    return data;\n  }\n  jQuery.extend({\n    hasData: function (elem) {\n      return dataUser.hasData(elem) || dataPriv.hasData(elem);\n    },\n    data: function (elem, name, data) {\n      return dataUser.access(elem, name, data);\n    },\n    removeData: function (elem, name) {\n      dataUser.remove(elem, name);\n    },\n    // TODO: Now that all calls to _data and _removeData have been replaced\n    // with direct calls to dataPriv methods, these can be deprecated.\n    _data: function (elem, name, data) {\n      return dataPriv.access(elem, name, data);\n    },\n    _removeData: function (elem, name) {\n      dataPriv.remove(elem, name);\n    }\n  });\n  jQuery.fn.extend({\n    data: function (key, value) {\n      var i,\n        name,\n        data,\n        elem = this[0],\n        attrs = elem && elem.attributes;\n\n      // Gets all values\n      if (key === undefined) {\n        if (this.length) {\n          data = dataUser.get(elem);\n          if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n            i = attrs.length;\n            while (i--) {\n              // Support: IE 11 only\n              // The attrs elements can be null (trac-14894)\n              if (attrs[i]) {\n                name = attrs[i].name;\n                if (name.indexOf(\"data-\") === 0) {\n                  name = camelCase(name.slice(5));\n                  dataAttr(elem, name, data[name]);\n                }\n              }\n            }\n            dataPriv.set(elem, \"hasDataAttrs\", true);\n          }\n        }\n        return data;\n      }\n\n      // Sets multiple values\n      if (typeof key === \"object\") {\n        return this.each(function () {\n          dataUser.set(this, key);\n        });\n      }\n      return access(this, function (value) {\n        var data;\n\n        // The calling jQuery object (element matches) is not empty\n        // (and therefore has an element appears at this[ 0 ]) and the\n        // `value` parameter was not undefined. An empty jQuery object\n        // will result in `undefined` for elem = this[ 0 ] which will\n        // throw an exception if an attempt to read a data cache is made.\n        if (elem && value === undefined) {\n          // Attempt to get data from the cache\n          // The key will always be camelCased in Data\n          data = dataUser.get(elem, key);\n          if (data !== undefined) {\n            return data;\n          }\n\n          // Attempt to \"discover\" the data in\n          // HTML5 custom data-* attrs\n          data = dataAttr(elem, key);\n          if (data !== undefined) {\n            return data;\n          }\n\n          // We tried really hard, but the data doesn't exist.\n          return;\n        }\n\n        // Set the data...\n        this.each(function () {\n          // We always store the camelCased key\n          dataUser.set(this, key, value);\n        });\n      }, null, value, arguments.length > 1, null, true);\n    },\n    removeData: function (key) {\n      return this.each(function () {\n        dataUser.remove(this, key);\n      });\n    }\n  });\n  jQuery.extend({\n    queue: function (elem, type, data) {\n      var queue;\n      if (elem) {\n        type = (type || \"fx\") + \"queue\";\n        queue = dataPriv.get(elem, type);\n\n        // Speed up dequeue by getting out quickly if this is just a lookup\n        if (data) {\n          if (!queue || Array.isArray(data)) {\n            queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n          } else {\n            queue.push(data);\n          }\n        }\n        return queue || [];\n      }\n    },\n    dequeue: function (elem, type) {\n      type = type || \"fx\";\n      var queue = jQuery.queue(elem, type),\n        startLength = queue.length,\n        fn = queue.shift(),\n        hooks = jQuery._queueHooks(elem, type),\n        next = function () {\n          jQuery.dequeue(elem, type);\n        };\n\n      // If the fx queue is dequeued, always remove the progress sentinel\n      if (fn === \"inprogress\") {\n        fn = queue.shift();\n        startLength--;\n      }\n      if (fn) {\n        // Add a progress sentinel to prevent the fx queue from being\n        // automatically dequeued\n        if (type === \"fx\") {\n          queue.unshift(\"inprogress\");\n        }\n\n        // Clear up the last queue stop function\n        delete hooks.stop;\n        fn.call(elem, next, hooks);\n      }\n      if (!startLength && hooks) {\n        hooks.empty.fire();\n      }\n    },\n    // Not public - generate a queueHooks object, or return the current one\n    _queueHooks: function (elem, type) {\n      var key = type + \"queueHooks\";\n      return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n        empty: jQuery.Callbacks(\"once memory\").add(function () {\n          dataPriv.remove(elem, [type + \"queue\", key]);\n        })\n      });\n    }\n  });\n  jQuery.fn.extend({\n    queue: function (type, data) {\n      var setter = 2;\n      if (typeof type !== \"string\") {\n        data = type;\n        type = \"fx\";\n        setter--;\n      }\n      if (arguments.length < setter) {\n        return jQuery.queue(this[0], type);\n      }\n      return data === undefined ? this : this.each(function () {\n        var queue = jQuery.queue(this, type, data);\n\n        // Ensure a hooks for this queue\n        jQuery._queueHooks(this, type);\n        if (type === \"fx\" && queue[0] !== \"inprogress\") {\n          jQuery.dequeue(this, type);\n        }\n      });\n    },\n    dequeue: function (type) {\n      return this.each(function () {\n        jQuery.dequeue(this, type);\n      });\n    },\n    clearQueue: function (type) {\n      return this.queue(type || \"fx\", []);\n    },\n    // Get a promise resolved when queues of a certain type\n    // are emptied (fx is the type by default)\n    promise: function (type, obj) {\n      var tmp,\n        count = 1,\n        defer = jQuery.Deferred(),\n        elements = this,\n        i = this.length,\n        resolve = function () {\n          if (! --count) {\n            defer.resolveWith(elements, [elements]);\n          }\n        };\n      if (typeof type !== \"string\") {\n        obj = type;\n        type = undefined;\n      }\n      type = type || \"fx\";\n      while (i--) {\n        tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n        if (tmp && tmp.empty) {\n          count++;\n          tmp.empty.add(resolve);\n        }\n      }\n      resolve();\n      return defer.promise(obj);\n    }\n  });\n  var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n  var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n  var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n  var documentElement = document.documentElement;\n  var isAttached = function (elem) {\n      return jQuery.contains(elem.ownerDocument, elem);\n    },\n    composed = {\n      composed: true\n    };\n\n  // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n  // Check attachment across shadow DOM boundaries when possible (gh-3504)\n  // Support: iOS 10.0-10.2 only\n  // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n  // leading to errors. We need to check for `getRootNode`.\n  if (documentElement.getRootNode) {\n    isAttached = function (elem) {\n      return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n    };\n  }\n  var isHiddenWithinTree = function (elem, el) {\n    // isHiddenWithinTree might be called from jQuery#filter function;\n    // in that case, element will be second argument\n    elem = el || elem;\n\n    // Inline style trumps all\n    return elem.style.display === \"none\" || elem.style.display === \"\" &&\n    // Otherwise, check computed style\n    // Support: Firefox <=43 - 45\n    // Disconnected elements can have computed display: none, so first confirm that elem is\n    // in the document.\n    isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n  };\n  function adjustCSS(elem, prop, valueParts, tween) {\n    var adjusted,\n      scale,\n      maxIterations = 20,\n      currentValue = tween ? function () {\n        return tween.cur();\n      } : function () {\n        return jQuery.css(elem, prop, \"\");\n      },\n      initial = currentValue(),\n      unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n      // Starting value computation is required for potential unit mismatches\n      initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n    if (initialInUnit && initialInUnit[3] !== unit) {\n      // Support: Firefox <=54\n      // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n      initial = initial / 2;\n\n      // Trust units reported by jQuery.css\n      unit = unit || initialInUnit[3];\n\n      // Iteratively approximate from a nonzero starting point\n      initialInUnit = +initial || 1;\n      while (maxIterations--) {\n        // Evaluate and update our best guess (doubling guesses that zero out).\n        // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n        jQuery.style(elem, prop, initialInUnit + unit);\n        if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n          maxIterations = 0;\n        }\n        initialInUnit = initialInUnit / scale;\n      }\n      initialInUnit = initialInUnit * 2;\n      jQuery.style(elem, prop, initialInUnit + unit);\n\n      // Make sure we update the tween properties later on\n      valueParts = valueParts || [];\n    }\n    if (valueParts) {\n      initialInUnit = +initialInUnit || +initial || 0;\n\n      // Apply relative offset (+=/-=) if specified\n      adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n      if (tween) {\n        tween.unit = unit;\n        tween.start = initialInUnit;\n        tween.end = adjusted;\n      }\n    }\n    return adjusted;\n  }\n  var defaultDisplayMap = {};\n  function getDefaultDisplay(elem) {\n    var temp,\n      doc = elem.ownerDocument,\n      nodeName = elem.nodeName,\n      display = defaultDisplayMap[nodeName];\n    if (display) {\n      return display;\n    }\n    temp = doc.body.appendChild(doc.createElement(nodeName));\n    display = jQuery.css(temp, \"display\");\n    temp.parentNode.removeChild(temp);\n    if (display === \"none\") {\n      display = \"block\";\n    }\n    defaultDisplayMap[nodeName] = display;\n    return display;\n  }\n  function showHide(elements, show) {\n    var display,\n      elem,\n      values = [],\n      index = 0,\n      length = elements.length;\n\n    // Determine new display value for elements that need to change\n    for (; index < length; index++) {\n      elem = elements[index];\n      if (!elem.style) {\n        continue;\n      }\n      display = elem.style.display;\n      if (show) {\n        // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n        // check is required in this first loop unless we have a nonempty display value (either\n        // inline or about-to-be-restored)\n        if (display === \"none\") {\n          values[index] = dataPriv.get(elem, \"display\") || null;\n          if (!values[index]) {\n            elem.style.display = \"\";\n          }\n        }\n        if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n          values[index] = getDefaultDisplay(elem);\n        }\n      } else {\n        if (display !== \"none\") {\n          values[index] = \"none\";\n\n          // Remember what we're overwriting\n          dataPriv.set(elem, \"display\", display);\n        }\n      }\n    }\n\n    // Set the display of the elements in a second loop to avoid constant reflow\n    for (index = 0; index < length; index++) {\n      if (values[index] != null) {\n        elements[index].style.display = values[index];\n      }\n    }\n    return elements;\n  }\n  jQuery.fn.extend({\n    show: function () {\n      return showHide(this, true);\n    },\n    hide: function () {\n      return showHide(this);\n    },\n    toggle: function (state) {\n      if (typeof state === \"boolean\") {\n        return state ? this.show() : this.hide();\n      }\n      return this.each(function () {\n        if (isHiddenWithinTree(this)) {\n          jQuery(this).show();\n        } else {\n          jQuery(this).hide();\n        }\n      });\n    }\n  });\n  var rcheckableType = /^(?:checkbox|radio)$/i;\n  var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n  var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n  (function () {\n    var fragment = document.createDocumentFragment(),\n      div = fragment.appendChild(document.createElement(\"div\")),\n      input = document.createElement(\"input\");\n\n    // Support: Android 4.0 - 4.3 only\n    // Check state lost if the name is set (trac-11217)\n    // Support: Windows Web Apps (WWA)\n    // `name` and `type` must use .setAttribute for WWA (trac-14901)\n    input.setAttribute(\"type\", \"radio\");\n    input.setAttribute(\"checked\", \"checked\");\n    input.setAttribute(\"name\", \"t\");\n    div.appendChild(input);\n\n    // Support: Android <=4.1 only\n    // Older WebKit doesn't clone checked state correctly in fragments\n    support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked;\n\n    // Support: IE <=11 only\n    // Make sure textarea (and checkbox) defaultValue is properly cloned\n    div.innerHTML = \"<textarea>x</textarea>\";\n    support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue;\n\n    // Support: IE <=9 only\n    // IE <=9 replaces <option> tags with their contents when inserted outside of\n    // the select element.\n    div.innerHTML = \"<option></option>\";\n    support.option = !!div.lastChild;\n  })();\n\n  // We have to close these tags to support XHTML (trac-13200)\n  var wrapMap = {\n    // XHTML parsers do not magically insert elements in the\n    // same way that tag soup parsers do. So we cannot shorten\n    // this by omitting <tbody> or other required elements.\n    thead: [1, \"<table>\", \"</table>\"],\n    col: [2, \"<table><colgroup>\", \"</colgroup></table>\"],\n    tr: [2, \"<table><tbody>\", \"</tbody></table>\"],\n    td: [3, \"<table><tbody><tr>\", \"</tr></tbody></table>\"],\n    _default: [0, \"\", \"\"]\n  };\n  wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n  wrapMap.th = wrapMap.td;\n\n  // Support: IE <=9 only\n  if (!support.option) {\n    wrapMap.optgroup = wrapMap.option = [1, \"<select multiple='multiple'>\", \"</select>\"];\n  }\n  function getAll(context, tag) {\n    // Support: IE <=9 - 11 only\n    // Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n    var ret;\n    if (typeof context.getElementsByTagName !== \"undefined\") {\n      ret = context.getElementsByTagName(tag || \"*\");\n    } else if (typeof context.querySelectorAll !== \"undefined\") {\n      ret = context.querySelectorAll(tag || \"*\");\n    } else {\n      ret = [];\n    }\n    if (tag === undefined || tag && nodeName(context, tag)) {\n      return jQuery.merge([context], ret);\n    }\n    return ret;\n  }\n\n  // Mark scripts as having already been evaluated\n  function setGlobalEval(elems, refElements) {\n    var i = 0,\n      l = elems.length;\n    for (; i < l; i++) {\n      dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n    }\n  }\n  var rhtml = /<|&#?\\w+;/;\n  function buildFragment(elems, context, scripts, selection, ignored) {\n    var elem,\n      tmp,\n      tag,\n      wrap,\n      attached,\n      j,\n      fragment = context.createDocumentFragment(),\n      nodes = [],\n      i = 0,\n      l = elems.length;\n    for (; i < l; i++) {\n      elem = elems[i];\n      if (elem || elem === 0) {\n        // Add nodes directly\n        if (toType(elem) === \"object\") {\n          // Support: Android <=4.0 only, PhantomJS 1 only\n          // push.apply(_, arraylike) throws on ancient WebKit\n          jQuery.merge(nodes, elem.nodeType ? [elem] : elem);\n\n          // Convert non-html into a text node\n        } else if (!rhtml.test(elem)) {\n          nodes.push(context.createTextNode(elem));\n\n          // Convert html into DOM nodes\n        } else {\n          tmp = tmp || fragment.appendChild(context.createElement(\"div\"));\n\n          // Deserialize a standard representation\n          tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n          wrap = wrapMap[tag] || wrapMap._default;\n          tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2];\n\n          // Descend through wrappers to the right content\n          j = wrap[0];\n          while (j--) {\n            tmp = tmp.lastChild;\n          }\n\n          // Support: Android <=4.0 only, PhantomJS 1 only\n          // push.apply(_, arraylike) throws on ancient WebKit\n          jQuery.merge(nodes, tmp.childNodes);\n\n          // Remember the top-level container\n          tmp = fragment.firstChild;\n\n          // Ensure the created nodes are orphaned (trac-12392)\n          tmp.textContent = \"\";\n        }\n      }\n    }\n\n    // Remove wrapper from fragment\n    fragment.textContent = \"\";\n    i = 0;\n    while (elem = nodes[i++]) {\n      // Skip elements already in the context collection (trac-4087)\n      if (selection && jQuery.inArray(elem, selection) > -1) {\n        if (ignored) {\n          ignored.push(elem);\n        }\n        continue;\n      }\n      attached = isAttached(elem);\n\n      // Append to fragment\n      tmp = getAll(fragment.appendChild(elem), \"script\");\n\n      // Preserve script evaluation history\n      if (attached) {\n        setGlobalEval(tmp);\n      }\n\n      // Capture executables\n      if (scripts) {\n        j = 0;\n        while (elem = tmp[j++]) {\n          if (rscriptType.test(elem.type || \"\")) {\n            scripts.push(elem);\n          }\n        }\n      }\n    }\n    return fragment;\n  }\n  var rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n  function returnTrue() {\n    return true;\n  }\n  function returnFalse() {\n    return false;\n  }\n  function on(elem, types, selector, data, fn, one) {\n    var origFn, type;\n\n    // Types can be a map of types/handlers\n    if (typeof types === \"object\") {\n      // ( types-Object, selector, data )\n      if (typeof selector !== \"string\") {\n        // ( types-Object, data )\n        data = data || selector;\n        selector = undefined;\n      }\n      for (type in types) {\n        on(elem, type, selector, data, types[type], one);\n      }\n      return elem;\n    }\n    if (data == null && fn == null) {\n      // ( types, fn )\n      fn = selector;\n      data = selector = undefined;\n    } else if (fn == null) {\n      if (typeof selector === \"string\") {\n        // ( types, selector, fn )\n        fn = data;\n        data = undefined;\n      } else {\n        // ( types, data, fn )\n        fn = data;\n        data = selector;\n        selector = undefined;\n      }\n    }\n    if (fn === false) {\n      fn = returnFalse;\n    } else if (!fn) {\n      return elem;\n    }\n    if (one === 1) {\n      origFn = fn;\n      fn = function (event) {\n        // Can use an empty set, since event contains the info\n        jQuery().off(event);\n        return origFn.apply(this, arguments);\n      };\n\n      // Use same guid so caller can remove using origFn\n      fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n    }\n    return elem.each(function () {\n      jQuery.event.add(this, types, fn, data, selector);\n    });\n  }\n\n  /*\n   * Helper functions for managing events -- not part of the public interface.\n   * Props to Dean Edwards' addEvent library for many of the ideas.\n   */\n  jQuery.event = {\n    global: {},\n    add: function (elem, types, handler, data, selector) {\n      var handleObjIn,\n        eventHandle,\n        tmp,\n        events,\n        t,\n        handleObj,\n        special,\n        handlers,\n        type,\n        namespaces,\n        origType,\n        elemData = dataPriv.get(elem);\n\n      // Only attach events to objects that accept data\n      if (!acceptData(elem)) {\n        return;\n      }\n\n      // Caller can pass in an object of custom data in lieu of the handler\n      if (handler.handler) {\n        handleObjIn = handler;\n        handler = handleObjIn.handler;\n        selector = handleObjIn.selector;\n      }\n\n      // Ensure that invalid selectors throw exceptions at attach time\n      // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n      if (selector) {\n        jQuery.find.matchesSelector(documentElement, selector);\n      }\n\n      // Make sure that the handler has a unique ID, used to find/remove it later\n      if (!handler.guid) {\n        handler.guid = jQuery.guid++;\n      }\n\n      // Init the element's event structure and main handler, if this is the first\n      if (!(events = elemData.events)) {\n        events = elemData.events = Object.create(null);\n      }\n      if (!(eventHandle = elemData.handle)) {\n        eventHandle = elemData.handle = function (e) {\n          // Discard the second event of a jQuery.event.trigger() and\n          // when an event is called after a page has unloaded\n          return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n        };\n      }\n\n      // Handle multiple events separated by a space\n      types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n      t = types.length;\n      while (t--) {\n        tmp = rtypenamespace.exec(types[t]) || [];\n        type = origType = tmp[1];\n        namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n        // There *must* be a type, no attaching namespace-only handlers\n        if (!type) {\n          continue;\n        }\n\n        // If event changes its type, use the special event handlers for the changed type\n        special = jQuery.event.special[type] || {};\n\n        // If selector defined, determine special event api type, otherwise given type\n        type = (selector ? special.delegateType : special.bindType) || type;\n\n        // Update special based on newly reset type\n        special = jQuery.event.special[type] || {};\n\n        // handleObj is passed to all event handlers\n        handleObj = jQuery.extend({\n          type: type,\n          origType: origType,\n          data: data,\n          handler: handler,\n          guid: handler.guid,\n          selector: selector,\n          needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n          namespace: namespaces.join(\".\")\n        }, handleObjIn);\n\n        // Init the event handler queue if we're the first\n        if (!(handlers = events[type])) {\n          handlers = events[type] = [];\n          handlers.delegateCount = 0;\n\n          // Only use addEventListener if the special events handler returns false\n          if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n            if (elem.addEventListener) {\n              elem.addEventListener(type, eventHandle);\n            }\n          }\n        }\n        if (special.add) {\n          special.add.call(elem, handleObj);\n          if (!handleObj.handler.guid) {\n            handleObj.handler.guid = handler.guid;\n          }\n        }\n\n        // Add to the element's handler list, delegates in front\n        if (selector) {\n          handlers.splice(handlers.delegateCount++, 0, handleObj);\n        } else {\n          handlers.push(handleObj);\n        }\n\n        // Keep track of which events have ever been used, for event optimization\n        jQuery.event.global[type] = true;\n      }\n    },\n    // Detach an event or set of events from an element\n    remove: function (elem, types, handler, selector, mappedTypes) {\n      var j,\n        origCount,\n        tmp,\n        events,\n        t,\n        handleObj,\n        special,\n        handlers,\n        type,\n        namespaces,\n        origType,\n        elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n      if (!elemData || !(events = elemData.events)) {\n        return;\n      }\n\n      // Once for each type.namespace in types; type may be omitted\n      types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n      t = types.length;\n      while (t--) {\n        tmp = rtypenamespace.exec(types[t]) || [];\n        type = origType = tmp[1];\n        namespaces = (tmp[2] || \"\").split(\".\").sort();\n\n        // Unbind all events (on this namespace, if provided) for the element\n        if (!type) {\n          for (type in events) {\n            jQuery.event.remove(elem, type + types[t], handler, selector, true);\n          }\n          continue;\n        }\n        special = jQuery.event.special[type] || {};\n        type = (selector ? special.delegateType : special.bindType) || type;\n        handlers = events[type] || [];\n        tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\");\n\n        // Remove matching events\n        origCount = j = handlers.length;\n        while (j--) {\n          handleObj = handlers[j];\n          if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n            handlers.splice(j, 1);\n            if (handleObj.selector) {\n              handlers.delegateCount--;\n            }\n            if (special.remove) {\n              special.remove.call(elem, handleObj);\n            }\n          }\n        }\n\n        // Remove generic event handler if we removed something and no more handlers exist\n        // (avoids potential for endless recursion during removal of special event handlers)\n        if (origCount && !handlers.length) {\n          if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n            jQuery.removeEvent(elem, type, elemData.handle);\n          }\n          delete events[type];\n        }\n      }\n\n      // Remove data and the expando if it's no longer used\n      if (jQuery.isEmptyObject(events)) {\n        dataPriv.remove(elem, \"handle events\");\n      }\n    },\n    dispatch: function (nativeEvent) {\n      var i,\n        j,\n        ret,\n        matched,\n        handleObj,\n        handlerQueue,\n        args = new Array(arguments.length),\n        // Make a writable jQuery.Event from the native event object\n        event = jQuery.event.fix(nativeEvent),\n        handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n        special = jQuery.event.special[event.type] || {};\n\n      // Use the fix-ed jQuery.Event rather than the (read-only) native event\n      args[0] = event;\n      for (i = 1; i < arguments.length; i++) {\n        args[i] = arguments[i];\n      }\n      event.delegateTarget = this;\n\n      // Call the preDispatch hook for the mapped type, and let it bail if desired\n      if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n        return;\n      }\n\n      // Determine handlers\n      handlerQueue = jQuery.event.handlers.call(this, event, handlers);\n\n      // Run delegates first; they may want to stop propagation beneath us\n      i = 0;\n      while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n        event.currentTarget = matched.elem;\n        j = 0;\n        while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n          // If the event is namespaced, then each handler is only invoked if it is\n          // specially universal or its namespaces are a superset of the event's.\n          if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n            event.handleObj = handleObj;\n            event.data = handleObj.data;\n            ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n            if (ret !== undefined) {\n              if ((event.result = ret) === false) {\n                event.preventDefault();\n                event.stopPropagation();\n              }\n            }\n          }\n        }\n      }\n\n      // Call the postDispatch hook for the mapped type\n      if (special.postDispatch) {\n        special.postDispatch.call(this, event);\n      }\n      return event.result;\n    },\n    handlers: function (event, handlers) {\n      var i,\n        handleObj,\n        sel,\n        matchedHandlers,\n        matchedSelectors,\n        handlerQueue = [],\n        delegateCount = handlers.delegateCount,\n        cur = event.target;\n\n      // Find delegate handlers\n      if (delegateCount &&\n      // Support: IE <=9\n      // Black-hole SVG <use> instance trees (trac-13180)\n      cur.nodeType &&\n      // Support: Firefox <=42\n      // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n      // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n      // Support: IE 11 only\n      // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n      !(event.type === \"click\" && event.button >= 1)) {\n        for (; cur !== this; cur = cur.parentNode || this) {\n          // Don't check non-elements (trac-13208)\n          // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n          if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n            matchedHandlers = [];\n            matchedSelectors = {};\n            for (i = 0; i < delegateCount; i++) {\n              handleObj = handlers[i];\n\n              // Don't conflict with Object.prototype properties (trac-13203)\n              sel = handleObj.selector + \" \";\n              if (matchedSelectors[sel] === undefined) {\n                matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n              }\n              if (matchedSelectors[sel]) {\n                matchedHandlers.push(handleObj);\n              }\n            }\n            if (matchedHandlers.length) {\n              handlerQueue.push({\n                elem: cur,\n                handlers: matchedHandlers\n              });\n            }\n          }\n        }\n      }\n\n      // Add the remaining (directly-bound) handlers\n      cur = this;\n      if (delegateCount < handlers.length) {\n        handlerQueue.push({\n          elem: cur,\n          handlers: handlers.slice(delegateCount)\n        });\n      }\n      return handlerQueue;\n    },\n    addProp: function (name, hook) {\n      Object.defineProperty(jQuery.Event.prototype, name, {\n        enumerable: true,\n        configurable: true,\n        get: isFunction(hook) ? function () {\n          if (this.originalEvent) {\n            return hook(this.originalEvent);\n          }\n        } : function () {\n          if (this.originalEvent) {\n            return this.originalEvent[name];\n          }\n        },\n        set: function (value) {\n          Object.defineProperty(this, name, {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: value\n          });\n        }\n      });\n    },\n    fix: function (originalEvent) {\n      return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n    },\n    special: {\n      load: {\n        // Prevent triggered image.load events from bubbling to window.load\n        noBubble: true\n      },\n      click: {\n        // Utilize native event to ensure correct state for checkable inputs\n        setup: function (data) {\n          // For mutual compressibility with _default, replace `this` access with a local var.\n          // `|| data` is dead code meant only to preserve the variable through minification.\n          var el = this || data;\n\n          // Claim the first handler\n          if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n            // dataPriv.set( el, \"click\", ... )\n            leverageNative(el, \"click\", true);\n          }\n\n          // Return false to allow normal processing in the caller\n          return false;\n        },\n        trigger: function (data) {\n          // For mutual compressibility with _default, replace `this` access with a local var.\n          // `|| data` is dead code meant only to preserve the variable through minification.\n          var el = this || data;\n\n          // Force setup before triggering a click\n          if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n            leverageNative(el, \"click\");\n          }\n\n          // Return non-false to allow normal event-path propagation\n          return true;\n        },\n        // For cross-browser consistency, suppress native .click() on links\n        // Also prevent it if we're currently inside a leveraged native-event stack\n        _default: function (event) {\n          var target = event.target;\n          return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n        }\n      },\n      beforeunload: {\n        postDispatch: function (event) {\n          // Support: Firefox 20+\n          // Firefox doesn't alert if the returnValue field is not set.\n          if (event.result !== undefined && event.originalEvent) {\n            event.originalEvent.returnValue = event.result;\n          }\n        }\n      }\n    }\n  };\n\n  // Ensure the presence of an event listener that handles manually-triggered\n  // synthetic events by interrupting progress until reinvoked in response to\n  // *native* events that it fires directly, ensuring that state changes have\n  // already occurred before other listeners are invoked.\n  function leverageNative(el, type, isSetup) {\n    // Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n    if (!isSetup) {\n      if (dataPriv.get(el, type) === undefined) {\n        jQuery.event.add(el, type, returnTrue);\n      }\n      return;\n    }\n\n    // Register the controller as a special universal handler for all event namespaces\n    dataPriv.set(el, type, false);\n    jQuery.event.add(el, type, {\n      namespace: false,\n      handler: function (event) {\n        var result,\n          saved = dataPriv.get(this, type);\n        if (event.isTrigger & 1 && this[type]) {\n          // Interrupt processing of the outer synthetic .trigger()ed event\n          if (!saved) {\n            // Store arguments for use when handling the inner native event\n            // There will always be at least one argument (an event object), so this array\n            // will not be confused with a leftover capture object.\n            saved = slice.call(arguments);\n            dataPriv.set(this, type, saved);\n\n            // Trigger the native event and capture its result\n            this[type]();\n            result = dataPriv.get(this, type);\n            dataPriv.set(this, type, false);\n            if (saved !== result) {\n              // Cancel the outer synthetic event\n              event.stopImmediatePropagation();\n              event.preventDefault();\n              return result;\n            }\n\n            // If this is an inner synthetic event for an event with a bubbling surrogate\n            // (focus or blur), assume that the surrogate already propagated from triggering\n            // the native event and prevent that from happening again here.\n            // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n            // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n            // less bad than duplication.\n          } else if ((jQuery.event.special[type] || {}).delegateType) {\n            event.stopPropagation();\n          }\n\n          // If this is a native event triggered above, everything is now in order\n          // Fire an inner synthetic event with the original arguments\n        } else if (saved) {\n          // ...and capture the result\n          dataPriv.set(this, type, jQuery.event.trigger(saved[0], saved.slice(1), this));\n\n          // Abort handling of the native event by all jQuery handlers while allowing\n          // native handlers on the same element to run. On target, this is achieved\n          // by stopping immediate propagation just on the jQuery event. However,\n          // the native event is re-wrapped by a jQuery one on each level of the\n          // propagation so the only way to stop it for jQuery is to stop it for\n          // everyone via native `stopPropagation()`. This is not a problem for\n          // focus/blur which don't bubble, but it does also stop click on checkboxes\n          // and radios. We accept this limitation.\n          event.stopPropagation();\n          event.isImmediatePropagationStopped = returnTrue;\n        }\n      }\n    });\n  }\n  jQuery.removeEvent = function (elem, type, handle) {\n    // This \"if\" is needed for plain objects\n    if (elem.removeEventListener) {\n      elem.removeEventListener(type, handle);\n    }\n  };\n  jQuery.Event = function (src, props) {\n    // Allow instantiation without the 'new' keyword\n    if (!(this instanceof jQuery.Event)) {\n      return new jQuery.Event(src, props);\n    }\n\n    // Event object\n    if (src && src.type) {\n      this.originalEvent = src;\n      this.type = src.type;\n\n      // Events bubbling up the document may have been marked as prevented\n      // by a handler lower down the tree; reflect the correct value.\n      this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined &&\n      // Support: Android <=2.3 only\n      src.returnValue === false ? returnTrue : returnFalse;\n\n      // Create target properties\n      // Support: Safari <=6 - 7 only\n      // Target should not be a text node (trac-504, trac-13143)\n      this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n      this.currentTarget = src.currentTarget;\n      this.relatedTarget = src.relatedTarget;\n\n      // Event type\n    } else {\n      this.type = src;\n    }\n\n    // Put explicitly provided properties onto the event object\n    if (props) {\n      jQuery.extend(this, props);\n    }\n\n    // Create a timestamp if incoming event doesn't have one\n    this.timeStamp = src && src.timeStamp || Date.now();\n\n    // Mark it as fixed\n    this[jQuery.expando] = true;\n  };\n\n  // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n  // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n  jQuery.Event.prototype = {\n    constructor: jQuery.Event,\n    isDefaultPrevented: returnFalse,\n    isPropagationStopped: returnFalse,\n    isImmediatePropagationStopped: returnFalse,\n    isSimulated: false,\n    preventDefault: function () {\n      var e = this.originalEvent;\n      this.isDefaultPrevented = returnTrue;\n      if (e && !this.isSimulated) {\n        e.preventDefault();\n      }\n    },\n    stopPropagation: function () {\n      var e = this.originalEvent;\n      this.isPropagationStopped = returnTrue;\n      if (e && !this.isSimulated) {\n        e.stopPropagation();\n      }\n    },\n    stopImmediatePropagation: function () {\n      var e = this.originalEvent;\n      this.isImmediatePropagationStopped = returnTrue;\n      if (e && !this.isSimulated) {\n        e.stopImmediatePropagation();\n      }\n      this.stopPropagation();\n    }\n  };\n\n  // Includes all common event props including KeyEvent and MouseEvent specific props\n  jQuery.each({\n    altKey: true,\n    bubbles: true,\n    cancelable: true,\n    changedTouches: true,\n    ctrlKey: true,\n    detail: true,\n    eventPhase: true,\n    metaKey: true,\n    pageX: true,\n    pageY: true,\n    shiftKey: true,\n    view: true,\n    \"char\": true,\n    code: true,\n    charCode: true,\n    key: true,\n    keyCode: true,\n    button: true,\n    buttons: true,\n    clientX: true,\n    clientY: true,\n    offsetX: true,\n    offsetY: true,\n    pointerId: true,\n    pointerType: true,\n    screenX: true,\n    screenY: true,\n    targetTouches: true,\n    toElement: true,\n    touches: true,\n    which: true\n  }, jQuery.event.addProp);\n  jQuery.each({\n    focus: \"focusin\",\n    blur: \"focusout\"\n  }, function (type, delegateType) {\n    function focusMappedHandler(nativeEvent) {\n      if (document.documentMode) {\n        // Support: IE 11+\n        // Attach a single focusin/focusout handler on the document while someone wants\n        // focus/blur. This is because the former are synchronous in IE while the latter\n        // are async. In other browsers, all those handlers are invoked synchronously.\n\n        // `handle` from private data would already wrap the event, but we need\n        // to change the `type` here.\n        var handle = dataPriv.get(this, \"handle\"),\n          event = jQuery.event.fix(nativeEvent);\n        event.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n        event.isSimulated = true;\n\n        // First, handle focusin/focusout\n        handle(nativeEvent);\n\n        // ...then, handle focus/blur\n        //\n        // focus/blur don't bubble while focusin/focusout do; simulate the former by only\n        // invoking the handler at the lower level.\n        if (event.target === event.currentTarget) {\n          // The setup part calls `leverageNative`, which, in turn, calls\n          // `jQuery.event.add`, so event handle will already have been set\n          // by this point.\n          handle(event);\n        }\n      } else {\n        // For non-IE browsers, attach a single capturing handler on the document\n        // while someone wants focusin/focusout.\n        jQuery.event.simulate(delegateType, nativeEvent.target, jQuery.event.fix(nativeEvent));\n      }\n    }\n    jQuery.event.special[type] = {\n      // Utilize native event if possible so blur/focus sequence is correct\n      setup: function () {\n        var attaches;\n\n        // Claim the first handler\n        // dataPriv.set( this, \"focus\", ... )\n        // dataPriv.set( this, \"blur\", ... )\n        leverageNative(this, type, true);\n        if (document.documentMode) {\n          // Support: IE 9 - 11+\n          // We use the same native handler for focusin & focus (and focusout & blur)\n          // so we need to coordinate setup & teardown parts between those events.\n          // Use `delegateType` as the key as `type` is already used by `leverageNative`.\n          attaches = dataPriv.get(this, delegateType);\n          if (!attaches) {\n            this.addEventListener(delegateType, focusMappedHandler);\n          }\n          dataPriv.set(this, delegateType, (attaches || 0) + 1);\n        } else {\n          // Return false to allow normal processing in the caller\n          return false;\n        }\n      },\n      trigger: function () {\n        // Force setup before trigger\n        leverageNative(this, type);\n\n        // Return non-false to allow normal event-path propagation\n        return true;\n      },\n      teardown: function () {\n        var attaches;\n        if (document.documentMode) {\n          attaches = dataPriv.get(this, delegateType) - 1;\n          if (!attaches) {\n            this.removeEventListener(delegateType, focusMappedHandler);\n            dataPriv.remove(this, delegateType);\n          } else {\n            dataPriv.set(this, delegateType, attaches);\n          }\n        } else {\n          // Return false to indicate standard teardown should be applied\n          return false;\n        }\n      },\n      // Suppress native focus or blur if we're currently inside\n      // a leveraged native-event stack\n      _default: function (event) {\n        return dataPriv.get(event.target, type);\n      },\n      delegateType: delegateType\n    };\n\n    // Support: Firefox <=44\n    // Firefox doesn't have focus(in | out) events\n    // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n    //\n    // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n    // focus(in | out) events fire after focus & blur events,\n    // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n    // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n    //\n    // Support: IE 9 - 11+\n    // To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n    // attach a single handler for both events in IE.\n    jQuery.event.special[delegateType] = {\n      setup: function () {\n        // Handle: regular nodes (via `this.ownerDocument`), window\n        // (via `this.document`) & document (via `this`).\n        var doc = this.ownerDocument || this.document || this,\n          dataHolder = document.documentMode ? this : doc,\n          attaches = dataPriv.get(dataHolder, delegateType);\n\n        // Support: IE 9 - 11+\n        // We use the same native handler for focusin & focus (and focusout & blur)\n        // so we need to coordinate setup & teardown parts between those events.\n        // Use `delegateType` as the key as `type` is already used by `leverageNative`.\n        if (!attaches) {\n          if (document.documentMode) {\n            this.addEventListener(delegateType, focusMappedHandler);\n          } else {\n            doc.addEventListener(type, focusMappedHandler, true);\n          }\n        }\n        dataPriv.set(dataHolder, delegateType, (attaches || 0) + 1);\n      },\n      teardown: function () {\n        var doc = this.ownerDocument || this.document || this,\n          dataHolder = document.documentMode ? this : doc,\n          attaches = dataPriv.get(dataHolder, delegateType) - 1;\n        if (!attaches) {\n          if (document.documentMode) {\n            this.removeEventListener(delegateType, focusMappedHandler);\n          } else {\n            doc.removeEventListener(type, focusMappedHandler, true);\n          }\n          dataPriv.remove(dataHolder, delegateType);\n        } else {\n          dataPriv.set(dataHolder, delegateType, attaches);\n        }\n      }\n    };\n  });\n\n  // Create mouseenter/leave events using mouseover/out and event-time checks\n  // so that event delegation works in jQuery.\n  // Do the same for pointerenter/pointerleave and pointerover/pointerout\n  //\n  // Support: Safari 7 only\n  // Safari sends mouseenter too often; see:\n  // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n  // for the description of the bug (it existed in older Chrome versions as well).\n  jQuery.each({\n    mouseenter: \"mouseover\",\n    mouseleave: \"mouseout\",\n    pointerenter: \"pointerover\",\n    pointerleave: \"pointerout\"\n  }, function (orig, fix) {\n    jQuery.event.special[orig] = {\n      delegateType: fix,\n      bindType: fix,\n      handle: function (event) {\n        var ret,\n          target = this,\n          related = event.relatedTarget,\n          handleObj = event.handleObj;\n\n        // For mouseenter/leave call the handler if related is outside the target.\n        // NB: No relatedTarget if the mouse left/entered the browser window\n        if (!related || related !== target && !jQuery.contains(target, related)) {\n          event.type = handleObj.origType;\n          ret = handleObj.handler.apply(this, arguments);\n          event.type = fix;\n        }\n        return ret;\n      }\n    };\n  });\n  jQuery.fn.extend({\n    on: function (types, selector, data, fn) {\n      return on(this, types, selector, data, fn);\n    },\n    one: function (types, selector, data, fn) {\n      return on(this, types, selector, data, fn, 1);\n    },\n    off: function (types, selector, fn) {\n      var handleObj, type;\n      if (types && types.preventDefault && types.handleObj) {\n        // ( event )  dispatched jQuery.Event\n        handleObj = types.handleObj;\n        jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n        return this;\n      }\n      if (typeof types === \"object\") {\n        // ( types-object [, selector] )\n        for (type in types) {\n          this.off(type, selector, types[type]);\n        }\n        return this;\n      }\n      if (selector === false || typeof selector === \"function\") {\n        // ( types [, fn] )\n        fn = selector;\n        selector = undefined;\n      }\n      if (fn === false) {\n        fn = returnFalse;\n      }\n      return this.each(function () {\n        jQuery.event.remove(this, types, fn, selector);\n      });\n    }\n  });\n  var\n    // Support: IE <=10 - 11, Edge 12 - 13 only\n    // In IE/Edge using regex groups here causes severe slowdowns.\n    // See https://connect.microsoft.com/IE/feedback/details/1736512/\n    rnoInnerhtml = /<script|<style|<link/i,\n    // checked=\"checked\" or checked\n    rchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n    rcleanScript = /^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;\n\n  // Prefer a tbody over its parent table for containing new rows\n  function manipulationTarget(elem, content) {\n    if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n      return jQuery(elem).children(\"tbody\")[0] || elem;\n    }\n    return elem;\n  }\n\n  // Replace/restore the type attribute of script elements for safe DOM manipulation\n  function disableScript(elem) {\n    elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n    return elem;\n  }\n  function restoreScript(elem) {\n    if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n      elem.type = elem.type.slice(5);\n    } else {\n      elem.removeAttribute(\"type\");\n    }\n    return elem;\n  }\n  function cloneCopyEvent(src, dest) {\n    var i, l, type, pdataOld, udataOld, udataCur, events;\n    if (dest.nodeType !== 1) {\n      return;\n    }\n\n    // 1. Copy private data: events, handlers, etc.\n    if (dataPriv.hasData(src)) {\n      pdataOld = dataPriv.get(src);\n      events = pdataOld.events;\n      if (events) {\n        dataPriv.remove(dest, \"handle events\");\n        for (type in events) {\n          for (i = 0, l = events[type].length; i < l; i++) {\n            jQuery.event.add(dest, type, events[type][i]);\n          }\n        }\n      }\n    }\n\n    // 2. Copy user data\n    if (dataUser.hasData(src)) {\n      udataOld = dataUser.access(src);\n      udataCur = jQuery.extend({}, udataOld);\n      dataUser.set(dest, udataCur);\n    }\n  }\n\n  // Fix IE bugs, see support tests\n  function fixInput(src, dest) {\n    var nodeName = dest.nodeName.toLowerCase();\n\n    // Fails to persist the checked state of a cloned checkbox or radio button.\n    if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n      dest.checked = src.checked;\n\n      // Fails to return the selected option to the default selected state when cloning options\n    } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n      dest.defaultValue = src.defaultValue;\n    }\n  }\n  function domManip(collection, args, callback, ignored) {\n    // Flatten any nested arrays\n    args = flat(args);\n    var fragment,\n      first,\n      scripts,\n      hasScripts,\n      node,\n      doc,\n      i = 0,\n      l = collection.length,\n      iNoClone = l - 1,\n      value = args[0],\n      valueIsFunction = isFunction(value);\n\n    // We can't cloneNode fragments that contain checked, in WebKit\n    if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n      return collection.each(function (index) {\n        var self = collection.eq(index);\n        if (valueIsFunction) {\n          args[0] = value.call(this, index, self.html());\n        }\n        domManip(self, args, callback, ignored);\n      });\n    }\n    if (l) {\n      fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n      first = fragment.firstChild;\n      if (fragment.childNodes.length === 1) {\n        fragment = first;\n      }\n\n      // Require either new content or an interest in ignored elements to invoke the callback\n      if (first || ignored) {\n        scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n        hasScripts = scripts.length;\n\n        // Use the original fragment for the last item\n        // instead of the first because it can end up\n        // being emptied incorrectly in certain situations (trac-8070).\n        for (; i < l; i++) {\n          node = fragment;\n          if (i !== iNoClone) {\n            node = jQuery.clone(node, true, true);\n\n            // Keep references to cloned scripts for later restoration\n            if (hasScripts) {\n              // Support: Android <=4.0 only, PhantomJS 1 only\n              // push.apply(_, arraylike) throws on ancient WebKit\n              jQuery.merge(scripts, getAll(node, \"script\"));\n            }\n          }\n          callback.call(collection[i], node, i);\n        }\n        if (hasScripts) {\n          doc = scripts[scripts.length - 1].ownerDocument;\n\n          // Re-enable scripts\n          jQuery.map(scripts, restoreScript);\n\n          // Evaluate executable scripts on first document insertion\n          for (i = 0; i < hasScripts; i++) {\n            node = scripts[i];\n            if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n              if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n                // Optional AJAX dependency, but won't run scripts if not present\n                if (jQuery._evalUrl && !node.noModule) {\n                  jQuery._evalUrl(node.src, {\n                    nonce: node.nonce || node.getAttribute(\"nonce\")\n                  }, doc);\n                }\n              } else {\n                // Unwrap a CDATA section containing script contents. This shouldn't be\n                // needed as in XML documents they're already not visible when\n                // inspecting element contents and in HTML documents they have no\n                // meaning but we're preserving that logic for backwards compatibility.\n                // This will be removed completely in 4.0. See gh-4904.\n                DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n              }\n            }\n          }\n        }\n      }\n    }\n    return collection;\n  }\n  function remove(elem, selector, keepData) {\n    var node,\n      nodes = selector ? jQuery.filter(selector, elem) : elem,\n      i = 0;\n    for (; (node = nodes[i]) != null; i++) {\n      if (!keepData && node.nodeType === 1) {\n        jQuery.cleanData(getAll(node));\n      }\n      if (node.parentNode) {\n        if (keepData && isAttached(node)) {\n          setGlobalEval(getAll(node, \"script\"));\n        }\n        node.parentNode.removeChild(node);\n      }\n    }\n    return elem;\n  }\n  jQuery.extend({\n    htmlPrefilter: function (html) {\n      return html;\n    },\n    clone: function (elem, dataAndEvents, deepDataAndEvents) {\n      var i,\n        l,\n        srcElements,\n        destElements,\n        clone = elem.cloneNode(true),\n        inPage = isAttached(elem);\n\n      // Fix IE cloning issues\n      if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n        // We eschew jQuery#find here for performance reasons:\n        // https://jsperf.com/getall-vs-sizzle/2\n        destElements = getAll(clone);\n        srcElements = getAll(elem);\n        for (i = 0, l = srcElements.length; i < l; i++) {\n          fixInput(srcElements[i], destElements[i]);\n        }\n      }\n\n      // Copy the events from the original to the clone\n      if (dataAndEvents) {\n        if (deepDataAndEvents) {\n          srcElements = srcElements || getAll(elem);\n          destElements = destElements || getAll(clone);\n          for (i = 0, l = srcElements.length; i < l; i++) {\n            cloneCopyEvent(srcElements[i], destElements[i]);\n          }\n        } else {\n          cloneCopyEvent(elem, clone);\n        }\n      }\n\n      // Preserve script evaluation history\n      destElements = getAll(clone, \"script\");\n      if (destElements.length > 0) {\n        setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n      }\n\n      // Return the cloned set\n      return clone;\n    },\n    cleanData: function (elems) {\n      var data,\n        elem,\n        type,\n        special = jQuery.event.special,\n        i = 0;\n      for (; (elem = elems[i]) !== undefined; i++) {\n        if (acceptData(elem)) {\n          if (data = elem[dataPriv.expando]) {\n            if (data.events) {\n              for (type in data.events) {\n                if (special[type]) {\n                  jQuery.event.remove(elem, type);\n\n                  // This is a shortcut to avoid jQuery.event.remove's overhead\n                } else {\n                  jQuery.removeEvent(elem, type, data.handle);\n                }\n              }\n            }\n\n            // Support: Chrome <=35 - 45+\n            // Assign undefined instead of using delete, see Data#remove\n            elem[dataPriv.expando] = undefined;\n          }\n          if (elem[dataUser.expando]) {\n            // Support: Chrome <=35 - 45+\n            // Assign undefined instead of using delete, see Data#remove\n            elem[dataUser.expando] = undefined;\n          }\n        }\n      }\n    }\n  });\n  jQuery.fn.extend({\n    detach: function (selector) {\n      return remove(this, selector, true);\n    },\n    remove: function (selector) {\n      return remove(this, selector);\n    },\n    text: function (value) {\n      return access(this, function (value) {\n        return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n          if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n            this.textContent = value;\n          }\n        });\n      }, null, value, arguments.length);\n    },\n    append: function () {\n      return domManip(this, arguments, function (elem) {\n        if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n          var target = manipulationTarget(this, elem);\n          target.appendChild(elem);\n        }\n      });\n    },\n    prepend: function () {\n      return domManip(this, arguments, function (elem) {\n        if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n          var target = manipulationTarget(this, elem);\n          target.insertBefore(elem, target.firstChild);\n        }\n      });\n    },\n    before: function () {\n      return domManip(this, arguments, function (elem) {\n        if (this.parentNode) {\n          this.parentNode.insertBefore(elem, this);\n        }\n      });\n    },\n    after: function () {\n      return domManip(this, arguments, function (elem) {\n        if (this.parentNode) {\n          this.parentNode.insertBefore(elem, this.nextSibling);\n        }\n      });\n    },\n    empty: function () {\n      var elem,\n        i = 0;\n      for (; (elem = this[i]) != null; i++) {\n        if (elem.nodeType === 1) {\n          // Prevent memory leaks\n          jQuery.cleanData(getAll(elem, false));\n\n          // Remove any remaining nodes\n          elem.textContent = \"\";\n        }\n      }\n      return this;\n    },\n    clone: function (dataAndEvents, deepDataAndEvents) {\n      dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n      deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n      return this.map(function () {\n        return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n      });\n    },\n    html: function (value) {\n      return access(this, function (value) {\n        var elem = this[0] || {},\n          i = 0,\n          l = this.length;\n        if (value === undefined && elem.nodeType === 1) {\n          return elem.innerHTML;\n        }\n\n        // See if we can take a shortcut and just use innerHTML\n        if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n          value = jQuery.htmlPrefilter(value);\n          try {\n            for (; i < l; i++) {\n              elem = this[i] || {};\n\n              // Remove element nodes and prevent memory leaks\n              if (elem.nodeType === 1) {\n                jQuery.cleanData(getAll(elem, false));\n                elem.innerHTML = value;\n              }\n            }\n            elem = 0;\n\n            // If using innerHTML throws an exception, use the fallback method\n          } catch (e) {}\n        }\n        if (elem) {\n          this.empty().append(value);\n        }\n      }, null, value, arguments.length);\n    },\n    replaceWith: function () {\n      var ignored = [];\n\n      // Make the changes, replacing each non-ignored context element with the new content\n      return domManip(this, arguments, function (elem) {\n        var parent = this.parentNode;\n        if (jQuery.inArray(this, ignored) < 0) {\n          jQuery.cleanData(getAll(this));\n          if (parent) {\n            parent.replaceChild(elem, this);\n          }\n        }\n\n        // Force callback invocation\n      }, ignored);\n    }\n  });\n  jQuery.each({\n    appendTo: \"append\",\n    prependTo: \"prepend\",\n    insertBefore: \"before\",\n    insertAfter: \"after\",\n    replaceAll: \"replaceWith\"\n  }, function (name, original) {\n    jQuery.fn[name] = function (selector) {\n      var elems,\n        ret = [],\n        insert = jQuery(selector),\n        last = insert.length - 1,\n        i = 0;\n      for (; i <= last; i++) {\n        elems = i === last ? this : this.clone(true);\n        jQuery(insert[i])[original](elems);\n\n        // Support: Android <=4.0 only, PhantomJS 1 only\n        // .get() because push.apply(_, arraylike) throws on ancient WebKit\n        push.apply(ret, elems.get());\n      }\n      return this.pushStack(ret);\n    };\n  });\n  var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n  var rcustomProp = /^--/;\n  var getStyles = function (elem) {\n    // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n    // IE throws on elements created in popups\n    // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n    var view = elem.ownerDocument.defaultView;\n    if (!view || !view.opener) {\n      view = window;\n    }\n    return view.getComputedStyle(elem);\n  };\n  var swap = function (elem, options, callback) {\n    var ret,\n      name,\n      old = {};\n\n    // Remember the old values, and insert the new ones\n    for (name in options) {\n      old[name] = elem.style[name];\n      elem.style[name] = options[name];\n    }\n    ret = callback.call(elem);\n\n    // Revert the old values\n    for (name in options) {\n      elem.style[name] = old[name];\n    }\n    return ret;\n  };\n  var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n  (function () {\n    // Executing both pixelPosition & boxSizingReliable tests require only one layout\n    // so they're executed at the same time to save the second computation.\n    function computeStyleTests() {\n      // This is a singleton, we need to execute it only once\n      if (!div) {\n        return;\n      }\n      container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n      div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n      documentElement.appendChild(container).appendChild(div);\n      var divStyle = window.getComputedStyle(div);\n      pixelPositionVal = divStyle.top !== \"1%\";\n\n      // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n      reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12;\n\n      // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n      // Some styles come back with percentage values, even though they shouldn't\n      div.style.right = \"60%\";\n      pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36;\n\n      // Support: IE 9 - 11 only\n      // Detect misreporting of content dimensions for box-sizing:border-box elements\n      boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36;\n\n      // Support: IE 9 only\n      // Detect overflow:scroll screwiness (gh-3699)\n      // Support: Chrome <=64\n      // Don't get tricked when zoom affects offsetWidth (gh-4029)\n      div.style.position = \"absolute\";\n      scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n      documentElement.removeChild(container);\n\n      // Nullify the div so it wouldn't be stored in the memory and\n      // it will also be a sign that checks already performed\n      div = null;\n    }\n    function roundPixelMeasures(measure) {\n      return Math.round(parseFloat(measure));\n    }\n    var pixelPositionVal,\n      boxSizingReliableVal,\n      scrollboxSizeVal,\n      pixelBoxStylesVal,\n      reliableTrDimensionsVal,\n      reliableMarginLeftVal,\n      container = document.createElement(\"div\"),\n      div = document.createElement(\"div\");\n\n    // Finish early in limited (non-browser) environments\n    if (!div.style) {\n      return;\n    }\n\n    // Support: IE <=9 - 11 only\n    // Style of cloned element affects source element cloned (trac-8908)\n    div.style.backgroundClip = \"content-box\";\n    div.cloneNode(true).style.backgroundClip = \"\";\n    support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n    jQuery.extend(support, {\n      boxSizingReliable: function () {\n        computeStyleTests();\n        return boxSizingReliableVal;\n      },\n      pixelBoxStyles: function () {\n        computeStyleTests();\n        return pixelBoxStylesVal;\n      },\n      pixelPosition: function () {\n        computeStyleTests();\n        return pixelPositionVal;\n      },\n      reliableMarginLeft: function () {\n        computeStyleTests();\n        return reliableMarginLeftVal;\n      },\n      scrollboxSize: function () {\n        computeStyleTests();\n        return scrollboxSizeVal;\n      },\n      // Support: IE 9 - 11+, Edge 15 - 18+\n      // IE/Edge misreport `getComputedStyle` of table rows with width/height\n      // set in CSS while `offset*` properties report correct values.\n      // Behavior in IE 9 is more subtle than in newer versions & it passes\n      // some versions of this test; make sure not to make it pass there!\n      //\n      // Support: Firefox 70+\n      // Only Firefox includes border widths\n      // in computed dimensions. (gh-4529)\n      reliableTrDimensions: function () {\n        var table, tr, trChild, trStyle;\n        if (reliableTrDimensionsVal == null) {\n          table = document.createElement(\"table\");\n          tr = document.createElement(\"tr\");\n          trChild = document.createElement(\"div\");\n          table.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n          tr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n          // Support: Chrome 86+\n          // Height set through cssText does not get applied.\n          // Computed height then comes back as 0.\n          tr.style.height = \"1px\";\n          trChild.style.height = \"9px\";\n\n          // Support: Android 8 Chrome 86+\n          // In our bodyBackground.html iframe,\n          // display for all div elements is set to \"inline\",\n          // which causes a problem only in Android 8 Chrome 86.\n          // Ensuring the div is `display: block`\n          // gets around this issue.\n          trChild.style.display = \"block\";\n          documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n          trStyle = window.getComputedStyle(tr);\n          reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight;\n          documentElement.removeChild(table);\n        }\n        return reliableTrDimensionsVal;\n      }\n    });\n  })();\n  function curCSS(elem, name, computed) {\n    var width,\n      minWidth,\n      maxWidth,\n      ret,\n      isCustomProp = rcustomProp.test(name),\n      // Support: Firefox 51+\n      // Retrieving style before computed somehow\n      // fixes an issue with getting wrong values\n      // on detached elements\n      style = elem.style;\n    computed = computed || getStyles(elem);\n\n    // getPropertyValue is needed for:\n    //   .css('filter') (IE 9 only, trac-12537)\n    //   .css('--customProperty) (gh-3144)\n    if (computed) {\n      // Support: IE <=9 - 11+\n      // IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n      // it's only available as `\"cssFloat\"`. We no longer modify properties\n      // sent to `.css()` apart from camelCasing, so we need to check both.\n      // Normally, this would create difference in behavior: if\n      // `getPropertyValue` returns an empty string, the value returned\n      // by `.css()` would be `undefined`. This is usually the case for\n      // disconnected elements. However, in IE even disconnected elements\n      // with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n      ret = computed.getPropertyValue(name) || computed[name];\n      if (isCustomProp && ret) {\n        // Support: Firefox 105+, Chrome <=105+\n        // Spec requires trimming whitespace for custom properties (gh-4926).\n        // Firefox only trims leading whitespace. Chrome just collapses\n        // both leading & trailing whitespace to a single space.\n        //\n        // Fall back to `undefined` if empty string returned.\n        // This collapses a missing definition with property defined\n        // and set to an empty string but there's no standard API\n        // allowing us to differentiate them without a performance penalty\n        // and returning `undefined` aligns with older jQuery.\n        //\n        // rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n        // as whitespace while CSS does not, but this is not a problem\n        // because CSS preprocessing replaces them with U+000A LINE FEED\n        // (which *is* CSS whitespace)\n        // https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n        ret = ret.replace(rtrimCSS, \"$1\") || undefined;\n      }\n      if (ret === \"\" && !isAttached(elem)) {\n        ret = jQuery.style(elem, name);\n      }\n\n      // A tribute to the \"awesome hack by Dean Edwards\"\n      // Android Browser returns percentage for some values,\n      // but width seems to be reliably pixels.\n      // This is against the CSSOM draft spec:\n      // https://drafts.csswg.org/cssom/#resolved-values\n      if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n        // Remember the original values\n        width = style.width;\n        minWidth = style.minWidth;\n        maxWidth = style.maxWidth;\n\n        // Put in the new values to get a computed value out\n        style.minWidth = style.maxWidth = style.width = ret;\n        ret = computed.width;\n\n        // Revert the changed values\n        style.width = width;\n        style.minWidth = minWidth;\n        style.maxWidth = maxWidth;\n      }\n    }\n    return ret !== undefined ?\n    // Support: IE <=9 - 11 only\n    // IE returns zIndex value as an integer.\n    ret + \"\" : ret;\n  }\n  function addGetHookIf(conditionFn, hookFn) {\n    // Define the hook, we'll check on the first run if it's really needed.\n    return {\n      get: function () {\n        if (conditionFn()) {\n          // Hook not needed (or it's not possible to use it due\n          // to missing dependency), remove it.\n          delete this.get;\n          return;\n        }\n\n        // Hook needed; redefine it so that the support test is not executed again.\n        return (this.get = hookFn).apply(this, arguments);\n      }\n    };\n  }\n  var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n    emptyStyle = document.createElement(\"div\").style,\n    vendorProps = {};\n\n  // Return a vendor-prefixed property or undefined\n  function vendorPropName(name) {\n    // Check for vendor prefixed names\n    var capName = name[0].toUpperCase() + name.slice(1),\n      i = cssPrefixes.length;\n    while (i--) {\n      name = cssPrefixes[i] + capName;\n      if (name in emptyStyle) {\n        return name;\n      }\n    }\n  }\n\n  // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n  function finalPropName(name) {\n    var final = jQuery.cssProps[name] || vendorProps[name];\n    if (final) {\n      return final;\n    }\n    if (name in emptyStyle) {\n      return name;\n    }\n    return vendorProps[name] = vendorPropName(name) || name;\n  }\n  var\n    // Swappable if display is none or starts with table\n    // except \"table\", \"table-cell\", or \"table-caption\"\n    // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n    rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n    cssShow = {\n      position: \"absolute\",\n      visibility: \"hidden\",\n      display: \"block\"\n    },\n    cssNormalTransform = {\n      letterSpacing: \"0\",\n      fontWeight: \"400\"\n    };\n  function setPositiveNumber(_elem, value, subtract) {\n    // Any relative (+/-) values have already been\n    // normalized at this point\n    var matches = rcssNum.exec(value);\n    return matches ?\n    // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n    Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n  }\n  function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n    var i = dimension === \"width\" ? 1 : 0,\n      extra = 0,\n      delta = 0,\n      marginDelta = 0;\n\n    // Adjustment may not be necessary\n    if (box === (isBorderBox ? \"border\" : \"content\")) {\n      return 0;\n    }\n    for (; i < 4; i += 2) {\n      // Both box models exclude margin\n      // Count margin delta separately to only add it after scroll gutter adjustment.\n      // This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n      if (box === \"margin\") {\n        marginDelta += jQuery.css(elem, box + cssExpand[i], true, styles);\n      }\n\n      // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n      if (!isBorderBox) {\n        // Add padding\n        delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n\n        // For \"border\" or \"margin\", add border\n        if (box !== \"padding\") {\n          delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n\n          // But still keep track of it otherwise\n        } else {\n          extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n        }\n\n        // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n        // \"padding\" or \"margin\"\n      } else {\n        // For \"content\", subtract padding\n        if (box === \"content\") {\n          delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n        }\n\n        // For \"content\" or \"padding\", subtract border\n        if (box !== \"margin\") {\n          delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n        }\n      }\n    }\n\n    // Account for positive content-box scroll gutter when requested by providing computedVal\n    if (!isBorderBox && computedVal >= 0) {\n      // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n      // Assuming integer scroll gutter, subtract the rest and round down\n      delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5\n\n      // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n      // Use an explicit zero to avoid NaN (gh-3964)\n      )) || 0;\n    }\n    return delta + marginDelta;\n  }\n  function getWidthOrHeight(elem, dimension, extra) {\n    // Start with computed style\n    var styles = getStyles(elem),\n      // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n      // Fake content-box until we know it's needed to know the true value.\n      boxSizingNeeded = !support.boxSizingReliable() || extra,\n      isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n      valueIsBorderBox = isBorderBox,\n      val = curCSS(elem, dimension, styles),\n      offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1);\n\n    // Support: Firefox <=54\n    // Return a confounding non-pixel value or feign ignorance, as appropriate.\n    if (rnumnonpx.test(val)) {\n      if (!extra) {\n        return val;\n      }\n      val = \"auto\";\n    }\n\n    // Support: IE 9 - 11 only\n    // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n    // In those cases, the computed value can be trusted to be border-box.\n    if ((!support.boxSizingReliable() && isBorderBox ||\n    // Support: IE 10 - 11+, Edge 15 - 18+\n    // IE/Edge misreport `getComputedStyle` of table rows with width/height\n    // set in CSS while `offset*` properties report correct values.\n    // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n    !support.reliableTrDimensions() && nodeName(elem, \"tr\") ||\n    // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n    // This happens for inline elements with no explicit setting (gh-3571)\n    val === \"auto\" ||\n    // Support: Android <=4.1 - 4.3 only\n    // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n    !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") &&\n    // Make sure the element is visible & connected\n    elem.getClientRects().length) {\n      isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\";\n\n      // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n      // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n      // retrieved value as a content box dimension.\n      valueIsBorderBox = offsetProp in elem;\n      if (valueIsBorderBox) {\n        val = elem[offsetProp];\n      }\n    }\n\n    // Normalize \"\" and auto\n    val = parseFloat(val) || 0;\n\n    // Adjust for the element's box model\n    return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles,\n    // Provide the current computed size to request scroll gutter calculation (gh-3589)\n    val) + \"px\";\n  }\n  jQuery.extend({\n    // Add in style property hooks for overriding the default\n    // behavior of getting and setting a style property\n    cssHooks: {\n      opacity: {\n        get: function (elem, computed) {\n          if (computed) {\n            // We should always get a number back from opacity\n            var ret = curCSS(elem, \"opacity\");\n            return ret === \"\" ? \"1\" : ret;\n          }\n        }\n      }\n    },\n    // Don't automatically add \"px\" to these possibly-unitless properties\n    cssNumber: {\n      animationIterationCount: true,\n      aspectRatio: true,\n      borderImageSlice: true,\n      columnCount: true,\n      flexGrow: true,\n      flexShrink: true,\n      fontWeight: true,\n      gridArea: true,\n      gridColumn: true,\n      gridColumnEnd: true,\n      gridColumnStart: true,\n      gridRow: true,\n      gridRowEnd: true,\n      gridRowStart: true,\n      lineHeight: true,\n      opacity: true,\n      order: true,\n      orphans: true,\n      scale: true,\n      widows: true,\n      zIndex: true,\n      zoom: true,\n      // SVG-related\n      fillOpacity: true,\n      floodOpacity: true,\n      stopOpacity: true,\n      strokeMiterlimit: true,\n      strokeOpacity: true\n    },\n    // Add in properties whose names you wish to fix before\n    // setting or getting the value\n    cssProps: {},\n    // Get and set the style property on a DOM Node\n    style: function (elem, name, value, extra) {\n      // Don't set styles on text and comment nodes\n      if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n        return;\n      }\n\n      // Make sure that we're working with the right name\n      var ret,\n        type,\n        hooks,\n        origName = camelCase(name),\n        isCustomProp = rcustomProp.test(name),\n        style = elem.style;\n\n      // Make sure that we're working with the right name. We don't\n      // want to query the value if it is a CSS custom property\n      // since they are user-defined.\n      if (!isCustomProp) {\n        name = finalPropName(origName);\n      }\n\n      // Gets hook for the prefixed version, then unprefixed version\n      hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n      // Check if we're setting a value\n      if (value !== undefined) {\n        type = typeof value;\n\n        // Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n        if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n          value = adjustCSS(elem, name, ret);\n\n          // Fixes bug trac-9237\n          type = \"number\";\n        }\n\n        // Make sure that null and NaN values aren't set (trac-7116)\n        if (value == null || value !== value) {\n          return;\n        }\n\n        // If a number was passed in, add the unit (except for certain CSS properties)\n        // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n        // \"px\" to a few hardcoded values.\n        if (type === \"number\" && !isCustomProp) {\n          value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n        }\n\n        // background-* props affect original clone's values\n        if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n          style[name] = \"inherit\";\n        }\n\n        // If a hook was provided, use that value, otherwise just set the specified value\n        if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n          if (isCustomProp) {\n            style.setProperty(name, value);\n          } else {\n            style[name] = value;\n          }\n        }\n      } else {\n        // If a hook was provided get the non-computed value from there\n        if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n          return ret;\n        }\n\n        // Otherwise just get the value from the style object\n        return style[name];\n      }\n    },\n    css: function (elem, name, extra, styles) {\n      var val,\n        num,\n        hooks,\n        origName = camelCase(name),\n        isCustomProp = rcustomProp.test(name);\n\n      // Make sure that we're working with the right name. We don't\n      // want to modify the value if it is a CSS custom property\n      // since they are user-defined.\n      if (!isCustomProp) {\n        name = finalPropName(origName);\n      }\n\n      // Try prefixed name followed by the unprefixed name\n      hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName];\n\n      // If a hook was provided get the computed value from there\n      if (hooks && \"get\" in hooks) {\n        val = hooks.get(elem, true, extra);\n      }\n\n      // Otherwise, if a way to get the computed value exists, use that\n      if (val === undefined) {\n        val = curCSS(elem, name, styles);\n      }\n\n      // Convert \"normal\" to computed value\n      if (val === \"normal\" && name in cssNormalTransform) {\n        val = cssNormalTransform[name];\n      }\n\n      // Make numeric if forced or a qualifier was provided and val looks numeric\n      if (extra === \"\" || extra) {\n        num = parseFloat(val);\n        return extra === true || isFinite(num) ? num || 0 : val;\n      }\n      return val;\n    }\n  });\n  jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n    jQuery.cssHooks[dimension] = {\n      get: function (elem, computed, extra) {\n        if (computed) {\n          // Certain elements can have dimension info if we invisibly show them\n          // but it must have a current display style that would benefit\n          return rdisplayswap.test(jQuery.css(elem, \"display\")) && (\n          // Support: Safari 8+\n          // Table columns in Safari have non-zero offsetWidth & zero\n          // getBoundingClientRect().width unless display is changed.\n          // Support: IE <=11 only\n          // Running getBoundingClientRect on a disconnected node\n          // in IE throws an error.\n          !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n            return getWidthOrHeight(elem, dimension, extra);\n          }) : getWidthOrHeight(elem, dimension, extra);\n        }\n      },\n      set: function (elem, value, extra) {\n        var matches,\n          styles = getStyles(elem),\n          // Only read styles.position if the test has a chance to fail\n          // to avoid forcing a reflow.\n          scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n          // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n          boxSizingNeeded = scrollboxSizeBuggy || extra,\n          isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n          subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0;\n\n        // Account for unreliable border-box dimensions by comparing offset* to computed and\n        // faking a content-box to get border and padding (gh-3699)\n        if (isBorderBox && scrollboxSizeBuggy) {\n          subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n        }\n\n        // Convert to pixels if value adjustment is needed\n        if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n          elem.style[dimension] = value;\n          value = jQuery.css(elem, dimension);\n        }\n        return setPositiveNumber(elem, value, subtract);\n      }\n    };\n  });\n  jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n    if (computed) {\n      return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n        marginLeft: 0\n      }, function () {\n        return elem.getBoundingClientRect().left;\n      })) + \"px\";\n    }\n  });\n\n  // These hooks are used by animate to expand properties\n  jQuery.each({\n    margin: \"\",\n    padding: \"\",\n    border: \"Width\"\n  }, function (prefix, suffix) {\n    jQuery.cssHooks[prefix + suffix] = {\n      expand: function (value) {\n        var i = 0,\n          expanded = {},\n          // Assumes a single number if not a string\n          parts = typeof value === \"string\" ? value.split(\" \") : [value];\n        for (; i < 4; i++) {\n          expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n        }\n        return expanded;\n      }\n    };\n    if (prefix !== \"margin\") {\n      jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n    }\n  });\n  jQuery.fn.extend({\n    css: function (name, value) {\n      return access(this, function (elem, name, value) {\n        var styles,\n          len,\n          map = {},\n          i = 0;\n        if (Array.isArray(name)) {\n          styles = getStyles(elem);\n          len = name.length;\n          for (; i < len; i++) {\n            map[name[i]] = jQuery.css(elem, name[i], false, styles);\n          }\n          return map;\n        }\n        return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n      }, name, value, arguments.length > 1);\n    }\n  });\n  function Tween(elem, options, prop, end, easing) {\n    return new Tween.prototype.init(elem, options, prop, end, easing);\n  }\n  jQuery.Tween = Tween;\n  Tween.prototype = {\n    constructor: Tween,\n    init: function (elem, options, prop, end, easing, unit) {\n      this.elem = elem;\n      this.prop = prop;\n      this.easing = easing || jQuery.easing._default;\n      this.options = options;\n      this.start = this.now = this.cur();\n      this.end = end;\n      this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n    },\n    cur: function () {\n      var hooks = Tween.propHooks[this.prop];\n      return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n    },\n    run: function (percent) {\n      var eased,\n        hooks = Tween.propHooks[this.prop];\n      if (this.options.duration) {\n        this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n      } else {\n        this.pos = eased = percent;\n      }\n      this.now = (this.end - this.start) * eased + this.start;\n      if (this.options.step) {\n        this.options.step.call(this.elem, this.now, this);\n      }\n      if (hooks && hooks.set) {\n        hooks.set(this);\n      } else {\n        Tween.propHooks._default.set(this);\n      }\n      return this;\n    }\n  };\n  Tween.prototype.init.prototype = Tween.prototype;\n  Tween.propHooks = {\n    _default: {\n      get: function (tween) {\n        var result;\n\n        // Use a property on the element directly when it is not a DOM element,\n        // or when there is no matching style property that exists.\n        if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n          return tween.elem[tween.prop];\n        }\n\n        // Passing an empty string as a 3rd parameter to .css will automatically\n        // attempt a parseFloat and fallback to a string if the parse fails.\n        // Simple values such as \"10px\" are parsed to Float;\n        // complex values such as \"rotate(1rad)\" are returned as-is.\n        result = jQuery.css(tween.elem, tween.prop, \"\");\n\n        // Empty strings, null, undefined and \"auto\" are converted to 0.\n        return !result || result === \"auto\" ? 0 : result;\n      },\n      set: function (tween) {\n        // Use step hook for back compat.\n        // Use cssHook if its there.\n        // Use .style if available and use plain properties where available.\n        if (jQuery.fx.step[tween.prop]) {\n          jQuery.fx.step[tween.prop](tween);\n        } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n          jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n        } else {\n          tween.elem[tween.prop] = tween.now;\n        }\n      }\n    }\n  };\n\n  // Support: IE <=9 only\n  // Panic based approach to setting things on disconnected nodes\n  Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n    set: function (tween) {\n      if (tween.elem.nodeType && tween.elem.parentNode) {\n        tween.elem[tween.prop] = tween.now;\n      }\n    }\n  };\n  jQuery.easing = {\n    linear: function (p) {\n      return p;\n    },\n    swing: function (p) {\n      return 0.5 - Math.cos(p * Math.PI) / 2;\n    },\n    _default: \"swing\"\n  };\n  jQuery.fx = Tween.prototype.init;\n\n  // Back compat <1.8 extension point\n  jQuery.fx.step = {};\n  var fxNow,\n    inProgress,\n    rfxtypes = /^(?:toggle|show|hide)$/,\n    rrun = /queueHooks$/;\n  function schedule() {\n    if (inProgress) {\n      if (document.hidden === false && window.requestAnimationFrame) {\n        window.requestAnimationFrame(schedule);\n      } else {\n        window.setTimeout(schedule, jQuery.fx.interval);\n      }\n      jQuery.fx.tick();\n    }\n  }\n\n  // Animations created synchronously will run synchronously\n  function createFxNow() {\n    window.setTimeout(function () {\n      fxNow = undefined;\n    });\n    return fxNow = Date.now();\n  }\n\n  // Generate parameters to create a standard animation\n  function genFx(type, includeWidth) {\n    var which,\n      i = 0,\n      attrs = {\n        height: type\n      };\n\n    // If we include width, step value is 1 to do all cssExpand values,\n    // otherwise step value is 2 to skip over Left and Right\n    includeWidth = includeWidth ? 1 : 0;\n    for (; i < 4; i += 2 - includeWidth) {\n      which = cssExpand[i];\n      attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n    }\n    if (includeWidth) {\n      attrs.opacity = attrs.width = type;\n    }\n    return attrs;\n  }\n  function createTween(value, prop, animation) {\n    var tween,\n      collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n      index = 0,\n      length = collection.length;\n    for (; index < length; index++) {\n      if (tween = collection[index].call(animation, prop, value)) {\n        // We're done with this property\n        return tween;\n      }\n    }\n  }\n  function defaultPrefilter(elem, props, opts) {\n    var prop,\n      value,\n      toggle,\n      hooks,\n      oldfire,\n      propTween,\n      restoreDisplay,\n      display,\n      isBox = \"width\" in props || \"height\" in props,\n      anim = this,\n      orig = {},\n      style = elem.style,\n      hidden = elem.nodeType && isHiddenWithinTree(elem),\n      dataShow = dataPriv.get(elem, \"fxshow\");\n\n    // Queue-skipping animations hijack the fx hooks\n    if (!opts.queue) {\n      hooks = jQuery._queueHooks(elem, \"fx\");\n      if (hooks.unqueued == null) {\n        hooks.unqueued = 0;\n        oldfire = hooks.empty.fire;\n        hooks.empty.fire = function () {\n          if (!hooks.unqueued) {\n            oldfire();\n          }\n        };\n      }\n      hooks.unqueued++;\n      anim.always(function () {\n        // Ensure the complete handler is called before this completes\n        anim.always(function () {\n          hooks.unqueued--;\n          if (!jQuery.queue(elem, \"fx\").length) {\n            hooks.empty.fire();\n          }\n        });\n      });\n    }\n\n    // Detect show/hide animations\n    for (prop in props) {\n      value = props[prop];\n      if (rfxtypes.test(value)) {\n        delete props[prop];\n        toggle = toggle || value === \"toggle\";\n        if (value === (hidden ? \"hide\" : \"show\")) {\n          // Pretend to be hidden if this is a \"show\" and\n          // there is still data from a stopped show/hide\n          if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n            hidden = true;\n\n            // Ignore all other no-op show/hide data\n          } else {\n            continue;\n          }\n        }\n        orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n      }\n    }\n\n    // Bail out if this is a no-op like .hide().hide()\n    propTween = !jQuery.isEmptyObject(props);\n    if (!propTween && jQuery.isEmptyObject(orig)) {\n      return;\n    }\n\n    // Restrict \"overflow\" and \"display\" styles during box animations\n    if (isBox && elem.nodeType === 1) {\n      // Support: IE <=9 - 11, Edge 12 - 15\n      // Record all 3 overflow attributes because IE does not infer the shorthand\n      // from identically-valued overflowX and overflowY and Edge just mirrors\n      // the overflowX value there.\n      opts.overflow = [style.overflow, style.overflowX, style.overflowY];\n\n      // Identify a display type, preferring old show/hide data over the CSS cascade\n      restoreDisplay = dataShow && dataShow.display;\n      if (restoreDisplay == null) {\n        restoreDisplay = dataPriv.get(elem, \"display\");\n      }\n      display = jQuery.css(elem, \"display\");\n      if (display === \"none\") {\n        if (restoreDisplay) {\n          display = restoreDisplay;\n        } else {\n          // Get nonempty value(s) by temporarily forcing visibility\n          showHide([elem], true);\n          restoreDisplay = elem.style.display || restoreDisplay;\n          display = jQuery.css(elem, \"display\");\n          showHide([elem]);\n        }\n      }\n\n      // Animate inline elements as inline-block\n      if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n        if (jQuery.css(elem, \"float\") === \"none\") {\n          // Restore the original display value at the end of pure show/hide animations\n          if (!propTween) {\n            anim.done(function () {\n              style.display = restoreDisplay;\n            });\n            if (restoreDisplay == null) {\n              display = style.display;\n              restoreDisplay = display === \"none\" ? \"\" : display;\n            }\n          }\n          style.display = \"inline-block\";\n        }\n      }\n    }\n    if (opts.overflow) {\n      style.overflow = \"hidden\";\n      anim.always(function () {\n        style.overflow = opts.overflow[0];\n        style.overflowX = opts.overflow[1];\n        style.overflowY = opts.overflow[2];\n      });\n    }\n\n    // Implement show/hide animations\n    propTween = false;\n    for (prop in orig) {\n      // General show/hide setup for this element animation\n      if (!propTween) {\n        if (dataShow) {\n          if (\"hidden\" in dataShow) {\n            hidden = dataShow.hidden;\n          }\n        } else {\n          dataShow = dataPriv.access(elem, \"fxshow\", {\n            display: restoreDisplay\n          });\n        }\n\n        // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n        if (toggle) {\n          dataShow.hidden = !hidden;\n        }\n\n        // Show elements before animating them\n        if (hidden) {\n          showHide([elem], true);\n        }\n\n        /* eslint-disable no-loop-func */\n\n        anim.done(function () {\n          /* eslint-enable no-loop-func */\n\n          // The final step of a \"hide\" animation is actually hiding the element\n          if (!hidden) {\n            showHide([elem]);\n          }\n          dataPriv.remove(elem, \"fxshow\");\n          for (prop in orig) {\n            jQuery.style(elem, prop, orig[prop]);\n          }\n        });\n      }\n\n      // Per-property setup\n      propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n      if (!(prop in dataShow)) {\n        dataShow[prop] = propTween.start;\n        if (hidden) {\n          propTween.end = propTween.start;\n          propTween.start = 0;\n        }\n      }\n    }\n  }\n  function propFilter(props, specialEasing) {\n    var index, name, easing, value, hooks;\n\n    // camelCase, specialEasing and expand cssHook pass\n    for (index in props) {\n      name = camelCase(index);\n      easing = specialEasing[name];\n      value = props[index];\n      if (Array.isArray(value)) {\n        easing = value[1];\n        value = props[index] = value[0];\n      }\n      if (index !== name) {\n        props[name] = value;\n        delete props[index];\n      }\n      hooks = jQuery.cssHooks[name];\n      if (hooks && \"expand\" in hooks) {\n        value = hooks.expand(value);\n        delete props[name];\n\n        // Not quite $.extend, this won't overwrite existing keys.\n        // Reusing 'index' because we have the correct \"name\"\n        for (index in value) {\n          if (!(index in props)) {\n            props[index] = value[index];\n            specialEasing[index] = easing;\n          }\n        }\n      } else {\n        specialEasing[name] = easing;\n      }\n    }\n  }\n  function Animation(elem, properties, options) {\n    var result,\n      stopped,\n      index = 0,\n      length = Animation.prefilters.length,\n      deferred = jQuery.Deferred().always(function () {\n        // Don't match elem in the :animated selector\n        delete tick.elem;\n      }),\n      tick = function () {\n        if (stopped) {\n          return false;\n        }\n        var currentTime = fxNow || createFxNow(),\n          remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n          // Support: Android 2.3 only\n          // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n          temp = remaining / animation.duration || 0,\n          percent = 1 - temp,\n          index = 0,\n          length = animation.tweens.length;\n        for (; index < length; index++) {\n          animation.tweens[index].run(percent);\n        }\n        deferred.notifyWith(elem, [animation, percent, remaining]);\n\n        // If there's more to do, yield\n        if (percent < 1 && length) {\n          return remaining;\n        }\n\n        // If this was an empty animation, synthesize a final progress notification\n        if (!length) {\n          deferred.notifyWith(elem, [animation, 1, 0]);\n        }\n\n        // Resolve the animation and report its conclusion\n        deferred.resolveWith(elem, [animation]);\n        return false;\n      },\n      animation = deferred.promise({\n        elem: elem,\n        props: jQuery.extend({}, properties),\n        opts: jQuery.extend(true, {\n          specialEasing: {},\n          easing: jQuery.easing._default\n        }, options),\n        originalProperties: properties,\n        originalOptions: options,\n        startTime: fxNow || createFxNow(),\n        duration: options.duration,\n        tweens: [],\n        createTween: function (prop, end) {\n          var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n          animation.tweens.push(tween);\n          return tween;\n        },\n        stop: function (gotoEnd) {\n          var index = 0,\n            // If we are going to the end, we want to run all the tweens\n            // otherwise we skip this part\n            length = gotoEnd ? animation.tweens.length : 0;\n          if (stopped) {\n            return this;\n          }\n          stopped = true;\n          for (; index < length; index++) {\n            animation.tweens[index].run(1);\n          }\n\n          // Resolve when we played the last frame; otherwise, reject\n          if (gotoEnd) {\n            deferred.notifyWith(elem, [animation, 1, 0]);\n            deferred.resolveWith(elem, [animation, gotoEnd]);\n          } else {\n            deferred.rejectWith(elem, [animation, gotoEnd]);\n          }\n          return this;\n        }\n      }),\n      props = animation.props;\n    propFilter(props, animation.opts.specialEasing);\n    for (; index < length; index++) {\n      result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n      if (result) {\n        if (isFunction(result.stop)) {\n          jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n        }\n        return result;\n      }\n    }\n    jQuery.map(props, createTween, animation);\n    if (isFunction(animation.opts.start)) {\n      animation.opts.start.call(elem, animation);\n    }\n\n    // Attach callbacks from options\n    animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n    jQuery.fx.timer(jQuery.extend(tick, {\n      elem: elem,\n      anim: animation,\n      queue: animation.opts.queue\n    }));\n    return animation;\n  }\n  jQuery.Animation = jQuery.extend(Animation, {\n    tweeners: {\n      \"*\": [function (prop, value) {\n        var tween = this.createTween(prop, value);\n        adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n        return tween;\n      }]\n    },\n    tweener: function (props, callback) {\n      if (isFunction(props)) {\n        callback = props;\n        props = [\"*\"];\n      } else {\n        props = props.match(rnothtmlwhite);\n      }\n      var prop,\n        index = 0,\n        length = props.length;\n      for (; index < length; index++) {\n        prop = props[index];\n        Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n        Animation.tweeners[prop].unshift(callback);\n      }\n    },\n    prefilters: [defaultPrefilter],\n    prefilter: function (callback, prepend) {\n      if (prepend) {\n        Animation.prefilters.unshift(callback);\n      } else {\n        Animation.prefilters.push(callback);\n      }\n    }\n  });\n  jQuery.speed = function (speed, easing, fn) {\n    var opt = speed && typeof speed === \"object\" ? jQuery.extend({}, speed) : {\n      complete: fn || !fn && easing || isFunction(speed) && speed,\n      duration: speed,\n      easing: fn && easing || easing && !isFunction(easing) && easing\n    };\n\n    // Go to the end state if fx are off\n    if (jQuery.fx.off) {\n      opt.duration = 0;\n    } else {\n      if (typeof opt.duration !== \"number\") {\n        if (opt.duration in jQuery.fx.speeds) {\n          opt.duration = jQuery.fx.speeds[opt.duration];\n        } else {\n          opt.duration = jQuery.fx.speeds._default;\n        }\n      }\n    }\n\n    // Normalize opt.queue - true/undefined/null -> \"fx\"\n    if (opt.queue == null || opt.queue === true) {\n      opt.queue = \"fx\";\n    }\n\n    // Queueing\n    opt.old = opt.complete;\n    opt.complete = function () {\n      if (isFunction(opt.old)) {\n        opt.old.call(this);\n      }\n      if (opt.queue) {\n        jQuery.dequeue(this, opt.queue);\n      }\n    };\n    return opt;\n  };\n  jQuery.fn.extend({\n    fadeTo: function (speed, to, easing, callback) {\n      // Show any hidden elements after setting opacity to 0\n      return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show()\n\n      // Animate to the value specified\n      .end().animate({\n        opacity: to\n      }, speed, easing, callback);\n    },\n    animate: function (prop, speed, easing, callback) {\n      var empty = jQuery.isEmptyObject(prop),\n        optall = jQuery.speed(speed, easing, callback),\n        doAnimation = function () {\n          // Operate on a copy of prop so per-property easing won't be lost\n          var anim = Animation(this, jQuery.extend({}, prop), optall);\n\n          // Empty animations, or finishing resolves immediately\n          if (empty || dataPriv.get(this, \"finish\")) {\n            anim.stop(true);\n          }\n        };\n      doAnimation.finish = doAnimation;\n      return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n    },\n    stop: function (type, clearQueue, gotoEnd) {\n      var stopQueue = function (hooks) {\n        var stop = hooks.stop;\n        delete hooks.stop;\n        stop(gotoEnd);\n      };\n      if (typeof type !== \"string\") {\n        gotoEnd = clearQueue;\n        clearQueue = type;\n        type = undefined;\n      }\n      if (clearQueue) {\n        this.queue(type || \"fx\", []);\n      }\n      return this.each(function () {\n        var dequeue = true,\n          index = type != null && type + \"queueHooks\",\n          timers = jQuery.timers,\n          data = dataPriv.get(this);\n        if (index) {\n          if (data[index] && data[index].stop) {\n            stopQueue(data[index]);\n          }\n        } else {\n          for (index in data) {\n            if (data[index] && data[index].stop && rrun.test(index)) {\n              stopQueue(data[index]);\n            }\n          }\n        }\n        for (index = timers.length; index--;) {\n          if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n            timers[index].anim.stop(gotoEnd);\n            dequeue = false;\n            timers.splice(index, 1);\n          }\n        }\n\n        // Start the next in the queue if the last step wasn't forced.\n        // Timers currently will call their complete callbacks, which\n        // will dequeue but only if they were gotoEnd.\n        if (dequeue || !gotoEnd) {\n          jQuery.dequeue(this, type);\n        }\n      });\n    },\n    finish: function (type) {\n      if (type !== false) {\n        type = type || \"fx\";\n      }\n      return this.each(function () {\n        var index,\n          data = dataPriv.get(this),\n          queue = data[type + \"queue\"],\n          hooks = data[type + \"queueHooks\"],\n          timers = jQuery.timers,\n          length = queue ? queue.length : 0;\n\n        // Enable finishing flag on private data\n        data.finish = true;\n\n        // Empty the queue first\n        jQuery.queue(this, type, []);\n        if (hooks && hooks.stop) {\n          hooks.stop.call(this, true);\n        }\n\n        // Look for any active animations, and finish them\n        for (index = timers.length; index--;) {\n          if (timers[index].elem === this && timers[index].queue === type) {\n            timers[index].anim.stop(true);\n            timers.splice(index, 1);\n          }\n        }\n\n        // Look for any animations in the old queue and finish them\n        for (index = 0; index < length; index++) {\n          if (queue[index] && queue[index].finish) {\n            queue[index].finish.call(this);\n          }\n        }\n\n        // Turn off finishing flag\n        delete data.finish;\n      });\n    }\n  });\n  jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n    var cssFn = jQuery.fn[name];\n    jQuery.fn[name] = function (speed, easing, callback) {\n      return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n    };\n  });\n\n  // Generate shortcuts for custom animations\n  jQuery.each({\n    slideDown: genFx(\"show\"),\n    slideUp: genFx(\"hide\"),\n    slideToggle: genFx(\"toggle\"),\n    fadeIn: {\n      opacity: \"show\"\n    },\n    fadeOut: {\n      opacity: \"hide\"\n    },\n    fadeToggle: {\n      opacity: \"toggle\"\n    }\n  }, function (name, props) {\n    jQuery.fn[name] = function (speed, easing, callback) {\n      return this.animate(props, speed, easing, callback);\n    };\n  });\n  jQuery.timers = [];\n  jQuery.fx.tick = function () {\n    var timer,\n      i = 0,\n      timers = jQuery.timers;\n    fxNow = Date.now();\n    for (; i < timers.length; i++) {\n      timer = timers[i];\n\n      // Run the timer and safely remove it when done (allowing for external removal)\n      if (!timer() && timers[i] === timer) {\n        timers.splice(i--, 1);\n      }\n    }\n    if (!timers.length) {\n      jQuery.fx.stop();\n    }\n    fxNow = undefined;\n  };\n  jQuery.fx.timer = function (timer) {\n    jQuery.timers.push(timer);\n    jQuery.fx.start();\n  };\n  jQuery.fx.interval = 13;\n  jQuery.fx.start = function () {\n    if (inProgress) {\n      return;\n    }\n    inProgress = true;\n    schedule();\n  };\n  jQuery.fx.stop = function () {\n    inProgress = null;\n  };\n  jQuery.fx.speeds = {\n    slow: 600,\n    fast: 200,\n    // Default speed\n    _default: 400\n  };\n\n  // Based off of the plugin by Clint Helfers, with permission.\n  jQuery.fn.delay = function (time, type) {\n    time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n    type = type || \"fx\";\n    return this.queue(type, function (next, hooks) {\n      var timeout = window.setTimeout(next, time);\n      hooks.stop = function () {\n        window.clearTimeout(timeout);\n      };\n    });\n  };\n  (function () {\n    var input = document.createElement(\"input\"),\n      select = document.createElement(\"select\"),\n      opt = select.appendChild(document.createElement(\"option\"));\n    input.type = \"checkbox\";\n\n    // Support: Android <=4.3 only\n    // Default value for a checkbox should be \"on\"\n    support.checkOn = input.value !== \"\";\n\n    // Support: IE <=11 only\n    // Must access selectedIndex to make default options select\n    support.optSelected = opt.selected;\n\n    // Support: IE <=11 only\n    // An input loses its value after becoming a radio\n    input = document.createElement(\"input\");\n    input.value = \"t\";\n    input.type = \"radio\";\n    support.radioValue = input.value === \"t\";\n  })();\n  var boolHook,\n    attrHandle = jQuery.expr.attrHandle;\n  jQuery.fn.extend({\n    attr: function (name, value) {\n      return access(this, jQuery.attr, name, value, arguments.length > 1);\n    },\n    removeAttr: function (name) {\n      return this.each(function () {\n        jQuery.removeAttr(this, name);\n      });\n    }\n  });\n  jQuery.extend({\n    attr: function (elem, name, value) {\n      var ret,\n        hooks,\n        nType = elem.nodeType;\n\n      // Don't get/set attributes on text, comment and attribute nodes\n      if (nType === 3 || nType === 8 || nType === 2) {\n        return;\n      }\n\n      // Fallback to prop when attributes are not supported\n      if (typeof elem.getAttribute === \"undefined\") {\n        return jQuery.prop(elem, name, value);\n      }\n\n      // Attribute hooks are determined by the lowercase version\n      // Grab necessary hook if one is defined\n      if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n        hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n      }\n      if (value !== undefined) {\n        if (value === null) {\n          jQuery.removeAttr(elem, name);\n          return;\n        }\n        if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n          return ret;\n        }\n        elem.setAttribute(name, value + \"\");\n        return value;\n      }\n      if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n        return ret;\n      }\n      ret = jQuery.find.attr(elem, name);\n\n      // Non-existent attributes return null, we normalize to undefined\n      return ret == null ? undefined : ret;\n    },\n    attrHooks: {\n      type: {\n        set: function (elem, value) {\n          if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n            var val = elem.value;\n            elem.setAttribute(\"type\", value);\n            if (val) {\n              elem.value = val;\n            }\n            return value;\n          }\n        }\n      }\n    },\n    removeAttr: function (elem, value) {\n      var name,\n        i = 0,\n        // Attribute names can contain non-HTML whitespace characters\n        // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n        attrNames = value && value.match(rnothtmlwhite);\n      if (attrNames && elem.nodeType === 1) {\n        while (name = attrNames[i++]) {\n          elem.removeAttribute(name);\n        }\n      }\n    }\n  });\n\n  // Hooks for boolean attributes\n  boolHook = {\n    set: function (elem, value, name) {\n      if (value === false) {\n        // Remove boolean attributes when set to false\n        jQuery.removeAttr(elem, name);\n      } else {\n        elem.setAttribute(name, name);\n      }\n      return name;\n    }\n  };\n  jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n    var getter = attrHandle[name] || jQuery.find.attr;\n    attrHandle[name] = function (elem, name, isXML) {\n      var ret,\n        handle,\n        lowercaseName = name.toLowerCase();\n      if (!isXML) {\n        // Avoid an infinite loop by temporarily removing this function from the getter\n        handle = attrHandle[lowercaseName];\n        attrHandle[lowercaseName] = ret;\n        ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n        attrHandle[lowercaseName] = handle;\n      }\n      return ret;\n    };\n  });\n  var rfocusable = /^(?:input|select|textarea|button)$/i,\n    rclickable = /^(?:a|area)$/i;\n  jQuery.fn.extend({\n    prop: function (name, value) {\n      return access(this, jQuery.prop, name, value, arguments.length > 1);\n    },\n    removeProp: function (name) {\n      return this.each(function () {\n        delete this[jQuery.propFix[name] || name];\n      });\n    }\n  });\n  jQuery.extend({\n    prop: function (elem, name, value) {\n      var ret,\n        hooks,\n        nType = elem.nodeType;\n\n      // Don't get/set properties on text, comment and attribute nodes\n      if (nType === 3 || nType === 8 || nType === 2) {\n        return;\n      }\n      if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n        // Fix name and attach hooks\n        name = jQuery.propFix[name] || name;\n        hooks = jQuery.propHooks[name];\n      }\n      if (value !== undefined) {\n        if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n          return ret;\n        }\n        return elem[name] = value;\n      }\n      if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n        return ret;\n      }\n      return elem[name];\n    },\n    propHooks: {\n      tabIndex: {\n        get: function (elem) {\n          // Support: IE <=9 - 11 only\n          // elem.tabIndex doesn't always return the\n          // correct value when it hasn't been explicitly set\n          // Use proper attribute retrieval (trac-12072)\n          var tabindex = jQuery.find.attr(elem, \"tabindex\");\n          if (tabindex) {\n            return parseInt(tabindex, 10);\n          }\n          if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n            return 0;\n          }\n          return -1;\n        }\n      }\n    },\n    propFix: {\n      \"for\": \"htmlFor\",\n      \"class\": \"className\"\n    }\n  });\n\n  // Support: IE <=11 only\n  // Accessing the selectedIndex property\n  // forces the browser to respect setting selected\n  // on the option\n  // The getter ensures a default option is selected\n  // when in an optgroup\n  // eslint rule \"no-unused-expressions\" is disabled for this code\n  // since it considers such accessions noop\n  if (!support.optSelected) {\n    jQuery.propHooks.selected = {\n      get: function (elem) {\n        /* eslint no-unused-expressions: \"off\" */\n\n        var parent = elem.parentNode;\n        if (parent && parent.parentNode) {\n          parent.parentNode.selectedIndex;\n        }\n        return null;\n      },\n      set: function (elem) {\n        /* eslint no-unused-expressions: \"off\" */\n\n        var parent = elem.parentNode;\n        if (parent) {\n          parent.selectedIndex;\n          if (parent.parentNode) {\n            parent.parentNode.selectedIndex;\n          }\n        }\n      }\n    };\n  }\n  jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n    jQuery.propFix[this.toLowerCase()] = this;\n  });\n\n  // Strip and collapse whitespace according to HTML spec\n  // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n  function stripAndCollapse(value) {\n    var tokens = value.match(rnothtmlwhite) || [];\n    return tokens.join(\" \");\n  }\n  function getClass(elem) {\n    return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n  }\n  function classesToArray(value) {\n    if (Array.isArray(value)) {\n      return value;\n    }\n    if (typeof value === \"string\") {\n      return value.match(rnothtmlwhite) || [];\n    }\n    return [];\n  }\n  jQuery.fn.extend({\n    addClass: function (value) {\n      var classNames, cur, curValue, className, i, finalValue;\n      if (isFunction(value)) {\n        return this.each(function (j) {\n          jQuery(this).addClass(value.call(this, j, getClass(this)));\n        });\n      }\n      classNames = classesToArray(value);\n      if (classNames.length) {\n        return this.each(function () {\n          curValue = getClass(this);\n          cur = this.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n          if (cur) {\n            for (i = 0; i < classNames.length; i++) {\n              className = classNames[i];\n              if (cur.indexOf(\" \" + className + \" \") < 0) {\n                cur += className + \" \";\n              }\n            }\n\n            // Only assign if different to avoid unneeded rendering.\n            finalValue = stripAndCollapse(cur);\n            if (curValue !== finalValue) {\n              this.setAttribute(\"class\", finalValue);\n            }\n          }\n        });\n      }\n      return this;\n    },\n    removeClass: function (value) {\n      var classNames, cur, curValue, className, i, finalValue;\n      if (isFunction(value)) {\n        return this.each(function (j) {\n          jQuery(this).removeClass(value.call(this, j, getClass(this)));\n        });\n      }\n      if (!arguments.length) {\n        return this.attr(\"class\", \"\");\n      }\n      classNames = classesToArray(value);\n      if (classNames.length) {\n        return this.each(function () {\n          curValue = getClass(this);\n\n          // This expression is here for better compressibility (see addClass)\n          cur = this.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n          if (cur) {\n            for (i = 0; i < classNames.length; i++) {\n              className = classNames[i];\n\n              // Remove *all* instances\n              while (cur.indexOf(\" \" + className + \" \") > -1) {\n                cur = cur.replace(\" \" + className + \" \", \" \");\n              }\n            }\n\n            // Only assign if different to avoid unneeded rendering.\n            finalValue = stripAndCollapse(cur);\n            if (curValue !== finalValue) {\n              this.setAttribute(\"class\", finalValue);\n            }\n          }\n        });\n      }\n      return this;\n    },\n    toggleClass: function (value, stateVal) {\n      var classNames,\n        className,\n        i,\n        self,\n        type = typeof value,\n        isValidValue = type === \"string\" || Array.isArray(value);\n      if (isFunction(value)) {\n        return this.each(function (i) {\n          jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n        });\n      }\n      if (typeof stateVal === \"boolean\" && isValidValue) {\n        return stateVal ? this.addClass(value) : this.removeClass(value);\n      }\n      classNames = classesToArray(value);\n      return this.each(function () {\n        if (isValidValue) {\n          // Toggle individual class names\n          self = jQuery(this);\n          for (i = 0; i < classNames.length; i++) {\n            className = classNames[i];\n\n            // Check each className given, space separated list\n            if (self.hasClass(className)) {\n              self.removeClass(className);\n            } else {\n              self.addClass(className);\n            }\n          }\n\n          // Toggle whole class name\n        } else if (value === undefined || type === \"boolean\") {\n          className = getClass(this);\n          if (className) {\n            // Store className if set\n            dataPriv.set(this, \"__className__\", className);\n          }\n\n          // If the element has a class name or if we're passed `false`,\n          // then remove the whole classname (if there was one, the above saved it).\n          // Otherwise bring back whatever was previously saved (if anything),\n          // falling back to the empty string if nothing was stored.\n          if (this.setAttribute) {\n            this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n          }\n        }\n      });\n    },\n    hasClass: function (selector) {\n      var className,\n        elem,\n        i = 0;\n      className = \" \" + selector + \" \";\n      while (elem = this[i++]) {\n        if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n          return true;\n        }\n      }\n      return false;\n    }\n  });\n  var rreturn = /\\r/g;\n  jQuery.fn.extend({\n    val: function (value) {\n      var hooks,\n        ret,\n        valueIsFunction,\n        elem = this[0];\n      if (!arguments.length) {\n        if (elem) {\n          hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n          if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n            return ret;\n          }\n          ret = elem.value;\n\n          // Handle most common string cases\n          if (typeof ret === \"string\") {\n            return ret.replace(rreturn, \"\");\n          }\n\n          // Handle cases where value is null/undef or number\n          return ret == null ? \"\" : ret;\n        }\n        return;\n      }\n      valueIsFunction = isFunction(value);\n      return this.each(function (i) {\n        var val;\n        if (this.nodeType !== 1) {\n          return;\n        }\n        if (valueIsFunction) {\n          val = value.call(this, i, jQuery(this).val());\n        } else {\n          val = value;\n        }\n\n        // Treat null/undefined as \"\"; convert numbers to string\n        if (val == null) {\n          val = \"\";\n        } else if (typeof val === \"number\") {\n          val += \"\";\n        } else if (Array.isArray(val)) {\n          val = jQuery.map(val, function (value) {\n            return value == null ? \"\" : value + \"\";\n          });\n        }\n        hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()];\n\n        // If set returns undefined, fall back to normal setting\n        if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n          this.value = val;\n        }\n      });\n    }\n  });\n  jQuery.extend({\n    valHooks: {\n      option: {\n        get: function (elem) {\n          var val = jQuery.find.attr(elem, \"value\");\n          return val != null ? val :\n          // Support: IE <=10 - 11 only\n          // option.text throws exceptions (trac-14686, trac-14858)\n          // Strip and collapse whitespace\n          // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n          stripAndCollapse(jQuery.text(elem));\n        }\n      },\n      select: {\n        get: function (elem) {\n          var value,\n            option,\n            i,\n            options = elem.options,\n            index = elem.selectedIndex,\n            one = elem.type === \"select-one\",\n            values = one ? null : [],\n            max = one ? index + 1 : options.length;\n          if (index < 0) {\n            i = max;\n          } else {\n            i = one ? index : 0;\n          }\n\n          // Loop through all the selected options\n          for (; i < max; i++) {\n            option = options[i];\n\n            // Support: IE <=9 only\n            // IE8-9 doesn't update selected after form reset (trac-2551)\n            if ((option.selected || i === index) &&\n            // Don't return options that are disabled or in a disabled optgroup\n            !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n              // Get the specific value for the option\n              value = jQuery(option).val();\n\n              // We don't need an array for one selects\n              if (one) {\n                return value;\n              }\n\n              // Multi-Selects return an array\n              values.push(value);\n            }\n          }\n          return values;\n        },\n        set: function (elem, value) {\n          var optionSet,\n            option,\n            options = elem.options,\n            values = jQuery.makeArray(value),\n            i = options.length;\n          while (i--) {\n            option = options[i];\n\n            /* eslint-disable no-cond-assign */\n\n            if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n              optionSet = true;\n            }\n\n            /* eslint-enable no-cond-assign */\n          }\n\n          // Force browsers to behave consistently when non-matching value is set\n          if (!optionSet) {\n            elem.selectedIndex = -1;\n          }\n          return values;\n        }\n      }\n    }\n  });\n\n  // Radios and checkboxes getter/setter\n  jQuery.each([\"radio\", \"checkbox\"], function () {\n    jQuery.valHooks[this] = {\n      set: function (elem, value) {\n        if (Array.isArray(value)) {\n          return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n        }\n      }\n    };\n    if (!support.checkOn) {\n      jQuery.valHooks[this].get = function (elem) {\n        return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n      };\n    }\n  });\n\n  // Return jQuery for attributes-only inclusion\n  var location = window.location;\n  var nonce = {\n    guid: Date.now()\n  };\n  var rquery = /\\?/;\n\n  // Cross-browser xml parsing\n  jQuery.parseXML = function (data) {\n    var xml, parserErrorElem;\n    if (!data || typeof data !== \"string\") {\n      return null;\n    }\n\n    // Support: IE 9 - 11 only\n    // IE throws on parseFromString with invalid input.\n    try {\n      xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n    } catch (e) {}\n    parserErrorElem = xml && xml.getElementsByTagName(\"parsererror\")[0];\n    if (!xml || parserErrorElem) {\n      jQuery.error(\"Invalid XML: \" + (parserErrorElem ? jQuery.map(parserErrorElem.childNodes, function (el) {\n        return el.textContent;\n      }).join(\"\\n\") : data));\n    }\n    return xml;\n  };\n  var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n    stopPropagationCallback = function (e) {\n      e.stopPropagation();\n    };\n  jQuery.extend(jQuery.event, {\n    trigger: function (event, data, elem, onlyHandlers) {\n      var i,\n        cur,\n        tmp,\n        bubbleType,\n        ontype,\n        handle,\n        special,\n        lastElement,\n        eventPath = [elem || document],\n        type = hasOwn.call(event, \"type\") ? event.type : event,\n        namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n      cur = lastElement = tmp = elem = elem || document;\n\n      // Don't do events on text and comment nodes\n      if (elem.nodeType === 3 || elem.nodeType === 8) {\n        return;\n      }\n\n      // focus/blur morphs to focusin/out; ensure we're not firing them right now\n      if (rfocusMorph.test(type + jQuery.event.triggered)) {\n        return;\n      }\n      if (type.indexOf(\".\") > -1) {\n        // Namespaced trigger; create a regexp to match event type in handle()\n        namespaces = type.split(\".\");\n        type = namespaces.shift();\n        namespaces.sort();\n      }\n      ontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n      // Caller can pass in a jQuery.Event object, Object, or just an event type string\n      event = event[jQuery.expando] ? event : new jQuery.Event(type, typeof event === \"object\" && event);\n\n      // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n      event.isTrigger = onlyHandlers ? 2 : 3;\n      event.namespace = namespaces.join(\".\");\n      event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null;\n\n      // Clean up the event in case it is being reused\n      event.result = undefined;\n      if (!event.target) {\n        event.target = elem;\n      }\n\n      // Clone any incoming data and prepend the event, creating the handler arg list\n      data = data == null ? [event] : jQuery.makeArray(data, [event]);\n\n      // Allow special events to draw outside the lines\n      special = jQuery.event.special[type] || {};\n      if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n        return;\n      }\n\n      // Determine event propagation path in advance, per W3C events spec (trac-9951)\n      // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n      if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n        bubbleType = special.delegateType || type;\n        if (!rfocusMorph.test(bubbleType + type)) {\n          cur = cur.parentNode;\n        }\n        for (; cur; cur = cur.parentNode) {\n          eventPath.push(cur);\n          tmp = cur;\n        }\n\n        // Only add window if we got to document (e.g., not plain obj or detached DOM)\n        if (tmp === (elem.ownerDocument || document)) {\n          eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n        }\n      }\n\n      // Fire handlers on the event path\n      i = 0;\n      while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n        lastElement = cur;\n        event.type = i > 1 ? bubbleType : special.bindType || type;\n\n        // jQuery handler\n        handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n        if (handle) {\n          handle.apply(cur, data);\n        }\n\n        // Native handler\n        handle = ontype && cur[ontype];\n        if (handle && handle.apply && acceptData(cur)) {\n          event.result = handle.apply(cur, data);\n          if (event.result === false) {\n            event.preventDefault();\n          }\n        }\n      }\n      event.type = type;\n\n      // If nobody prevented the default action, do it now\n      if (!onlyHandlers && !event.isDefaultPrevented()) {\n        if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n          // Call a native DOM method on the target with the same name as the event.\n          // Don't do default actions on window, that's where global variables be (trac-6170)\n          if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n            // Don't re-trigger an onFOO event when we call its FOO() method\n            tmp = elem[ontype];\n            if (tmp) {\n              elem[ontype] = null;\n            }\n\n            // Prevent re-triggering of the same event, since we already bubbled it above\n            jQuery.event.triggered = type;\n            if (event.isPropagationStopped()) {\n              lastElement.addEventListener(type, stopPropagationCallback);\n            }\n            elem[type]();\n            if (event.isPropagationStopped()) {\n              lastElement.removeEventListener(type, stopPropagationCallback);\n            }\n            jQuery.event.triggered = undefined;\n            if (tmp) {\n              elem[ontype] = tmp;\n            }\n          }\n        }\n      }\n      return event.result;\n    },\n    // Piggyback on a donor event to simulate a different one\n    // Used only for `focus(in | out)` events\n    simulate: function (type, elem, event) {\n      var e = jQuery.extend(new jQuery.Event(), event, {\n        type: type,\n        isSimulated: true\n      });\n      jQuery.event.trigger(e, null, elem);\n    }\n  });\n  jQuery.fn.extend({\n    trigger: function (type, data) {\n      return this.each(function () {\n        jQuery.event.trigger(type, data, this);\n      });\n    },\n    triggerHandler: function (type, data) {\n      var elem = this[0];\n      if (elem) {\n        return jQuery.event.trigger(type, data, elem, true);\n      }\n    }\n  });\n  var rbracket = /\\[\\]$/,\n    rCRLF = /\\r?\\n/g,\n    rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n    rsubmittable = /^(?:input|select|textarea|keygen)/i;\n  function buildParams(prefix, obj, traditional, add) {\n    var name;\n    if (Array.isArray(obj)) {\n      // Serialize array item.\n      jQuery.each(obj, function (i, v) {\n        if (traditional || rbracket.test(prefix)) {\n          // Treat each array item as a scalar.\n          add(prefix, v);\n        } else {\n          // Item is non-scalar (array or object), encode its numeric index.\n          buildParams(prefix + \"[\" + (typeof v === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n        }\n      });\n    } else if (!traditional && toType(obj) === \"object\") {\n      // Serialize object item.\n      for (name in obj) {\n        buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n      }\n    } else {\n      // Serialize scalar item.\n      add(prefix, obj);\n    }\n  }\n\n  // Serialize an array of form elements or a set of\n  // key/values into a query string\n  jQuery.param = function (a, traditional) {\n    var prefix,\n      s = [],\n      add = function (key, valueOrFunction) {\n        // If value is a function, invoke it and use its return value\n        var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n        s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n      };\n    if (a == null) {\n      return \"\";\n    }\n\n    // If an array was passed in, assume that it is an array of form elements.\n    if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n      // Serialize the form elements\n      jQuery.each(a, function () {\n        add(this.name, this.value);\n      });\n    } else {\n      // If traditional, encode the \"old\" way (the way 1.3.2 or older\n      // did it), otherwise encode params recursively.\n      for (prefix in a) {\n        buildParams(prefix, a[prefix], traditional, add);\n      }\n    }\n\n    // Return the resulting serialization\n    return s.join(\"&\");\n  };\n  jQuery.fn.extend({\n    serialize: function () {\n      return jQuery.param(this.serializeArray());\n    },\n    serializeArray: function () {\n      return this.map(function () {\n        // Can add propHook for \"elements\" to filter or add form elements\n        var elements = jQuery.prop(this, \"elements\");\n        return elements ? jQuery.makeArray(elements) : this;\n      }).filter(function () {\n        var type = this.type;\n\n        // Use .is( \":disabled\" ) so that fieldset[disabled] works\n        return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n      }).map(function (_i, elem) {\n        var val = jQuery(this).val();\n        if (val == null) {\n          return null;\n        }\n        if (Array.isArray(val)) {\n          return jQuery.map(val, function (val) {\n            return {\n              name: elem.name,\n              value: val.replace(rCRLF, \"\\r\\n\")\n            };\n          });\n        }\n        return {\n          name: elem.name,\n          value: val.replace(rCRLF, \"\\r\\n\")\n        };\n      }).get();\n    }\n  });\n  var r20 = /%20/g,\n    rhash = /#.*$/,\n    rantiCache = /([?&])_=[^&]*/,\n    rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n    // trac-7653, trac-8125, trac-8152: local protocol detection\n    rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n    rnoContent = /^(?:GET|HEAD)$/,\n    rprotocol = /^\\/\\//,\n    /* Prefilters\n     * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n     * 2) These are called:\n     *    - BEFORE asking for a transport\n     *    - AFTER param serialization (s.data is a string if s.processData is true)\n     * 3) key is the dataType\n     * 4) the catchall symbol \"*\" can be used\n     * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n     */\n    prefilters = {},\n    /* Transports bindings\n     * 1) key is the dataType\n     * 2) the catchall symbol \"*\" can be used\n     * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n     */\n    transports = {},\n    // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n    allTypes = \"*/\".concat(\"*\"),\n    // Anchor tag for parsing the document origin\n    originAnchor = document.createElement(\"a\");\n  originAnchor.href = location.href;\n\n  // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n  function addToPrefiltersOrTransports(structure) {\n    // dataTypeExpression is optional and defaults to \"*\"\n    return function (dataTypeExpression, func) {\n      if (typeof dataTypeExpression !== \"string\") {\n        func = dataTypeExpression;\n        dataTypeExpression = \"*\";\n      }\n      var dataType,\n        i = 0,\n        dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n      if (isFunction(func)) {\n        // For each dataType in the dataTypeExpression\n        while (dataType = dataTypes[i++]) {\n          // Prepend if requested\n          if (dataType[0] === \"+\") {\n            dataType = dataType.slice(1) || \"*\";\n            (structure[dataType] = structure[dataType] || []).unshift(func);\n\n            // Otherwise append\n          } else {\n            (structure[dataType] = structure[dataType] || []).push(func);\n          }\n        }\n      }\n    };\n  }\n\n  // Base inspection function for prefilters and transports\n  function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n    var inspected = {},\n      seekingTransport = structure === transports;\n    function inspect(dataType) {\n      var selected;\n      inspected[dataType] = true;\n      jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n        var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n        if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n          options.dataTypes.unshift(dataTypeOrTransport);\n          inspect(dataTypeOrTransport);\n          return false;\n        } else if (seekingTransport) {\n          return !(selected = dataTypeOrTransport);\n        }\n      });\n      return selected;\n    }\n    return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n  }\n\n  // A special extend for ajax options\n  // that takes \"flat\" options (not to be deep extended)\n  // Fixes trac-9887\n  function ajaxExtend(target, src) {\n    var key,\n      deep,\n      flatOptions = jQuery.ajaxSettings.flatOptions || {};\n    for (key in src) {\n      if (src[key] !== undefined) {\n        (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n      }\n    }\n    if (deep) {\n      jQuery.extend(true, target, deep);\n    }\n    return target;\n  }\n\n  /* Handles responses to an ajax request:\n   * - finds the right dataType (mediates between content-type and expected dataType)\n   * - returns the corresponding response\n   */\n  function ajaxHandleResponses(s, jqXHR, responses) {\n    var ct,\n      type,\n      finalDataType,\n      firstDataType,\n      contents = s.contents,\n      dataTypes = s.dataTypes;\n\n    // Remove auto dataType and get content-type in the process\n    while (dataTypes[0] === \"*\") {\n      dataTypes.shift();\n      if (ct === undefined) {\n        ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n      }\n    }\n\n    // Check if we're dealing with a known content-type\n    if (ct) {\n      for (type in contents) {\n        if (contents[type] && contents[type].test(ct)) {\n          dataTypes.unshift(type);\n          break;\n        }\n      }\n    }\n\n    // Check to see if we have a response for the expected dataType\n    if (dataTypes[0] in responses) {\n      finalDataType = dataTypes[0];\n    } else {\n      // Try convertible dataTypes\n      for (type in responses) {\n        if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n          finalDataType = type;\n          break;\n        }\n        if (!firstDataType) {\n          firstDataType = type;\n        }\n      }\n\n      // Or just use first one\n      finalDataType = finalDataType || firstDataType;\n    }\n\n    // If we found a dataType\n    // We add the dataType to the list if needed\n    // and return the corresponding response\n    if (finalDataType) {\n      if (finalDataType !== dataTypes[0]) {\n        dataTypes.unshift(finalDataType);\n      }\n      return responses[finalDataType];\n    }\n  }\n\n  /* Chain conversions given the request and the original response\n   * Also sets the responseXXX fields on the jqXHR instance\n   */\n  function ajaxConvert(s, response, jqXHR, isSuccess) {\n    var conv2,\n      current,\n      conv,\n      tmp,\n      prev,\n      converters = {},\n      // Work with a copy of dataTypes in case we need to modify it for conversion\n      dataTypes = s.dataTypes.slice();\n\n    // Create converters map with lowercased keys\n    if (dataTypes[1]) {\n      for (conv in s.converters) {\n        converters[conv.toLowerCase()] = s.converters[conv];\n      }\n    }\n    current = dataTypes.shift();\n\n    // Convert to each sequential dataType\n    while (current) {\n      if (s.responseFields[current]) {\n        jqXHR[s.responseFields[current]] = response;\n      }\n\n      // Apply the dataFilter if provided\n      if (!prev && isSuccess && s.dataFilter) {\n        response = s.dataFilter(response, s.dataType);\n      }\n      prev = current;\n      current = dataTypes.shift();\n      if (current) {\n        // There's only work to do if current dataType is non-auto\n        if (current === \"*\") {\n          current = prev;\n\n          // Convert response if prev dataType is non-auto and differs from current\n        } else if (prev !== \"*\" && prev !== current) {\n          // Seek a direct converter\n          conv = converters[prev + \" \" + current] || converters[\"* \" + current];\n\n          // If none found, seek a pair\n          if (!conv) {\n            for (conv2 in converters) {\n              // If conv2 outputs current\n              tmp = conv2.split(\" \");\n              if (tmp[1] === current) {\n                // If prev can be converted to accepted input\n                conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n                if (conv) {\n                  // Condense equivalence converters\n                  if (conv === true) {\n                    conv = converters[conv2];\n\n                    // Otherwise, insert the intermediate dataType\n                  } else if (converters[conv2] !== true) {\n                    current = tmp[0];\n                    dataTypes.unshift(tmp[1]);\n                  }\n                  break;\n                }\n              }\n            }\n          }\n\n          // Apply converter (if not an equivalence)\n          if (conv !== true) {\n            // Unless errors are allowed to bubble, catch and return them\n            if (conv && s.throws) {\n              response = conv(response);\n            } else {\n              try {\n                response = conv(response);\n              } catch (e) {\n                return {\n                  state: \"parsererror\",\n                  error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n                };\n              }\n            }\n          }\n        }\n      }\n    }\n    return {\n      state: \"success\",\n      data: response\n    };\n  }\n  jQuery.extend({\n    // Counter for holding the number of active queries\n    active: 0,\n    // Last-Modified header cache for next request\n    lastModified: {},\n    etag: {},\n    ajaxSettings: {\n      url: location.href,\n      type: \"GET\",\n      isLocal: rlocalProtocol.test(location.protocol),\n      global: true,\n      processData: true,\n      async: true,\n      contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n      /*\n      timeout: 0,\n      data: null,\n      dataType: null,\n      username: null,\n      password: null,\n      cache: null,\n      throws: false,\n      traditional: false,\n      headers: {},\n      */\n\n      accepts: {\n        \"*\": allTypes,\n        text: \"text/plain\",\n        html: \"text/html\",\n        xml: \"application/xml, text/xml\",\n        json: \"application/json, text/javascript\"\n      },\n      contents: {\n        xml: /\\bxml\\b/,\n        html: /\\bhtml/,\n        json: /\\bjson\\b/\n      },\n      responseFields: {\n        xml: \"responseXML\",\n        text: \"responseText\",\n        json: \"responseJSON\"\n      },\n      // Data converters\n      // Keys separate source (or catchall \"*\") and destination types with a single space\n      converters: {\n        // Convert anything to text\n        \"* text\": String,\n        // Text to html (true = no transformation)\n        \"text html\": true,\n        // Evaluate text as a json expression\n        \"text json\": JSON.parse,\n        // Parse text as xml\n        \"text xml\": jQuery.parseXML\n      },\n      // For options that shouldn't be deep extended:\n      // you can add your own custom options here if\n      // and when you create one that shouldn't be\n      // deep extended (see ajaxExtend)\n      flatOptions: {\n        url: true,\n        context: true\n      }\n    },\n    // Creates a full fledged settings object into target\n    // with both ajaxSettings and settings fields.\n    // If target is omitted, writes into ajaxSettings.\n    ajaxSetup: function (target, settings) {\n      return settings ?\n      // Building a settings object\n      ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) :\n      // Extending ajaxSettings\n      ajaxExtend(jQuery.ajaxSettings, target);\n    },\n    ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n    ajaxTransport: addToPrefiltersOrTransports(transports),\n    // Main method\n    ajax: function (url, options) {\n      // If url is an object, simulate pre-1.5 signature\n      if (typeof url === \"object\") {\n        options = url;\n        url = undefined;\n      }\n\n      // Force options to be an object\n      options = options || {};\n      var transport,\n        // URL without anti-cache param\n        cacheURL,\n        // Response headers\n        responseHeadersString,\n        responseHeaders,\n        // timeout handle\n        timeoutTimer,\n        // Url cleanup var\n        urlAnchor,\n        // Request state (becomes false upon send and true upon completion)\n        completed,\n        // To know if global events are to be dispatched\n        fireGlobals,\n        // Loop variable\n        i,\n        // uncached part of the url\n        uncached,\n        // Create the final options object\n        s = jQuery.ajaxSetup({}, options),\n        // Callbacks context\n        callbackContext = s.context || s,\n        // Context for global events is callbackContext if it is a DOM node or jQuery collection\n        globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n        // Deferreds\n        deferred = jQuery.Deferred(),\n        completeDeferred = jQuery.Callbacks(\"once memory\"),\n        // Status-dependent callbacks\n        statusCode = s.statusCode || {},\n        // Headers (they are sent all at once)\n        requestHeaders = {},\n        requestHeadersNames = {},\n        // Default abort message\n        strAbort = \"canceled\",\n        // Fake xhr\n        jqXHR = {\n          readyState: 0,\n          // Builds headers hashtable if needed\n          getResponseHeader: function (key) {\n            var match;\n            if (completed) {\n              if (!responseHeaders) {\n                responseHeaders = {};\n                while (match = rheaders.exec(responseHeadersString)) {\n                  responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n                }\n              }\n              match = responseHeaders[key.toLowerCase() + \" \"];\n            }\n            return match == null ? null : match.join(\", \");\n          },\n          // Raw string\n          getAllResponseHeaders: function () {\n            return completed ? responseHeadersString : null;\n          },\n          // Caches the header\n          setRequestHeader: function (name, value) {\n            if (completed == null) {\n              name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n              requestHeaders[name] = value;\n            }\n            return this;\n          },\n          // Overrides response content-type header\n          overrideMimeType: function (type) {\n            if (completed == null) {\n              s.mimeType = type;\n            }\n            return this;\n          },\n          // Status-dependent callbacks\n          statusCode: function (map) {\n            var code;\n            if (map) {\n              if (completed) {\n                // Execute the appropriate callbacks\n                jqXHR.always(map[jqXHR.status]);\n              } else {\n                // Lazy-add the new callbacks in a way that preserves old ones\n                for (code in map) {\n                  statusCode[code] = [statusCode[code], map[code]];\n                }\n              }\n            }\n            return this;\n          },\n          // Cancel the request\n          abort: function (statusText) {\n            var finalText = statusText || strAbort;\n            if (transport) {\n              transport.abort(finalText);\n            }\n            done(0, finalText);\n            return this;\n          }\n        };\n\n      // Attach deferreds\n      deferred.promise(jqXHR);\n\n      // Add protocol if not provided (prefilters might expect it)\n      // Handle falsy url in the settings object (trac-10093: consistency with old signature)\n      // We also use the url parameter if available\n      s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\");\n\n      // Alias method option to type as per ticket trac-12004\n      s.type = options.method || options.type || s.method || s.type;\n\n      // Extract dataTypes list\n      s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"];\n\n      // A cross-domain request is in order when the origin doesn't match the current origin.\n      if (s.crossDomain == null) {\n        urlAnchor = document.createElement(\"a\");\n\n        // Support: IE <=8 - 11, Edge 12 - 15\n        // IE throws exception on accessing the href property if url is malformed,\n        // e.g. http://example.com:80x/\n        try {\n          urlAnchor.href = s.url;\n\n          // Support: IE <=8 - 11 only\n          // Anchor's host property isn't correctly set when s.url is relative\n          urlAnchor.href = urlAnchor.href;\n          s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n        } catch (e) {\n          // If there is an error parsing the URL, assume it is crossDomain,\n          // it can be rejected by the transport if it is invalid\n          s.crossDomain = true;\n        }\n      }\n\n      // Convert data if not already a string\n      if (s.data && s.processData && typeof s.data !== \"string\") {\n        s.data = jQuery.param(s.data, s.traditional);\n      }\n\n      // Apply prefilters\n      inspectPrefiltersOrTransports(prefilters, s, options, jqXHR);\n\n      // If request was aborted inside a prefilter, stop there\n      if (completed) {\n        return jqXHR;\n      }\n\n      // We can fire global events as of now if asked to\n      // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n      fireGlobals = jQuery.event && s.global;\n\n      // Watch for a new set of requests\n      if (fireGlobals && jQuery.active++ === 0) {\n        jQuery.event.trigger(\"ajaxStart\");\n      }\n\n      // Uppercase the type\n      s.type = s.type.toUpperCase();\n\n      // Determine if request has content\n      s.hasContent = !rnoContent.test(s.type);\n\n      // Save the URL in case we're toying with the If-Modified-Since\n      // and/or If-None-Match header later on\n      // Remove hash to simplify url manipulation\n      cacheURL = s.url.replace(rhash, \"\");\n\n      // More options handling for requests with no content\n      if (!s.hasContent) {\n        // Remember the hash so we can put it back\n        uncached = s.url.slice(cacheURL.length);\n\n        // If data is available and should be processed, append data to url\n        if (s.data && (s.processData || typeof s.data === \"string\")) {\n          cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data;\n\n          // trac-9682: remove data so that it's not used in an eventual retry\n          delete s.data;\n        }\n\n        // Add or update anti-cache param if needed\n        if (s.cache === false) {\n          cacheURL = cacheURL.replace(rantiCache, \"$1\");\n          uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n        }\n\n        // Put hash and anti-cache on the URL that will be requested (gh-1732)\n        s.url = cacheURL + uncached;\n\n        // Change '%20' to '+' if this is encoded form body content (gh-2658)\n      } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n        s.data = s.data.replace(r20, \"+\");\n      }\n\n      // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n      if (s.ifModified) {\n        if (jQuery.lastModified[cacheURL]) {\n          jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n        }\n        if (jQuery.etag[cacheURL]) {\n          jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n        }\n      }\n\n      // Set the correct header, if data is being sent\n      if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n        jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n      }\n\n      // Set the Accepts header for the server, depending on the dataType\n      jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]);\n\n      // Check for headers option\n      for (i in s.headers) {\n        jqXHR.setRequestHeader(i, s.headers[i]);\n      }\n\n      // Allow custom headers/mimetypes and early abort\n      if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n        // Abort if not done already and return\n        return jqXHR.abort();\n      }\n\n      // Aborting is no longer a cancellation\n      strAbort = \"abort\";\n\n      // Install callbacks on deferreds\n      completeDeferred.add(s.complete);\n      jqXHR.done(s.success);\n      jqXHR.fail(s.error);\n\n      // Get transport\n      transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR);\n\n      // If no transport, we auto-abort\n      if (!transport) {\n        done(-1, \"No Transport\");\n      } else {\n        jqXHR.readyState = 1;\n\n        // Send global event\n        if (fireGlobals) {\n          globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n        }\n\n        // If request was aborted inside ajaxSend, stop there\n        if (completed) {\n          return jqXHR;\n        }\n\n        // Timeout\n        if (s.async && s.timeout > 0) {\n          timeoutTimer = window.setTimeout(function () {\n            jqXHR.abort(\"timeout\");\n          }, s.timeout);\n        }\n        try {\n          completed = false;\n          transport.send(requestHeaders, done);\n        } catch (e) {\n          // Rethrow post-completion exceptions\n          if (completed) {\n            throw e;\n          }\n\n          // Propagate others as results\n          done(-1, e);\n        }\n      }\n\n      // Callback for when everything is done\n      function done(status, nativeStatusText, responses, headers) {\n        var isSuccess,\n          success,\n          error,\n          response,\n          modified,\n          statusText = nativeStatusText;\n\n        // Ignore repeat invocations\n        if (completed) {\n          return;\n        }\n        completed = true;\n\n        // Clear timeout if it exists\n        if (timeoutTimer) {\n          window.clearTimeout(timeoutTimer);\n        }\n\n        // Dereference transport for early garbage collection\n        // (no matter how long the jqXHR object will be used)\n        transport = undefined;\n\n        // Cache response headers\n        responseHeadersString = headers || \"\";\n\n        // Set readyState\n        jqXHR.readyState = status > 0 ? 4 : 0;\n\n        // Determine if successful\n        isSuccess = status >= 200 && status < 300 || status === 304;\n\n        // Get response data\n        if (responses) {\n          response = ajaxHandleResponses(s, jqXHR, responses);\n        }\n\n        // Use a noop converter for missing script but not if jsonp\n        if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1 && jQuery.inArray(\"json\", s.dataTypes) < 0) {\n          s.converters[\"text script\"] = function () {};\n        }\n\n        // Convert no matter what (that way responseXXX fields are always set)\n        response = ajaxConvert(s, response, jqXHR, isSuccess);\n\n        // If successful, handle type chaining\n        if (isSuccess) {\n          // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n          if (s.ifModified) {\n            modified = jqXHR.getResponseHeader(\"Last-Modified\");\n            if (modified) {\n              jQuery.lastModified[cacheURL] = modified;\n            }\n            modified = jqXHR.getResponseHeader(\"etag\");\n            if (modified) {\n              jQuery.etag[cacheURL] = modified;\n            }\n          }\n\n          // if no content\n          if (status === 204 || s.type === \"HEAD\") {\n            statusText = \"nocontent\";\n\n            // if not modified\n          } else if (status === 304) {\n            statusText = \"notmodified\";\n\n            // If we have data, let's convert it\n          } else {\n            statusText = response.state;\n            success = response.data;\n            error = response.error;\n            isSuccess = !error;\n          }\n        } else {\n          // Extract error from statusText and normalize for non-aborts\n          error = statusText;\n          if (status || !statusText) {\n            statusText = \"error\";\n            if (status < 0) {\n              status = 0;\n            }\n          }\n        }\n\n        // Set data for the fake xhr object\n        jqXHR.status = status;\n        jqXHR.statusText = (nativeStatusText || statusText) + \"\";\n\n        // Success/Error\n        if (isSuccess) {\n          deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n        } else {\n          deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n        }\n\n        // Status-dependent callbacks\n        jqXHR.statusCode(statusCode);\n        statusCode = undefined;\n        if (fireGlobals) {\n          globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n        }\n\n        // Complete\n        completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n        if (fireGlobals) {\n          globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]);\n\n          // Handle the global AJAX counter\n          if (! --jQuery.active) {\n            jQuery.event.trigger(\"ajaxStop\");\n          }\n        }\n      }\n      return jqXHR;\n    },\n    getJSON: function (url, data, callback) {\n      return jQuery.get(url, data, callback, \"json\");\n    },\n    getScript: function (url, callback) {\n      return jQuery.get(url, undefined, callback, \"script\");\n    }\n  });\n  jQuery.each([\"get\", \"post\"], function (_i, method) {\n    jQuery[method] = function (url, data, callback, type) {\n      // Shift arguments if data argument was omitted\n      if (isFunction(data)) {\n        type = type || callback;\n        callback = data;\n        data = undefined;\n      }\n\n      // The url can be an options object (which then must have .url)\n      return jQuery.ajax(jQuery.extend({\n        url: url,\n        type: method,\n        dataType: type,\n        data: data,\n        success: callback\n      }, jQuery.isPlainObject(url) && url));\n    };\n  });\n  jQuery.ajaxPrefilter(function (s) {\n    var i;\n    for (i in s.headers) {\n      if (i.toLowerCase() === \"content-type\") {\n        s.contentType = s.headers[i] || \"\";\n      }\n    }\n  });\n  jQuery._evalUrl = function (url, options, doc) {\n    return jQuery.ajax({\n      url: url,\n      // Make this explicit, since user can override this through ajaxSetup (trac-11264)\n      type: \"GET\",\n      dataType: \"script\",\n      cache: true,\n      async: false,\n      global: false,\n      // Only evaluate the response if it is successful (gh-4126)\n      // dataFilter is not invoked for failure responses, so using it instead\n      // of the default converter is kludgy but it works.\n      converters: {\n        \"text script\": function () {}\n      },\n      dataFilter: function (response) {\n        jQuery.globalEval(response, options, doc);\n      }\n    });\n  };\n  jQuery.fn.extend({\n    wrapAll: function (html) {\n      var wrap;\n      if (this[0]) {\n        if (isFunction(html)) {\n          html = html.call(this[0]);\n        }\n\n        // The elements to wrap the target around\n        wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n        if (this[0].parentNode) {\n          wrap.insertBefore(this[0]);\n        }\n        wrap.map(function () {\n          var elem = this;\n          while (elem.firstElementChild) {\n            elem = elem.firstElementChild;\n          }\n          return elem;\n        }).append(this);\n      }\n      return this;\n    },\n    wrapInner: function (html) {\n      if (isFunction(html)) {\n        return this.each(function (i) {\n          jQuery(this).wrapInner(html.call(this, i));\n        });\n      }\n      return this.each(function () {\n        var self = jQuery(this),\n          contents = self.contents();\n        if (contents.length) {\n          contents.wrapAll(html);\n        } else {\n          self.append(html);\n        }\n      });\n    },\n    wrap: function (html) {\n      var htmlIsFunction = isFunction(html);\n      return this.each(function (i) {\n        jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n      });\n    },\n    unwrap: function (selector) {\n      this.parent(selector).not(\"body\").each(function () {\n        jQuery(this).replaceWith(this.childNodes);\n      });\n      return this;\n    }\n  });\n  jQuery.expr.pseudos.hidden = function (elem) {\n    return !jQuery.expr.pseudos.visible(elem);\n  };\n  jQuery.expr.pseudos.visible = function (elem) {\n    return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n  };\n  jQuery.ajaxSettings.xhr = function () {\n    try {\n      return new window.XMLHttpRequest();\n    } catch (e) {}\n  };\n  var xhrSuccessStatus = {\n      // File protocol always yields status code 0, assume 200\n      0: 200,\n      // Support: IE <=9 only\n      // trac-1450: sometimes IE returns 1223 when it should be 204\n      1223: 204\n    },\n    xhrSupported = jQuery.ajaxSettings.xhr();\n  support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n  support.ajax = xhrSupported = !!xhrSupported;\n  jQuery.ajaxTransport(function (options) {\n    var callback, errorCallback;\n\n    // Cross domain only allowed if supported through XMLHttpRequest\n    if (support.cors || xhrSupported && !options.crossDomain) {\n      return {\n        send: function (headers, complete) {\n          var i,\n            xhr = options.xhr();\n          xhr.open(options.type, options.url, options.async, options.username, options.password);\n\n          // Apply custom fields if provided\n          if (options.xhrFields) {\n            for (i in options.xhrFields) {\n              xhr[i] = options.xhrFields[i];\n            }\n          }\n\n          // Override mime type if needed\n          if (options.mimeType && xhr.overrideMimeType) {\n            xhr.overrideMimeType(options.mimeType);\n          }\n\n          // X-Requested-With header\n          // For cross-domain requests, seeing as conditions for a preflight are\n          // akin to a jigsaw puzzle, we simply never set it to be sure.\n          // (it can always be set on a per-request basis or even using ajaxSetup)\n          // For same-domain requests, won't change header if already provided.\n          if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n            headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n          }\n\n          // Set headers\n          for (i in headers) {\n            xhr.setRequestHeader(i, headers[i]);\n          }\n\n          // Callback\n          callback = function (type) {\n            return function () {\n              if (callback) {\n                callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n                if (type === \"abort\") {\n                  xhr.abort();\n                } else if (type === \"error\") {\n                  // Support: IE <=9 only\n                  // On a manual native abort, IE9 throws\n                  // errors on any property access that is not readyState\n                  if (typeof xhr.status !== \"number\") {\n                    complete(0, \"error\");\n                  } else {\n                    complete(\n                    // File: protocol always yields status 0; see trac-8605, trac-14207\n                    xhr.status, xhr.statusText);\n                  }\n                } else {\n                  complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText,\n                  // Support: IE <=9 only\n                  // IE9 has no XHR2 but throws on binary (trac-11426)\n                  // For XHR2 non-text, let the caller handle it (gh-2498)\n                  (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n                    binary: xhr.response\n                  } : {\n                    text: xhr.responseText\n                  }, xhr.getAllResponseHeaders());\n                }\n              }\n            };\n          };\n\n          // Listen to events\n          xhr.onload = callback();\n          errorCallback = xhr.onerror = xhr.ontimeout = callback(\"error\");\n\n          // Support: IE 9 only\n          // Use onreadystatechange to replace onabort\n          // to handle uncaught aborts\n          if (xhr.onabort !== undefined) {\n            xhr.onabort = errorCallback;\n          } else {\n            xhr.onreadystatechange = function () {\n              // Check readyState before timeout as it changes\n              if (xhr.readyState === 4) {\n                // Allow onerror to be called first,\n                // but that will not handle a native abort\n                // Also, save errorCallback to a variable\n                // as xhr.onerror cannot be accessed\n                window.setTimeout(function () {\n                  if (callback) {\n                    errorCallback();\n                  }\n                });\n              }\n            };\n          }\n\n          // Create the abort callback\n          callback = callback(\"abort\");\n          try {\n            // Do send the request (this may raise an exception)\n            xhr.send(options.hasContent && options.data || null);\n          } catch (e) {\n            // trac-14683: Only rethrow if this hasn't been notified as an error yet\n            if (callback) {\n              throw e;\n            }\n          }\n        },\n        abort: function () {\n          if (callback) {\n            callback();\n          }\n        }\n      };\n    }\n  });\n\n  // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n  jQuery.ajaxPrefilter(function (s) {\n    if (s.crossDomain) {\n      s.contents.script = false;\n    }\n  });\n\n  // Install script dataType\n  jQuery.ajaxSetup({\n    accepts: {\n      script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n    },\n    contents: {\n      script: /\\b(?:java|ecma)script\\b/\n    },\n    converters: {\n      \"text script\": function (text) {\n        jQuery.globalEval(text);\n        return text;\n      }\n    }\n  });\n\n  // Handle cache's special case and crossDomain\n  jQuery.ajaxPrefilter(\"script\", function (s) {\n    if (s.cache === undefined) {\n      s.cache = false;\n    }\n    if (s.crossDomain) {\n      s.type = \"GET\";\n    }\n  });\n\n  // Bind script tag hack transport\n  jQuery.ajaxTransport(\"script\", function (s) {\n    // This transport only deals with cross domain or forced-by-attrs requests\n    if (s.crossDomain || s.scriptAttrs) {\n      var script, callback;\n      return {\n        send: function (_, complete) {\n          script = jQuery(\"<script>\").attr(s.scriptAttrs || {}).prop({\n            charset: s.scriptCharset,\n            src: s.url\n          }).on(\"load error\", callback = function (evt) {\n            script.remove();\n            callback = null;\n            if (evt) {\n              complete(evt.type === \"error\" ? 404 : 200, evt.type);\n            }\n          });\n\n          // Use native DOM manipulation to avoid our domManip AJAX trickery\n          document.head.appendChild(script[0]);\n        },\n        abort: function () {\n          if (callback) {\n            callback();\n          }\n        }\n      };\n    }\n  });\n  var oldCallbacks = [],\n    rjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n  // Default jsonp settings\n  jQuery.ajaxSetup({\n    jsonp: \"callback\",\n    jsonpCallback: function () {\n      var callback = oldCallbacks.pop() || jQuery.expando + \"_\" + nonce.guid++;\n      this[callback] = true;\n      return callback;\n    }\n  });\n\n  // Detect, normalize options and install callbacks for jsonp requests\n  jQuery.ajaxPrefilter(\"json jsonp\", function (s, originalSettings, jqXHR) {\n    var callbackName,\n      overwritten,\n      responseContainer,\n      jsonProp = s.jsonp !== false && (rjsonp.test(s.url) ? \"url\" : typeof s.data === \"string\" && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0 && rjsonp.test(s.data) && \"data\");\n\n    // Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n    if (jsonProp || s.dataTypes[0] === \"jsonp\") {\n      // Get callback name, remembering preexisting value associated with it\n      callbackName = s.jsonpCallback = isFunction(s.jsonpCallback) ? s.jsonpCallback() : s.jsonpCallback;\n\n      // Insert callback into url or form data\n      if (jsonProp) {\n        s[jsonProp] = s[jsonProp].replace(rjsonp, \"$1\" + callbackName);\n      } else if (s.jsonp !== false) {\n        s.url += (rquery.test(s.url) ? \"&\" : \"?\") + s.jsonp + \"=\" + callbackName;\n      }\n\n      // Use data converter to retrieve json after script execution\n      s.converters[\"script json\"] = function () {\n        if (!responseContainer) {\n          jQuery.error(callbackName + \" was not called\");\n        }\n        return responseContainer[0];\n      };\n\n      // Force json dataType\n      s.dataTypes[0] = \"json\";\n\n      // Install callback\n      overwritten = window[callbackName];\n      window[callbackName] = function () {\n        responseContainer = arguments;\n      };\n\n      // Clean-up function (fires after converters)\n      jqXHR.always(function () {\n        // If previous value didn't exist - remove it\n        if (overwritten === undefined) {\n          jQuery(window).removeProp(callbackName);\n\n          // Otherwise restore preexisting value\n        } else {\n          window[callbackName] = overwritten;\n        }\n\n        // Save back as free\n        if (s[callbackName]) {\n          // Make sure that re-using the options doesn't screw things around\n          s.jsonpCallback = originalSettings.jsonpCallback;\n\n          // Save the callback name for future use\n          oldCallbacks.push(callbackName);\n        }\n\n        // Call if it was a function and we have a response\n        if (responseContainer && isFunction(overwritten)) {\n          overwritten(responseContainer[0]);\n        }\n        responseContainer = overwritten = undefined;\n      });\n\n      // Delegate to script\n      return \"script\";\n    }\n  });\n\n  // Support: Safari 8 only\n  // In Safari 8 documents created via document.implementation.createHTMLDocument\n  // collapse sibling forms: the second one becomes a child of the first one.\n  // Because of that, this security measure has to be disabled in Safari 8.\n  // https://bugs.webkit.org/show_bug.cgi?id=137337\n  support.createHTMLDocument = function () {\n    var body = document.implementation.createHTMLDocument(\"\").body;\n    body.innerHTML = \"<form></form><form></form>\";\n    return body.childNodes.length === 2;\n  }();\n\n  // Argument \"data\" should be string of html\n  // context (optional): If specified, the fragment will be created in this context,\n  // defaults to document\n  // keepScripts (optional): If true, will include scripts passed in the html string\n  jQuery.parseHTML = function (data, context, keepScripts) {\n    if (typeof data !== \"string\") {\n      return [];\n    }\n    if (typeof context === \"boolean\") {\n      keepScripts = context;\n      context = false;\n    }\n    var base, parsed, scripts;\n    if (!context) {\n      // Stop scripts or inline event handlers from being executed immediately\n      // by using document.implementation\n      if (support.createHTMLDocument) {\n        context = document.implementation.createHTMLDocument(\"\");\n\n        // Set the base href for the created document\n        // so any parsed elements with URLs\n        // are based on the document's URL (gh-2965)\n        base = context.createElement(\"base\");\n        base.href = document.location.href;\n        context.head.appendChild(base);\n      } else {\n        context = document;\n      }\n    }\n    parsed = rsingleTag.exec(data);\n    scripts = !keepScripts && [];\n\n    // Single tag\n    if (parsed) {\n      return [context.createElement(parsed[1])];\n    }\n    parsed = buildFragment([data], context, scripts);\n    if (scripts && scripts.length) {\n      jQuery(scripts).remove();\n    }\n    return jQuery.merge([], parsed.childNodes);\n  };\n\n  /**\n   * Load a url into a page\n   */\n  jQuery.fn.load = function (url, params, callback) {\n    var selector,\n      type,\n      response,\n      self = this,\n      off = url.indexOf(\" \");\n    if (off > -1) {\n      selector = stripAndCollapse(url.slice(off));\n      url = url.slice(0, off);\n    }\n\n    // If it's a function\n    if (isFunction(params)) {\n      // We assume that it's the callback\n      callback = params;\n      params = undefined;\n\n      // Otherwise, build a param string\n    } else if (params && typeof params === \"object\") {\n      type = \"POST\";\n    }\n\n    // If we have elements to modify, make the request\n    if (self.length > 0) {\n      jQuery.ajax({\n        url: url,\n        // If \"type\" variable is undefined, then \"GET\" method will be used.\n        // Make value of this field explicit since\n        // user can override it through ajaxSetup method\n        type: type || \"GET\",\n        dataType: \"html\",\n        data: params\n      }).done(function (responseText) {\n        // Save response for use in complete callback\n        response = arguments;\n        self.html(selector ?\n        // If a selector was specified, locate the right elements in a dummy div\n        // Exclude scripts to avoid IE 'Permission Denied' errors\n        jQuery(\"<div>\").append(jQuery.parseHTML(responseText)).find(selector) :\n        // Otherwise use the full result\n        responseText);\n\n        // If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n        // but they are ignored because response was set above.\n        // If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n      }).always(callback && function (jqXHR, status) {\n        self.each(function () {\n          callback.apply(this, response || [jqXHR.responseText, status, jqXHR]);\n        });\n      });\n    }\n    return this;\n  };\n  jQuery.expr.pseudos.animated = function (elem) {\n    return jQuery.grep(jQuery.timers, function (fn) {\n      return elem === fn.elem;\n    }).length;\n  };\n  jQuery.offset = {\n    setOffset: function (elem, options, i) {\n      var curPosition,\n        curLeft,\n        curCSSTop,\n        curTop,\n        curOffset,\n        curCSSLeft,\n        calculatePosition,\n        position = jQuery.css(elem, \"position\"),\n        curElem = jQuery(elem),\n        props = {};\n\n      // Set position first, in-case top/left are set even on static elem\n      if (position === \"static\") {\n        elem.style.position = \"relative\";\n      }\n      curOffset = curElem.offset();\n      curCSSTop = jQuery.css(elem, \"top\");\n      curCSSLeft = jQuery.css(elem, \"left\");\n      calculatePosition = (position === \"absolute\" || position === \"fixed\") && (curCSSTop + curCSSLeft).indexOf(\"auto\") > -1;\n\n      // Need to be able to calculate position if either\n      // top or left is auto and position is either absolute or fixed\n      if (calculatePosition) {\n        curPosition = curElem.position();\n        curTop = curPosition.top;\n        curLeft = curPosition.left;\n      } else {\n        curTop = parseFloat(curCSSTop) || 0;\n        curLeft = parseFloat(curCSSLeft) || 0;\n      }\n      if (isFunction(options)) {\n        // Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n        options = options.call(elem, i, jQuery.extend({}, curOffset));\n      }\n      if (options.top != null) {\n        props.top = options.top - curOffset.top + curTop;\n      }\n      if (options.left != null) {\n        props.left = options.left - curOffset.left + curLeft;\n      }\n      if (\"using\" in options) {\n        options.using.call(elem, props);\n      } else {\n        curElem.css(props);\n      }\n    }\n  };\n  jQuery.fn.extend({\n    // offset() relates an element's border box to the document origin\n    offset: function (options) {\n      // Preserve chaining for setter\n      if (arguments.length) {\n        return options === undefined ? this : this.each(function (i) {\n          jQuery.offset.setOffset(this, options, i);\n        });\n      }\n      var rect,\n        win,\n        elem = this[0];\n      if (!elem) {\n        return;\n      }\n\n      // Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n      // Support: IE <=11 only\n      // Running getBoundingClientRect on a\n      // disconnected node in IE throws an error\n      if (!elem.getClientRects().length) {\n        return {\n          top: 0,\n          left: 0\n        };\n      }\n\n      // Get document-relative position by adding viewport scroll to viewport-relative gBCR\n      rect = elem.getBoundingClientRect();\n      win = elem.ownerDocument.defaultView;\n      return {\n        top: rect.top + win.pageYOffset,\n        left: rect.left + win.pageXOffset\n      };\n    },\n    // position() relates an element's margin box to its offset parent's padding box\n    // This corresponds to the behavior of CSS absolute positioning\n    position: function () {\n      if (!this[0]) {\n        return;\n      }\n      var offsetParent,\n        offset,\n        doc,\n        elem = this[0],\n        parentOffset = {\n          top: 0,\n          left: 0\n        };\n\n      // position:fixed elements are offset from the viewport, which itself always has zero offset\n      if (jQuery.css(elem, \"position\") === \"fixed\") {\n        // Assume position:fixed implies availability of getBoundingClientRect\n        offset = elem.getBoundingClientRect();\n      } else {\n        offset = this.offset();\n\n        // Account for the *real* offset parent, which can be the document or its root element\n        // when a statically positioned element is identified\n        doc = elem.ownerDocument;\n        offsetParent = elem.offsetParent || doc.documentElement;\n        while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && jQuery.css(offsetParent, \"position\") === \"static\") {\n          offsetParent = offsetParent.parentNode;\n        }\n        if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) {\n          // Incorporate borders into its offset, since they are outside its content origin\n          parentOffset = jQuery(offsetParent).offset();\n          parentOffset.top += jQuery.css(offsetParent, \"borderTopWidth\", true);\n          parentOffset.left += jQuery.css(offsetParent, \"borderLeftWidth\", true);\n        }\n      }\n\n      // Subtract parent offsets and element margins\n      return {\n        top: offset.top - parentOffset.top - jQuery.css(elem, \"marginTop\", true),\n        left: offset.left - parentOffset.left - jQuery.css(elem, \"marginLeft\", true)\n      };\n    },\n    // This method will return documentElement in the following cases:\n    // 1) For the element inside the iframe without offsetParent, this method will return\n    //    documentElement of the parent window\n    // 2) For the hidden or detached element\n    // 3) For body or html element, i.e. in case of the html node - it will return itself\n    //\n    // but those exceptions were never presented as a real life use-cases\n    // and might be considered as more preferable results.\n    //\n    // This logic, however, is not guaranteed and can change at any point in the future\n    offsetParent: function () {\n      return this.map(function () {\n        var offsetParent = this.offsetParent;\n        while (offsetParent && jQuery.css(offsetParent, \"position\") === \"static\") {\n          offsetParent = offsetParent.offsetParent;\n        }\n        return offsetParent || documentElement;\n      });\n    }\n  });\n\n  // Create scrollLeft and scrollTop methods\n  jQuery.each({\n    scrollLeft: \"pageXOffset\",\n    scrollTop: \"pageYOffset\"\n  }, function (method, prop) {\n    var top = \"pageYOffset\" === prop;\n    jQuery.fn[method] = function (val) {\n      return access(this, function (elem, method, val) {\n        // Coalesce documents and windows\n        var win;\n        if (isWindow(elem)) {\n          win = elem;\n        } else if (elem.nodeType === 9) {\n          win = elem.defaultView;\n        }\n        if (val === undefined) {\n          return win ? win[prop] : elem[method];\n        }\n        if (win) {\n          win.scrollTo(!top ? val : win.pageXOffset, top ? val : win.pageYOffset);\n        } else {\n          elem[method] = val;\n        }\n      }, method, val, arguments.length);\n    };\n  });\n\n  // Support: Safari <=7 - 9.1, Chrome <=37 - 49\n  // Add the top/left cssHooks using jQuery.fn.position\n  // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n  // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n  // getComputedStyle returns percent when specified for top/left/bottom/right;\n  // rather than make the css module depend on the offset module, just check for it here\n  jQuery.each([\"top\", \"left\"], function (_i, prop) {\n    jQuery.cssHooks[prop] = addGetHookIf(support.pixelPosition, function (elem, computed) {\n      if (computed) {\n        computed = curCSS(elem, prop);\n\n        // If curCSS returns percentage, fallback to offset\n        return rnumnonpx.test(computed) ? jQuery(elem).position()[prop] + \"px\" : computed;\n      }\n    });\n  });\n\n  // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\n  jQuery.each({\n    Height: \"height\",\n    Width: \"width\"\n  }, function (name, type) {\n    jQuery.each({\n      padding: \"inner\" + name,\n      content: type,\n      \"\": \"outer\" + name\n    }, function (defaultExtra, funcName) {\n      // Margin is only for outerHeight, outerWidth\n      jQuery.fn[funcName] = function (margin, value) {\n        var chainable = arguments.length && (defaultExtra || typeof margin !== \"boolean\"),\n          extra = defaultExtra || (margin === true || value === true ? \"margin\" : \"border\");\n        return access(this, function (elem, type, value) {\n          var doc;\n          if (isWindow(elem)) {\n            // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n            return funcName.indexOf(\"outer\") === 0 ? elem[\"inner\" + name] : elem.document.documentElement[\"client\" + name];\n          }\n\n          // Get document width or height\n          if (elem.nodeType === 9) {\n            doc = elem.documentElement;\n\n            // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n            // whichever is greatest\n            return Math.max(elem.body[\"scroll\" + name], doc[\"scroll\" + name], elem.body[\"offset\" + name], doc[\"offset\" + name], doc[\"client\" + name]);\n          }\n          return value === undefined ?\n          // Get width or height on the element, requesting but not forcing parseFloat\n          jQuery.css(elem, type, extra) :\n          // Set width or height on the element\n          jQuery.style(elem, type, value, extra);\n        }, type, chainable ? margin : undefined, chainable);\n      };\n    });\n  });\n  jQuery.each([\"ajaxStart\", \"ajaxStop\", \"ajaxComplete\", \"ajaxError\", \"ajaxSuccess\", \"ajaxSend\"], function (_i, type) {\n    jQuery.fn[type] = function (fn) {\n      return this.on(type, fn);\n    };\n  });\n  jQuery.fn.extend({\n    bind: function (types, data, fn) {\n      return this.on(types, null, data, fn);\n    },\n    unbind: function (types, fn) {\n      return this.off(types, null, fn);\n    },\n    delegate: function (selector, types, data, fn) {\n      return this.on(types, selector, data, fn);\n    },\n    undelegate: function (selector, types, fn) {\n      // ( namespace ) or ( selector, types [, fn] )\n      return arguments.length === 1 ? this.off(selector, \"**\") : this.off(types, selector || \"**\", fn);\n    },\n    hover: function (fnOver, fnOut) {\n      return this.on(\"mouseenter\", fnOver).on(\"mouseleave\", fnOut || fnOver);\n    }\n  });\n  jQuery.each((\"blur focus focusin focusout resize scroll click dblclick \" + \"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" + \"change select submit keydown keypress keyup contextmenu\").split(\" \"), function (_i, name) {\n    // Handle event binding\n    jQuery.fn[name] = function (data, fn) {\n      return arguments.length > 0 ? this.on(name, null, data, fn) : this.trigger(name);\n    };\n  });\n\n  // Support: Android <=4.0 only\n  // Make sure we trim BOM and NBSP\n  // Require that the \"whitespace run\" starts from a non-whitespace\n  // to avoid O(N^2) behavior when the engine would try matching \"\\s+$\" at each space position.\n  var rtrim = /^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;\n\n  // Bind a function to a context, optionally partially applying any\n  // arguments.\n  // jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n  // However, it is not slated for removal any time soon\n  jQuery.proxy = function (fn, context) {\n    var tmp, args, proxy;\n    if (typeof context === \"string\") {\n      tmp = fn[context];\n      context = fn;\n      fn = tmp;\n    }\n\n    // Quick check to determine if target is callable, in the spec\n    // this throws a TypeError, but we will just return undefined.\n    if (!isFunction(fn)) {\n      return undefined;\n    }\n\n    // Simulated bind\n    args = slice.call(arguments, 2);\n    proxy = function () {\n      return fn.apply(context || this, args.concat(slice.call(arguments)));\n    };\n\n    // Set the guid of unique handler to the same of original handler, so it can be removed\n    proxy.guid = fn.guid = fn.guid || jQuery.guid++;\n    return proxy;\n  };\n  jQuery.holdReady = function (hold) {\n    if (hold) {\n      jQuery.readyWait++;\n    } else {\n      jQuery.ready(true);\n    }\n  };\n  jQuery.isArray = Array.isArray;\n  jQuery.parseJSON = JSON.parse;\n  jQuery.nodeName = nodeName;\n  jQuery.isFunction = isFunction;\n  jQuery.isWindow = isWindow;\n  jQuery.camelCase = camelCase;\n  jQuery.type = toType;\n  jQuery.now = Date.now;\n  jQuery.isNumeric = function (obj) {\n    // As of jQuery 3.0, isNumeric is limited to\n    // strings and numbers (primitives or objects)\n    // that can be coerced to finite numbers (gh-2662)\n    var type = jQuery.type(obj);\n    return (type === \"number\" || type === \"string\") &&\n    // parseFloat NaNs numeric-cast false positives (\"\")\n    // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n    // subtraction forces infinities to NaN\n    !isNaN(obj - parseFloat(obj));\n  };\n  jQuery.trim = function (text) {\n    return text == null ? \"\" : (text + \"\").replace(rtrim, \"$1\");\n  };\n\n  // Register as a named AMD module, since jQuery can be concatenated with other\n  // files that may use define, but not via a proper concatenation script that\n  // understands anonymous AMD modules. A named AMD is safest and most robust\n  // way to register. Lowercase jquery is used because AMD module names are\n  // derived from file names, and jQuery is normally delivered in a lowercase\n  // file name. Do this after creating the global so that if an AMD module wants\n  // to call noConflict to hide this version of jQuery, it will work.\n\n  // Note that for maximum portability, libraries that are not jQuery should\n  // declare themselves as anonymous modules, and avoid setting a global if an\n  // AMD loader is present. jQuery is a special case. For more information, see\n  // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\n  if (true) {\n    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n      return jQuery;\n    }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n  }\n  var\n    // Map over jQuery in case of overwrite\n    _jQuery = window.jQuery,\n    // Map over the $ in case of overwrite\n    _$ = window.$;\n  jQuery.noConflict = function (deep) {\n    if (window.$ === jQuery) {\n      window.$ = _$;\n    }\n    if (deep && window.jQuery === jQuery) {\n      window.jQuery = _jQuery;\n    }\n    return jQuery;\n  };\n\n  // Expose jQuery and $ identifiers, even in AMD\n  // (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)\n  // and CommonJS for browser emulators (trac-13566)\n  if (typeof noGlobal === \"undefined\") {\n    window.jQuery = window.$ = jQuery;\n  }\n  return jQuery;\n});\n\n//# sourceURL=webpack:///./node_modules/jquery/dist/jquery.js?\n}");

/***/ }),

/***/ "./node_modules/math-intrinsics/abs.js":
/*!*********************************************!*\
  !*** ./node_modules/math-intrinsics/abs.js ***!
  \*********************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n\n//# sourceURL=webpack:///./node_modules/math-intrinsics/abs.js?\n}");

/***/ }),

/***/ "./node_modules/math-intrinsics/floor.js":
/*!***********************************************!*\
  !*** ./node_modules/math-intrinsics/floor.js ***!
  \***********************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n\n//# sourceURL=webpack:///./node_modules/math-intrinsics/floor.js?\n}");

/***/ }),

/***/ "./node_modules/math-intrinsics/isNaN.js":
/*!***********************************************!*\
  !*** ./node_modules/math-intrinsics/isNaN.js ***!
  \***********************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n  return a !== a;\n};\n\n//# sourceURL=webpack:///./node_modules/math-intrinsics/isNaN.js?\n}");

/***/ }),

/***/ "./node_modules/math-intrinsics/max.js":
/*!*********************************************!*\
  !*** ./node_modules/math-intrinsics/max.js ***!
  \*********************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n\n//# sourceURL=webpack:///./node_modules/math-intrinsics/max.js?\n}");

/***/ }),

/***/ "./node_modules/math-intrinsics/min.js":
/*!*********************************************!*\
  !*** ./node_modules/math-intrinsics/min.js ***!
  \*********************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n\n//# sourceURL=webpack:///./node_modules/math-intrinsics/min.js?\n}");

/***/ }),

/***/ "./node_modules/math-intrinsics/pow.js":
/*!*********************************************!*\
  !*** ./node_modules/math-intrinsics/pow.js ***!
  \*********************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n\n//# sourceURL=webpack:///./node_modules/math-intrinsics/pow.js?\n}");

/***/ }),

/***/ "./node_modules/math-intrinsics/round.js":
/*!***********************************************!*\
  !*** ./node_modules/math-intrinsics/round.js ***!
  \***********************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n\n//# sourceURL=webpack:///./node_modules/math-intrinsics/round.js?\n}");

/***/ }),

/***/ "./node_modules/math-intrinsics/sign.js":
/*!**********************************************!*\
  !*** ./node_modules/math-intrinsics/sign.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar $isNaN = __webpack_require__(/*! ./isNaN */ \"./node_modules/math-intrinsics/isNaN.js\");\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n  if ($isNaN(number) || number === 0) {\n    return number;\n  }\n  return number < 0 ? -1 : +1;\n};\n\n//# sourceURL=webpack:///./node_modules/math-intrinsics/sign.js?\n}");

/***/ }),

/***/ "./node_modules/object-inspect/index.js":
/*!**********************************************!*\
  !*** ./node_modules/object-inspect/index.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("{var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol') ? Symbol.toStringTag : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype // eslint-disable-line no-proto\n? function (O) {\n  return O.__proto__; // eslint-disable-line no-proto\n} : null);\nfunction addNumericSeparator(num, str) {\n  if (num === Infinity || num === -Infinity || num !== num || num && num > -1000 && num < 1000 || $test.call(/e/, str)) {\n    return str;\n  }\n  var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n  if (typeof num === 'number') {\n    var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n    if (int !== num) {\n      var intStr = String(int);\n      var dec = $slice.call(str, intStr.length + 1);\n      return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n    }\n  }\n  return $replace.call(str, sepRegex, '$&_');\n}\nvar utilInspect = __webpack_require__(/*! ./util.inspect */ \"?4f7e\");\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\nvar quotes = {\n  __proto__: null,\n  'double': '\"',\n  single: \"'\"\n};\nvar quoteREs = {\n  __proto__: null,\n  'double': /([\"\\\\])/g,\n  single: /(['\\\\])/g\n};\nmodule.exports = function inspect_(obj, options, depth, seen) {\n  var opts = options || {};\n  if (has(opts, 'quoteStyle') && !has(quotes, opts.quoteStyle)) {\n    throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n  }\n  if (has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number' ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity : opts.maxStringLength !== null)) {\n    throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n  }\n  var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n  if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n    throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n  }\n  if (has(opts, 'indent') && opts.indent !== null && opts.indent !== '\\t' && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)) {\n    throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n  }\n  if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n    throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n  }\n  var numericSeparator = opts.numericSeparator;\n  if (typeof obj === 'undefined') {\n    return 'undefined';\n  }\n  if (obj === null) {\n    return 'null';\n  }\n  if (typeof obj === 'boolean') {\n    return obj ? 'true' : 'false';\n  }\n  if (typeof obj === 'string') {\n    return inspectString(obj, opts);\n  }\n  if (typeof obj === 'number') {\n    if (obj === 0) {\n      return Infinity / obj > 0 ? '0' : '-0';\n    }\n    var str = String(obj);\n    return numericSeparator ? addNumericSeparator(obj, str) : str;\n  }\n  if (typeof obj === 'bigint') {\n    var bigIntStr = String(obj) + 'n';\n    return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n  }\n  var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n  if (typeof depth === 'undefined') {\n    depth = 0;\n  }\n  if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n    return isArray(obj) ? '[Array]' : '[Object]';\n  }\n  var indent = getIndent(opts, depth);\n  if (typeof seen === 'undefined') {\n    seen = [];\n  } else if (indexOf(seen, obj) >= 0) {\n    return '[Circular]';\n  }\n  function inspect(value, from, noIndent) {\n    if (from) {\n      seen = $arrSlice.call(seen);\n      seen.push(from);\n    }\n    if (noIndent) {\n      var newOpts = {\n        depth: opts.depth\n      };\n      if (has(opts, 'quoteStyle')) {\n        newOpts.quoteStyle = opts.quoteStyle;\n      }\n      return inspect_(value, newOpts, depth + 1, seen);\n    }\n    return inspect_(value, opts, depth + 1, seen);\n  }\n  if (typeof obj === 'function' && !isRegExp(obj)) {\n    // in older engines, regexes are callable\n    var name = nameOf(obj);\n    var keys = arrObjKeys(obj, inspect);\n    return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n  }\n  if (isSymbol(obj)) {\n    var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n    return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n  }\n  if (isElement(obj)) {\n    var s = '<' + $toLowerCase.call(String(obj.nodeName));\n    var attrs = obj.attributes || [];\n    for (var i = 0; i < attrs.length; i++) {\n      s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n    }\n    s += '>';\n    if (obj.childNodes && obj.childNodes.length) {\n      s += '...';\n    }\n    s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n    return s;\n  }\n  if (isArray(obj)) {\n    if (obj.length === 0) {\n      return '[]';\n    }\n    var xs = arrObjKeys(obj, inspect);\n    if (indent && !singleLineValues(xs)) {\n      return '[' + indentedJoin(xs, indent) + ']';\n    }\n    return '[ ' + $join.call(xs, ', ') + ' ]';\n  }\n  if (isError(obj)) {\n    var parts = arrObjKeys(obj, inspect);\n    if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n      return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n    }\n    if (parts.length === 0) {\n      return '[' + String(obj) + ']';\n    }\n    return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n  }\n  if (typeof obj === 'object' && customInspect) {\n    if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n      return utilInspect(obj, {\n        depth: maxDepth - depth\n      });\n    } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n      return obj.inspect();\n    }\n  }\n  if (isMap(obj)) {\n    var mapParts = [];\n    if (mapForEach) {\n      mapForEach.call(obj, function (value, key) {\n        mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n      });\n    }\n    return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n  }\n  if (isSet(obj)) {\n    var setParts = [];\n    if (setForEach) {\n      setForEach.call(obj, function (value) {\n        setParts.push(inspect(value, obj));\n      });\n    }\n    return collectionOf('Set', setSize.call(obj), setParts, indent);\n  }\n  if (isWeakMap(obj)) {\n    return weakCollectionOf('WeakMap');\n  }\n  if (isWeakSet(obj)) {\n    return weakCollectionOf('WeakSet');\n  }\n  if (isWeakRef(obj)) {\n    return weakCollectionOf('WeakRef');\n  }\n  if (isNumber(obj)) {\n    return markBoxed(inspect(Number(obj)));\n  }\n  if (isBigInt(obj)) {\n    return markBoxed(inspect(bigIntValueOf.call(obj)));\n  }\n  if (isBoolean(obj)) {\n    return markBoxed(booleanValueOf.call(obj));\n  }\n  if (isString(obj)) {\n    return markBoxed(inspect(String(obj)));\n  }\n  // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n  /* eslint-env browser */\n  if (typeof window !== 'undefined' && obj === window) {\n    return '{ [object Window] }';\n  }\n  if (typeof globalThis !== 'undefined' && obj === globalThis || typeof __webpack_require__.g !== 'undefined' && obj === __webpack_require__.g) {\n    return '{ [object globalThis] }';\n  }\n  if (!isDate(obj) && !isRegExp(obj)) {\n    var ys = arrObjKeys(obj, inspect);\n    var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n    var protoTag = obj instanceof Object ? '' : 'null prototype';\n    var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n    var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n    var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n    if (ys.length === 0) {\n      return tag + '{}';\n    }\n    if (indent) {\n      return tag + '{' + indentedJoin(ys, indent) + '}';\n    }\n    return tag + '{ ' + $join.call(ys, ', ') + ' }';\n  }\n  return String(obj);\n};\nfunction wrapQuotes(s, defaultStyle, opts) {\n  var style = opts.quoteStyle || defaultStyle;\n  var quoteChar = quotes[style];\n  return quoteChar + s + quoteChar;\n}\nfunction quote(s) {\n  return $replace.call(String(s), /\"/g, '&quot;');\n}\nfunction canTrustToString(obj) {\n  return !toStringTag || !(typeof obj === 'object' && (toStringTag in obj || typeof obj[toStringTag] !== 'undefined'));\n}\nfunction isArray(obj) {\n  return toStr(obj) === '[object Array]' && canTrustToString(obj);\n}\nfunction isDate(obj) {\n  return toStr(obj) === '[object Date]' && canTrustToString(obj);\n}\nfunction isRegExp(obj) {\n  return toStr(obj) === '[object RegExp]' && canTrustToString(obj);\n}\nfunction isError(obj) {\n  return toStr(obj) === '[object Error]' && canTrustToString(obj);\n}\nfunction isString(obj) {\n  return toStr(obj) === '[object String]' && canTrustToString(obj);\n}\nfunction isNumber(obj) {\n  return toStr(obj) === '[object Number]' && canTrustToString(obj);\n}\nfunction isBoolean(obj) {\n  return toStr(obj) === '[object Boolean]' && canTrustToString(obj);\n}\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n  if (hasShammedSymbols) {\n    return obj && typeof obj === 'object' && obj instanceof Symbol;\n  }\n  if (typeof obj === 'symbol') {\n    return true;\n  }\n  if (!obj || typeof obj !== 'object' || !symToString) {\n    return false;\n  }\n  try {\n    symToString.call(obj);\n    return true;\n  } catch (e) {}\n  return false;\n}\nfunction isBigInt(obj) {\n  if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n    return false;\n  }\n  try {\n    bigIntValueOf.call(obj);\n    return true;\n  } catch (e) {}\n  return false;\n}\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) {\n  return key in this;\n};\nfunction has(obj, key) {\n  return hasOwn.call(obj, key);\n}\nfunction toStr(obj) {\n  return objectToString.call(obj);\n}\nfunction nameOf(f) {\n  if (f.name) {\n    return f.name;\n  }\n  var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n  if (m) {\n    return m[1];\n  }\n  return null;\n}\nfunction indexOf(xs, x) {\n  if (xs.indexOf) {\n    return xs.indexOf(x);\n  }\n  for (var i = 0, l = xs.length; i < l; i++) {\n    if (xs[i] === x) {\n      return i;\n    }\n  }\n  return -1;\n}\nfunction isMap(x) {\n  if (!mapSize || !x || typeof x !== 'object') {\n    return false;\n  }\n  try {\n    mapSize.call(x);\n    try {\n      setSize.call(x);\n    } catch (s) {\n      return true;\n    }\n    return x instanceof Map; // core-js workaround, pre-v2.5.0\n  } catch (e) {}\n  return false;\n}\nfunction isWeakMap(x) {\n  if (!weakMapHas || !x || typeof x !== 'object') {\n    return false;\n  }\n  try {\n    weakMapHas.call(x, weakMapHas);\n    try {\n      weakSetHas.call(x, weakSetHas);\n    } catch (s) {\n      return true;\n    }\n    return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n  } catch (e) {}\n  return false;\n}\nfunction isWeakRef(x) {\n  if (!weakRefDeref || !x || typeof x !== 'object') {\n    return false;\n  }\n  try {\n    weakRefDeref.call(x);\n    return true;\n  } catch (e) {}\n  return false;\n}\nfunction isSet(x) {\n  if (!setSize || !x || typeof x !== 'object') {\n    return false;\n  }\n  try {\n    setSize.call(x);\n    try {\n      mapSize.call(x);\n    } catch (m) {\n      return true;\n    }\n    return x instanceof Set; // core-js workaround, pre-v2.5.0\n  } catch (e) {}\n  return false;\n}\nfunction isWeakSet(x) {\n  if (!weakSetHas || !x || typeof x !== 'object') {\n    return false;\n  }\n  try {\n    weakSetHas.call(x, weakSetHas);\n    try {\n      weakMapHas.call(x, weakMapHas);\n    } catch (s) {\n      return true;\n    }\n    return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n  } catch (e) {}\n  return false;\n}\nfunction isElement(x) {\n  if (!x || typeof x !== 'object') {\n    return false;\n  }\n  if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n    return true;\n  }\n  return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\nfunction inspectString(str, opts) {\n  if (str.length > opts.maxStringLength) {\n    var remaining = str.length - opts.maxStringLength;\n    var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n    return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n  }\n  var quoteRE = quoteREs[opts.quoteStyle || 'single'];\n  quoteRE.lastIndex = 0;\n  // eslint-disable-next-line no-control-regex\n  var s = $replace.call($replace.call(str, quoteRE, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n  return wrapQuotes(s, 'single', opts);\n}\nfunction lowbyte(c) {\n  var n = c.charCodeAt(0);\n  var x = {\n    8: 'b',\n    9: 't',\n    10: 'n',\n    12: 'f',\n    13: 'r'\n  }[n];\n  if (x) {\n    return '\\\\' + x;\n  }\n  return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\nfunction markBoxed(str) {\n  return 'Object(' + str + ')';\n}\nfunction weakCollectionOf(type) {\n  return type + ' { ? }';\n}\nfunction collectionOf(type, size, entries, indent) {\n  var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n  return type + ' (' + size + ') {' + joinedEntries + '}';\n}\nfunction singleLineValues(xs) {\n  for (var i = 0; i < xs.length; i++) {\n    if (indexOf(xs[i], '\\n') >= 0) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction getIndent(opts, depth) {\n  var baseIndent;\n  if (opts.indent === '\\t') {\n    baseIndent = '\\t';\n  } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n    baseIndent = $join.call(Array(opts.indent + 1), ' ');\n  } else {\n    return null;\n  }\n  return {\n    base: baseIndent,\n    prev: $join.call(Array(depth + 1), baseIndent)\n  };\n}\nfunction indentedJoin(xs, indent) {\n  if (xs.length === 0) {\n    return '';\n  }\n  var lineJoiner = '\\n' + indent.prev + indent.base;\n  return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\nfunction arrObjKeys(obj, inspect) {\n  var isArr = isArray(obj);\n  var xs = [];\n  if (isArr) {\n    xs.length = obj.length;\n    for (var i = 0; i < obj.length; i++) {\n      xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n    }\n  }\n  var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n  var symMap;\n  if (hasShammedSymbols) {\n    symMap = {};\n    for (var k = 0; k < syms.length; k++) {\n      symMap['$' + syms[k]] = syms[k];\n    }\n  }\n  for (var key in obj) {\n    // eslint-disable-line no-restricted-syntax\n    if (!has(obj, key)) {\n      continue;\n    } // eslint-disable-line no-restricted-syntax, no-continue\n    if (isArr && String(Number(key)) === key && key < obj.length) {\n      continue;\n    } // eslint-disable-line no-restricted-syntax, no-continue\n    if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n      // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n      continue; // eslint-disable-line no-restricted-syntax, no-continue\n    } else if ($test.call(/[^\\w$]/, key)) {\n      xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n    } else {\n      xs.push(key + ': ' + inspect(obj[key], obj));\n    }\n  }\n  if (typeof gOPS === 'function') {\n    for (var j = 0; j < syms.length; j++) {\n      if (isEnumerable.call(obj, syms[j])) {\n        xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n      }\n    }\n  }\n  return xs;\n}\n\n//# sourceURL=webpack:///./node_modules/object-inspect/index.js?\n}");

/***/ }),

/***/ "./node_modules/qs/lib/formats.js":
/*!****************************************!*\
  !*** ./node_modules/qs/lib/formats.js ***!
  \****************************************/
/***/ ((module) => {

"use strict";
eval("{\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\nvar Format = {\n  RFC1738: 'RFC1738',\n  RFC3986: 'RFC3986'\n};\nmodule.exports = {\n  'default': Format.RFC3986,\n  formatters: {\n    RFC1738: function (value) {\n      return replace.call(value, percentTwenties, '+');\n    },\n    RFC3986: function (value) {\n      return String(value);\n    }\n  },\n  RFC1738: Format.RFC1738,\n  RFC3986: Format.RFC3986\n};\n\n//# sourceURL=webpack:///./node_modules/qs/lib/formats.js?\n}");

/***/ }),

/***/ "./node_modules/qs/lib/index.js":
/*!**************************************!*\
  !*** ./node_modules/qs/lib/index.js ***!
  \**************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar stringify = __webpack_require__(/*! ./stringify */ \"./node_modules/qs/lib/stringify.js\");\nvar parse = __webpack_require__(/*! ./parse */ \"./node_modules/qs/lib/parse.js\");\nvar formats = __webpack_require__(/*! ./formats */ \"./node_modules/qs/lib/formats.js\");\nmodule.exports = {\n  formats: formats,\n  parse: parse,\n  stringify: stringify\n};\n\n//# sourceURL=webpack:///./node_modules/qs/lib/index.js?\n}");

/***/ }),

/***/ "./node_modules/qs/lib/parse.js":
/*!**************************************!*\
  !*** ./node_modules/qs/lib/parse.js ***!
  \**************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/qs/lib/utils.js\");\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar defaults = {\n  allowDots: false,\n  allowEmptyArrays: false,\n  allowPrototypes: false,\n  allowSparse: false,\n  arrayLimit: 20,\n  charset: 'utf-8',\n  charsetSentinel: false,\n  comma: false,\n  decodeDotInKeys: false,\n  decoder: utils.decode,\n  delimiter: '&',\n  depth: 5,\n  duplicates: 'combine',\n  ignoreQueryPrefix: false,\n  interpretNumericEntities: false,\n  parameterLimit: 1000,\n  parseArrays: true,\n  plainObjects: false,\n  strictDepth: false,\n  strictNullHandling: false,\n  throwOnLimitExceeded: false\n};\nvar interpretNumericEntities = function (str) {\n  return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n    return String.fromCharCode(parseInt(numberStr, 10));\n  });\n};\nvar parseArrayValue = function (val, options, currentArrayLength) {\n  if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n    return val.split(',');\n  }\n  if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {\n    throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n  }\n  return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n  var obj = {\n    __proto__: null\n  };\n  var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n  cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n  var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n  var parts = cleanStr.split(options.delimiter, options.throwOnLimitExceeded ? limit + 1 : limit);\n  if (options.throwOnLimitExceeded && parts.length > limit) {\n    throw new RangeError('Parameter limit exceeded. Only ' + limit + ' parameter' + (limit === 1 ? '' : 's') + ' allowed.');\n  }\n  var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n  var i;\n  var charset = options.charset;\n  if (options.charsetSentinel) {\n    for (i = 0; i < parts.length; ++i) {\n      if (parts[i].indexOf('utf8=') === 0) {\n        if (parts[i] === charsetSentinel) {\n          charset = 'utf-8';\n        } else if (parts[i] === isoSentinel) {\n          charset = 'iso-8859-1';\n        }\n        skipIndex = i;\n        i = parts.length; // The eslint settings do not allow break;\n      }\n    }\n  }\n  for (i = 0; i < parts.length; ++i) {\n    if (i === skipIndex) {\n      continue;\n    }\n    var part = parts[i];\n    var bracketEqualsPos = part.indexOf(']=');\n    var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n    var key;\n    var val;\n    if (pos === -1) {\n      key = options.decoder(part, defaults.decoder, charset, 'key');\n      val = options.strictNullHandling ? null : '';\n    } else {\n      key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n      val = utils.maybeMap(parseArrayValue(part.slice(pos + 1), options, isArray(obj[key]) ? obj[key].length : 0), function (encodedVal) {\n        return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n      });\n    }\n    if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n      val = interpretNumericEntities(String(val));\n    }\n    if (part.indexOf('[]=') > -1) {\n      val = isArray(val) ? [val] : val;\n    }\n    var existing = has.call(obj, key);\n    if (existing && options.duplicates === 'combine') {\n      obj[key] = utils.combine(obj[key], val);\n    } else if (!existing || options.duplicates === 'last') {\n      obj[key] = val;\n    }\n  }\n  return obj;\n};\nvar parseObject = function (chain, val, options, valuesParsed) {\n  var currentArrayLength = 0;\n  if (chain.length > 0 && chain[chain.length - 1] === '[]') {\n    var parentKey = chain.slice(0, -1).join('');\n    currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;\n  }\n  var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);\n  for (var i = chain.length - 1; i >= 0; --i) {\n    var obj;\n    var root = chain[i];\n    if (root === '[]' && options.parseArrays) {\n      obj = options.allowEmptyArrays && (leaf === '' || options.strictNullHandling && leaf === null) ? [] : utils.combine([], leaf);\n    } else {\n      obj = options.plainObjects ? {\n        __proto__: null\n      } : {};\n      var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n      var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n      var index = parseInt(decodedRoot, 10);\n      if (!options.parseArrays && decodedRoot === '') {\n        obj = {\n          0: leaf\n        };\n      } else if (!isNaN(index) && root !== decodedRoot && String(index) === decodedRoot && index >= 0 && options.parseArrays && index <= options.arrayLimit) {\n        obj = [];\n        obj[index] = leaf;\n      } else if (decodedRoot !== '__proto__') {\n        obj[decodedRoot] = leaf;\n      }\n    }\n    leaf = obj;\n  }\n  return leaf;\n};\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n  if (!givenKey) {\n    return;\n  }\n\n  // Transform dot notation to bracket notation\n  var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n  // The regex chunks\n\n  var brackets = /(\\[[^[\\]]*])/;\n  var child = /(\\[[^[\\]]*])/g;\n\n  // Get the parent\n\n  var segment = options.depth > 0 && brackets.exec(key);\n  var parent = segment ? key.slice(0, segment.index) : key;\n\n  // Stash the parent if it exists\n\n  var keys = [];\n  if (parent) {\n    // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n    if (!options.plainObjects && has.call(Object.prototype, parent)) {\n      if (!options.allowPrototypes) {\n        return;\n      }\n    }\n    keys.push(parent);\n  }\n\n  // Loop through children appending to the array until we hit depth\n\n  var i = 0;\n  while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n    i += 1;\n    if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n      if (!options.allowPrototypes) {\n        return;\n      }\n    }\n    keys.push(segment[1]);\n  }\n\n  // If there's a remainder, check strictDepth option for throw, else just add whatever is left\n\n  if (segment) {\n    if (options.strictDepth === true) {\n      throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');\n    }\n    keys.push('[' + key.slice(segment.index) + ']');\n  }\n  return parseObject(keys, val, options, valuesParsed);\n};\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n  if (!opts) {\n    return defaults;\n  }\n  if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n    throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n  }\n  if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n    throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n  }\n  if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n    throw new TypeError('Decoder has to be a function.');\n  }\n  if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n    throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n  }\n  if (typeof opts.throwOnLimitExceeded !== 'undefined' && typeof opts.throwOnLimitExceeded !== 'boolean') {\n    throw new TypeError('`throwOnLimitExceeded` option must be a boolean');\n  }\n  var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n  var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n  if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n    throw new TypeError('The duplicates option must be either combine, first, or last');\n  }\n  var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n  return {\n    allowDots: allowDots,\n    allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n    allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n    allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n    arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n    charset: charset,\n    charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n    comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n    decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n    decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n    delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n    // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n    depth: typeof opts.depth === 'number' || opts.depth === false ? +opts.depth : defaults.depth,\n    duplicates: duplicates,\n    ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n    interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n    parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n    parseArrays: opts.parseArrays !== false,\n    plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n    strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,\n    strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n    throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === 'boolean' ? opts.throwOnLimitExceeded : false\n  };\n};\nmodule.exports = function (str, opts) {\n  var options = normalizeParseOptions(opts);\n  if (str === '' || str === null || typeof str === 'undefined') {\n    return options.plainObjects ? {\n      __proto__: null\n    } : {};\n  }\n  var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n  var obj = options.plainObjects ? {\n    __proto__: null\n  } : {};\n\n  // Iterate over the keys and setup the new object\n\n  var keys = Object.keys(tempObj);\n  for (var i = 0; i < keys.length; ++i) {\n    var key = keys[i];\n    var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n    obj = utils.merge(obj, newObj, options);\n  }\n  if (options.allowSparse === true) {\n    return obj;\n  }\n  return utils.compact(obj);\n};\n\n//# sourceURL=webpack:///./node_modules/qs/lib/parse.js?\n}");

/***/ }),

/***/ "./node_modules/qs/lib/stringify.js":
/*!******************************************!*\
  !*** ./node_modules/qs/lib/stringify.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar getSideChannel = __webpack_require__(/*! side-channel */ \"./node_modules/side-channel/index.js\");\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/qs/lib/utils.js\");\nvar formats = __webpack_require__(/*! ./formats */ \"./node_modules/qs/lib/formats.js\");\nvar has = Object.prototype.hasOwnProperty;\nvar arrayPrefixGenerators = {\n  brackets: function brackets(prefix) {\n    return prefix + '[]';\n  },\n  comma: 'comma',\n  indices: function indices(prefix, key) {\n    return prefix + '[' + key + ']';\n  },\n  repeat: function repeat(prefix) {\n    return prefix;\n  }\n};\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n  push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\nvar toISO = Date.prototype.toISOString;\nvar defaultFormat = formats['default'];\nvar defaults = {\n  addQueryPrefix: false,\n  allowDots: false,\n  allowEmptyArrays: false,\n  arrayFormat: 'indices',\n  charset: 'utf-8',\n  charsetSentinel: false,\n  commaRoundTrip: false,\n  delimiter: '&',\n  encode: true,\n  encodeDotInKeys: false,\n  encoder: utils.encode,\n  encodeValuesOnly: false,\n  filter: void undefined,\n  format: defaultFormat,\n  formatter: formats.formatters[defaultFormat],\n  // deprecated\n  indices: false,\n  serializeDate: function serializeDate(date) {\n    return toISO.call(date);\n  },\n  skipNulls: false,\n  strictNullHandling: false\n};\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n  return typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean' || typeof v === 'symbol' || typeof v === 'bigint';\n};\nvar sentinel = {};\nvar stringify = function stringify(object, prefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, sideChannel) {\n  var obj = object;\n  var tmpSc = sideChannel;\n  var step = 0;\n  var findFlag = false;\n  while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n    // Where object last appeared in the ref tree\n    var pos = tmpSc.get(object);\n    step += 1;\n    if (typeof pos !== 'undefined') {\n      if (pos === step) {\n        throw new RangeError('Cyclic object value');\n      } else {\n        findFlag = true; // Break while\n      }\n    }\n    if (typeof tmpSc.get(sentinel) === 'undefined') {\n      step = 0;\n    }\n  }\n  if (typeof filter === 'function') {\n    obj = filter(prefix, obj);\n  } else if (obj instanceof Date) {\n    obj = serializeDate(obj);\n  } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n    obj = utils.maybeMap(obj, function (value) {\n      if (value instanceof Date) {\n        return serializeDate(value);\n      }\n      return value;\n    });\n  }\n  if (obj === null) {\n    if (strictNullHandling) {\n      return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n    }\n    obj = '';\n  }\n  if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n    if (encoder) {\n      var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n      return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n    }\n    return [formatter(prefix) + '=' + formatter(String(obj))];\n  }\n  var values = [];\n  if (typeof obj === 'undefined') {\n    return values;\n  }\n  var objKeys;\n  if (generateArrayPrefix === 'comma' && isArray(obj)) {\n    // we need to join elements in\n    if (encodeValuesOnly && encoder) {\n      obj = utils.maybeMap(obj, encoder);\n    }\n    objKeys = [{\n      value: obj.length > 0 ? obj.join(',') || null : void undefined\n    }];\n  } else if (isArray(filter)) {\n    objKeys = filter;\n  } else {\n    var keys = Object.keys(obj);\n    objKeys = sort ? keys.sort(sort) : keys;\n  }\n  var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n  var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n  if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n    return adjustedPrefix + '[]';\n  }\n  for (var j = 0; j < objKeys.length; ++j) {\n    var key = objKeys[j];\n    var value = typeof key === 'object' && key && typeof key.value !== 'undefined' ? key.value : obj[key];\n    if (skipNulls && value === null) {\n      continue;\n    }\n    var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\\./g, '%2E') : String(key);\n    var keyPrefix = isArray(obj) ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n    sideChannel.set(object, step);\n    var valueSideChannel = getSideChannel();\n    valueSideChannel.set(sentinel, sideChannel);\n    pushToArray(values, stringify(value, keyPrefix, generateArrayPrefix, commaRoundTrip, allowEmptyArrays, strictNullHandling, skipNulls, encodeDotInKeys, generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder, filter, sort, allowDots, serializeDate, format, formatter, encodeValuesOnly, charset, valueSideChannel));\n  }\n  return values;\n};\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n  if (!opts) {\n    return defaults;\n  }\n  if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n    throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n  }\n  if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n    throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n  }\n  if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n    throw new TypeError('Encoder has to be a function.');\n  }\n  var charset = opts.charset || defaults.charset;\n  if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n    throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n  }\n  var format = formats['default'];\n  if (typeof opts.format !== 'undefined') {\n    if (!has.call(formats.formatters, opts.format)) {\n      throw new TypeError('Unknown format option provided.');\n    }\n    format = opts.format;\n  }\n  var formatter = formats.formatters[format];\n  var filter = defaults.filter;\n  if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n    filter = opts.filter;\n  }\n  var arrayFormat;\n  if (opts.arrayFormat in arrayPrefixGenerators) {\n    arrayFormat = opts.arrayFormat;\n  } else if ('indices' in opts) {\n    arrayFormat = opts.indices ? 'indices' : 'repeat';\n  } else {\n    arrayFormat = defaults.arrayFormat;\n  }\n  if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n    throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n  }\n  var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n  return {\n    addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n    allowDots: allowDots,\n    allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n    arrayFormat: arrayFormat,\n    charset: charset,\n    charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n    commaRoundTrip: !!opts.commaRoundTrip,\n    delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n    encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n    encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n    encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n    encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n    filter: filter,\n    format: format,\n    formatter: formatter,\n    serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n    skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n    sort: typeof opts.sort === 'function' ? opts.sort : null,\n    strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n  };\n};\nmodule.exports = function (object, opts) {\n  var obj = object;\n  var options = normalizeStringifyOptions(opts);\n  var objKeys;\n  var filter;\n  if (typeof options.filter === 'function') {\n    filter = options.filter;\n    obj = filter('', obj);\n  } else if (isArray(options.filter)) {\n    filter = options.filter;\n    objKeys = filter;\n  }\n  var keys = [];\n  if (typeof obj !== 'object' || obj === null) {\n    return '';\n  }\n  var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n  var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n  if (!objKeys) {\n    objKeys = Object.keys(obj);\n  }\n  if (options.sort) {\n    objKeys.sort(options.sort);\n  }\n  var sideChannel = getSideChannel();\n  for (var i = 0; i < objKeys.length; ++i) {\n    var key = objKeys[i];\n    var value = obj[key];\n    if (options.skipNulls && value === null) {\n      continue;\n    }\n    pushToArray(keys, stringify(value, key, generateArrayPrefix, commaRoundTrip, options.allowEmptyArrays, options.strictNullHandling, options.skipNulls, options.encodeDotInKeys, options.encode ? options.encoder : null, options.filter, options.sort, options.allowDots, options.serializeDate, options.format, options.formatter, options.encodeValuesOnly, options.charset, sideChannel));\n  }\n  var joined = keys.join(options.delimiter);\n  var prefix = options.addQueryPrefix === true ? '?' : '';\n  if (options.charsetSentinel) {\n    if (options.charset === 'iso-8859-1') {\n      // encodeURIComponent('&#10003;'), the \"numeric entity\" representation of a checkmark\n      prefix += 'utf8=%26%2310003%3B&';\n    } else {\n      // encodeURIComponent('✓')\n      prefix += 'utf8=%E2%9C%93&';\n    }\n  }\n  return joined.length > 0 ? prefix + joined : '';\n};\n\n//# sourceURL=webpack:///./node_modules/qs/lib/stringify.js?\n}");

/***/ }),

/***/ "./node_modules/qs/lib/utils.js":
/*!**************************************!*\
  !*** ./node_modules/qs/lib/utils.js ***!
  \**************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar formats = __webpack_require__(/*! ./formats */ \"./node_modules/qs/lib/formats.js\");\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\nvar hexTable = function () {\n  var array = [];\n  for (var i = 0; i < 256; ++i) {\n    array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n  }\n  return array;\n}();\nvar compactQueue = function compactQueue(queue) {\n  while (queue.length > 1) {\n    var item = queue.pop();\n    var obj = item.obj[item.prop];\n    if (isArray(obj)) {\n      var compacted = [];\n      for (var j = 0; j < obj.length; ++j) {\n        if (typeof obj[j] !== 'undefined') {\n          compacted.push(obj[j]);\n        }\n      }\n      item.obj[item.prop] = compacted;\n    }\n  }\n};\nvar arrayToObject = function arrayToObject(source, options) {\n  var obj = options && options.plainObjects ? {\n    __proto__: null\n  } : {};\n  for (var i = 0; i < source.length; ++i) {\n    if (typeof source[i] !== 'undefined') {\n      obj[i] = source[i];\n    }\n  }\n  return obj;\n};\nvar merge = function merge(target, source, options) {\n  /* eslint no-param-reassign: 0 */\n  if (!source) {\n    return target;\n  }\n  if (typeof source !== 'object' && typeof source !== 'function') {\n    if (isArray(target)) {\n      target.push(source);\n    } else if (target && typeof target === 'object') {\n      if (options && (options.plainObjects || options.allowPrototypes) || !has.call(Object.prototype, source)) {\n        target[source] = true;\n      }\n    } else {\n      return [target, source];\n    }\n    return target;\n  }\n  if (!target || typeof target !== 'object') {\n    return [target].concat(source);\n  }\n  var mergeTarget = target;\n  if (isArray(target) && !isArray(source)) {\n    mergeTarget = arrayToObject(target, options);\n  }\n  if (isArray(target) && isArray(source)) {\n    source.forEach(function (item, i) {\n      if (has.call(target, i)) {\n        var targetItem = target[i];\n        if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n          target[i] = merge(targetItem, item, options);\n        } else {\n          target.push(item);\n        }\n      } else {\n        target[i] = item;\n      }\n    });\n    return target;\n  }\n  return Object.keys(source).reduce(function (acc, key) {\n    var value = source[key];\n    if (has.call(acc, key)) {\n      acc[key] = merge(acc[key], value, options);\n    } else {\n      acc[key] = value;\n    }\n    return acc;\n  }, mergeTarget);\n};\nvar assign = function assignSingleSource(target, source) {\n  return Object.keys(source).reduce(function (acc, key) {\n    acc[key] = source[key];\n    return acc;\n  }, target);\n};\nvar decode = function (str, defaultDecoder, charset) {\n  var strWithoutPlus = str.replace(/\\+/g, ' ');\n  if (charset === 'iso-8859-1') {\n    // unescape never throws, no try...catch needed:\n    return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n  }\n  // utf-8\n  try {\n    return decodeURIComponent(strWithoutPlus);\n  } catch (e) {\n    return strWithoutPlus;\n  }\n};\nvar limit = 1024;\n\n/* eslint operator-linebreak: [2, \"before\"] */\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n  // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n  // It has been adapted here for stricter adherence to RFC 3986\n  if (str.length === 0) {\n    return str;\n  }\n  var string = str;\n  if (typeof str === 'symbol') {\n    string = Symbol.prototype.toString.call(str);\n  } else if (typeof str !== 'string') {\n    string = String(str);\n  }\n  if (charset === 'iso-8859-1') {\n    return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n      return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n    });\n  }\n  var out = '';\n  for (var j = 0; j < string.length; j += limit) {\n    var segment = string.length >= limit ? string.slice(j, j + limit) : string;\n    var arr = [];\n    for (var i = 0; i < segment.length; ++i) {\n      var c = segment.charCodeAt(i);\n      if (c === 0x2D // -\n      || c === 0x2E // .\n      || c === 0x5F // _\n      || c === 0x7E // ~\n      || c >= 0x30 && c <= 0x39 // 0-9\n      || c >= 0x41 && c <= 0x5A // a-z\n      || c >= 0x61 && c <= 0x7A // A-Z\n      || format === formats.RFC1738 && (c === 0x28 || c === 0x29) // ( )\n      ) {\n        arr[arr.length] = segment.charAt(i);\n        continue;\n      }\n      if (c < 0x80) {\n        arr[arr.length] = hexTable[c];\n        continue;\n      }\n      if (c < 0x800) {\n        arr[arr.length] = hexTable[0xC0 | c >> 6] + hexTable[0x80 | c & 0x3F];\n        continue;\n      }\n      if (c < 0xD800 || c >= 0xE000) {\n        arr[arr.length] = hexTable[0xE0 | c >> 12] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F];\n        continue;\n      }\n      i += 1;\n      c = 0x10000 + ((c & 0x3FF) << 10 | segment.charCodeAt(i) & 0x3FF);\n      arr[arr.length] = hexTable[0xF0 | c >> 18] + hexTable[0x80 | c >> 12 & 0x3F] + hexTable[0x80 | c >> 6 & 0x3F] + hexTable[0x80 | c & 0x3F];\n    }\n    out += arr.join('');\n  }\n  return out;\n};\nvar compact = function compact(value) {\n  var queue = [{\n    obj: {\n      o: value\n    },\n    prop: 'o'\n  }];\n  var refs = [];\n  for (var i = 0; i < queue.length; ++i) {\n    var item = queue[i];\n    var obj = item.obj[item.prop];\n    var keys = Object.keys(obj);\n    for (var j = 0; j < keys.length; ++j) {\n      var key = keys[j];\n      var val = obj[key];\n      if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n        queue.push({\n          obj: obj,\n          prop: key\n        });\n        refs.push(val);\n      }\n    }\n  }\n  compactQueue(queue);\n  return value;\n};\nvar isRegExp = function isRegExp(obj) {\n  return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\nvar isBuffer = function isBuffer(obj) {\n  if (!obj || typeof obj !== 'object') {\n    return false;\n  }\n  return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\nvar combine = function combine(a, b) {\n  return [].concat(a, b);\n};\nvar maybeMap = function maybeMap(val, fn) {\n  if (isArray(val)) {\n    var mapped = [];\n    for (var i = 0; i < val.length; i += 1) {\n      mapped.push(fn(val[i]));\n    }\n    return mapped;\n  }\n  return fn(val);\n};\nmodule.exports = {\n  arrayToObject: arrayToObject,\n  assign: assign,\n  combine: combine,\n  compact: compact,\n  decode: decode,\n  encode: encode,\n  isBuffer: isBuffer,\n  isRegExp: isRegExp,\n  maybeMap: maybeMap,\n  merge: merge\n};\n\n//# sourceURL=webpack:///./node_modules/qs/lib/utils.js?\n}");

/***/ }),

/***/ "./node_modules/side-channel-list/index.js":
/*!*************************************************!*\
  !*** ./node_modules/side-channel-list/index.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar inspect = __webpack_require__(/*! object-inspect */ \"./node_modules/object-inspect/index.js\");\nvar $TypeError = __webpack_require__(/*! es-errors/type */ \"./node_modules/es-errors/type.js\");\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list.\n* By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('./list.d.ts').listGetNode} */\n// eslint-disable-next-line consistent-return\nvar listGetNode = function (list, key, isDelete) {\n  /** @type {typeof list | NonNullable<(typeof list)['next']>} */\n  var prev = list;\n  /** @type {(typeof list)['next']} */\n  var curr;\n  // eslint-disable-next-line eqeqeq\n  for (; (curr = prev.next) != null; prev = curr) {\n    if (curr.key === key) {\n      prev.next = curr.next;\n      if (!isDelete) {\n        // eslint-disable-next-line no-extra-parens\n        curr.next = /** @type {NonNullable<typeof list.next>} */list.next;\n        list.next = curr; // eslint-disable-line no-param-reassign\n      }\n      return curr;\n    }\n  }\n};\n\n/** @type {import('./list.d.ts').listGet} */\nvar listGet = function (objects, key) {\n  if (!objects) {\n    return void undefined;\n  }\n  var node = listGetNode(objects, key);\n  return node && node.value;\n};\n/** @type {import('./list.d.ts').listSet} */\nvar listSet = function (objects, key, value) {\n  var node = listGetNode(objects, key);\n  if (node) {\n    node.value = value;\n  } else {\n    // Prepend the new node to the beginning of the list\n    objects.next = /** @type {import('./list.d.ts').ListNode<typeof value, typeof key>} */{\n      // eslint-disable-line no-param-reassign, no-extra-parens\n      key: key,\n      next: objects.next,\n      value: value\n    };\n  }\n};\n/** @type {import('./list.d.ts').listHas} */\nvar listHas = function (objects, key) {\n  if (!objects) {\n    return false;\n  }\n  return !!listGetNode(objects, key);\n};\n/** @type {import('./list.d.ts').listDelete} */\n// eslint-disable-next-line consistent-return\nvar listDelete = function (objects, key) {\n  if (objects) {\n    return listGetNode(objects, key, true);\n  }\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannelList() {\n  /** @typedef {ReturnType<typeof getSideChannelList>} Channel */\n  /** @typedef {Parameters<Channel['get']>[0]} K */\n  /** @typedef {Parameters<Channel['set']>[1]} V */\n\n  /** @type {import('./list.d.ts').RootNode<V, K> | undefined} */var $o;\n\n  /** @type {Channel} */\n  var channel = {\n    assert: function (key) {\n      if (!channel.has(key)) {\n        throw new $TypeError('Side channel does not contain ' + inspect(key));\n      }\n    },\n    'delete': function (key) {\n      var root = $o && $o.next;\n      var deletedNode = listDelete($o, key);\n      if (deletedNode && root && root === deletedNode) {\n        $o = void undefined;\n      }\n      return !!deletedNode;\n    },\n    get: function (key) {\n      return listGet($o, key);\n    },\n    has: function (key) {\n      return listHas($o, key);\n    },\n    set: function (key, value) {\n      if (!$o) {\n        // Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n        $o = {\n          next: void undefined\n        };\n      }\n      // eslint-disable-next-line no-extra-parens\n      listSet(/** @type {NonNullable<typeof $o>} */$o, key, value);\n    }\n  };\n  // @ts-expect-error TODO: figure out why this is erroring\n  return channel;\n};\n\n//# sourceURL=webpack:///./node_modules/side-channel-list/index.js?\n}");

/***/ }),

/***/ "./node_modules/side-channel-map/index.js":
/*!************************************************!*\
  !*** ./node_modules/side-channel-map/index.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar GetIntrinsic = __webpack_require__(/*! get-intrinsic */ \"./node_modules/get-intrinsic/index.js\");\nvar callBound = __webpack_require__(/*! call-bound */ \"./node_modules/call-bound/index.js\");\nvar inspect = __webpack_require__(/*! object-inspect */ \"./node_modules/object-inspect/index.js\");\nvar $TypeError = __webpack_require__(/*! es-errors/type */ \"./node_modules/es-errors/type.js\");\nvar $Map = GetIntrinsic('%Map%', true);\n\n/** @type {<K, V>(thisArg: Map<K, V>, key: K) => V} */\nvar $mapGet = callBound('Map.prototype.get', true);\n/** @type {<K, V>(thisArg: Map<K, V>, key: K, value: V) => void} */\nvar $mapSet = callBound('Map.prototype.set', true);\n/** @type {<K, V>(thisArg: Map<K, V>, key: K) => boolean} */\nvar $mapHas = callBound('Map.prototype.has', true);\n/** @type {<K, V>(thisArg: Map<K, V>, key: K) => boolean} */\nvar $mapDelete = callBound('Map.prototype.delete', true);\n/** @type {<K, V>(thisArg: Map<K, V>) => number} */\nvar $mapSize = callBound('Map.prototype.size', true);\n\n/** @type {import('.')} */\nmodule.exports = !!$Map && /** @type {Exclude<import('.'), false>} */function getSideChannelMap() {\n  /** @typedef {ReturnType<typeof getSideChannelMap>} Channel */\n  /** @typedef {Parameters<Channel['get']>[0]} K */\n  /** @typedef {Parameters<Channel['set']>[1]} V */\n\n  /** @type {Map<K, V> | undefined} */var $m;\n\n  /** @type {Channel} */\n  var channel = {\n    assert: function (key) {\n      if (!channel.has(key)) {\n        throw new $TypeError('Side channel does not contain ' + inspect(key));\n      }\n    },\n    'delete': function (key) {\n      if ($m) {\n        var result = $mapDelete($m, key);\n        if ($mapSize($m) === 0) {\n          $m = void undefined;\n        }\n        return result;\n      }\n      return false;\n    },\n    get: function (key) {\n      // eslint-disable-line consistent-return\n      if ($m) {\n        return $mapGet($m, key);\n      }\n    },\n    has: function (key) {\n      if ($m) {\n        return $mapHas($m, key);\n      }\n      return false;\n    },\n    set: function (key, value) {\n      if (!$m) {\n        // @ts-expect-error TS can't handle narrowing a variable inside a closure\n        $m = new $Map();\n      }\n      $mapSet($m, key, value);\n    }\n  };\n\n  // @ts-expect-error TODO: figure out why TS is erroring here\n  return channel;\n};\n\n//# sourceURL=webpack:///./node_modules/side-channel-map/index.js?\n}");

/***/ }),

/***/ "./node_modules/side-channel-weakmap/index.js":
/*!****************************************************!*\
  !*** ./node_modules/side-channel-weakmap/index.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar GetIntrinsic = __webpack_require__(/*! get-intrinsic */ \"./node_modules/get-intrinsic/index.js\");\nvar callBound = __webpack_require__(/*! call-bound */ \"./node_modules/call-bound/index.js\");\nvar inspect = __webpack_require__(/*! object-inspect */ \"./node_modules/object-inspect/index.js\");\nvar getSideChannelMap = __webpack_require__(/*! side-channel-map */ \"./node_modules/side-channel-map/index.js\");\nvar $TypeError = __webpack_require__(/*! es-errors/type */ \"./node_modules/es-errors/type.js\");\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\n\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => V} */\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K, value: V) => void} */\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => boolean} */\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\n/** @type {<K extends object, V>(thisArg: WeakMap<K, V>, key: K) => boolean} */\nvar $weakMapDelete = callBound('WeakMap.prototype.delete', true);\n\n/** @type {import('.')} */\nmodule.exports = $WeakMap ? /** @type {Exclude<import('.'), false>} */function getSideChannelWeakMap() {\n  /** @typedef {ReturnType<typeof getSideChannelWeakMap>} Channel */\n  /** @typedef {Parameters<Channel['get']>[0]} K */\n  /** @typedef {Parameters<Channel['set']>[1]} V */\n\n  /** @type {WeakMap<K & object, V> | undefined} */var $wm;\n  /** @type {Channel | undefined} */\n  var $m;\n\n  /** @type {Channel} */\n  var channel = {\n    assert: function (key) {\n      if (!channel.has(key)) {\n        throw new $TypeError('Side channel does not contain ' + inspect(key));\n      }\n    },\n    'delete': function (key) {\n      if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n        if ($wm) {\n          return $weakMapDelete($wm, key);\n        }\n      } else if (getSideChannelMap) {\n        if ($m) {\n          return $m['delete'](key);\n        }\n      }\n      return false;\n    },\n    get: function (key) {\n      if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n        if ($wm) {\n          return $weakMapGet($wm, key);\n        }\n      }\n      return $m && $m.get(key);\n    },\n    has: function (key) {\n      if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n        if ($wm) {\n          return $weakMapHas($wm, key);\n        }\n      }\n      return !!$m && $m.has(key);\n    },\n    set: function (key, value) {\n      if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n        if (!$wm) {\n          $wm = new $WeakMap();\n        }\n        $weakMapSet($wm, key, value);\n      } else if (getSideChannelMap) {\n        if (!$m) {\n          $m = getSideChannelMap();\n        }\n        // eslint-disable-next-line no-extra-parens\n        /** @type {NonNullable<typeof $m>} */\n        $m.set(key, value);\n      }\n    }\n  };\n\n  // @ts-expect-error TODO: figure out why this is erroring\n  return channel;\n} : getSideChannelMap;\n\n//# sourceURL=webpack:///./node_modules/side-channel-weakmap/index.js?\n}");

/***/ }),

/***/ "./node_modules/side-channel/index.js":
/*!********************************************!*\
  !*** ./node_modules/side-channel/index.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\nvar $TypeError = __webpack_require__(/*! es-errors/type */ \"./node_modules/es-errors/type.js\");\nvar inspect = __webpack_require__(/*! object-inspect */ \"./node_modules/object-inspect/index.js\");\nvar getSideChannelList = __webpack_require__(/*! side-channel-list */ \"./node_modules/side-channel-list/index.js\");\nvar getSideChannelMap = __webpack_require__(/*! side-channel-map */ \"./node_modules/side-channel-map/index.js\");\nvar getSideChannelWeakMap = __webpack_require__(/*! side-channel-weakmap */ \"./node_modules/side-channel-weakmap/index.js\");\nvar makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n  /** @typedef {ReturnType<typeof getSideChannel>} Channel */\n\n  /** @type {Channel | undefined} */var $channelData;\n\n  /** @type {Channel} */\n  var channel = {\n    assert: function (key) {\n      if (!channel.has(key)) {\n        throw new $TypeError('Side channel does not contain ' + inspect(key));\n      }\n    },\n    'delete': function (key) {\n      return !!$channelData && $channelData['delete'](key);\n    },\n    get: function (key) {\n      return $channelData && $channelData.get(key);\n    },\n    has: function (key) {\n      return !!$channelData && $channelData.has(key);\n    },\n    set: function (key, value) {\n      if (!$channelData) {\n        $channelData = makeChannel();\n      }\n      $channelData.set(key, value);\n    }\n  };\n  // @ts-expect-error TODO: figure out why this is erroring\n  return channel;\n};\n\n//# sourceURL=webpack:///./node_modules/side-channel/index.js?\n}");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
/*!****************************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
  \****************************************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n  var result = -1;\n  for (var i = 0; i < stylesInDOM.length; i++) {\n    if (stylesInDOM[i].identifier === identifier) {\n      result = i;\n      break;\n    }\n  }\n  return result;\n}\nfunction modulesToDom(list, options) {\n  var idCountMap = {};\n  var identifiers = [];\n  for (var i = 0; i < list.length; i++) {\n    var item = list[i];\n    var id = options.base ? item[0] + options.base : item[0];\n    var count = idCountMap[id] || 0;\n    var identifier = \"\".concat(id, \" \").concat(count);\n    idCountMap[id] = count + 1;\n    var indexByIdentifier = getIndexByIdentifier(identifier);\n    var obj = {\n      css: item[1],\n      media: item[2],\n      sourceMap: item[3],\n      supports: item[4],\n      layer: item[5]\n    };\n    if (indexByIdentifier !== -1) {\n      stylesInDOM[indexByIdentifier].references++;\n      stylesInDOM[indexByIdentifier].updater(obj);\n    } else {\n      var updater = addElementStyle(obj, options);\n      options.byIndex = i;\n      stylesInDOM.splice(i, 0, {\n        identifier: identifier,\n        updater: updater,\n        references: 1\n      });\n    }\n    identifiers.push(identifier);\n  }\n  return identifiers;\n}\nfunction addElementStyle(obj, options) {\n  var api = options.domAPI(options);\n  api.update(obj);\n  var updater = function updater(newObj) {\n    if (newObj) {\n      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n        return;\n      }\n      api.update(obj = newObj);\n    } else {\n      api.remove();\n    }\n  };\n  return updater;\n}\nmodule.exports = function (list, options) {\n  options = options || {};\n  list = list || [];\n  var lastIdentifiers = modulesToDom(list, options);\n  return function update(newList) {\n    newList = newList || [];\n    for (var i = 0; i < lastIdentifiers.length; i++) {\n      var identifier = lastIdentifiers[i];\n      var index = getIndexByIdentifier(identifier);\n      stylesInDOM[index].references--;\n    }\n    var newLastIdentifiers = modulesToDom(newList, options);\n    for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n      var _identifier = lastIdentifiers[_i];\n      var _index = getIndexByIdentifier(_identifier);\n      if (stylesInDOM[_index].references === 0) {\n        stylesInDOM[_index].updater();\n        stylesInDOM.splice(_index, 1);\n      }\n    }\n    lastIdentifiers = newLastIdentifiers;\n  };\n};\n\n//# sourceURL=webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js?\n}");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/insertBySelector.js":
/*!********************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***!
  \********************************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\nvar memo = {};\n\n/* istanbul ignore next  */\nfunction getTarget(target) {\n  if (typeof memo[target] === \"undefined\") {\n    var styleTarget = document.querySelector(target);\n\n    // Special case to return head of iframe instead of iframe itself\n    if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n      try {\n        // This will throw an exception if access to iframe is blocked\n        // due to cross-origin restrictions\n        styleTarget = styleTarget.contentDocument.head;\n      } catch (e) {\n        // istanbul ignore next\n        styleTarget = null;\n      }\n    }\n    memo[target] = styleTarget;\n  }\n  return memo[target];\n}\n\n/* istanbul ignore next  */\nfunction insertBySelector(insert, style) {\n  var target = getTarget(insert);\n  if (!target) {\n    throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n  }\n  target.appendChild(style);\n}\nmodule.exports = insertBySelector;\n\n//# sourceURL=webpack:///./node_modules/style-loader/dist/runtime/insertBySelector.js?\n}");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/insertStyleElement.js":
/*!**********************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***!
  \**********************************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/* istanbul ignore next  */\nfunction insertStyleElement(options) {\n  var element = document.createElement(\"style\");\n  options.setAttributes(element, options.attributes);\n  options.insert(element, options.options);\n  return element;\n}\nmodule.exports = insertStyleElement;\n\n//# sourceURL=webpack:///./node_modules/style-loader/dist/runtime/insertStyleElement.js?\n}");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***!
  \**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("{\n\n/* istanbul ignore next  */\nfunction setAttributesWithoutAttributes(styleElement) {\n  var nonce =  true ? __webpack_require__.nc : 0;\n  if (nonce) {\n    styleElement.setAttribute(\"nonce\", nonce);\n  }\n}\nmodule.exports = setAttributesWithoutAttributes;\n\n//# sourceURL=webpack:///./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js?\n}");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/styleDomAPI.js":
/*!***************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***!
  \***************************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/* istanbul ignore next  */\nfunction apply(styleElement, options, obj) {\n  var css = \"\";\n  if (obj.supports) {\n    css += \"@supports (\".concat(obj.supports, \") {\");\n  }\n  if (obj.media) {\n    css += \"@media \".concat(obj.media, \" {\");\n  }\n  var needLayer = typeof obj.layer !== \"undefined\";\n  if (needLayer) {\n    css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n  }\n  css += obj.css;\n  if (needLayer) {\n    css += \"}\";\n  }\n  if (obj.media) {\n    css += \"}\";\n  }\n  if (obj.supports) {\n    css += \"}\";\n  }\n  var sourceMap = obj.sourceMap;\n  if (sourceMap && typeof btoa !== \"undefined\") {\n    css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n  }\n\n  // For old IE\n  /* istanbul ignore if  */\n  options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n  // istanbul ignore if\n  if (styleElement.parentNode === null) {\n    return false;\n  }\n  styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next  */\nfunction domAPI(options) {\n  if (typeof document === \"undefined\") {\n    return {\n      update: function update() {},\n      remove: function remove() {}\n    };\n  }\n  var styleElement = options.insertStyleElement(options);\n  return {\n    update: function update(obj) {\n      apply(styleElement, options, obj);\n    },\n    remove: function remove() {\n      removeStyleElement(styleElement);\n    }\n  };\n}\nmodule.exports = domAPI;\n\n//# sourceURL=webpack:///./node_modules/style-loader/dist/runtime/styleDomAPI.js?\n}");

/***/ }),

/***/ "./node_modules/style-loader/dist/runtime/styleTagTransform.js":
/*!*********************************************************************!*\
  !*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***!
  \*********************************************************************/
/***/ ((module) => {

"use strict";
eval("{\n\n/* istanbul ignore next  */\nfunction styleTagTransform(css, styleElement) {\n  if (styleElement.styleSheet) {\n    styleElement.styleSheet.cssText = css;\n  } else {\n    while (styleElement.firstChild) {\n      styleElement.removeChild(styleElement.firstChild);\n    }\n    styleElement.appendChild(document.createTextNode(css));\n  }\n}\nmodule.exports = styleTagTransform;\n\n//# sourceURL=webpack:///./node_modules/style-loader/dist/runtime/styleTagTransform.js?\n}");

/***/ })

}]);